pipgrip 0.10.9__tar.gz → 0.10.11__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.
Files changed (44) hide show
  1. {pipgrip-0.10.9/src/pipgrip.egg-info → pipgrip-0.10.11}/PKG-INFO +1 -1
  2. pipgrip-0.10.11/src/pipgrip/_repo_version.py +1 -0
  3. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/cli.py +10 -7
  4. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/pipper.py +13 -4
  5. {pipgrip-0.10.9 → pipgrip-0.10.11/src/pipgrip.egg-info}/PKG-INFO +1 -1
  6. pipgrip-0.10.9/src/pipgrip/_repo_version.py +0 -1
  7. {pipgrip-0.10.9 → pipgrip-0.10.11}/LICENSE +0 -0
  8. {pipgrip-0.10.9 → pipgrip-0.10.11}/README.md +0 -0
  9. {pipgrip-0.10.9 → pipgrip-0.10.11}/requirements/prod.txt +0 -0
  10. {pipgrip-0.10.9 → pipgrip-0.10.11}/setup.cfg +0 -0
  11. {pipgrip-0.10.9 → pipgrip-0.10.11}/setup.py +0 -0
  12. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/__init__.py +0 -0
  13. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/compat.py +0 -0
  14. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/libs/__init__.py +0 -0
  15. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/libs/mixology/__init__.py +0 -0
  16. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/libs/mixology/_compat.py +0 -0
  17. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/libs/mixology/assignment.py +0 -0
  18. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/libs/mixology/constraint.py +0 -0
  19. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/libs/mixology/failure.py +0 -0
  20. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/libs/mixology/incompatibility.py +0 -0
  21. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/libs/mixology/incompatibility_cause.py +0 -0
  22. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/libs/mixology/package.py +0 -0
  23. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/libs/mixology/package_source.py +0 -0
  24. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/libs/mixology/partial_solution.py +0 -0
  25. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/libs/mixology/range.py +0 -0
  26. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/libs/mixology/result.py +0 -0
  27. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/libs/mixology/set_relation.py +0 -0
  28. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/libs/mixology/term.py +0 -0
  29. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/libs/mixology/union.py +0 -0
  30. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/libs/mixology/version_solver.py +0 -0
  31. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/libs/semver/__init__.py +0 -0
  32. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/libs/semver/empty_constraint.py +0 -0
  33. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/libs/semver/exceptions.py +0 -0
  34. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/libs/semver/patterns.py +0 -0
  35. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/libs/semver/version.py +0 -0
  36. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/libs/semver/version_constraint.py +0 -0
  37. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/libs/semver/version_range.py +0 -0
  38. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/libs/semver/version_union.py +0 -0
  39. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip/package_source.py +0 -0
  40. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip.egg-info/SOURCES.txt +0 -0
  41. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip.egg-info/dependency_links.txt +0 -0
  42. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip.egg-info/entry_points.txt +0 -0
  43. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip.egg-info/requires.txt +0 -0
  44. {pipgrip-0.10.9 → pipgrip-0.10.11}/src/pipgrip.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pipgrip
3
- Version: 0.10.9
3
+ Version: 0.10.11
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
@@ -0,0 +1 @@
1
+ version = "0.10.11"
@@ -2,6 +2,7 @@ import io
2
2
  import logging
3
3
  import os
4
4
  import re
5
+ import sys
5
6
  from collections import OrderedDict
6
7
  from functools import partial
7
8
  from json import dumps
@@ -163,13 +164,15 @@ def build_tree(source, decision_packages):
163
164
 
164
165
 
165
166
  def render_tree(tree_root, max_depth, tree_ascii=False):
166
- # Windows' cp1252 encoding does not supports anytree's unicode markers.
167
- # Even in Github Actions where the windows runner has PYTHONUTF8 mode enabled,
168
- # `if sys.getfilesystemencoding() == "cp1252":` check is insufficient and the
169
- # error is still raised in CI.
170
- # Hence disabling unicode trees altogether for Windows.
171
- # ref https://github.com/pallets/click/issues/2121#issuecomment-1312773882
172
- if click.utils.WIN: # pragma: no cover
167
+ # click.echo on Windows' cp1252 encoding does not supports anytree's unicode markers
168
+ # ref https://github.com/pallets/click/issues/2121#issuecomment-1809693939
169
+ # so check for UTF-8 mode https://docs.python.org/3/library/os.html#utf8-mode
170
+ # PEP 686: Python 3.15 will make Python UTF-8 Mode default
171
+ if ( # pragma: no cover
172
+ not tree_ascii
173
+ and hasattr(sys.stdout, "encoding")
174
+ and not sys.stdout.encoding.lower().startswith("utf")
175
+ ):
173
176
  tree_ascii = True
174
177
  style = AsciiStyle() if tree_ascii else ContStyle()
175
178
  output = []
@@ -309,9 +309,15 @@ def _get_package_report(
309
309
  "--trusted-host",
310
310
  urlparse(extra_index_url).hostname,
311
311
  ]
312
- args += ["--report", "-", package]
312
+
313
+ # Windows disallows opening fp a second time (within the pip subprocess)
314
+ # So close it here, and delete it manually
315
+ with NamedTemporaryFile(delete=False, mode="w+") as fp:
316
+ report_file = fp.name
317
+
318
+ args += ["--report", report_file, package]
313
319
  try:
314
- out = stream_bash_command(args)
320
+ stream_bash_command(args)
315
321
  except subprocess.CalledProcessError as err:
316
322
  output = getattr(err, "output") or ""
317
323
  logger.error(
@@ -320,8 +326,11 @@ def _get_package_report(
320
326
  )
321
327
  )
322
328
  raise RuntimeError("Failed to get report for {}".format(package))
323
- report = json.loads(out)
324
- return report
329
+ else:
330
+ with io.open(report_file, "r", encoding="utf-8") as fp:
331
+ return json.load(fp)
332
+ finally:
333
+ os.remove(report_file)
325
334
 
326
335
 
327
336
  def _download_wheel(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pipgrip
3
- Version: 0.10.9
3
+ Version: 0.10.11
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
@@ -1 +0,0 @@
1
- version = "0.10.9"
File without changes
File without changes
File without changes
File without changes