-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Failure parsing dependences of pypi:packer.py #116
Comments
I investigated the issue further, in case The problem happens during the evaluation of The I tried to specify manually these parameters in the |
@bennati Thanks... I wonder why this fail "in securely" mode.... and if we should try securely first in this case. Here we parse it perfectly well: >>> from _packagedcode.pypi import *
>>> p=".cache/python_inspector/extracted_sdists/packer.py-0.3.0/packer.py-0.3.0/setup.py"
>>> from pprint import pprint
>>> pprint(get_setup_py_args(p))
{'author': 'Matthew Aynalem',
'author_email': '[email protected]',
'classifiers': ['License :: OSI Approved :: Apache Software License',
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6'],
'description': 'packer.py - python library to run hashicorp packer CLI '
'commands',
'keywords': ['hashicorp', 'packer'],
'license': 'Apache License 2.0',
'name': 'packer.py',
'url': 'https://github.com/mayn/packer.py',
'version': '0.3.0'} But there are no deps (no values listed in install_requires) and this is likely why this fails. The other thing is for the insecure mode, that this uses the older distutils and we mock setuptools! If I patch this way: diff --git a/src/python_inspector/setup_py_live_eval.py b/src/python_inspector/setup_py_live_eval.py
index e9515e5..cca3241 100755
--- a/src/python_inspector/setup_py_live_eval.py
+++ b/src/python_inspector/setup_py_live_eval.py
@@ -12,6 +12,7 @@
import os
import re
import sys
+import distutils
try:
import configparser
@@ -54,7 +55,7 @@
setup_requires = {}
# change directory to setup.py path
with pushd(os.path.dirname(setup_file)):
- with mock.patch.object(setuptools, "setup") as mock_setup:
+ with mock.patch.object(distutils.core, "setup") as mock_setup:
sys.path.append(os.path.dirname(setup_file))
g = {"__file__": setup_file, "__name__": "__main__"}
with open(setup_file) as sf: then So we would need to patch either setuptools or distutils.core... |
Currently. `setup` is always mocked using `distutils.core` but this might cause issues with certain packages. Fix this behavior by parsing the `setup.py` file for the correct module to import. Closes: aboutcode-org#116 Signed-off-by: Bennati, Stefano <[email protected]>
Currently. `setup` is always mocked using `distutils.core` but this might cause issues with certain packages. Fix this behavior by parsing the `setup.py` file for the correct module to import. Closes: aboutcode-org#116 Signed-off-by: Bennati, Stefano <[email protected]>
Thanks, that fixes the issue, pushed to #120 |
Currently. `setup` is always mocked using `distutils.core` but this might cause issues with certain packages. Fix this behavior by parsing the `setup.py` file for the correct module to import. Closes: aboutcode-org#116 Signed-off-by: Bennati, Stefano <[email protected]>
Currently. `setup` is always mocked using `distutils.core` but this might cause issues with certain packages. Fix this behavior by parsing the `setup.py` file for the correct module to import. Closes: aboutcode-org#116 Signed-off-by: Bennati, Stefano <[email protected]>
Currently. `setup` is always mocked using `distutils.core` but this might cause issues with certain packages. Fix this behavior by parsing the `setup.py` file for the correct module to import. Closes: aboutcode-org#116 Signed-off-by: Bennati, Stefano <[email protected]>
Currently. `setup` is always mocked using `distutils.core` but this might cause issues with certain packages. Fix this behavior by parsing the `setup.py` file for the correct module to import. Closes: aboutcode-org#116 Signed-off-by: Bennati, Stefano <[email protected]>
Currently. `setup` is always mocked using `distutils.core` but this might cause issues with certain packages. Fix this behavior by parsing the `setup.py` file for the correct module to import. Closes: aboutcode-org#116 Signed-off-by: Bennati, Stefano <[email protected]>
It includes fix for backjumping, see sarugaku/resolvelib#113 Relates-to: aboutcode-org#116 Signed-off-by: Bennati, Stefano <[email protected]>
Currently. `setup` is always mocked using `distutils.core` but this might cause issues with certain packages. Fix this behavior by parsing the `setup.py` file for the correct module to import. Closes: aboutcode-org#116 Signed-off-by: Bennati, Stefano <[email protected]>
Currently `setup` is always mocked using `distutils.core` but this might cause issues with certain packages. Fix this behavior by parsing the `setup.py` file for the correct module to import. Closes: aboutcode-org#116 Signed-off-by: Bennati, Stefano <[email protected]>
Currently `setup` is always mocked using `distutils.core` but this might cause issues with certain packages. Fix this behavior by parsing the `setup.py` file for the correct module to import. Closes: aboutcode-org#116 Signed-off-by: Bennati, Stefano <[email protected]>
How to reproduce:
run
python-inspector --requirement ./requirements.txt --python-version 310 --operating-system linux --json-pdt ./o.json --analyze-setup-py-insecurely
where
requirements.txt
containspacker.py
.This will produce either error
Exception: Unable to collect setup.py dependencies securely
if argumentanalyze_setup_py_insecurely
is False (see this line), orerror: option --requirement not recognized
if argumentanalyze_setup_py_insecurely
is TrueThese issues are caused by the dependency
packer.py
having no dependencies of its own: fromsetup.py
The text was updated successfully, but these errors were encountered: