Problem with resolution
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 35/100
調査の方向性
提供されている python-inspector CLI コマンドと resolver_api 呼び出しを、re.txt と PyHEADTAIL の setup.py tarball を使って再現してください。python_inspector/api.py と python_inspector/resolution.py の get_requirements_from_python_manifest 周辺にあるスタックトレースから始めてください。無効な requirements が暗黙に失敗せず、setup.py の解決動作が説明または修正され、部分的な解決とエラー処理がテストでカバーされれば完了です。
索引モデルが issue の本文から書いたものです。
説明
There are a couple issues:
1. this file is not a valid requirements file IMHO and we do not return any error:
I save this in re.txt and ran:
python-inspector --json - -p 3.10 -o linux --version -r re.txt
numpy>=1.0
scipy
xobjects
xpart
xdeps
[tests]
cpymad
PyHEADTAIL
pytest
This was copied by mistake as is from the setup.py of xtrack-0.23.2.tar.gz from https://pypi.org/project/xtrack/#files
2. trying to inspect it yields this error which is not right becuase this setup.py is perfectly parsable:
>>> resolver_api(requirement_files=["re.txt"], python_version="310", operating_system="linux")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/tmp/scancode-toolkit/venv/lib/python3.8/site-packages/python_inspector/api.py", line 254, in resolve_dependencies
resolution, purls = resolve(
File "/tmp/scancode-toolkit/venv/lib/python3.8/site-packages/python_inspector/api.py", line 313, in resolve
resolved_dependencies, packages = get_resolved_dependencies(
File "/tmp/scancode-toolkit/venv/lib/python3.8/site-packages/python_inspector/api.py", line 351, in get_resolved_dependencies
resolver_results = resolver.resolve(requirements=requirements, max_rounds=max_rounds)
File "/tmp/scancode-toolkit/venv/lib/python3.8/site-packages/resolvelib/resolvers.py", line 521, in resolve
state = resolution.resolve(requirements, max_rounds=max_rounds)
File "/tmp/scancode-toolkit/venv/lib/python3.8/site-packages/resolvelib/resolvers.py", line 402, in resolve
failure_causes = self._attempt_to_pin_criterion(name)
File "/tmp/scancode-toolkit/venv/lib/python3.8/site-packages/resolvelib/resolvers.py", line 238, in _attempt_to_pin_criterion
criteria = self._get_updated_criteria(candidate)
File "/tmp/scancode-toolkit/venv/lib/python3.8/site-packages/resolvelib/resolvers.py", line 228, in _get_updated_criteria
for requirement in self._p.get_dependencies(candidate=candidate):
File "/tmp/scancode-toolkit/venv/lib/python3.8/site-packages/python_inspector/resolution.py", line 600, in get_dependencies
return list(self._iter_dependencies(candidate))
File "/tmp/scancode-toolkit/venv/lib/python3.8/site-packages/python_inspector/resolution.py", line 591, in _iter_dependencies
for r in self.get_requirements_for_package(purl=purl, candidate=candidate):
File "/tmp/scancode-toolkit/venv/lib/python3.8/site-packages/python_inspector/resolution.py", line 470, in get_requirements_for_package_from_pypi_simple
yield from get_requirements_from_python_manifest(
File "/tmp/scancode-toolkit/venv/lib/python3.8/site-packages/python_inspector/resolution.py", line 304, in get_requirements_from_python_manifest
raise Exception(
Exception: Unable to collect setup.py dependencies securely: .cache/thirdparty/extracted_sdists/PyHEADTAIL-1.16.0/PyHEADTAIL-1.16.0/setup.py
3. Trying to call the API with the setup.py is not right:
See https://files.pythonhosted.org/packages/7c/dd/80d8ec272179941bf6cc181446127da194eb82b7138549a6939583c4c318/PyHEADTAIL-1.16.0.tar.gz (which should have been in the graph above) returns an imcomplete deps tree (or rather nothing)
>>> resolver_api(setup_py_file=".cache/thirdparty/extracted_sdists/PyHEADTAIL-1.16.0/PyHEADTAIL-1.16.0/setup.py", python_version="310", operating_system="linux")
Resolution(resolution=[], packages=[], files=[{'type': 'file', 'path': '.cache/thirdparty/extracted_sdists/PyHEADTAIL-1.16.0/PyHEADTAIL-1.16.0/setup.py', 'package_data': [{'type': 'pypi', 'namespace': None, 'name': 'PyHEADTAIL', 'version': '1.16.0', 'qualifiers': {}, 'subpath': None, 'primary_language': 'Python', 'description': 'CERN PyHEADTAIL numerical n-body simulation code for simulating macro-particle beam dynamics with collective effects.', 'release_date': None, 'parties': [{'type': 'person', 'role': 'author', 'name': 'Kevin Li', 'email': '[email protected]', 'url': None}, {'type': 'person', 'role': 'maintainer', 'name': 'Adrian Oeftiger', 'email': '[email protected]', 'url': None}], 'keywords': [], 'homepage_url': 'https://github.com/PyCOMPLETE/PyHEADTAIL', 'download_url': None, 'size': None, 'sha1': None, 'md5': None, 'sha256': None, 'sha512': None, 'bug_tracking_url': None, 'code_view_url': None, 'vcs_url': None, 'copyright': None, 'license_expression': None, 'declared_license': {}, 'notice_text': None, 'source_packages': [], 'file_references': [], 'extra_data': {}, 'dependencies': [{'purl': 'pkg:pypi/h5py', 'extracted_requirement': 'h5py', 'scope': 'setup', 'is_runtime': True, 'is_optional': False, 'is_resolved': False, 'resolved_package': {}, 'extra_data': {}}, {'purl': 'pkg:pypi/numpy', 'extracted_requirement': 'numpy', 'scope': 'setup', 'is_runtime': True, 'is_optional': False, 'is_resolved': False, 'resolved_package': {}, 'extra_data': {}}, {'purl': 'pkg:pypi/scipy', 'extracted_requirement': 'scipy', 'scope': 'setup', 'is_runtime': True, 'is_optional': False, 'is_resolved': False, 'resolved_package': {}, 'extra_data': {}}, {'purl': 'pkg:pypi/cython', 'extracted_requirement': 'cython', 'scope': 'setup', 'is_runtime': True, 'is_optional': False, 'is_resolved': False, 'resolved_package': {}, 'extra_data': {}}], 'repository_homepage_url': 'https://pypi.org/project/PyHEADTAIL', 'repository_download_url': 'https://pypi.org/packages/source/P/PyHEADTAIL/PyHEADTAIL-1.16.0.tar.gz', 'api_data_url': 'https://pypi.org/pypi/PyHEADTAIL/1.16.0/json', 'datasource_id': 'pypi_setup_py', 'purl': 'pkg:pypi/[email protected]'}]}])
4. Scanning that seame setup.py with SCTK works without a glitch with these deps
dependencies:
- purl: pkg:pypi/h5py
extracted_requirement: h5py
scope: setup
is_runtime: yes
is_optional: no
is_resolved: no
resolved_package: {}
extra_data: {}
- purl: pkg:pypi/numpy
extracted_requirement: numpy
scope: setup
is_runtime: yes
is_optional: no
is_resolved: no
resolved_package: {}
extra_data: {}
- purl: pkg:pypi/scipy
extracted_requirement: scipy
scope: setup
is_runtime: yes
is_optional: no
is_resolved: no
resolved_package: {}
extra_data: {}
- purl: pkg:pypi/cython
extracted_requirement: cython
scope: setup
is_runtime: yes
is_optional: no
is_resolved: no
resolved_package: {}
extra_data: {}
5. running this does not have the extra requires:
python-inspector --spec "xtrack==0.23.3" --json - -p 3.10 -o linux
"resolved_dependencies_graph": [
{
"package": "pkg:pypi/[email protected]",
"dependencies": [
"pkg:pypi/[email protected]"
]
},
{
"package": "pkg:pypi/[email protected]",
"dependencies": []
},
{
"package": "pkg:pypi/[email protected]",
"dependencies": []
},
{
"package": "pkg:pypi/[email protected]",
"dependencies": []
},
{
"package": "pkg:pypi/[email protected]",
"dependencies": [
"pkg:pypi/[email protected]"
]
},
{
"package": "pkg:pypi/[email protected]",
"dependencies": [
"pkg:pypi/[email protected]"
]
},
{
"package": "pkg:pypi/[email protected]",
"dependencies": [
"pkg:pypi/[email protected]",
"pkg:pypi/[email protected]"
]
},
{
"package": "pkg:pypi/[email protected]",
"dependencies": [
"pkg:pypi/[email protected]",
"pkg:pypi/[email protected]",
"pkg:pypi/[email protected]"
]
},
{
"package": "pkg:pypi/[email protected]",
"dependencies": [
"pkg:pypi/[email protected]",
"pkg:pypi/[email protected]",
"pkg:pypi/[email protected]",
"pkg:pypi/[email protected]",
"pkg:pypi/[email protected]"
]
}
]
6. we should have a way to return partial resolutions and we should not fail silently
- 主要言語
- Python
- スター
- 23
- フォーク
- 29
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
aboutcode-org/python-inspector のほかの issue
-
難易度 3/5 半日 初心者へのやさしさ 62/100
aboutcode-org/python-inspector#268 · コメント 1 件 ·
-
Add support for pylock.toml対応中かも @Anurag-S1ngh が 5 日前に担当しました。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
aboutcode-org/python-inspector#259 · コメント 1 件 ·
-
InconsistentCandidate: Pre-Release not allow対応中かも @Anurag-S1ngh が 5 日前に担当しました。 オープンbug design nice-to-have
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
aboutcode-org/python-inspector#257 · コメント 1 件 ·
-
Feature request: Mask repository credentials in --verbose output対応中かも @Rajeshwari2857 が 6 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 58/100
aboutcode-org/python-inspector#254 · コメント 4 件 · リアクション 4 件 ·
-
Python Inspector version 0.15.0 contains the wrong version string対応中かも @Anurag-S1ngh が 5 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 45/100
aboutcode-org/python-inspector#253 · コメント 1 件 ·
aboutcode-org/python-inspector の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
-
Validate finite output clamping limits in StepPredictor.prepare_clamping_params to prevent silent NaN/Inf propagation対応中かも @muskan-creates352 が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
mllam/neural-lam#848 ·
メンテナーはふだん 2 日以内に返信
-
infra
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
fab-geocommuns/RNB-coeur#1166 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
deepspeedai/DeepSpeed#8951 ·
メンテナーはふだん 2 日以内に返信