Skip to content

Docs don't build with traitlets 5 #351

Closed
@bollwyvl

Description

@bollwyvl

Thanks again for this repo!

Over on #349, I'm running into some issues with building the docs when traitlets >=5 is installed:

reading sources... [  3%] api/animation/KeyframeTrack_autogen                                                                                                                                 
Exception occurred:
  File "/home/weg/projects/pythreejs_/envs/default/lib/python3.8/site-packages/traitlets/traitlets.py", line 2303, in _choices_str
    choices = repr(list(choices))
TypeError: 'EnumNamespace' object is not iterable
The full traceback has been saved in /tmp/sphinx-err-ta2gvsye.log, if you want to report the issue to the developers.

Here's a CI log. If i bump back down to traitlets <5, the problem goes away.

here's one of those logs
cat /tmp/sphinx-err-ta2gvsye.log
# Sphinx version: 3.5.1
# Python version: 3.8.8 (CPython)
# Docutils version: 0.16 release
# Jinja2 version: 2.11.3
# Last messages:
#   reading sources... [  0%] api/_base/Preview
#   reading sources... [  0%] api/_base/Renderable
#   reading sources... [  1%] api/_base/Three
#   reading sources... [  1%] api/_base/index
#   reading sources... [  1%] api/animation/AnimationAction_autogen
#   reading sources... [  2%] api/animation/AnimationClip_autogen
#   reading sources... [  2%] api/animation/AnimationMixer_autogen
#   reading sources... [  3%] api/animation/AnimationObjectGroup_autogen
#   reading sources... [  3%] api/animation/AnimationUtils_autogen
#   reading sources... [  3%] api/animation/KeyframeTrack_autogen
# Loaded extensions:
#   sphinx.ext.mathjax (3.5.1) from ~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/sphinx/ext/mathjax.py
#   sphinxcontrib.applehelp (1.0.2) from ~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/sphinxcontrib/applehelp/__init__.py
#   sphinxcontrib.devhelp (1.0.2) from ~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/sphinxcontrib/devhelp/__init__.py
#   sphinxcontrib.htmlhelp (1.0.3) from ~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/sphinxcontrib/htmlhelp/__init__.py
#   sphinxcontrib.serializinghtml (1.1.4) from ~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/sphinxcontrib/serializinghtml/__init__.py
#   sphinxcontrib.qthelp (1.0.3) from ~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/sphinxcontrib/qthelp/__init__.py
#   alabaster (0.7.12) from ~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/alabaster/__init__.py
#   sphinx.ext.autodoc.type_comment (3.5.1) from ~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/sphinx/ext/autodoc/type_comment.py
#   sphinx.ext.autodoc (3.5.1) from ~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/sphinx/ext/autodoc/__init__.py
#   sphinx.ext.viewcode (3.5.1) from ~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/sphinx/ext/viewcode.py
#   sphinx.ext.intersphinx (3.5.1) from ~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/sphinx/ext/intersphinx.py
#   sphinx.ext.napoleon (3.5.1) from ~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/sphinx/ext/napoleon/__init__.py
#   sphinx.ext.todo (3.5.1) from ~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/sphinx/ext/todo.py
#   autodoc_traits (unknown version) from ~/projects/pythreejs_/pythreejs/docs/sphinxext/autodoc_traits.py
#   nbsphinx (0.8.1) from ~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/nbsphinx.py
#   nbsphinx_link (1.3.0) from ~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/nbsphinx_link/__init__.py
Traceback (most recent call last):
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/sphinx/cmd/build.py", line 280, in build_main
    app.build(args.force_all, filenames)
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/sphinx/application.py", line 352, in build
    self.builder.build_update()
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 296, in build_update
    self.build(to_build,
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 310, in build
    updated_docnames = set(self.read())
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 417, in read
    self._read_serial(docnames)
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 438, in _read_serial
    self.read_doc(docname)
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 478, in read_doc
    doctree = read_doc(self.app, self.env, self.env.doc2path(docname))
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/sphinx/io.py", line 221, in read_doc
    pub.publish()
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/docutils/core.py", line 217, in publish
    self.document = self.reader.read(self.source, self.parser,
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/sphinx/io.py", line 126, in read
    self.parse()
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/docutils/readers/__init__.py", line 77, in parse
    self.parser.parse(self.input, document)
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/sphinx/parsers.py", line 104, in parse
    self.statemachine.run(inputlines, document, inliner=self.inliner)
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 170, in run
    results = StateMachineWS.run(self, input_lines, input_offset,
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/docutils/statemachine.py", line 241, in run
    context, next_state, result = self.check_line(
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/docutils/statemachine.py", line 459, in check_line
    return method(match, context, next_state)
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2769, in underline
    self.section(title, source, style, lineno - 1, messages)
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 327, in section
    self.new_subsection(title, lineno, messages)
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 393, in new_subsection
    newabsoffset = self.nested_parse(
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 281, in nested_parse
    state_machine.run(block, input_offset, memo=self.memo,
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 196, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/docutils/statemachine.py", line 241, in run
    context, next_state, result = self.check_line(
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/docutils/statemachine.py", line 459, in check_line
    return method(match, context, next_state)
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2344, in explicit_markup
    self.explicit_list(blank_finish)
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2369, in explicit_list
    newline_offset, blank_finish = self.nested_list_parse(
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 318, in nested_list_parse
    state_machine.run(block, input_offset, memo=self.memo,
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 196, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/docutils/statemachine.py", line 241, in run
    context, next_state, result = self.check_line(
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/docutils/statemachine.py", line 459, in check_line
    return method(match, context, next_state)
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2647, in explicit_markup
    nodelist, blank_finish = self.explicit_construct(match)
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2354, in explicit_construct
    return method(self, expmatch)
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2096, in directive
    return self.run_directive(
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2146, in run_directive
    result = directive_instance.run()
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/sphinx/ext/autodoc/directive.py", line 167, in run
    documenter.generate(more_content=self.content)
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/sphinx/ext/autodoc/__init__.py", line 1726, in generate
    return super().generate(more_content=more_content,
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/sphinx/ext/autodoc/__init__.py", line 970, in generate
    self.document_members(all_members)
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/sphinx/ext/autodoc/__init__.py", line 1717, in document_members
    super().document_members(all_members)
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/sphinx/ext/autodoc/__init__.py", line 828, in document_members
    members_check_module, members = self.get_object_members(want_all)
  File "~/projects/pythreejs_/pythreejs/docs/sphinxext/autodoc_traits.py", line 61, in get_object_members
    trait.__doc__ = trait.help or extended_trait_info(getattr(self.object, name))
  File "~/projects/pythreejs_/pythreejs/docs/sphinxext/autodoc_traits.py", line 33, in extended_trait_info
    return trait.info()
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/traitlets/traitlets.py", line 2314, in info
    return self._info(as_rst=False)
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/traitlets/traitlets.py", line 2311, in _info
    return 'any of %s%s' % (self._choices_str(as_rst), none)
  File "~/projects/pythreejs_/envs/default/lib/python3.8/site-packages/traitlets/traitlets.py", line 2303, in _choices_str
    choices = repr(list(choices))
TypeError: 'EnumNamespace' object is not iterable

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions