From: David Bremner Date: Sat, 11 Jul 2020 22:46:21 +0000 (-0300) Subject: doc: set up for autoapi / readthedocs compatibility X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=ec5e65eaf097d7b6cf265ba636b2929079caa47f;p=notmuch-old doc: set up for autoapi / readthedocs compatibility sphinx-autoapi seems nicer conceptually (it parses the docs rather than importing them), but it also generates a ton of warnings, so leave the default as autodoc. --- diff --git a/doc/conf.py b/doc/conf.py index 94e266af..c34c03ac 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -4,7 +4,28 @@ import sys import os -extensions = [ 'sphinx.ext.autodoc' ] +location = os.path.dirname(__file__) +bindings_path = os.path.join(location, '..', 'bindings', 'python-cffi','notmuch2') +exclude_patterns = ['_build'] + +# read generated config +for pathdir in ['.', '..']: + conf_file = os.path.join(location,pathdir,'sphinx.config') + if os.path.exists(conf_file): + with open(conf_file,'r') as infile: + exec(''.join(infile.readlines())) + +if tags.has("AUTOAPI") or os.environ.get('READTHEDOCS') == 'True': + extensions = [ 'autoapi.extension' ] + autoapi_dirs = [ bindings_path ] + autoapi_add_toctree_entry = False + exclude_patterns.append('python-autodoc.rst') +elif tags.has('WITH_PYTHON'): + extensions = [ 'sphinx.ext.autodoc' ] + sys.path.insert(0, bindings_path) + exclude_patterns.append('python-autoapi.rst') +else: + exclude_patterns.append('python-autodoc.rst', 'python-autoapi.rst') # The suffix of source filenames. source_suffix = '.rst' @@ -16,31 +37,15 @@ master_doc = 'index' project = u'notmuch' copyright = u'2009-2020, Carl Worth and many others' -location = os.path.dirname(__file__) - for pathdir in ['.', '..']: version_file = os.path.join(location,pathdir,'version') if os.path.exists(version_file): with open(version_file,'r') as infile: version=infile.read().replace('\n','') -# for autodoc -sys.path.insert(0, os.path.join(location, '..', 'bindings', 'python-cffi', 'notmuch2')) - -# read generated config -for pathdir in ['.', '..']: - conf_file = os.path.join(location,pathdir,'sphinx.config') - if os.path.exists(conf_file): - with open(conf_file,'r') as infile: - exec(''.join(infile.readlines())) - # The full version, including alpha/beta/rc tags. release = version -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = ['_build'] - if tags.has('WITH_EMACS'): # Hacky reimplementation of include to workaround limitations of # sphinx-doc @@ -55,9 +60,6 @@ else: # the docstring include files exclude_patterns.append('notmuch-emacs.rst') -if not tags.has('WITH_PYTHON'): - exclude_patterns.append('python-bindings.rst') - # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' diff --git a/doc/index.rst b/doc/index.rst index a3bf3480..3493d7b4 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -26,7 +26,8 @@ Contents: man7/notmuch-search-terms man1/notmuch-show man1/notmuch-tag - python-bindings + python-autodoc + python-autoapi Indices and tables ================== diff --git a/doc/python-autoapi.rst b/doc/python-autoapi.rst new file mode 100644 index 00000000..fb968874 --- /dev/null +++ b/doc/python-autoapi.rst @@ -0,0 +1,5 @@ +Python Bindings +=============== + +.. autoapimodule:: notmuch2 + :members: diff --git a/doc/python-autodoc.rst b/doc/python-autodoc.rst new file mode 100644 index 00000000..e1ad26ad --- /dev/null +++ b/doc/python-autodoc.rst @@ -0,0 +1,5 @@ +Python Bindings +=============== + +.. automodule:: notmuch2 + :members: diff --git a/doc/python-bindings.rst b/doc/python-bindings.rst deleted file mode 100644 index e1ad26ad..00000000 --- a/doc/python-bindings.rst +++ /dev/null @@ -1,5 +0,0 @@ -Python Bindings -=============== - -.. automodule:: notmuch2 - :members: diff --git a/doc/requirements.txt b/doc/requirements.txt new file mode 100644 index 00000000..519ccd35 --- /dev/null +++ b/doc/requirements.txt @@ -0,0 +1,2 @@ +# for readthedocs, or other standalone builds of the docs. +sphinx-autoapi