From 6d696758e43ed8d236d8c705b34b7243d2f620a2 Mon Sep 17 00:00:00 2001 From: Carol Willing Date: Fri, 6 Sep 2019 17:41:34 +0200 Subject: [PATCH 1/3] use autodoc-traits extension for docbuild --- docs/environment.yml | 1 + docs/requirements.txt | 1 + docs/source/conf.py | 3 +-- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/environment.yml b/docs/environment.yml index 2dbfd535..faa2f1ca 100644 --- a/docs/environment.yml +++ b/docs/environment.yml @@ -24,3 +24,4 @@ dependencies: - attrs>=17.4.0 - sphinx-copybutton - alabaster_jupyterhub + - autodoc-traits diff --git a/docs/requirements.txt b/docs/requirements.txt index 5f8b447a..44c782f0 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -2,6 +2,7 @@ # if you change this file -r ../requirements.txt alabaster_jupyterhub +autodoc-traits recommonmark==0.5.0 sphinx-copybutton sphinx>=1.7 diff --git a/docs/source/conf.py b/docs/source/conf.py index 6e83f379..45411969 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -17,7 +17,7 @@ extensions = [ 'sphinx.ext.autodoc', 'sphinx.ext.intersphinx', 'sphinx.ext.napoleon', - 'autodoc_traits', + 'autodoc-traits', 'sphinx_copybutton', ] @@ -37,7 +37,6 @@ from os.path import dirname docs = dirname(dirname(__file__)) root = dirname(docs) sys.path.insert(0, root) -sys.path.insert(0, os.path.join(docs, 'sphinxext')) import jupyterhub From 36a1ad0078a9f03d1c9655f85189fb2d25c92409 Mon Sep 17 00:00:00 2001 From: Carol Willing Date: Fri, 6 Sep 2019 17:42:32 +0200 Subject: [PATCH 2/3] remove sphinxext directory --- docs/sphinxext/autodoc_traits.py | 57 -------------------------------- 1 file changed, 57 deletions(-) delete mode 100644 docs/sphinxext/autodoc_traits.py diff --git a/docs/sphinxext/autodoc_traits.py b/docs/sphinxext/autodoc_traits.py deleted file mode 100644 index 3d54f8bb..00000000 --- a/docs/sphinxext/autodoc_traits.py +++ /dev/null @@ -1,57 +0,0 @@ -"""autodoc extension for configurable traits""" -from sphinx.domains.python import PyClassmember -from sphinx.ext.autodoc import AttributeDocumenter -from sphinx.ext.autodoc import ClassDocumenter -from traitlets import TraitType -from traitlets import Undefined - - -class ConfigurableDocumenter(ClassDocumenter): - """Specialized Documenter subclass for traits with config=True""" - - objtype = 'configurable' - directivetype = 'class' - - def get_object_members(self, want_all): - """Add traits with .tag(config=True) to members list""" - check, members = super().get_object_members(want_all) - get_traits = ( - self.object.class_own_traits - if self.options.inherited_members - else self.object.class_traits - ) - trait_members = [] - for name, trait in sorted(get_traits(config=True).items()): - # put help in __doc__ where autodoc will look for it - trait.__doc__ = trait.help - trait_members.append((name, trait)) - return check, trait_members + members - - -class TraitDocumenter(AttributeDocumenter): - objtype = 'trait' - directivetype = 'attribute' - member_order = 1 - priority = 100 - - @classmethod - def can_document_member(cls, member, membername, isattr, parent): - return isinstance(member, TraitType) - - def add_directive_header(self, sig): - default = self.object.get_default_value() - if default is Undefined: - default_s = '' - else: - default_s = repr(default) - self.options.annotation = 'c.{name} = {trait}({default})'.format( - name=self.format_name(), - trait=self.object.__class__.__name__, - default=default_s, - ) - super().add_directive_header(sig) - - -def setup(app): - app.add_autodocumenter(ConfigurableDocumenter) - app.add_autodocumenter(TraitDocumenter) From a239a25ae0499c49021e3e4cc368b8fd6f5c20c3 Mon Sep 17 00:00:00 2001 From: Carol Willing Date: Sat, 7 Sep 2019 02:19:19 +0200 Subject: [PATCH 3/3] fix case --- docs/source/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 45411969..5f8d3632 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -17,7 +17,7 @@ extensions = [ 'sphinx.ext.autodoc', 'sphinx.ext.intersphinx', 'sphinx.ext.napoleon', - 'autodoc-traits', + 'autodoc_traits', 'sphinx_copybutton', ]