sphinx-doc / sphinx

The Sphinx documentation generator
https://www.sphinx-doc.org/
Other
6.19k stars 2.03k forks source link

AttributeError: 'PDFReader' object has no attribute '_xref' #10762

Open vincentBenet opened 1 year ago

vincentBenet commented 1 year ago

Describe the bug

Trying to build my sphinx documentation for my company project (can t share code...) When running it raise this log:

# Sphinx version: 5.1.1
# Python version: 3.10.5 (CPython)
# Docutils version: 0.17.1 release
# Jinja2 version: 3.1.2
# Last messages:
#   intro
#   settings
#   manage
#   check
#   calibration
#   cut
#   signal
#   mapmag
#   resolving references...
#   rendering...
# Loaded extensions:
#   sphinx.ext.mathjax (5.1.1) from /home/vince/.local/lib/python3.10/site-packages/sphinx/ext/mathjax.py
#   sphinxcontrib.applehelp (1.0.2) from /home/vince/.local/lib/python3.10/site-packages/sphinxcontrib/applehelp/__init__.py
#   sphinxcontrib.devhelp (1.0.2) from /home/vince/.local/lib/python3.10/site-packages/sphinxcontrib/devhelp/__init__.py
#   sphinxcontrib.htmlhelp (2.0.0) from /home/vince/.local/lib/python3.10/site-packages/sphinxcontrib/htmlhelp/__init__.py
#   sphinxcontrib.serializinghtml (1.1.5) from /home/vince/.local/lib/python3.10/site-packages/sphinxcontrib/serializinghtml/__init__.py
#   sphinxcontrib.qthelp (1.0.3) from /home/vince/.local/lib/python3.10/site-packages/sphinxcontrib/qthelp/__init__.py
#   alabaster (0.7.12) from /home/vince/.local/lib/python3.10/site-packages/alabaster/__init__.py
#   sphinx.ext.autodoc.preserve_defaults (1.0) from /home/vince/.local/lib/python3.10/site-packages/sphinx/ext/autodoc/preserve_defaults.py
#   sphinx.ext.autodoc.type_comment (5.1.1) from /home/vince/.local/lib/python3.10/site-packages/sphinx/ext/autodoc/type_comment.py
#   sphinx.ext.autodoc (5.1.1) from /home/vince/.local/lib/python3.10/site-packages/sphinx/ext/autodoc/__init__.py
#   sphinx.ext.napoleon (5.1.1) from /home/vince/.local/lib/python3.10/site-packages/sphinx/ext/napoleon/__init__.py
#   sphinx.ext.graphviz (5.1.1) from /home/vince/.local/lib/python3.10/site-packages/sphinx/ext/graphviz.py
#   myst_parser (0.18.0) from /home/vince/.local/lib/python3.10/site-packages/myst_parser/__init__.py
#   rinoh.frontend.sphinx (0.5.4) from /home/vince/.local/lib/python3.10/site-packages/rinoh/frontend/sphinx/__init__.py
Traceback (most recent call last):
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/backend/pdf/reader.py", line 310, in __getitem__
    obj = super().__getitem__(identifier)
KeyError: 23

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/vince/.local/lib/python3.10/site-packages/sphinx/cmd/build.py", line 277, in build_main
    app.build(args.force_all, filenames)
  File "/home/vince/.local/lib/python3.10/site-packages/sphinx/application.py", line 343, in build
    self.builder.build_all()
  File "/home/vince/.local/lib/python3.10/site-packages/sphinx/builders/__init__.py", line 265, in build_all
    self.build(None, summary=__('all source files'), method='all')
  File "/home/vince/.local/lib/python3.10/site-packages/sphinx/builders/__init__.py", line 367, in build
    self.write(docnames, list(updated_docnames), method)
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/frontend/sphinx/__init__.py", line 257, in write
    self.write_document(entry)
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/frontend/sphinx/__init__.py", line 267, in write_document
    rinoh_document.render(outfilename)
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/document.py", line 436, in render
    self.part_page_counts = self._render_pages()
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/document.py", line 478, in _render_pages
    part_page_count += part.render(part_page_count.count + 1)
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/template.py", line 461, in render
    page.render()
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/document.py", line 178, in render
    super().render(CONTENT, rerender=index > 0)
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/layout.py", line 197, in render
    child.render(type, rerender)
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/layout.py", line 197, in render
    child.render(type, rerender)
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/layout.py", line 306, in render
    self._render(type, rerender)
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/layout.py", line 366, in _render
    self.chain.render(self, rerender=rerender)
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/layout.py", line 637, in render
    self.flowables.flow(container, last_descender=None,
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/flowable.py", line 240, in flow
    self.flow_inner(margin_container, last_descender, state=state,
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/flowable.py", line 295, in flow_inner
    self.render(pad_cntnr, last_descender, state=state,
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/flowable.py", line 535, in render
    self._flow_with_next(state, container, descender,
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/flowable.py", line 572, in _flow_with_next
    flowable.flow(maybe_container, descender, state=flowable_state,
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/flowable.py", line 240, in flow
    self.flow_inner(margin_container, last_descender, state=state,
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/flowable.py", line 295, in flow_inner
    self.render(pad_cntnr, last_descender, state=state,
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/flowable.py", line 535, in render
    self._flow_with_next(state, container, descender,
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/flowable.py", line 572, in _flow_with_next
    flowable.flow(maybe_container, descender, state=flowable_state,
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/flowable.py", line 240, in flow
    self.flow_inner(margin_container, last_descender, state=state,
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/flowable.py", line 295, in flow_inner
    self.render(pad_cntnr, last_descender, state=state,
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/flowable.py", line 535, in render
    self._flow_with_next(state, container, descender,
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/flowable.py", line 572, in _flow_with_next
    flowable.flow(maybe_container, descender, state=flowable_state,
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/flowable.py", line 240, in flow
    self.flow_inner(margin_container, last_descender, state=state,
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/flowable.py", line 295, in flow_inner
    self.render(pad_cntnr, last_descender, state=state,
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/flowable.py", line 535, in render
    self._flow_with_next(state, container, descender,
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/flowable.py", line 572, in _flow_with_next
    flowable.flow(maybe_container, descender, state=flowable_state,
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/flowable.py", line 240, in flow
    self.flow_inner(margin_container, last_descender, state=state,
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/flowable.py", line 295, in flow_inner
    self.render(pad_cntnr, last_descender, state=state,
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/flowable.py", line 535, in render
    self._flow_with_next(state, container, descender,
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/flowable.py", line 572, in _flow_with_next
    flowable.flow(maybe_container, descender, state=flowable_state,
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/flowable.py", line 240, in flow
    self.flow_inner(margin_container, last_descender, state=state,
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/flowable.py", line 295, in flow_inner
    self.render(pad_cntnr, last_descender, state=state,
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/flowable.py", line 535, in render
    self._flow_with_next(state, container, descender,
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/flowable.py", line 572, in _flow_with_next
    flowable.flow(maybe_container, descender, state=flowable_state,
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/flowable.py", line 240, in flow
    self.flow_inner(margin_container, last_descender, state=state,
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/flowable.py", line 295, in flow_inner
    self.render(pad_cntnr, last_descender, state=state,
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/image.py", line 254, in render
    image = container.document.backend.Image(filename_or_file)
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/backend/pdf/__init__.py", line 401, in __init__
    self.xobject = Reader(filename_or_file)
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/backend/pdf/reader.py", line 529, in __init__
    pdf_file = PDFReader(file_or_filename)
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/backend/pdf/reader.py", line 285, in __init__
    self._xref, trailer = self.parse_xref_stream(xref_offset)
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/backend/pdf/reader.py", line 377, in parse_xref_stream
    identifier, xref_stream = self.parse_indirect_object(offset)
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/backend/pdf/reader.py", line 340, in parse_indirect_object
    obj = self.next_item(indirect=True)
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/backend/pdf/reader.py", line 92, in next_item
    item = self.read_dictionary_or_stream(indirect)
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/backend/pdf/reader.py", line 189, in read_dictionary_or_stream
    stream.update(dictionary)
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/backend/pdf/cos.py", line 325, in wrapper
    return method(obj, key, *args, **kwargs)
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/backend/pdf/cos.py", line 350, in __getitem__
    return super().__getitem__(key).object
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/backend/pdf/cos.py", line 98, in object
    return self.document[self.identifier]
  File "/home/vince/.local/lib/python3.10/site-packages/rinoh/backend/pdf/reader.py", line 312, in __getitem__
    obj = self[identifier] = self._xref.get_object(identifier)
AttributeError: 'PDFReader' object has no attribute '_xref'

How to Reproduce

The command send to generate documentation is sphinx-build -aq -b rinoh PATH_SOURCE PATH_BUILD

Here are the extensions I use in conf.py

extensions = [
    'sphinx.ext.napoleon',
    'sphinx.ext.graphviz',
    "myst_parser",
    "sphinx.ext.mathjax"
]

with this variable declaration:

rinoh_documents = [dict(doc='index', target='manual')]

Expected behavior

I just want it give me a pdf file containing the documentation

Your project

CANT SHARE

Screenshots

No response

OS

Linux 5.18.16-arch1-1

Python version

3.10.5

Sphinx version

AUR python-sphinx 5.1.1-1

Sphinx extensions

[ 'sphinx.ext.napoleon', 'sphinx.ext.graphviz', "myst_parser", "sphinx.ext.mathjax"]

Extra tools

No response

Additional context

No response

PabloAlexis611 commented 4 months ago

Found same error, seen in the rinohtype library, version 0.5.4 (same in this issue) when using sphinx.ext.graphviz extension (also in this issue) on MacOS using Python 3.11

image