Skip to content

Python inspector command fails when requirements.txt includes sys_platform #246

@voidpetal

Description

@voidpetal

Python inspector command fails to scan when some packages include system platform information:

>python-inspector --requirement requirements.txt -p 313 -o macos --json-pdt tmp.json

Traceback (most recent call last):
  File "~/Documents/misc/python-torch-multi-platform/.venv/lib/python3.13/site-packages/python_inspector/resolve_cli.py", line 259, in resolve_dependencies
    resolution_result: Dict = resolver_api(
                              ~~~~~~~~~~~~^
        requirement_files=requirement_files,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<15 lines>...
        generic_paths=generic_paths,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "~/Documents/misc/python-torch-multi-platform/.venv/lib/python3.13/site-packages/python_inspector/api.py", line 283, in resolve_dependencies
    resolution, purls = resolve(
                        ~~~~~~~^
        direct_dependencies=direct_dependencies,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<8 lines>...
        printer=printer,
        ^^^^^^^^^^^^^^^^
    )
    ^
  File "~/Documents/misc/python-torch-multi-platform/.venv/lib/python3.13/site-packages/python_inspector/api.py", line 374, in resolve
    resolved_dependencies, packages = get_resolved_dependencies(
                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^
        requirements=requirements,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<8 lines>...
        printer=printer,
        ^^^^^^^^^^^^^^^^
    )
    ^
  File "~/Documents/misc/python-torch-multi-platform/.venv/lib/python3.13/site-packages/python_inspector/api.py", line 465, in get_resolved_dependencies
    resolver_results = resolver.resolve(requirements=requirements, max_rounds=max_rounds)
  File "~/Documents/misc/python-torch-multi-platform/.venv/lib/python3.13/site-packages/resolvelib/resolvers/resolution.py", line 596, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
  File "~/Documents/misc/python-torch-multi-platform/.venv/lib/python3.13/site-packages/resolvelib/resolvers/resolution.py", line 429, in resolve
    self._add_to_criteria(self.state.criteria, r, parent=None)
    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~/Documents/misc/python-torch-multi-platform/.venv/lib/python3.13/site-packages/resolvelib/resolvers/resolution.py", line 125, in _add_to_criteria
    matches = self._p.find_matches(
        identifier=identifier,
    ...<9 lines>...
        ),
    )
  File "~/Documents/misc/python-torch-multi-platform/.venv/lib/python3.13/site-packages/python_inspector/resolution.py", line 634, in find_matches
    candidates = sorted(
        self._iter_matches(identifier, requirements, incompatibilities),
        key=operator.attrgetter("version"),
        reverse=True,
    )
  File "~/Documents/misc/python-torch-multi-platform/.venv/lib/python3.13/site-packages/python_inspector/resolution.py", line 617, in _iter_matches
    raise NoVersionsFound(f"This package does not exist: {name}")
python_inspector.error.NoVersionsFound: This package does not exist: torch

The requirements.txt file (https://github.com/voidpetal/pyinsp-system-platform-test/tree/main):

torch==2.8.0; sys_platform != "linux"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions