pipgrip 0.10.15__py2.py3-none-any.whl → 0.11.1__py2.py3-none-any.whl
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/_repo_version.py +1 -1
- pipgrip/cli.py +20 -2
- {pipgrip-0.10.15.dist-info → pipgrip-0.11.1.dist-info}/METADATA +17 -13
- {pipgrip-0.10.15.dist-info → pipgrip-0.11.1.dist-info}/RECORD +8 -8
- {pipgrip-0.10.15.dist-info → pipgrip-0.11.1.dist-info}/WHEEL +0 -0
- {pipgrip-0.10.15.dist-info → pipgrip-0.11.1.dist-info}/entry_points.txt +0 -0
- {pipgrip-0.10.15.dist-info → pipgrip-0.11.1.dist-info}/licenses/LICENSE +0 -0
- {pipgrip-0.10.15.dist-info → pipgrip-0.11.1.dist-info}/top_level.txt +0 -0
pipgrip/_repo_version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
version = "0.
|
|
1
|
+
version = "0.11.1"
|
pipgrip/cli.py
CHANGED
|
@@ -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
|
|
|
@@ -262,7 +265,7 @@ def render_lock(packages, include_dot=True, sort=False):
|
|
|
262
265
|
|
|
263
266
|
@click.command(
|
|
264
267
|
context_settings={"help_option_names": ["-h", "--help"], "max_content_width": 84},
|
|
265
|
-
help="pipgrip is a lightweight pip dependency resolver with deptree preview functionality based on the PubGrub algorithm, which is also used by poetry. For one or more PEP 508 dependency specifications, pipgrip recursively fetches
|
|
268
|
+
help="pipgrip is a lightweight pip dependency resolver with deptree preview functionality based on the PubGrub algorithm, which is also used by poetry. For one or more PEP 508 dependency specifications, pipgrip recursively fetches Python wheel metadata necessary for version solving (with fallback to building the wheel if no metadata is available), and optionally renders the full resulting dependency tree.",
|
|
266
269
|
)
|
|
267
270
|
@click.argument("dependencies", nargs=-1)
|
|
268
271
|
@click.option(
|
|
@@ -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:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pipgrip
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.11.1
|
|
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
|
|
@@ -64,7 +64,7 @@ Dynamic: summary
|
|
|
64
64
|
[](https://pypi.org/project/pipgrip/)
|
|
65
65
|
[](https://pypistats.org/packages/pipgrip)
|
|
66
66
|
|
|
67
|
-
[pipgrip](https://github.com/ddelange/pipgrip) is a lightweight pip dependency resolver with deptree preview functionality based on the [PubGrub algorithm](https://medium.com/@nex3/pubgrub-2fb6470504f), which is also used by [poetry](https://github.com/python-poetry/poetry). For one or more [PEP 508](https://www.python.org/dev/peps/pep-0508/) dependency specifications, pipgrip recursively fetches
|
|
67
|
+
[pipgrip](https://github.com/ddelange/pipgrip) is a lightweight pip dependency resolver with deptree preview functionality based on the [PubGrub algorithm](https://medium.com/@nex3/pubgrub-2fb6470504f), which is also used by [poetry](https://github.com/python-poetry/poetry). For one or more [PEP 508](https://www.python.org/dev/peps/pep-0508/) dependency specifications, pipgrip recursively fetches Python wheel metadata necessary for version solving (with fallback to building the wheel if no metadata is available), and optionally renders the full resulting dependency tree.
|
|
68
68
|
|
|
69
69
|
```
|
|
70
70
|
$ pipgrip --tree fastapi~=0.94
|
|
@@ -123,9 +123,10 @@ Usage: pipgrip [OPTIONS] [DEPENDENCIES]...
|
|
|
123
123
|
|
|
124
124
|
pipgrip is a lightweight pip dependency resolver with deptree preview
|
|
125
125
|
functionality based on the PubGrub algorithm, which is also used by poetry. For
|
|
126
|
-
one or more PEP 508 dependency specifications, pipgrip recursively
|
|
127
|
-
|
|
128
|
-
renders the full
|
|
126
|
+
one or more PEP 508 dependency specifications, pipgrip recursively fetches
|
|
127
|
+
Python wheel metadata necessary for version solving (with fallback to building
|
|
128
|
+
the wheel if no metadata is available), and optionally renders the full
|
|
129
|
+
resulting dependency tree.
|
|
129
130
|
|
|
130
131
|
Options:
|
|
131
132
|
--install Install full dependency tree after resolving.
|
|
@@ -169,6 +170,10 @@ Options:
|
|
|
169
170
|
-v, --verbose Control verbosity: -v will print cyclic
|
|
170
171
|
dependencies (WARNING), -vv will show solving
|
|
171
172
|
decisions (INFO), -vvv for development (DEBUG).
|
|
173
|
+
--skip-invalid-input Skip invalid requirements (e.g. internal
|
|
174
|
+
repositories, typos) and continue processing other
|
|
175
|
+
dependencies.
|
|
176
|
+
--version Show the version and exit.
|
|
172
177
|
-h, --help Show this message and exit.
|
|
173
178
|
```
|
|
174
179
|
|
|
@@ -179,14 +184,13 @@ Exhaustive dependency trees without the need to install any packages ([at most b
|
|
|
179
184
|
```
|
|
180
185
|
$ pipgrip --tree pipgrip
|
|
181
186
|
|
|
182
|
-
pipgrip (0.
|
|
183
|
-
├── anytree>=2.4.1 (2.
|
|
184
|
-
|
|
185
|
-
├──
|
|
186
|
-
├──
|
|
187
|
-
├──
|
|
188
|
-
|
|
189
|
-
└── wheel (0.41.1)
|
|
187
|
+
pipgrip (0.11.0)
|
|
188
|
+
├── anytree>=2.4.1 (2.13.0)
|
|
189
|
+
├── click>=7 (8.3.1)
|
|
190
|
+
├── packaging>=17 (25.0)
|
|
191
|
+
├── pip>=22.2 (25.3)
|
|
192
|
+
├── setuptools<81,>=38.3 (80.9.0)
|
|
193
|
+
└── wheel (0.45.1)
|
|
190
194
|
```
|
|
191
195
|
|
|
192
196
|
For more details/further processing, combine `--tree` with `--json` for a detailed nested JSON dependency tree. See also `--tree-ascii` (no unicode tree markers), and `--tree-json` & `--tree-json-exact` (simplified JSON dependency trees).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
pipgrip/__init__.py,sha256=eF4gP3t6HU78VGDzL3PdQUP6dt_aBGEXLl9Xge9dAu4,1924
|
|
2
|
-
pipgrip/_repo_version.py,sha256=
|
|
3
|
-
pipgrip/cli.py,sha256=
|
|
2
|
+
pipgrip/_repo_version.py,sha256=SUcnFm7j3J3uMo-4MTj_VQdFouf2G1ZrvcI2NbsXESc,19
|
|
3
|
+
pipgrip/cli.py,sha256=_FOT2bTgc2weECnNO-oLOjhg4mxCH4ZmMtVAS5PXlmc,21068
|
|
4
4
|
pipgrip/compat.py,sha256=54TukmlLmNW_va39lA8QiQlfGohzbs0kPHTfa2nTRfE,1889
|
|
5
5
|
pipgrip/package_source.py,sha256=hGGzNyjHDgvDZrUjEGhjilfjxllQa-wkj8ucPXnKfwg,10035
|
|
6
6
|
pipgrip/pipper.py,sha256=G_FvgYVEDeCq-qf-0-s5vAdzhR4fXQJnfJnooCpNyI8,19582
|
|
@@ -29,9 +29,9 @@ pipgrip/libs/semver/version.py,sha256=uNAkxpcQgWj047IJtZB9Fo_UlRFWCSAs8RxQ75ckTO
|
|
|
29
29
|
pipgrip/libs/semver/version_constraint.py,sha256=nOFmEpOHCzpfqO1LFnXSqyZGGeN4mjLT228KYqh1qFY,2539
|
|
30
30
|
pipgrip/libs/semver/version_range.py,sha256=NkmqYueJ_j8kxKd00BEykHFOWI39r31s38Csj8hu4-w,15350
|
|
31
31
|
pipgrip/libs/semver/version_union.py,sha256=8ngwRmFKaOKmZ10M-ebyeRNB9uVl4HNL7FzoZYmOgDE,9801
|
|
32
|
-
pipgrip-0.
|
|
33
|
-
pipgrip-0.
|
|
34
|
-
pipgrip-0.
|
|
35
|
-
pipgrip-0.
|
|
36
|
-
pipgrip-0.
|
|
37
|
-
pipgrip-0.
|
|
32
|
+
pipgrip-0.11.1.dist-info/licenses/LICENSE,sha256=ZoxfsQqxkYOcxTHFEye8YJRUUBAJISfdHej3Di7u_Bs,1587
|
|
33
|
+
pipgrip-0.11.1.dist-info/METADATA,sha256=IzIQhkrZ1TpXXJc7GV_4dBpA9WxDtWRnFUe6sp5yu2M,18698
|
|
34
|
+
pipgrip-0.11.1.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
|
|
35
|
+
pipgrip-0.11.1.dist-info/entry_points.txt,sha256=VGqby8sWTjfkK20Vj_FqBZ_UxBlgmAOzq4rcJLYlRq0,45
|
|
36
|
+
pipgrip-0.11.1.dist-info/top_level.txt,sha256=upoyu3ujOmKRvBUtTrwzk58e-r6zJahuT_8-RDsd2p0,8
|
|
37
|
+
pipgrip-0.11.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|