Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

supporting sphinx-autodoc-typehints 2.3.x #2912

Open
mr-c opened this issue Sep 26, 2024 · 1 comment
Open

supporting sphinx-autodoc-typehints 2.3.x #2912

mr-c opened this issue Sep 26, 2024 · 1 comment

Comments

@mr-c
Copy link
Contributor

mr-c commented Sep 26, 2024

Hello, in Debian we already upgraded sphinx-autodoc-typehints to 2.3.0 and cherry-picking #2852 isn't enough to fix the build.

(we haven't upgraded to sphinx-autdoc-typehints 2.4.x because we are still on Sphinx 7.4.7, not 8.x)

See #2913 for a PR demonstrating the error

Details

reading sources... [ 14%] apidocs/rdflib.extras
Traceback (most recent call last):
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/sphinx/util/typing.py", line 270, in restify
    elif _is_annotated_form(cls):
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/sphinx/util/typing.py", line 195, in _is_annotated_form
    return typing.get_origin(obj) is Annotated or str(obj).startswith('typing.Annotated')
                                                  ^^^^^^^^
  File "/home/michael/src/rdflib/rdflib/namespace/__init__.py", line 286, in __str__
    return str(cls._NS)
               ^^^^^^^
  File "/home/michael/src/rdflib/rdflib/namespace/__init__.py", line 280, in __getattr__
    return cls.__getitem__(name)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/michael/src/rdflib/rdflib/namespace/__init__.py", line 258, in __getitem__
    raise AttributeError(
AttributeError: DefinedNamespace like object has no attribute '_NS'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/sphinx/util/inspect.py", line 492, in object_description
    s = repr(obj)
        ^^^^^^^^^
  File "/home/michael/src/rdflib/rdflib/namespace/__init__.py", line 283, in __repr__
    return f"Namespace({str(cls._NS)!r})"
                            ^^^^^^^
  File "/home/michael/src/rdflib/rdflib/namespace/__init__.py", line 280, in __getattr__
    return cls.__getitem__(name)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/michael/src/rdflib/rdflib/namespace/__init__.py", line 258, in __getitem__
    raise AttributeError(
AttributeError: DefinedNamespace like object has no attribute '_NS'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/sphinx/util/logging.py", line 266, in pending_warnings
    yield memhandler
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/sphinx/builders/__init__.py", line 318, in build
    updated_docnames = set(self.read())
                           ^^^^^^^^^^^
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/sphinx/builders/__init__.py", line 425, in read
    self._read_serial(docnames)
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/sphinx/builders/__init__.py", line 477, in _read_serial
    self.read_doc(docname)
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/sphinx/builders/__init__.py", line 536, in read_doc
    publisher.publish()
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/docutils/core.py", line 234, in publish
    self.document = self.reader.read(self.source, self.parser,
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/sphinx/io.py", line 106, in read
    self.parse()
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/docutils/readers/__init__.py", line 76, in parse
    self.parser.parse(self.input, document)
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/sphinx/parsers.py", line 83, in parse
    self.statemachine.run(inputlines, document, inliner=self.inliner)
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 169, in run
    results = StateMachineWS.run(self, input_lines, input_offset,
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run
    context, next_state, result = self.check_line(
                                  ^^^^^^^^^^^^^^^^
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line
    return method(match, context, next_state)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2785, in underline
    self.section(title, source, style, lineno - 1, messages)
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 325, in section
    self.new_subsection(title, lineno, messages)
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 391, in new_subsection
    newabsoffset = self.nested_parse(
                   ^^^^^^^^^^^^^^^^^^
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 279, in nested_parse
    state_machine.run(block, input_offset, memo=self.memo,
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 195, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run
    context, next_state, result = self.check_line(
                                  ^^^^^^^^^^^^^^^^
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line
    return method(match, context, next_state)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2785, in underline
    self.section(title, source, style, lineno - 1, messages)
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 325, in section
    self.new_subsection(title, lineno, messages)
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 391, in new_subsection
    newabsoffset = self.nested_parse(
                   ^^^^^^^^^^^^^^^^^^
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 279, in nested_parse
    state_machine.run(block, input_offset, memo=self.memo,
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 195, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/docutils/statemachine.py", line 233, in run
    context, next_state, result = self.check_line(
                                  ^^^^^^^^^^^^^^^^
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/docutils/statemachine.py", line 445, in check_line
    return method(match, context, next_state)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup
    nodelist, blank_finish = self.explicit_construct(match)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct
    return method(self, expmatch)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2104, in directive
    return self.run_directive(
           ^^^^^^^^^^^^^^^^^^^
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive
    result = directive_instance.run()
             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/sphinx/ext/autodoc/directive.py", line 137, in run
    documenter.generate(more_content=self.content)
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/sphinx/ext/autodoc/__init__.py", line 971, in generate
    self.document_members(all_members)
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/sphinx/ext/autodoc/__init__.py", line 845, in document_members
    documenter.generate(
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/sphinx/ext/autodoc/__init__.py", line 1918, in generate
    return super().generate(more_content=more_content,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/sphinx/ext/autodoc/__init__.py", line 961, in generate
    self.add_directive_header(sig)
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/sphinx/ext/autodoc/__init__.py", line 1739, in add_directive_header
    base_classes = [restify(cls, "smart") for cls in bases]
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/sphinx/ext/autodoc/__init__.py", line 1739, in <listcomp>
    base_classes = [restify(cls, "smart") for cls in bases]
                    ^^^^^^^^^^^^^^^^^^^^^
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/sphinx/util/typing.py", line 366, in restify
    return inspect.object_description(cls)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/sphinx/util/inspect.py", line 494, in object_description
    raise ValueError from exc
ValueError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/sphinx/cmd/build.py", line 337, in build_main
    app.build(args.force_all, args.filenames)
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/sphinx/application.py", line 378, in build
    self.builder.build_update()
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/sphinx/builders/__init__.py", line 297, in build_update
    self.build(to_build,
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/sphinx/builders/__init__.py", line 317, in build
    with logging.pending_warnings():
  File "/usr/lib/python3.11/contextlib.py", line 158, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/sphinx/util/logging.py", line 273, in pending_warnings
    memhandler.flushTo(logger)
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/sphinx/util/logging.py", line 238, in flushTo
    logger.handle(record)
  File "/usr/lib/python3.11/logging/__init__.py", line 1644, in handle
    self.callHandlers(record)
  File "/usr/lib/python3.11/logging/__init__.py", line 1706, in callHandlers
    hdlr.handle(record)
  File "/usr/lib/python3.11/logging/__init__.py", line 974, in handle
    rv = self.filter(record)
         ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/logging/__init__.py", line 830, in filter
    result = f.filter(record)
             ^^^^^^^^^^^^^^^^
  File "/home/michael/src/rdflib/.tox/docs/lib/python3.11/site-packages/sphinx/util/logging.py", line 473, in filter
    raise exc
sphinx.errors.SphinxWarning: Cannot resolve forward reference in type annotations of "rdflib.query.Result.__iter__": name '_SubjectType' is not defined

Warning, treated as error:
Cannot resolve forward reference in type annotations of "rdflib.query.Result.__iter__": name '_SubjectType' is not defined

@mr-c
Copy link
Contributor Author

mr-c commented Sep 26, 2024

Any help in fixing this would be appreciated!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant