pipgrip 0.10.14__tar.gz → 0.11.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pipgrip-0.10.14/src/pipgrip.egg-info → pipgrip-0.11.0}/PKG-INFO +19 -3
- {pipgrip-0.10.14 → pipgrip-0.11.0}/README.md +4 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/requirements/prod.txt +1 -1
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/__init__.py +8 -0
- pipgrip-0.11.0/src/pipgrip/_repo_version.py +1 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/cli.py +19 -1
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/libs/semver/version.py +1 -3
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/pipper.py +9 -5
- {pipgrip-0.10.14 → pipgrip-0.11.0/src/pipgrip.egg-info}/PKG-INFO +19 -3
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip.egg-info/requires.txt +1 -1
- pipgrip-0.10.14/src/pipgrip/_repo_version.py +0 -1
- {pipgrip-0.10.14 → pipgrip-0.11.0}/LICENSE +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/setup.cfg +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/setup.py +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/compat.py +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/libs/__init__.py +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/libs/mixology/__init__.py +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/libs/mixology/_compat.py +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/libs/mixology/assignment.py +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/libs/mixology/constraint.py +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/libs/mixology/failure.py +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/libs/mixology/incompatibility.py +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/libs/mixology/incompatibility_cause.py +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/libs/mixology/package.py +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/libs/mixology/package_source.py +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/libs/mixology/partial_solution.py +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/libs/mixology/range.py +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/libs/mixology/result.py +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/libs/mixology/set_relation.py +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/libs/mixology/term.py +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/libs/mixology/union.py +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/libs/mixology/version_solver.py +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/libs/semver/__init__.py +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/libs/semver/empty_constraint.py +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/libs/semver/exceptions.py +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/libs/semver/patterns.py +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/libs/semver/version_constraint.py +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/libs/semver/version_range.py +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/libs/semver/version_union.py +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip/package_source.py +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip.egg-info/SOURCES.txt +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip.egg-info/dependency_links.txt +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip.egg-info/entry_points.txt +0 -0
- {pipgrip-0.10.14 → pipgrip-0.11.0}/src/pipgrip.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: pipgrip
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.11.0
|
|
4
4
|
Summary: Lightweight pip dependency resolver with deptree preview functionality based on the PubGrub algorithm
|
|
5
5
|
Home-page: https://github.com/ddelange/pipgrip
|
|
6
6
|
Author: ddelange
|
|
@@ -35,13 +35,25 @@ License-File: LICENSE
|
|
|
35
35
|
Requires-Dist: anytree>=2.4.1
|
|
36
36
|
Requires-Dist: click>=7
|
|
37
37
|
Requires-Dist: packaging>=17
|
|
38
|
-
Requires-Dist: setuptools
|
|
38
|
+
Requires-Dist: setuptools<81,>=38.3
|
|
39
39
|
Requires-Dist: wheel
|
|
40
40
|
Requires-Dist: pip>=22.2; python_version > "3.6"
|
|
41
41
|
Requires-Dist: pip>=7.1.0; python_version <= "3.6"
|
|
42
42
|
Requires-Dist: pkginfo<1.8,>=1.4.2; python_version <= "3.6"
|
|
43
43
|
Requires-Dist: enum34; python_version == "2.7"
|
|
44
44
|
Requires-Dist: typing; python_version == "2.7"
|
|
45
|
+
Dynamic: author
|
|
46
|
+
Dynamic: author-email
|
|
47
|
+
Dynamic: classifier
|
|
48
|
+
Dynamic: description
|
|
49
|
+
Dynamic: description-content-type
|
|
50
|
+
Dynamic: home-page
|
|
51
|
+
Dynamic: keywords
|
|
52
|
+
Dynamic: license
|
|
53
|
+
Dynamic: license-file
|
|
54
|
+
Dynamic: requires-dist
|
|
55
|
+
Dynamic: requires-python
|
|
56
|
+
Dynamic: summary
|
|
45
57
|
|
|
46
58
|
# pipgrip
|
|
47
59
|
|
|
@@ -157,6 +169,10 @@ Options:
|
|
|
157
169
|
-v, --verbose Control verbosity: -v will print cyclic
|
|
158
170
|
dependencies (WARNING), -vv will show solving
|
|
159
171
|
decisions (INFO), -vvv for development (DEBUG).
|
|
172
|
+
--skip-invalid-input Skip invalid requirements (e.g. internal
|
|
173
|
+
repositories, typos) and continue processing
|
|
174
|
+
other dependencies.
|
|
175
|
+
--version Show the version and exit.
|
|
160
176
|
-h, --help Show this message and exit.
|
|
161
177
|
```
|
|
162
178
|
|
|
@@ -112,6 +112,10 @@ Options:
|
|
|
112
112
|
-v, --verbose Control verbosity: -v will print cyclic
|
|
113
113
|
dependencies (WARNING), -vv will show solving
|
|
114
114
|
decisions (INFO), -vvv for development (DEBUG).
|
|
115
|
+
--skip-invalid-input Skip invalid requirements (e.g. internal
|
|
116
|
+
repositories, typos) and continue processing
|
|
117
|
+
other dependencies.
|
|
118
|
+
--version Show the version and exit.
|
|
115
119
|
-h, --help Show this message and exit.
|
|
116
120
|
```
|
|
117
121
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
anytree>=2.4.1
|
|
2
2
|
click>=7
|
|
3
3
|
packaging>=17
|
|
4
|
-
setuptools>=38.3 # for pkg_resources
|
|
4
|
+
setuptools>=38.3,<81 # for pkg_resources ref https://github.com/pypa/setuptools/commit/9c28cdffd423f83e43dbfd39fc793c251da48585
|
|
5
5
|
wheel
|
|
6
6
|
pip>=22.2; python_version>'3.6' # >=22.2 for --dry-run --report ref ddelange/pipgrip#114
|
|
7
7
|
pip>=7.1.0; python_version<='3.6' # >=7.1.0 for --constraint
|
|
@@ -31,4 +31,12 @@
|
|
|
31
31
|
#
|
|
32
32
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
33
33
|
# version based on .git/refs/tags - make a tag/release locally, or on GitHub (and pull)
|
|
34
|
+
import warnings
|
|
35
|
+
|
|
34
36
|
from pipgrip._repo_version import version as __version__ # noqa:F401
|
|
37
|
+
|
|
38
|
+
warnings.filterwarnings(
|
|
39
|
+
action="ignore",
|
|
40
|
+
message=".*pkg_resources",
|
|
41
|
+
category=UserWarning,
|
|
42
|
+
)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
version = "0.11.0"
|
|
@@ -45,6 +45,8 @@ import click
|
|
|
45
45
|
from anytree import AsciiStyle, ContStyle, Node, RenderTree
|
|
46
46
|
from anytree.exporter import DictExporter
|
|
47
47
|
from packaging.markers import default_environment
|
|
48
|
+
from packaging.requirements import InvalidRequirement
|
|
49
|
+
from pkg_resources import RequirementParseError
|
|
48
50
|
|
|
49
51
|
from pipgrip import __version__
|
|
50
52
|
from pipgrip.compat import PIP_VERSION
|
|
@@ -56,6 +58,7 @@ from pipgrip.pipper import (
|
|
|
56
58
|
BUILD_FAILURE_STR,
|
|
57
59
|
REPORT_FAILURE_STR,
|
|
58
60
|
install_packages,
|
|
61
|
+
parse_req,
|
|
59
62
|
read_requirements,
|
|
60
63
|
)
|
|
61
64
|
|
|
@@ -383,6 +386,12 @@ def render_lock(packages, include_dot=True, sort=False):
|
|
|
383
386
|
count=True,
|
|
384
387
|
help="Control verbosity: -v will print cyclic dependencies (WARNING), -vv will show solving decisions (INFO), -vvv for development (DEBUG).",
|
|
385
388
|
)
|
|
389
|
+
@click.option(
|
|
390
|
+
"--skip-invalid-input",
|
|
391
|
+
is_flag=True,
|
|
392
|
+
help="Skip invalid requirements (e.g. internal repositories, typos) and continue processing other dependencies.",
|
|
393
|
+
)
|
|
394
|
+
@click.version_option(version=__version__, prog_name="pipgrip")
|
|
386
395
|
def main(
|
|
387
396
|
dependencies,
|
|
388
397
|
requirements_file,
|
|
@@ -406,6 +415,7 @@ def main(
|
|
|
406
415
|
threads,
|
|
407
416
|
pre,
|
|
408
417
|
verbose,
|
|
418
|
+
skip_invalid_input,
|
|
409
419
|
):
|
|
410
420
|
if verbose == 0:
|
|
411
421
|
logger.setLevel(logging.ERROR)
|
|
@@ -476,7 +486,15 @@ def main(
|
|
|
476
486
|
pre=pre,
|
|
477
487
|
)
|
|
478
488
|
for root_dependency in dependencies:
|
|
479
|
-
|
|
489
|
+
try:
|
|
490
|
+
source.root_dep(root_dependency)
|
|
491
|
+
except (InvalidRequirement, RequirementParseError) as e:
|
|
492
|
+
if skip_invalid_input:
|
|
493
|
+
logger.warning(
|
|
494
|
+
"Skipping invalid requirement '%s': %s", root_dependency, str(e)
|
|
495
|
+
)
|
|
496
|
+
else:
|
|
497
|
+
raise
|
|
480
498
|
|
|
481
499
|
solver = VersionSolver(source, threads=threads)
|
|
482
500
|
try:
|
|
@@ -241,9 +241,7 @@ class Version(VersionRange):
|
|
|
241
241
|
if match is None:
|
|
242
242
|
# VCS support: use numerical hash
|
|
243
243
|
match = COMPLETE_VERSION.match(
|
|
244
|
-
str(
|
|
245
|
-
int(hashlib.sha256(text.encode("utf-8")).hexdigest(), 16) % 10**12
|
|
246
|
-
)
|
|
244
|
+
str(int(hashlib.sha256(text.encode("utf-8")).hexdigest(), 16) % 10**12)
|
|
247
245
|
)
|
|
248
246
|
|
|
249
247
|
text = text.rstrip(".")
|
|
@@ -460,11 +460,15 @@ def _download_wheel(
|
|
|
460
460
|
# match on lowercase line for windows compatibility
|
|
461
461
|
fname_len = len(
|
|
462
462
|
line_lower.split(
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
463
|
+
(
|
|
464
|
+
abs_wheel_dir_lower
|
|
465
|
+
if abs_wheel_dir_lower in line_lower
|
|
466
|
+
else (
|
|
467
|
+
cwd_wheel_dir_lower
|
|
468
|
+
if cwd_wheel_dir_lower in line_lower
|
|
469
|
+
else wheel_dir_lower
|
|
470
|
+
)
|
|
471
|
+
),
|
|
468
472
|
1,
|
|
469
473
|
)[1].split(".whl", 1)[0]
|
|
470
474
|
+ ".whl"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: pipgrip
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.11.0
|
|
4
4
|
Summary: Lightweight pip dependency resolver with deptree preview functionality based on the PubGrub algorithm
|
|
5
5
|
Home-page: https://github.com/ddelange/pipgrip
|
|
6
6
|
Author: ddelange
|
|
@@ -35,13 +35,25 @@ License-File: LICENSE
|
|
|
35
35
|
Requires-Dist: anytree>=2.4.1
|
|
36
36
|
Requires-Dist: click>=7
|
|
37
37
|
Requires-Dist: packaging>=17
|
|
38
|
-
Requires-Dist: setuptools
|
|
38
|
+
Requires-Dist: setuptools<81,>=38.3
|
|
39
39
|
Requires-Dist: wheel
|
|
40
40
|
Requires-Dist: pip>=22.2; python_version > "3.6"
|
|
41
41
|
Requires-Dist: pip>=7.1.0; python_version <= "3.6"
|
|
42
42
|
Requires-Dist: pkginfo<1.8,>=1.4.2; python_version <= "3.6"
|
|
43
43
|
Requires-Dist: enum34; python_version == "2.7"
|
|
44
44
|
Requires-Dist: typing; python_version == "2.7"
|
|
45
|
+
Dynamic: author
|
|
46
|
+
Dynamic: author-email
|
|
47
|
+
Dynamic: classifier
|
|
48
|
+
Dynamic: description
|
|
49
|
+
Dynamic: description-content-type
|
|
50
|
+
Dynamic: home-page
|
|
51
|
+
Dynamic: keywords
|
|
52
|
+
Dynamic: license
|
|
53
|
+
Dynamic: license-file
|
|
54
|
+
Dynamic: requires-dist
|
|
55
|
+
Dynamic: requires-python
|
|
56
|
+
Dynamic: summary
|
|
45
57
|
|
|
46
58
|
# pipgrip
|
|
47
59
|
|
|
@@ -157,6 +169,10 @@ Options:
|
|
|
157
169
|
-v, --verbose Control verbosity: -v will print cyclic
|
|
158
170
|
dependencies (WARNING), -vv will show solving
|
|
159
171
|
decisions (INFO), -vvv for development (DEBUG).
|
|
172
|
+
--skip-invalid-input Skip invalid requirements (e.g. internal
|
|
173
|
+
repositories, typos) and continue processing
|
|
174
|
+
other dependencies.
|
|
175
|
+
--version Show the version and exit.
|
|
160
176
|
-h, --help Show this message and exit.
|
|
161
177
|
```
|
|
162
178
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
version = "0.10.14"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|