From 1695bee78980e8954b431ace0c9b2194aa7203ba Mon Sep 17 00:00:00 2001 From: Matt Davis Date: Wed, 31 Aug 2022 08:52:47 -0400 Subject: [PATCH] remove this environmnet variable usage which has limitations on some systems. --- Pipfile.lock | 44 +++++++++++++++++++++------------------- pipenv/resolver.py | 15 ++++++++++++-- pipenv/utils/resolver.py | 9 ++++++-- 3 files changed, 43 insertions(+), 25 deletions(-) diff --git a/Pipfile.lock b/Pipfile.lock index b6794525..e65328d4 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -114,11 +114,11 @@ }, "charset-normalizer": { "hashes": [ - "sha256:5189b6f22b01957427f35b6a08d9a0bc45b46d3788ef5a92e978433c7a35f8a5", - "sha256:575e708016ff3a5e3681541cb9d79312c416835686d054a23accb873b254f413" + "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845", + "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f" ], "markers": "python_version >= '3.6'", - "version": "==2.1.0" + "version": "==2.1.1" }, "click": { "hashes": [ @@ -203,10 +203,10 @@ }, "distlib": { "hashes": [ - "sha256:a7f75737c70be3b25e2bee06288cec4e4c221de18455b2dd037fe2a795cab2fe", - "sha256:b710088c59f06338ca514800ad795a132da19fda270e3ce4affc74abf955a26c" + "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46", + "sha256:f35c4b692542ca110de7ef0bea44d73981caeb34ca0b9b6b2e6d7790dda8f80e" ], - "version": "==0.3.5" + "version": "==0.3.6" }, "docutils": { "hashes": [ @@ -419,10 +419,11 @@ }, "pathspec": { "hashes": [ - "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a", - "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1" + "sha256:01eecd304ba0e6eeed188ae5fa568e99ef10265af7fd9ab737d6412b4ee0ab85", + "sha256:aefa80ac32d5bf1f96139dca67cefb69a431beff4e6bf1168468f37d7ab87015" ], - "version": "==0.9.0" + "markers": "python_version >= '3.7'", + "version": "==0.10.0" }, "pipenv": { "editable": true, @@ -606,11 +607,11 @@ }, "setuptools": { "hashes": [ - "sha256:10602cd0a6f5feab6656e9587f9075292ab777c5200f3bf00293ecd23d9f2788", - "sha256:d2e010624c781b26ad6629a8de9832327cf853dea93894487979e55f9ad06857" + "sha256:2e24e0bec025f035a2e72cdd1961119f557d78ad331bb00ff82efb2ab8da8e82", + "sha256:7732871f4f7fa58fb6bdcaeadb0161b2bd046c85905dbaa066bdcbcc81953b57" ], "markers": "python_version >= '3.7'", - "version": "==65.1.0" + "version": "==65.3.0" }, "six": { "hashes": [ @@ -732,10 +733,11 @@ }, "towncrier": { "hashes": [ - "sha256:9cb6f45c16e1a1eec9d0e7651165e7be60cd0ab81d13a5c96ca97a498ae87f48", - "sha256:fc5a88a2a54988e3a8ed2b60d553599da8330f65722cc607c839614ed87e0f92" + "sha256:3b780c3d966e1b26414830aec3d15000654b31e64e024f3e5fd128b4c6eb8f47", + "sha256:7d3839b033859b45fb55df82b74cfd702431933c0cc9f287a5a7ea3e05d042cb" ], - "version": "==21.9.0" + "markers": "python_version >= '3.7'", + "version": "==22.8.0" }, "typing-extensions": { "hashes": [ @@ -747,19 +749,19 @@ }, "urllib3": { "hashes": [ - "sha256:c33ccba33c819596124764c23a97d25f32b28433ba0dedeb77d873a38722c9bc", - "sha256:ea6e8fb210b19d950fab93b60c9009226c63a28808bc8386e05301e25883ac0a" + "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e", + "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' and python_version < '4'", - "version": "==1.26.11" + "version": "==1.26.12" }, "virtualenv": { "hashes": [ - "sha256:4193b7bc8a6cd23e4eb251ac64f29b4398ab2c233531e66e40b19a6b7b0d30c1", - "sha256:d86ea0bb50e06252d79e6c241507cb904fcd66090c3271381372d6221a3970f9" + "sha256:014f766e4134d0008dcaa1f95bafa0fb0f575795d07cae50b1bee514185d6782", + "sha256:035ed57acce4ac35c82c9d8802202b0e71adac011a511ff650cbcf9635006a22" ], "markers": "python_version >= '3.6'", - "version": "==20.16.3" + "version": "==20.16.4" }, "virtualenv-clone": { "hashes": [ diff --git a/pipenv/resolver.py b/pipenv/resolver.py index 2866bee1..1ebb0f62 100644 --- a/pipenv/resolver.py +++ b/pipenv/resolver.py @@ -96,6 +96,12 @@ def get_parser(): action="store", default=os.environ.get("PIPENV_RESOLVER_FILE"), ) + parser.add_argument( + "--constraints-file", + metavar="constraints_file", + action="store", + default=None, + ) parser.add_argument("packages", nargs="*") return parser @@ -120,8 +126,13 @@ def handle_parsed_args(parsed): logger.setLevel(logging.INFO) os.environ["PIP_RESOLVER_DEBUG"] = "" os.environ["PIPENV_VERBOSITY"] = str(parsed.verbose) - if "PIPENV_PACKAGES" in os.environ: - parsed.packages += os.environ.get("PIPENV_PACKAGES", "").strip().split("\n") + if parsed.constraints_file: + constraints = open(parsed.constraints_file) + file_constraints = constraints.read().strip().split("\n") + constraints.close() + os.unlink(parsed.constraints_file) + print(sorted(file_constraints)) + parsed.packages += sorted(file_constraints) return parsed diff --git a/pipenv/utils/resolver.py b/pipenv/utils/resolver.py index a18cae0c..abdd9772 100644 --- a/pipenv/utils/resolver.py +++ b/pipenv/utils/resolver.py @@ -1026,10 +1026,15 @@ def venv_resolve_deps( sp.write(decode_for_output("Building requirements...")) deps = convert_deps_to_pip(deps, project, include_index=True) constraints = set(deps) - os.environ["PIPENV_PACKAGES"] = str("\n".join(constraints)) + constraints_file = tempfile.NamedTemporaryFile( + mode="w+", prefix="pipenv", suffix="constraints.txt", delete=False + ) + constraints_file.write(str("\n".join(constraints))) + constraints_file.close() + cmd.append("--constraints-file") + cmd.append(constraints_file.name) sp.write(decode_for_output("Resolving dependencies...")) c = resolve(cmd, sp, project=project) - results = c.stdout.strip() if c.returncode == 0: sp.green.ok(environments.PIPENV_SPINNER_OK_TEXT.format("Success!")) if not project.s.is_verbose() and c.stderr.strip():