Skip to content

Commit c7d7e28

Browse files
committed
Drop support for resolved_requirements
Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com>
1 parent b9421de commit c7d7e28

4 files changed

Lines changed: 12 additions & 49 deletions

File tree

src/python_inspector/resolution.py

Lines changed: 5 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -52,26 +52,15 @@ def get_response(url):
5252
return None
5353

5454

55-
def get_requirements_from_distribution(handler, location, resolved_requirements):
55+
def get_requirements_from_distribution(handler, location):
5656
"""
5757
Return a list of requirements from a distribution.
5858
"""
5959
if not os.path.exists(location):
6060
return []
6161
deps = list(handler.parse(location))
6262
assert len(deps) == 1
63-
return list(
64-
get_requirements_from_dependencies(
65-
deps[0].dependencies, resolved_requirements=resolved_requirements
66-
)
67-
)
68-
69-
70-
def is_dep_resolved_and_in_resolved_requirements(dep, dep_purl_name, resolved_requirements):
71-
"""
72-
Return True if the given ``dep`` is resolved and is in the given ``resolved_requirements``.
73-
"""
74-
return dep.is_resolved and dep_purl_name in resolved_requirements
63+
return list(get_requirements_from_dependencies(deps[0].dependencies))
7564

7665

7766
def is_requirements_file_in_setup_files(setup_files):
@@ -150,7 +139,7 @@ def fetch_and_extract_sdist(repos, candidate, python_version):
150139
return os.path.join(utils_pypi.CACHE_THIRDPARTY_DIR, "extracted_sdists", sdist_file, sdist_file)
151140

152141

153-
def get_requirements_from_dependencies(dependencies, resolved_requirements):
142+
def get_requirements_from_dependencies(dependencies):
154143
"""
155144
Generate parsed requirements for the given ``dependencies``.
156145
"""
@@ -161,20 +150,6 @@ def get_requirements_from_dependencies(dependencies, resolved_requirements):
161150
if dep.scope != "install":
162151
continue
163152

164-
dep_purl = PackageURL.from_string(dep.purl)
165-
166-
dep_purl_name = packaging.utils.canonicalize_name(dep_purl.name)
167-
168-
if is_dep_resolved_and_in_resolved_requirements(
169-
dep=dep, dep_purl_name=dep_purl_name, resolved_requirements=resolved_requirements
170-
):
171-
yield packaging.requirements.Requirement(
172-
f"{str(dep_purl_name)}{str(resolved_requirements[str(dep_purl_name)])}"
173-
)
174-
continue
175-
176-
if dep.is_resolved:
177-
resolved_requirements[dep_purl_name] = f"=={dep_purl.version}"
178153
# skip the requirement starting with -- like
179154
# --editable, --requirement
180155
if not dep.extracted_requirement.startswith("-"):
@@ -191,13 +166,12 @@ def remove_extras(identifier):
191166

192167

193168
class PythonInputProvider(AbstractProvider):
194-
def __init__(self, environment=None, repos=tuple(), resolved_requirements=tuple()):
169+
def __init__(self, environment=None, repos=tuple()):
195170
self.environment = environment
196171
self.repos = repos or []
197172
self.versions_by_package = {}
198173
self.dependencies_by_purl = {}
199174
self.wheel_or_sdist_by_package = {}
200-
self.resolved_requirements = resolved_requirements
201175

202176
def identify(self, requirement_or_candidate):
203177
"""Given a requirement, return an identifier for it. Overridden."""
@@ -297,7 +271,6 @@ def get_requirements_for_package_from_pypi_simple(self, candidate):
297271
deps = get_requirements_from_distribution(
298272
handler=PypiWheelHandler,
299273
location=wheel_location,
300-
resolved_requirements=self.resolved_requirements,
301274
)
302275
if deps:
303276
has_wheels = True
@@ -329,7 +302,6 @@ def get_requirements_for_package_from_pypi_simple(self, candidate):
329302
deps = get_requirements_from_distribution(
330303
handler=handler,
331304
location=location,
332-
resolved_requirements=self.resolved_requirements,
333305
)
334306
if deps:
335307
deps_in_setup = True
@@ -345,7 +317,6 @@ def get_requirements_for_package_from_pypi_simple(self, candidate):
345317
deps = get_requirements_from_distribution(
346318
hanlder=PipRequirementsFileHandler,
347319
location=requirement_location,
348-
resolved_requirements=self.resolved_requirements,
349320
)
350321
if deps:
351322
yield from deps
@@ -577,15 +548,8 @@ def get_resolved_dependencies(
577548
Used the provided ``repos`` list of PypiSimpleRepository.
578549
If empty, use instead the PyPI.org JSON API exclusively instead
579550
"""
580-
resolved_requirements = {
581-
packaging.utils.canonicalize_name(r.name): r.specifier
582-
for r in requirements
583-
if getattr(r, "is_requirement_resolved", False)
584-
}
585551
resolver = Resolver(
586-
provider=PythonInputProvider(
587-
environment=environment, repos=repos, resolved_requirements=resolved_requirements
588-
),
552+
provider=PythonInputProvider(environment=environment, repos=repos),
589553
reporter=BaseReporter(),
590554
)
591555
results = resolver.resolve(requirements=requirements, max_rounds=max_rounds)

src/python_inspector/resolve_cli.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,6 @@ def resolve(direct_dependencies, environment, repos=tuple(), as_tree=False, max_
285285
if dependency.extra_data.get("is_editable"):
286286
continue
287287
requirement = Requirement(requirement_string=dependency.extracted_requirement)
288-
requirement.is_requirement_resolved = dependency.is_resolved
289288
requirements.append(requirement)
290289

291290
resolved_dependencies = get_resolved_dependencies(

tests/data/single-url-except-simple-expected.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
"pkg:pypi/importlib-metadata@4.12.0",
4444
"pkg:pypi/itsdangerous@2.1.2",
4545
"pkg:pypi/jinja2@3.1.2",
46-
"pkg:pypi/werkzeug@2.2.0"
46+
"pkg:pypi/werkzeug@2.2.1"
4747
],
4848
"wheel_urls": [
4949
"https://files.pythonhosted.org/packages/af/6a/00d144ac1626fbb44c4ff36519712e258128985a5d0ae43344778ae5cbb9/Flask-2.1.3-py3-none-any.whl"
@@ -87,14 +87,14 @@
8787
"sdist_url": "https://files.pythonhosted.org/packages/1d/97/2288fe498044284f39ab8950703e88abbac2abbdf65524d576157af70556/MarkupSafe-2.1.1.tar.gz"
8888
},
8989
{
90-
"package": "pkg:pypi/werkzeug@2.2.0",
90+
"package": "pkg:pypi/werkzeug@2.2.1",
9191
"dependencies": [
9292
"pkg:pypi/markupsafe@2.1.1"
9393
],
9494
"wheel_urls": [
95-
"https://files.pythonhosted.org/packages/d3/63/0e4cb01bc4fe5c62ce63587c9471645afdb8a1a3dc2fa1fe2b6a3fbb78f5/Werkzeug-2.2.0-py3-none-any.whl"
95+
"https://files.pythonhosted.org/packages/c0/93/d6d60870e47162ea6a1bbdd787649eea776b2a70618dd66ed87cb2238543/Werkzeug-2.2.1-py3-none-any.whl"
9696
],
97-
"sdist_url": "https://files.pythonhosted.org/packages/dc/db/598e5986e8cc1eeb14ecff2c1590dc59f95153cdb757196b0980b3ad0763/Werkzeug-2.2.0.tar.gz"
97+
"sdist_url": "https://files.pythonhosted.org/packages/32/19/a92cdbd9fb795928dfca1031278ae8a7f051e78a2c057c224ad2d4cdd95e/Werkzeug-2.2.1.tar.gz"
9898
},
9999
{
100100
"package": "pkg:pypi/zipp@3.8.1",

tests/test_resolution.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def test_get_resolved_dependencies_with_flask_and_python_310():
3838
"pkg:pypi/itsdangerous@2.1.2",
3939
"pkg:pypi/jinja2@3.1.2",
4040
"pkg:pypi/markupsafe@2.1.1",
41-
"pkg:pypi/werkzeug@2.2.0",
41+
"pkg:pypi/werkzeug@2.2.1",
4242
]
4343

4444

@@ -63,7 +63,7 @@ def test_get_resolved_dependencies_with_flask_and_python_310_windows():
6363
"pkg:pypi/itsdangerous@2.1.2",
6464
"pkg:pypi/jinja2@3.1.2",
6565
"pkg:pypi/markupsafe@2.1.1",
66-
"pkg:pypi/werkzeug@2.2.0",
66+
"pkg:pypi/werkzeug@2.2.1",
6767
]
6868

6969

@@ -116,7 +116,7 @@ def test_get_resolved_dependencies_with_tilde_requirement_using_json_api():
116116
"pkg:pypi/itsdangerous@2.1.2",
117117
"pkg:pypi/jinja2@3.1.2",
118118
"pkg:pypi/markupsafe@2.1.1",
119-
"pkg:pypi/werkzeug@2.2.0",
119+
"pkg:pypi/werkzeug@2.2.1",
120120
"pkg:pypi/zipp@3.8.1",
121121
]
122122

0 commit comments

Comments
 (0)