#1141006 python-duniterpy: FTBFS: E TypeError: __str__ returned non-string (type list)

#1141006#5
Date:
2026-06-28 20:52:02 UTC
From:
To:
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 ...]

                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

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
        """
/usr/lib/python3/dist-packages/pypeg2/__init__.py:1315: TypeError
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

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
        """
/usr/lib/python3/dist-packages/pypeg2/__init__.py:1315: TypeError
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

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
        """
/usr/lib/python3/dist-packages/pypeg2/__init__.py:1315: TypeError
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

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
        """
/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
--------------------------------------------------------------------------------