Package: src:python-astor Version: 0.8.1-4 Severity: serious Tags: ftbfs forky sid
Dear maintainer: During a rebuild of all packages in unstable, this package failed to build. Below you will find the last part of the build log (probably the most relevant part, but not necessarily). If required, the full build log is available here: https://people.debian.org/~sanvila/build-logs/202512/ About the archive rebuild: The build was made on virtual machines from AWS, using sbuild and a reduced chroot with only build-essential packages. If you cannot reproduce the bug please contact me privately, as I am willing to provide ssh access to a virtual machine where the bug is fully reproducible. If this is really a bug in one of the build-depends, please use reassign and add an affects on src:python-astor, so that this is still visible in the BTS web page for this package. Thanks. -------------------------------------------------------------------------------- [...] debian/rules clean dh clean --buildsystem pybuild dh_auto_clean -O--buildsystem=pybuild I: pybuild base:317: python3.14 setup.py clean /usr/lib/python3/dist-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: BSD License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** [... snipped ...] astor/code_gen.py:178: in write visit(item) astor/node_util.py:143: in visit return visitor(node) ^^^^^^^^^^^^^ astor/code_gen.py:293: in visit_Assign self.visit(node.value) astor/node_util.py:143: in visit return visitor(node) ^^^^^^^^^^^^^ astor/code_gen.py:565: in visit_JoinedStr self._handle_string_constant(node, None, is_joined=True) astor/code_gen.py:622: in _handle_string_constant recurse(node) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ node = JoinedStr(values=[FormattedValue(value=Name(id='host', ctx=Load(...)), conversion=-1, format_spec=None), ..., Constant(value='\n', kind=None)]) def recurse(node): for value in node.values: > if isinstance(value, ast.Str): ^^^^^^^ E AttributeError: module 'ast' has no attribute 'Str' astor/code_gen.py:599: AttributeError ________________________ CodegenTestCase.test_fstrings _________________________ self = <tests.test_code_gen.CodegenTestCase testMethod=test_fstrings> def test_fstrings(self): source = """ x = f'{x}' x = f'{x.y}' x = f'{int(x)}' x = f'a{b:c}d' x = f'a{b!s:c{d}e}f' x = f'{x + y}' x = f'""' x = f'"\\'' """ > self.assertSrcRoundtripsGtVer(source, (3, 6)) tests/test_code_gen.py:465: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_code_gen.py:84: in assertSrcRoundtripsGtVer self.assertSrcRoundtrips(source) tests/test_code_gen.py:72: in assertSrcRoundtrips self.assertEqual(self.to_source(ast.parse(srctxt)).rstrip(), srctxt) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ astor/code_gen.py:63: in to_source generator.visit(node) astor/node_util.py:143: in visit return visitor(node) ^^^^^^^^^^^^^ astor/code_gen.py:878: in visit_Module self.write(*node.body) astor/code_gen.py:178: in write visit(item) astor/node_util.py:143: in visit return visitor(node) ^^^^^^^^^^^^^ astor/code_gen.py:293: in visit_Assign self.visit(node.value) astor/node_util.py:143: in visit return visitor(node) ^^^^^^^^^^^^^ astor/code_gen.py:565: in visit_JoinedStr self._handle_string_constant(node, None, is_joined=True) astor/code_gen.py:622: in _handle_string_constant recurse(node) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ node = JoinedStr(values=[FormattedValue(value=Name(id='x', ctx=Load(...)), conversion=-1, format_spec=None)]) def recurse(node): for value in node.values: > if isinstance(value, ast.Str): ^^^^^^^ E AttributeError: module 'ast' has no attribute 'Str' astor/code_gen.py:599: AttributeError ________________________ CodegenTestCase.test_huge_int _________________________ self = <tests.test_code_gen.CodegenTestCase testMethod=test_huge_int> def test_huge_int(self): for n in (10**1000, 0xdfa21cd2a530ccc8c870aa60d9feb3b35deeab81c3215a96557abbd683d21f4600f38e475d87100da9a4404220eeb3bb5584e5a2b5b48ffda58530ea19104a32577d7459d91e76aa711b241050f4cc6d5327ccee254f371bcad3be56d46eb5919b73f20dbdb1177b700f00891c5bf4ed128bb90ed541b778288285bcfa28432ab5cbcb8321b6e24760e998e0daa519f093a631e44276d7dd252ce0c08c75e2ab28a7349ead779f97d0f20a6d413bf3623cd216dc35375f6366690bcc41e3b2d5465840ec7ee0dc7e3f1c101d674a0c7dbccbc3942788b111396add2f8153b46a0e4b50d66e57ee92958f1c860dd97cc0e40e32febff915343ed53573142bdf4b): > self.assertEqual(astornum(n), n) ^^^^^^^^^^^ tests/test_code_gen.py:290: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ x = 100000000000000000...0000000000000000000 def astornum(x): > return astorexpr(ast.Num(n=x)) ^^^^^^^ E AttributeError: module 'ast' has no attribute 'Num' tests/test_code_gen.py:31: AttributeError ___________________________ CodegenTestCase.test_inf ___________________________ self = <tests.test_code_gen.CodegenTestCase testMethod=test_inf> def test_inf(self): source = """ (1e1000) + (-1e1000) + (1e1000j) + (-1e1000j) """ self.assertAstRoundtrips(source) # We special case infinities in code_gen. So we will # return the same AST construction but it won't # roundtrip to 'source'. See the SourceGenerator.visit_Num # method for details. (#82) source = 'a = 1e400' self.assertAstRoundtrips(source) # Returns 'a = 1e1000'. self.assertSrcDoesNotRoundtrip(source) > self.assertIsInstance(astornum((1e1000+1e1000)+0j), complex) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_code_gen.py:314: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ x = (inf+0j) def astornum(x): > return astorexpr(ast.Num(n=x)) ^^^^^^^ E AttributeError: module 'ast' has no attribute 'Num' tests/test_code_gen.py:31: AttributeError ___________________________ CodegenTestCase.test_nan ___________________________ self = <tests.test_code_gen.CodegenTestCase testMethod=test_nan> def test_nan(self): > self.assertTrue(math.isnan(astornum(float('nan')))) ^^^^^^^^^^^^^^^^^^^^^^ tests/test_code_gen.py:317: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ x = nan def astornum(x): > return astorexpr(ast.Num(n=x)) ^^^^^^^ E AttributeError: module 'ast' has no attribute 'Num' tests/test_code_gen.py:31: AttributeError =========================== short test summary info ============================ FAILED tests/test_code_gen.py::CodegenTestCase::test_complex - AttributeError... FAILED tests/test_code_gen.py::CodegenTestCase::test_deprecated_constant_nodes FAILED tests/test_code_gen.py::CodegenTestCase::test_deprecated_name_constants FAILED tests/test_code_gen.py::CodegenTestCase::test_fstring_debugging - Attr... FAILED tests/test_code_gen.py::CodegenTestCase::test_fstring_escaped_braces FAILED tests/test_code_gen.py::CodegenTestCase::test_fstring_trailing_newline FAILED tests/test_code_gen.py::CodegenTestCase::test_fstrings - AttributeErro... FAILED tests/test_code_gen.py::CodegenTestCase::test_huge_int - AttributeErro... FAILED tests/test_code_gen.py::CodegenTestCase::test_inf - AttributeError: mo... FAILED tests/test_code_gen.py::CodegenTestCase::test_nan - AttributeError: mo... ============ 10 failed, 42 passed, 2 skipped, 1 deselected in 0.29s ============ E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_astor/build; python3.14 -m pytest -k 'not test_convert_stdlib' I: pybuild base:317: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_astor/build; python3.13 -m pytest -k 'not test_convert_stdlib' ============================= test session starts ============================== platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0 rootdir: /<<PKGBUILDDIR>> plugins: typeguard-4.4.4 collected 55 items / 1 deselected / 54 selected tests/test_code_gen.py .............s................................ [ 85%] tests/test_misc.py .......s [100%] =============================== warnings summary =============================== astor/op_util.py:92 /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_astor/build/astor/op_util.py:92: DeprecationWarning: ast.Num is deprecated and will be removed in Python 3.14; use ast.Constant instead precedence_data = dict((getattr(ast, x, None), z) for x, y, z in op_data) .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_complex .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_huge_int .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_huge_int .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_inf .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_nan .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_nan .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_nan /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py:31: DeprecationWarning: ast.Num is deprecated and will be removed in Python 3.14; use ast.Constant instead return astorexpr(ast.Num(n=x)) .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_complex .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_huge_int .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_huge_int .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_inf .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_nan .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_nan .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_nan /usr/lib/python3.13/ast.py:602: DeprecationWarning: Constant.__init__ got an unexpected keyword argument 'n'. Support for arbitrary keyword arguments is deprecated and will be removed in Python 3.15. return Constant(*args, **kwargs) .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_complex .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_huge_int .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_huge_int .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_inf .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_nan .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_nan .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_nan /usr/lib/python3.13/ast.py:602: DeprecationWarning: Attribute n is deprecated and will be removed in Python 3.14; use value instead return Constant(*args, **kwargs) .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_complex .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_huge_int .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_huge_int .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_inf .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_nan .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_nan .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_nan /usr/lib/python3.13/ast.py:602: DeprecationWarning: Constant.__init__ missing 1 required positional argument: 'value'. This will become an error in Python 3.15. return Constant(*args, **kwargs) .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_deprecated_constant_nodes /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py:529: DeprecationWarning: ast.Num is deprecated and will be removed in Python 3.14; use ast.Constant instead ast.Assign(targets=[ast.Name(id='spam')], value=ast.Num(3)), .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_deprecated_constant_nodes /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py:533: DeprecationWarning: ast.Num is deprecated and will be removed in Python 3.14; use ast.Constant instead ast.Assign(targets=[ast.Name(id='spam')], value=ast.Num(-93)), .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_deprecated_constant_nodes /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py:537: DeprecationWarning: ast.Num is deprecated and will be removed in Python 3.14; use ast.Constant instead ast.Assign(targets=[ast.Name(id='spam')], value=ast.Num(837.3888)), .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_deprecated_constant_nodes /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py:541: DeprecationWarning: ast.Num is deprecated and will be removed in Python 3.14; use ast.Constant instead ast.Assign(targets=[ast.Name(id='spam')], value=ast.Num(-0.9877)), .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_deprecated_constant_nodes .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_deprecated_constant_nodes /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py:544: DeprecationWarning: ast.Ellipsis is deprecated and will be removed in Python 3.14; use ast.Constant instead self.assertAstEqualsSource(ast.Ellipsis(), "...") .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_deprecated_constant_nodes .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_deprecated_constant_nodes /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py:548: DeprecationWarning: ast.Bytes is deprecated and will be removed in Python 3.14; use ast.Constant instead ast.Assign(targets=[ast.Name(id='spam')], value=ast.Bytes(b"Bytes")), .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_deprecated_constant_nodes .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_deprecated_constant_nodes /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py:552: DeprecationWarning: ast.Str is deprecated and will be removed in Python 3.14; use ast.Constant instead ast.Assign(targets=[ast.Name(id='spam')], value=ast.Str("String")), .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_deprecated_name_constants .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_deprecated_name_constants /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py:516: DeprecationWarning: ast.NameConstant is deprecated and will be removed in Python 3.14; use ast.Constant instead ast.Assign(targets=[ast.Name(id='spam')], value=ast.NameConstant(value=True)), .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_deprecated_name_constants /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py:520: DeprecationWarning: ast.NameConstant is deprecated and will be removed in Python 3.14; use ast.Constant instead ast.Assign(targets=[ast.Name(id='spam')], value=ast.NameConstant(value=False)), .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py::CodegenTestCase::test_deprecated_name_constants /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py:524: DeprecationWarning: ast.NameConstant is deprecated and will be removed in Python 3.14; use ast.Constant instead ast.Assign(targets=[ast.Name(id='spam')], value=ast.NameConstant(value=None)), .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py: 68 warnings /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_astor/build/astor/code_gen.py:599: DeprecationWarning: ast.Str is deprecated and will be removed in Python 3.14; use ast.Constant instead if isinstance(value, ast.Str): .pybuild/cpython3_3.13_astor/build/tests/test_code_gen.py: 39 warnings /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_astor/build/astor/code_gen.py:601: DeprecationWarning: Attribute s is deprecated and will be removed in Python 3.14; use value instead self.write(value.s.replace('{', '{{').replace('}', '}}')) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html ========== 52 passed, 2 skipped, 1 deselected, 150 warnings in 0.07s =========== dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.14 3.13" returned exit code 13 make: *** [debian/rules:9: binary] Error 25 dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 --------------------------------------------------------------------------------

