mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-17 14:49:30 -07:00
dev-python/pipenv: remove toml dependency
Patch the upstream package to use tomli, also declare tomli as dependency only if python is less than 3.11 Signed-off-by: Oz Tiram <oz.tiram@gmail.com> Closes: https://github.com/gentoo/gentoo/pull/30866 Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
diff --git a/pipenv/project.py b/pipenv/project.py
|
||||
index ed43cf2bc..903667639 100644
|
||||
--- a/pipenv/project.py
|
||||
+++ b/pipenv/project.py
|
||||
@@ -13,6 +13,13 @@ import urllib.parse
|
||||
from json.decoder import JSONDecodeError
|
||||
from pathlib import Path
|
||||
|
||||
+import click, tomlkit
|
||||
+
|
||||
+try:
|
||||
+ import tomllib as toml
|
||||
+except ImportError:
|
||||
+ import tomli as toml
|
||||
+
|
||||
from pipenv.cmdparse import Script
|
||||
from pipenv.environment import Environment
|
||||
from pipenv.environments import Setting, is_in_virtualenv, normalize_pipfile_path
|
||||
diff --git a/pipenv/utils/toml.py b/pipenv/utils/toml.py
|
||||
index d4157d01c..27d9975ae 100644
|
||||
--- a/pipenv/utils/toml.py
|
||||
+++ b/pipenv/utils/toml.py
|
||||
@@ -1,4 +1,9 @@
|
||||
-from pipenv.vendor import toml, tomlkit
|
||||
+try:
|
||||
+ import tomllib as toml
|
||||
+except ImportError:
|
||||
+ import tomli as toml
|
||||
+
|
||||
+import tomlkit
|
||||
|
||||
|
||||
def cleanup_toml(tml):
|
||||
diff --git a/pipenv/vendor/dparse/parser.py b/pipenv/vendor/dparse/parser.py
|
||||
index faaad2e8e..4c59474e9 100644
|
||||
--- a/pipenv/vendor/dparse/parser.py
|
||||
+++ b/pipenv/vendor/dparse/parser.py
|
||||
@@ -10,6 +10,11 @@ from io import StringIO
|
||||
from configparser import ConfigParser, NoOptionError
|
||||
from pathlib import PurePath
|
||||
|
||||
+try:
|
||||
+ import tomllib as toml
|
||||
+except ImportError:
|
||||
+ import tomli as toml
|
||||
+
|
||||
from .errors import MalformedDependencyFileError
|
||||
from .regex import HASH_REGEX
|
||||
|
||||
@@ -17,7 +22,6 @@ from .dependencies import DependencyFile, Dependency
|
||||
from pipenv.patched.pip._vendor.packaging.requirements import Requirement as PackagingRequirement,\
|
||||
InvalidRequirement
|
||||
from . import filetypes
|
||||
-import pipenv.vendor.toml as toml
|
||||
from pipenv.patched.pip._vendor.packaging.specifiers import SpecifierSet
|
||||
from pipenv.patched.pip._vendor.packaging.version import Version, InvalidVersion
|
||||
import json
|
||||
diff --git a/pipenv/vendor/dparse/updater.py b/pipenv/vendor/dparse/updater.py
|
||||
index 7b7ba9a53..fe20a213f 100644
|
||||
--- a/pipenv/vendor/dparse/updater.py
|
||||
+++ b/pipenv/vendor/dparse/updater.py
|
||||
@@ -3,9 +3,13 @@ from __future__ import absolute_import, print_function, unicode_literals
|
||||
import re
|
||||
import json
|
||||
import tempfile
|
||||
-import pipenv.vendor.toml as toml
|
||||
import os
|
||||
|
||||
+try:
|
||||
+ import tomllib as toml
|
||||
+except ImportError:
|
||||
+ import tomli as toml
|
||||
+
|
||||
|
||||
class RequirementsTXTUpdater(object):
|
||||
SUB_REGEX = r"^{}(?=\s*\r?\n?$)"
|
||||
@@ -22,6 +22,7 @@ PATCHES=(
|
||||
"${FILESDIR}/pipenv-2022.9.24-inject-site-packages.patch"
|
||||
"${FILESDIR}/pipenv-2023.4.29-append-always-install.patch"
|
||||
"${FILESDIR}/pipenv-2023.4.29-fix-imports.patch"
|
||||
"${FILESDIR}/pipenv-2023.4.29-fix-toml-in-vendor.patch"
|
||||
)
|
||||
|
||||
RDEPEND="
|
||||
@@ -33,7 +34,7 @@ RDEPEND="
|
||||
>=dev-python/pexpect-4.8.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/ptyprocess-0.7.0[${PYTHON_USEDEP}]
|
||||
dev-python/pyparsing[${PYTHON_USEDEP}]
|
||||
dev-python/toml[${PYTHON_USEDEP}]
|
||||
$(python_gen_cond_dep ' dev-python/tomli[${PYTHON_USEDEP}] ' python3_{9..10})
|
||||
>=dev-python/python-dateutil-2.8.2[${PYTHON_USEDEP}]
|
||||
>=dev-python/python-dotenv-0.21.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/virtualenv-20.0.35[${PYTHON_USEDEP}]
|
||||
@@ -90,13 +91,6 @@ src_prepare() {
|
||||
sed --in-place \
|
||||
-e "s/from pipenv\.vendor import plette, toml, tomlkit, vistir/from pipenv\.vendor import plette, toml, vistir\\nimport tomlkit/g"
|
||||
|
||||
# remove tomlkit from vendoring
|
||||
for fname in pipenv/utils/toml.py tests/integration/conftest.py; do
|
||||
sed --in-place -e "s/from pipenv\.vendor import toml, tomlkit/from pipenv\.vendor import toml\\nimport tomlkit/g" $fname || die "Failed sed in $fname"
|
||||
done
|
||||
#for fname in "tests/unit/test_vendor.py "; do
|
||||
# sed --in-place -e "s/from pipenv\.vendor import tomlkit/import tomlkit/g" $fname || die "Failed sed in tomlkit"
|
||||
#done
|
||||
# remove python ruaml yaml
|
||||
sed --in-place -e "s/from pipenv\.vendor\.ruamel\.yaml import YAML/from ruamel\.yaml import YAML/g" pipenv/patched/safety/util.py || die "Failed sed in ruaml-yaml"
|
||||
sed --in-place -e "s/from pipenv\.vendor\.ruamel\.yaml\.error import MarkedYAMLError/from ruamel\.yaml\.error import MarkedYAMLError/g" pipenv/patched/safety/util.py || die "Failed sed in ruamel-yaml"
|
||||
|
||||
Reference in New Issue
Block a user