Package: src:python-duniterpy Version: 1.1.1-3 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/202606/ 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-duniterpy, so that this is still visible in the BTS web page for this package. Thanks. -------------------------------------------------------------------------------- [...] debian/rules clean dh clean --buildsystem=pybuild --with=sphinxdoc dh_auto_clean -O--buildsystem=pybuild dh_autoreconf_clean -O--buildsystem=pybuild dh_clean -O--buildsystem=pybuild debian/rules binary dh binary --buildsystem=pybuild --with=sphinxdoc dh_update_autotools_config -O--buildsystem=pybuild dh_autoreconf -O--buildsystem=pybuild dh_auto_configure -O--buildsystem=pybuild dh_auto_build -O--buildsystem=pybuild I: pybuild plugin_pyproject:142: Building wheel for python3.14 with "build" module I: pybuild base:385: python3.14 -m build --skip-dependency-check --no-isolation --wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14 * Building wheel... The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. [... snipped ...] __________________ TestOutputgrammar.test_csv_cltv_condition ___________________ self = <tests.grammars.test_output.TestOutputgrammar testMethod=test_csv_cltv_condition> def test_csv_cltv_condition(self): condition = "(CSV(1654300) || (SIG(DNann1Lh55eZMEDXeYt59bzHbA3NJR46DeQYCS2qQdLV) && CLTV(2594024)))" result = pypeg2.parse(condition, Condition) self.assertEqual(result.left.left.time, "1654300") self.assertEqual(result.left.op.name, "||") self.assertEqual( result.left.right.left.pubkey, "DNann1Lh55eZMEDXeYt59bzHbA3NJR46DeQYCS2qQdLV", ) self.assertEqual(result.left.right.op.name, "&&") self.assertEqual(result.left.right.right.timestamp, "2594024") > self.assertEqual(pypeg2.compose(result, Condition), condition) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/grammars/test_output.py:122: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3/dist-packages/pypeg2/__init__.py:728: in compose return parser.compose(thing, grammar) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pypeg2/__init__.py:1339: in compose return terminal_indent() + thing.compose(self, attr_of=attr_of) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duniterpy/grammars/output.py:393: in compose left = parser.compose(self.left, grammar=grammar, attr_of=attr_of) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <pypeg2.Parser object at 0x7f286db1cfc0> thing = <duniterpy.grammars.output.Condition object at 0x7f286db0fcb0> grammar = None, attr_of = None def compose(self, thing, grammar=None, attr_of=None): """Compose text using thing with grammar. Arguments: thing thing containing other things with grammar grammar grammar to use for composing thing default: type(thing).grammar attr_of if composing the value of an attribute, this is a reference to the thing where this value is an attribute of; None if this is not an attribute value Returns text Raises: ValueError if thing does not match grammar GrammarTypeError if grammar contains an object of unkown type GrammarValueError if grammar contains an illegal cardinality value """ > logger.debug(f"Parser({self.name}).compose({thing}, {grammar})") ^^^^^^^ E TypeError: __str__ returned non-string (type list) /usr/lib/python3/dist-packages/pypeg2/__init__.py:1315: TypeError _________________ TestOutputgrammar.test_instanciate_condition _________________ self = <tests.grammars.test_output.TestOutputgrammar testMethod=test_instanciate_condition> def test_instanciate_condition(self): Condition.token( SIG.token("HgTTJLAQ5sqfknMq7yLPZbehtuLSsKj9CxWN7k8QvYJd"), Operator.token("||"), Condition.token( SIG.token("DNann1Lh55eZMEDXeYt59bzHbA3NJR46DeQYCS2qQdLV"), Operator.token("&&"), XHX.token("309BC5E644F797F53E5A2065EAF38A173437F2E6"), ), ) condition = ( "(SIG(HgTTJLAQ5sqfknMq7yLPZbehtuLSsKj9CxWN7k8QvYJd) || (SIG(" "DNann1Lh55eZMEDXeYt59bzHbA3NJR46DeQYCS2qQdLV) && XHX(309BC5E644F797F53E5A2065EAF38A173437F2E6)))" ) inst = pypeg2.parse(condition, Condition) self.assertEqual( inst.left.left.pubkey, "HgTTJLAQ5sqfknMq7yLPZbehtuLSsKj9CxWN7k8QvYJd" ) self.assertEqual(inst.left.op.name, "||") self.assertEqual( inst.left.right.left.pubkey, "DNann1Lh55eZMEDXeYt59bzHbA3NJR46DeQYCS2qQdLV" ) self.assertEqual(inst.left.right.op.name, "&&") self.assertEqual( inst.left.right.right.sha_hash, "309BC5E644F797F53E5A2065EAF38A173437F2E6" ) > self.assertEqual(pypeg2.compose(inst, Condition), condition) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/grammars/test_output.py:150: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3/dist-packages/pypeg2/__init__.py:728: in compose return parser.compose(thing, grammar) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pypeg2/__init__.py:1339: in compose return terminal_indent() + thing.compose(self, attr_of=attr_of) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duniterpy/grammars/output.py:393: in compose left = parser.compose(self.left, grammar=grammar, attr_of=attr_of) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <pypeg2.Parser object at 0x7f286dc68870> thing = <duniterpy.grammars.output.Condition object at 0x7f286db0ed60> grammar = None, attr_of = None def compose(self, thing, grammar=None, attr_of=None): """Compose text using thing with grammar. Arguments: thing thing containing other things with grammar grammar grammar to use for composing thing default: type(thing).grammar attr_of if composing the value of an attribute, this is a reference to the thing where this value is an attribute of; None if this is not an attribute value Returns text Raises: ValueError if thing does not match grammar GrammarTypeError if grammar contains an object of unkown type GrammarValueError if grammar contains an illegal cardinality value """ > logger.debug(f"Parser({self.name}).compose({thing}, {grammar})") ^^^^^^^ E TypeError: __str__ returned non-string (type list) /usr/lib/python3/dist-packages/pypeg2/__init__.py:1315: TypeError _________________ TestOutputgrammar.test_simple_and_condition __________________ self = <tests.grammars.test_output.TestOutputgrammar testMethod=test_simple_and_condition> def test_simple_and_condition(self): condition = ( "(SIG(HgTTJLAQ5sqfknMq7yLPZbehtuLSsKj9CxWN7k8QvYJd) && XHX(" "309BC5E644F797F53E5A2065EAF38A173437F2E6))" ) result = pypeg2.parse(condition, Condition) self.assertEqual( result.left.left.pubkey, "HgTTJLAQ5sqfknMq7yLPZbehtuLSsKj9CxWN7k8QvYJd" ) self.assertEqual(result.left.op.name, "&&") self.assertEqual( result.left.right.sha_hash, "309BC5E644F797F53E5A2065EAF38A173437F2E6" ) > self.assertEqual(pypeg2.compose(result, Condition), condition) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/grammars/test_output.py:74: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3/dist-packages/pypeg2/__init__.py:728: in compose return parser.compose(thing, grammar) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pypeg2/__init__.py:1339: in compose return terminal_indent() + thing.compose(self, attr_of=attr_of) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duniterpy/grammars/output.py:393: in compose left = parser.compose(self.left, grammar=grammar, attr_of=attr_of) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <pypeg2.Parser object at 0x7f286db98600> thing = <duniterpy.grammars.output.Condition object at 0x7f286dbe8520> grammar = None, attr_of = None def compose(self, thing, grammar=None, attr_of=None): """Compose text using thing with grammar. Arguments: thing thing containing other things with grammar grammar grammar to use for composing thing default: type(thing).grammar attr_of if composing the value of an attribute, this is a reference to the thing where this value is an attribute of; None if this is not an attribute value Returns text Raises: ValueError if thing does not match grammar GrammarTypeError if grammar contains an object of unkown type GrammarValueError if grammar contains an illegal cardinality value """ > logger.debug(f"Parser({self.name}).compose({thing}, {grammar})") ^^^^^^^ E TypeError: __str__ returned non-string (type list) /usr/lib/python3/dist-packages/pypeg2/__init__.py:1315: TypeError __________________ TestOutputgrammar.test_simple_or_condition __________________ self = <tests.grammars.test_output.TestOutputgrammar testMethod=test_simple_or_condition> def test_simple_or_condition(self): condition = ( "(SIG(HgTTJLAQ5sqfknMq7yLPZbehtuLSsKj9CxWN7k8QvYJd) || XHX(" "309BC5E644F797F53E5A2065EAF38A173437F2E6))" ) result = pypeg2.parse(condition, Condition) self.assertEqual( result.left.left.pubkey, "HgTTJLAQ5sqfknMq7yLPZbehtuLSsKj9CxWN7k8QvYJd" ) self.assertEqual(result.left.op.name, "||") self.assertEqual( result.left.right.sha_hash, "309BC5E644F797F53E5A2065EAF38A173437F2E6" ) > self.assertEqual(pypeg2.compose(result, Condition), condition) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/grammars/test_output.py:89: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3/dist-packages/pypeg2/__init__.py:728: in compose return parser.compose(thing, grammar) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/dist-packages/pypeg2/__init__.py:1339: in compose return terminal_indent() + thing.compose(self, attr_of=attr_of) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duniterpy/grammars/output.py:393: in compose left = parser.compose(self.left, grammar=grammar, attr_of=attr_of) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <pypeg2.Parser object at 0x7f286dedef70> thing = <duniterpy.grammars.output.Condition object at 0x7f286db080c0> grammar = None, attr_of = None def compose(self, thing, grammar=None, attr_of=None): """Compose text using thing with grammar. Arguments: thing thing containing other things with grammar grammar grammar to use for composing thing default: type(thing).grammar attr_of if composing the value of an attribute, this is a reference to the thing where this value is an attribute of; None if this is not an attribute value Returns text Raises: ValueError if thing does not match grammar GrammarTypeError if grammar contains an object of unkown type GrammarValueError if grammar contains an illegal cardinality value """ > logger.debug(f"Parser({self.name}).compose({thing}, {grammar})") ^^^^^^^ E TypeError: __str__ returned non-string (type list) /usr/lib/python3/dist-packages/pypeg2/__init__.py:1315: TypeError =========================== short test summary info ============================ FAILED tests/documents/test_block.py::TestBlock::test_raw_with_tx - TypeError... FAILED tests/documents/test_transaction.py::TestTransaction::test_compact_change FAILED tests/documents/test_transaction.py::TestTransaction::test_fromcompact FAILED tests/documents/test_transaction.py::TestTransaction::test_fromraw_toraw FAILED tests/grammars/test_output.py::TestOutputgrammar::test_complex_condition FAILED tests/grammars/test_output.py::TestOutputgrammar::test_csv_cltv_condition FAILED tests/grammars/test_output.py::TestOutputgrammar::test_instanciate_condition FAILED tests/grammars/test_output.py::TestOutputgrammar::test_simple_and_condition FAILED tests/grammars/test_output.py::TestOutputgrammar::test_simple_or_condition ======================== 9 failed, 151 passed in 2.22s ========================= E: pybuild pybuild:485: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14/build; python3.14 -m pytest tests dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.14 --parallel=2 returned exit code 13 make: *** [debian/rules:13: binary] Error 25 dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2 --------------------------------------------------------------------------------

