Source: python-autodocsumm Version: 0.2.13-3 Severity: normal User: [email protected] Usertags: python3.13
This package failed build from source when test-built against a version of python3-defaults that includes 3.13 as a supported version. To reproduce this issue, build against python3-defaults (python3-all-dev etc.) from Debian experimental. Not sure if this was an issue in the test environment or a real upstream issue. From the log, it's not immediately obvious why ignore stopped getting defined. What's new in Python 3.13: https://docs.python.org/3.13/whatsnew/3.13.html Log snippet: ============================= test session starts ============================== platform linux -- Python 3.13.0rc2, pytest-8.3.3, pluggy-1.5.0 -- /usr/bin/python3.13 cachedir: .pytest_cache rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_autodocsumm/build configfile: pyproject.toml plugins: typeguard-4.3.0 collecting ... collected 23 items tests/test_autodocsumm.py::TestAutosummaryDocumenter::test_module FAILED [ 4%] tests/test_autodocsumm.py::TestAutosummaryDocumenter::test_module_no_nesting FAILED [ 8%] tests/test_autodocsumm.py::TestAutosummaryDocumenter::test_module_summary_only FAILED [ 13%] tests/test_autodocsumm.py::TestAutosummaryDocumenter::test_module_with_title FAILED [ 17%] tests/test_autodocsumm.py::TestAutosummaryDocumenter::test_module_nosignatures FAILED [ 21%] tests/test_autodocsumm.py::TestAutosummaryDocumenter::test_class FAILED [ 26%] tests/test_autodocsumm.py::TestAutosummaryDocumenter::test_class_order FAILED [ 30%] tests/test_autodocsumm.py::TestAutosummaryDocumenter::test_class_summary_only FAILED [ 34%] tests/test_autodocsumm.py::TestAutosummaryDocumenter::test_class_nosignatures FAILED [ 39%] tests/test_autodocsumm.py::TestAutosummaryDocumenter::test_inherited FAILED [ 43%] tests/test_autodocsumm.py::TestAutosummaryDocumenter::test_warnings_depreciation XFAIL [ 47%] tests/test_autodocsumm.py::TestAutosummaryDocumenter::test_autoclasssumm_inline FAILED [ 52%] tests/test_autodocsumm.py::TestAutosummaryDocumenter::test_class_submodule FAILED [ 56%] tests/test_autodocsumm.py::TestAutosummaryDocumenter::test_module_submodule FAILED [ 60%] tests/test_autodocsumm.py::TestAutosummaryDocumenter::test_sorted_sections FAILED [ 65%] tests/test_autodocsumm.py::TestAutoDocSummDirective::test_autoclasssumm FAILED [ 69%] tests/test_autodocsumm.py::TestAutoDocSummDirective::test_autoclasssumm_no_titles FAILED [ 73%] tests/test_autodocsumm.py::TestAutoDocSummDirective::test_autoclasssumm_some_sections FAILED [ 78%] tests/test_autodocsumm.py::TestAutoDocSummDirective::test_autoclasssumm_nosignatures FAILED [ 82%] tests/test_autodocsumm.py::TestAutoDocSummDirective::test_automodulesumm FAILED [ 86%] tests/test_autodocsumm.py::TestAutoDocSummDirective::test_automodulesumm_some_sections FAILED [ 91%] tests/test_autodocsumm.py::TestAutoDocSummDirective::test_automodulesumm_nosignatures FAILED [ 95%] tests/test_autodocsumm.py::TestAutoDocSummDirective::test_empty FAILED [100%] =================================== FAILURES =================================== ____________________ TestAutosummaryDocumenter.test_module _____________________ self = <test_autodocsumm.TestAutosummaryDocumenter object at 0xffffba3ef610> app = <SphinxTestApp buildername='html'> def test_module(self, app): > app.build() tests/test_autodocsumm.py:55: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3/dist-packages/sphinx/testing/util.py:205: in build super().build(force_all, filenames) /usr/lib/python3/dist-packages/sphinx/application.py:377: in build self.builder.build_update() /usr/lib/python3/dist-packages/sphinx/builders/__init__.py:297: in build_update self.build(to_build, /usr/lib/python3/dist-packages/sphinx/builders/__init__.py:318: in build updated_docnames = set(self.read()) /usr/lib/python3/dist-packages/sphinx/builders/__init__.py:425: in read self._read_serial(docnames) /usr/lib/python3/dist-packages/sphinx/builders/__init__.py:477: in _read_serial self.read_doc(docname) /usr/lib/python3/dist-packages/sphinx/builders/__init__.py:536: in read_doc publisher.publish() /usr/lib/python3/dist-packages/docutils/core.py:234: in publish self.document = self.reader.read(self.source, self.parser, /usr/lib/python3/dist-packages/sphinx/io.py:106: in read self.parse() /usr/lib/python3/dist-packages/docutils/readers/__init__.py:76: in parse self.parser.parse(self.input, document) /usr/lib/python3/dist-packages/sphinx/parsers.py:83: in parse self.statemachine.run(inputlines, document, inliner=self.inliner) /usr/lib/python3/dist-packages/docutils/parsers/rst/states.py:170: in run results = StateMachineWS.run(self, input_lines, input_offset, /usr/lib/python3/dist-packages/docutils/statemachine.py:233: in run context, next_state, result = self.check_line( /usr/lib/python3/dist-packages/docutils/statemachine.py:445: in check_line return method(match, context, next_state) /usr/lib/python3/dist-packages/docutils/parsers/rst/states.py:2791: in underline self.section(title, source, style, lineno - 1, messages) /usr/lib/python3/dist-packages/docutils/parsers/rst/states.py:326: in section self.new_subsection(title, lineno, messages) /usr/lib/python3/dist-packages/docutils/parsers/rst/states.py:392: in new_subsection newabsoffset = self.nested_parse( /usr/lib/python3/dist-packages/docutils/parsers/rst/states.py:280: in nested_parse state_machine.run(block, input_offset, memo=self.memo, /usr/lib/python3/dist-packages/docutils/parsers/rst/states.py:196: in run results = StateMachineWS.run(self, input_lines, input_offset) /usr/lib/python3/dist-packages/docutils/statemachine.py:233: in run context, next_state, result = self.check_line( /usr/lib/python3/dist-packages/docutils/statemachine.py:445: in check_line return method(match, context, next_state) /usr/lib/python3/dist-packages/docutils/parsers/rst/states.py:2358: in explicit_markup nodelist, blank_finish = self.explicit_construct(match) /usr/lib/python3/dist-packages/docutils/parsers/rst/states.py:2370: in explicit_construct return method(self, expmatch) /usr/lib/python3/dist-packages/docutils/parsers/rst/states.py:2107: in directive return self.run_directive( /usr/lib/python3/dist-packages/docutils/parsers/rst/states.py:2157: in run_directive result = directive_instance.run() /usr/lib/python3/dist-packages/sphinx/ext/autodoc/directive.py:137: in run documenter.generate(more_content=self.content) /usr/lib/python3/dist-packages/sphinx/ext/autodoc/__init__.py:971: in generate self.document_members(all_members) /usr/lib/python3/dist-packages/sphinx/ext/autodoc/__init__.py:845: in document_members documenter.generate( /usr/lib/python3/dist-packages/sphinx/ext/autodoc/__init__.py:935: in generate docstrings: list[str] = functools.reduce(operator.iadd, self.get_doc() or [], []) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <autodocsumm.NoDataDataDocumenter object at 0xffffb93ae890>, args = () kwargs = {}, content = 'both' docstrings = ["str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the give...ined)\nor repr(object).\nencoding defaults to 'utf-8'.\nerrors defaults to 'strict'.\nThe type of the None singleton."] docstring = "str(object='') -> str\nstr(bytes_or_buffer[, encoding[, errors]]) -> str\n\nCreate a new string object from the given...fined)\nor repr(object).\nencoding defaults to 'utf-8'.\nerrors defaults to 'strict'.\nThe type of the None singleton." calldocstring = 'The type of the None singleton.', doc = [] def get_doc(self, *args, **kwargs): """Reimplemented to include data from the call method""" content = self.env.config.autodata_content if content not in ('both', 'call') or not self.get_attr( self.get_attr(self.object, '__call__', None), '__doc__'): return super(CallableDataDocumenter, self).get_doc( *args, **kwargs ) # for classes, what the "docstring" is can be controlled via a # config value; the default is both docstrings docstrings = [] if content != 'call': docstring = self.get_attr(self.object, '__doc__', None) docstrings = [docstring + '\n'] if docstring else [] calldocstring = self.get_attr( self.get_attr(self.object, '__call__', None), '__doc__') if docstrings: docstrings[0] += calldocstring else: docstrings.append(calldocstring + '\n') doc = [] for docstring in docstrings: if not isinstance(docstring, str): docstring = force_decode(docstring, encoding) > doc.append(prepare_docstring(docstring, ignore)) E NameError: name 'ignore' is not defined autodocsumm/__init__.py:459: NameError --------------------------- Captured stdout teardown --------------------------- # testroot: root # builder: html # srcdir: /tmp/pytest-of-debusine-worker/pytest-0/root # outdir: /tmp/pytest-of-debusine-worker/pytest-0/root/_build/html # status: [01mRunning Sphinx v7.4.7[39;49;00m [01mloading translations [en]... [39;49;00mdone [autosummary] generating autosummary for: index.rst, test_autoclasssumm.rst, test_autoclasssumm_inline.rst, test_autoclasssumm_no_titles.rst, test_autoclasssumm_nosignatures.rst, test_autoclasssumm_some_sections.rst, test_automodulesumm.rst, test_automodulesumm_nosignatures.rst, test_automodulesumm_some_sections.rst, test_class.rst, ..., test_class_submodule.rst, test_class_summary_only.rst, test_empty.rst, test_inherited.rst, test_module.rst, test_module_no_nesting.rst, test_module_nosignatures.rst, test_module_submodule.rst, test_module_summary_only.rst, test_module_title.rst [01mbuilding [mo]: [39;49;00mtargets for 0 po files that are out of date [01mwriting output... [39;49;00m [01mbuilding [html]: [39;49;00mtargets for 22 source files that are out of date [01mupdating environment: [39;49;00m[new config] 22 added, 0 changed, 0 removed [01mreading sources... [39;49;00m[ 5%] [35mindex[39;49;00m [01mreading sources... [39;49;00m[ 9%] [35mtest_autoclasssumm[39;49;00m [01mreading sources... [39;49;00m[ 14%] [35mtest_autoclasssumm_inline[39;49;00m [01mreading sources... [39;49;00m[ 18%] [35mtest_autoclasssumm_no_titles[39;49;00m [01mreading sources... [39;49;00m[ 23%] [35mtest_autoclasssumm_nosignatures[39;49;00m [01mreading sources... [39;49;00m[ 27%] [35mtest_autoclasssumm_some_sections[39;49;00m [01mreading sources... [39;49;00m[ 32%] [35mtest_automodulesumm[39;49;00m [01mreading sources... [39;49;00m[ 36%] [35mtest_automodulesumm_nosignatures[39;49;00m [01mreading sources... [39;49;00m[ 41%] [35mtest_automodulesumm_some_sections[39;49;00m [01mreading sources... [39;49;00m[ 45%] [35mtest_class[39;49;00m [01mreading sources... [39;49;00m[ 50%] [35mtest_class_nosignatures[39;49;00m [01mreading sources... [39;49;00m[ 55%] [35mtest_class_order[39;49;00m [01mreading sources... [39;49;00m[ 59%] [35mtest_class_submodule[39;49;00m [01mreading sources... [39;49;00m[ 64%] [35mtest_class_summary_only[39;49;00m [01mreading sources... [39;49;00m[ 68%] [35mtest_empty[39;49;00m [01mreading sources... [39;49;00m[ 73%] [35mtest_inherited[39;49;00m [01mreading sources... [39;49;00m[ 77%] [35mtest_module[39;49;00m # warning: [91mWARNING: Summarised items should not include the current module. Replace 'dummy.TestClassWithInlineAutoClassSumm.test_method_of_inline_test' with 'test_method_of_inline_test'.[39;49;00m [91mWARNING: Summarised items should not include the current module. Replace 'dummy.TestClassWithInlineAutoClassSumm.test_method_of_inline_test' with 'TestClassWithInlineAutoClassSumm.test_method_of_inline_test'.[39;49;00m [91m/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_autodocsumm/build/tests/test-root/dummy.py:docstring of dummy.TestClass:1: WARNING: duplicate object description of dummy.TestClass, other instance in test_class, use :no-index: for one of them[39;49;00m [91m/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_autodocsumm/build/tests/test-root/dummy.py:docstring of dummy.TestClass:1: WARNING: duplicate object description of dummy.TestClass, other instance in test_class_nosignatures, use :no-index: for one of them[39;49;00m [91m/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_autodocsumm/build/tests/test-root/dummy.py:docstring of dummy.TestClass.instance_attribute:1: WARNING: duplicate object description of dummy.TestClass.instance_attribute, other instance in test_class, use :no-index: for one of them[39;49;00m [91m/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_autodocsumm/build/tests/test-root/dummy.py:docstring of dummy.TestClass.test_method:1: WARNING: duplicate object description of dummy.TestClass.test_method, other instance in test_class, use :no-index: for one of them[39;49;00m [91m/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_autodocsumm/build/tests/test-root/dummy.py:docstring of dummy.TestClass.test_method_args_kwargs:1: WARNING: duplicate object description of dummy.TestClass.test_method_args_kwargs, other instance in test_class, use :no-index: for one of them[39;49;00m [91m/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_autodocsumm/build/tests/test-root/dummy.py:docstring of dummy.TestClass.InnerClass:1: WARNING: duplicate object description of dummy.TestClass.InnerClass, other instance in test_class, use :no-index: for one of them[39;49;00m [91m/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_autodocsumm/build/tests/test-root/dummy.py:docstring of dummy.TestClass.test_attr:1: WARNING: duplicate object description of dummy.TestClass.test_attr, other instance in test_class, use :no-index: for one of them[39;49;00m [91m/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_autodocsumm/build/tests/test-root/dummy.py:docstring of dummy.TestClass.class_caller:1: WARNING: duplicate object description of dummy.TestClass.class_caller, other instance in test_class, use :no-index: for one of them[39;49;00m [91m/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_autodocsumm/build/tests/test-root/dummy.py:docstring of dummy.TestClass.large_data:1: WARNING: duplicate object description of dummy.TestClass.large_data, other instance in test_class, use :no-index: for one of them[39;49;00m [91m/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_autodocsumm/build/tests/test-root/dummy.py:docstring of dummy.TestClass.small_data:1: WARNING: duplicate object description of dummy.TestClass.small_data, other instance in test_class, use :no-index: for one of them[39;49;00m [91m/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_autodocsumm/build/tests/test-root/dummy.py:docstring of dummy.TestClass:1: WARNING: duplicate object description of dummy.TestClass, other instance in test_class_order, use :no-index: for one of them[39;49;00m etc. If required, the full build log is available here (for the next 30 days): https://debusine.debian.net/artifact/781073/ This bug has been filed at "normal" severity, as we haven't started the transition to add 3.13 as a supported version, yet. This will be raised to RC as soon as that happens, hopefully well before trixie. Thanks, Stefano

