python-inspector
python-inspector copied to clipboard
Exception in requirements.txt
requirements.txt:
netifaces==0.10.4
running:
python-inspector -r requirements.txt -p 310 -o linux --json ./pp.json --analyze-setup-py-insecurely
traceback:
Traceback (most recent call last):
File "/home/daniel/.local/lib/python3.10/site-packages/python_inspector/resolve_cli.py", line 247, in resolve_dependencies
resolution_result: Dict = resolver_api(
File "/home/daniel/.local/lib/python3.10/site-packages/python_inspector/api.py", line 254, in resolve_dependencies
resolution, purls = resolve(
File "/home/daniel/.local/lib/python3.10/site-packages/python_inspector/api.py", line 313, in resolve
resolved_dependencies, packages = get_resolved_dependencies(
File "/home/daniel/.local/lib/python3.10/site-packages/python_inspector/api.py", line 351, in get_resolved_dependencies
resolver_results = resolver.resolve(requirements=requirements, max_rounds=max_rounds)
File "/home/daniel/.local/lib/python3.10/site-packages/resolvelib/resolvers.py", line 546, in resolve
state = resolution.resolve(requirements, max_rounds=max_rounds)
File "/home/daniel/.local/lib/python3.10/site-packages/resolvelib/resolvers.py", line 427, in resolve
failure_causes = self._attempt_to_pin_criterion(name)
File "/home/daniel/.local/lib/python3.10/site-packages/resolvelib/resolvers.py", line 239, in _attempt_to_pin_criterion
criteria = self._get_updated_criteria(candidate)
File "/home/daniel/.local/lib/python3.10/site-packages/resolvelib/resolvers.py", line 229, in _get_updated_criteria
for requirement in self._p.get_dependencies(candidate=candidate):
File "/home/daniel/.local/lib/python3.10/site-packages/python_inspector/resolution.py", line 639, in get_dependencies
return list(self._iter_dependencies(candidate))
File "/home/daniel/.local/lib/python3.10/site-packages/python_inspector/resolution.py", line 630, in _iter_dependencies
for r in self.get_requirements_for_package(purl=purl, candidate=candidate):
File "/home/daniel/.local/lib/python3.10/site-packages/python_inspector/resolution.py", line 509, in get_requirements_for_package_from_pypi_simple
yield from get_requirements_from_python_manifest(
File "/home/daniel/.local/lib/python3.10/site-packages/python_inspector/resolution.py", line 299, in get_requirements_from_python_manifest
yield from get_reqs_insecurely(
File "/home/daniel/.local/lib/python3.10/site-packages/python_inspector/resolution.py", line 277, in get_reqs_insecurely
yield from parse_reqs_from_setup_py_insecurely(setup_py=setup_py_location)
File "/home/daniel/.local/lib/python3.10/site-packages/python_inspector/resolution.py", line 128, in parse_reqs_from_setup_py_insecurely
for req in iter_requirements(level="", extras=[], setup_file=setup_py):
File "/home/daniel/.local/lib/python3.10/site-packages/python_inspector/setup_py_live_eval.py", line 117, in iter_requirements
exec(file_contents, g)
File "<string>", line 17, in <module>
AttributeError: 'dict' object has no attribute 'print'
CC @sschuberth since this showed up in ORT. CC @qequ @arieltorti
python-inspector version 0.9.5
Thank you for the report!
netifaces==0.10.4
is a release from 2014 of the (unmaintained) package at https://github.com/al45tair/netifaces that has a fairly complex setup.py that we cannot evaluate correctly even insecurely. The newer versions have the same issue. It would need to be built for this and this would require to have a build toolchain installed. This escapes the practical realm of the possible things we can do here IMHO but interestingly this should work without an insecure eveluation.
@luciamartinezgavier