-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Description
I am trying to build a cython package with version 0.2.7. This fails with invalid syntax:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/colcon_core/package_identification/__init__.py", line 142, in _identify
retval = extension.identify(_reused_descriptor_instance)
File "/usr/lib/python3/dist-packages/colcon_python_setup_py/package_identification/python_setup_py.py", line 48, in identify
config = get_setup_information(setup_py)
File "/usr/lib/python3/dist-packages/colcon_python_setup_py/package_identification/python_setup_py.py", line 241, in get_setup_information
_setup_information_cache[hashable_env] = _get_setup_information(
File "/usr/lib/python3/dist-packages/colcon_python_setup_py/package_identification/python_setup_py.py", line 286, in _get_setup_information
return ast.literal_eval(output)
File "/usr/lib/python3.8/ast.py", line 59, in literal_eval
node_or_string = parse(node_or_string, mode='eval')
File "/usr/lib/python3.8/ast.py", line 47, in parse
return compile(source, filename, mode, flags,
File "<unknown>", line 1
Compiling <PACKAGE> because it changed.
^
SyntaxError: invalid syntax
I can trace this down to stdout output in Cython https://github.com/cython/cython/blob/3424926e9c8f03061b55516d2516a9f98999399e/Cython/Build/Dependencies.py#L1074.
colcon-python-setup-py takes this stdout output and tries to evaluate it:
colcon-python-setup-py/colcon_python_setup_py/package_identification/python_setup_py.py
Lines 285 to 293 in ed426b5
| # invoke distutils.core.run_setup() in a separate interpreter | |
| cmd = [ | |
| sys.executable, '-c', ';'.join(line.lstrip() for line in code_lines)] | |
| result = subprocess.run( | |
| cmd, stdout=subprocess.PIPE, | |
| cwd=os.path.abspath(str(setup_py.parent)), check=True, env=env) | |
| output = result.stdout.decode('utf-8') | |
| return ast.literal_eval(output) |
Metadata
Metadata
Assignees
Labels
No labels