Read the Docs build information Build id: 145809 Project: icb-anndata Version: latest Commit: e3e6c90027db19a231732b99a640976c8f1e810d Date: 2018-09-28T15:08:49.692409Z State: finished Success: False [rtd-command-info] start-time: 2018-09-28T20:08:50.221069Z, end-time: 2018-09-28T20:08:50.830407Z, duration: 0, exit-code: 0 git clone --recursive https://github.com/theislab/anndata.git . Cloning into '.'... [rtd-command-info] start-time: 2018-09-28T20:08:50.905167Z, end-time: 2018-09-28T20:08:50.914106Z, duration: 0, exit-code: 0 git checkout --force origin/master Note: checking out 'origin/master'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b HEAD is now at e3e6c90... Fixed build [rtd-command-info] start-time: 2018-09-28T20:08:50.975062Z, end-time: 2018-09-28T20:08:50.985982Z, duration: 0, exit-code: 0 git clean -d -f -f [rtd-command-info] start-time: 2018-09-28T20:08:51.097213Z, end-time: 2018-09-28T20:08:51.105466Z, duration: 0, exit-code: 0 git branch -r origin/2d origin/HEAD -> origin/master origin/backed origin/master [rtd-command-info] start-time: 2018-09-28T20:08:51.802967Z, end-time: 2018-09-28T20:08:54.983810Z, duration: 3, exit-code: 0 python3.6 -mvirtualenv --no-site-packages --no-download Using base prefix '/home/docs/.pyenv/versions/3.6.2' New python executable in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/bin/python3.6 Also creating executable in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/bin/python Installing setuptools, pip, wheel...done. [rtd-command-info] start-time: 2018-09-28T20:08:55.139686Z, end-time: 2018-09-28T20:09:20.544693Z, duration: 25, exit-code: 0 python pip install --upgrade --cache-dir /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/.cache/pip Pygments==2.2.0 setuptools<40 docutils==0.13.1 mock==1.0.1 pillow==2.6.1 alabaster>=0.7,<0.8,!=0.7.5 commonmark==0.5.4 recommonmark==0.4.0 sphinx<1.8 sphinx-rtd-theme<0.5 readthedocs-sphinx-ext<0.6 Collecting Pygments==2.2.0 Downloading https://files.pythonhosted.org/packages/02/ee/b6e02dc6529e82b75bb06823ff7d005b141037cb1416b10c6f00fc419dca/Pygments-2.2.0-py2.py3-none-any.whl (841kB) Collecting setuptools<40 Downloading https://files.pythonhosted.org/packages/7f/e1/820d941153923aac1d49d7fc37e17b6e73bfbd2904959fffbad77900cf92/setuptools-39.2.0-py2.py3-none-any.whl (567kB) Collecting docutils==0.13.1 Downloading https://files.pythonhosted.org/packages/7c/30/8fb30d820c012a6f701a66618ce065b6d61d08ac0a77e47fc7808dbaee47/docutils-0.13.1-py3-none-any.whl (536kB) Collecting mock==1.0.1 Downloading https://files.pythonhosted.org/packages/a2/52/7edcd94f0afb721a2d559a5b9aae8af4f8f2c79bc63fdbe8a8a6c9b23bbe/mock-1.0.1.tar.gz (818kB) Collecting pillow==2.6.1 Downloading https://files.pythonhosted.org/packages/9f/53/9dafa3a48ffa25f4e22f40df880b58b99ad53648f0990caf09b1824d5db2/Pillow-2.6.1.tar.gz (7.3MB) Collecting alabaster!=0.7.5,<0.8,>=0.7 Downloading https://files.pythonhosted.org/packages/6e/71/c3648cc2f675063dbe2d669004a59e4a5120172713a1de3c3b14144d4b31/alabaster-0.7.11-py2.py3-none-any.whl Collecting commonmark==0.5.4 Downloading https://files.pythonhosted.org/packages/4d/93/3808cbcebe94d205f55a9a32857df733a603339d32c46cd32669d808d964/CommonMark-0.5.4.tar.gz (120kB) Collecting recommonmark==0.4.0 Downloading https://files.pythonhosted.org/packages/df/a5/8ee4b84af7f997dfdba71254a88008cfc19c49df98983c9a4919e798f8ce/recommonmark-0.4.0-py2.py3-none-any.whl Collecting sphinx<1.8 Downloading https://files.pythonhosted.org/packages/90/f9/a0babe32c78480994e4f1b93315558f5ed756104054a7029c672a8d77b72/Sphinx-1.7.9-py2.py3-none-any.whl (1.9MB) Collecting sphinx-rtd-theme<0.5 Downloading https://files.pythonhosted.org/packages/87/30/7460f7b77b6e8a080dd3688f750fe5d5666c49358f8941449c5b128fa97d/sphinx_rtd_theme-0.4.1-py2.py3-none-any.whl (5.4MB) Collecting readthedocs-sphinx-ext<0.6 Downloading https://files.pythonhosted.org/packages/2b/c5/126eb75a57918bb3d2f858ddda05f5670d6f07bfa356bc8870e2885f6aac/readthedocs_sphinx_ext-0.5.15-py2.py3-none-any.whl Collecting packaging (from sphinx<1.8) Downloading https://files.pythonhosted.org/packages/89/d1/92e6df2e503a69df9faab187c684585f0136662c12bb1f36901d426f3fab/packaging-18.0-py2.py3-none-any.whl Collecting imagesize (from sphinx<1.8) Downloading https://files.pythonhosted.org/packages/fc/b6/aef66b4c52a6ad6ac18cf6ebc5731ed06d8c9ae4d3b2d9951f261150be67/imagesize-1.1.0-py2.py3-none-any.whl Collecting Jinja2>=2.3 (from sphinx<1.8) Downloading https://files.pythonhosted.org/packages/7f/ff/ae64bacdfc95f27a016a7bed8e8686763ba4d277a78ca76f32659220a731/Jinja2-2.10-py2.py3-none-any.whl (126kB) Collecting sphinxcontrib-websupport (from sphinx<1.8) Downloading https://files.pythonhosted.org/packages/52/69/3c2fbdc3702358c5b34ee25e387b24838597ef099761fc9a42c166796e8f/sphinxcontrib_websupport-1.1.0-py2.py3-none-any.whl Collecting babel!=2.0,>=1.3 (from sphinx<1.8) Downloading https://files.pythonhosted.org/packages/b8/ad/c6f60602d3ee3d92fbed87675b6fb6a6f9a38c223343ababdb44ba201f10/Babel-2.6.0-py2.py3-none-any.whl (8.1MB) Collecting six>=1.5 (from sphinx<1.8) Downloading https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl Collecting requests>=2.0.0 (from sphinx<1.8) Downloading https://files.pythonhosted.org/packages/65/47/7e02164a2a3db50ed6d8a6ab1d6d60b69c4c3fdf57a284257925dfc12bda/requests-2.19.1-py2.py3-none-any.whl (91kB) Collecting snowballstemmer>=1.1 (from sphinx<1.8) Downloading https://files.pythonhosted.org/packages/d4/6c/8a935e2c7b54a37714656d753e4187ee0631988184ed50c0cf6476858566/snowballstemmer-1.2.1-py2.py3-none-any.whl (64kB) Collecting pyparsing>=2.0.2 (from packaging->sphinx<1.8) Downloading https://files.pythonhosted.org/packages/42/47/e6d51aef3d0393f7d343592d63a73beee2a8d3d69c22b053e252c6cfacd5/pyparsing-2.2.1-py2.py3-none-any.whl (57kB) Collecting MarkupSafe>=0.23 (from Jinja2>=2.3->sphinx<1.8) Downloading https://files.pythonhosted.org/packages/4d/de/32d741db316d8fdb7680822dd37001ef7a448255de9699ab4bfcbdf4172b/MarkupSafe-1.0.tar.gz Collecting pytz>=0a (from babel!=2.0,>=1.3->sphinx<1.8) Downloading https://files.pythonhosted.org/packages/30/4e/27c34b62430286c6d59177a0842ed90dc789ce5d1ed740887653b898779a/pytz-2018.5-py2.py3-none-any.whl (510kB) Collecting certifi>=2017.4.17 (from requests>=2.0.0->sphinx<1.8) Downloading https://files.pythonhosted.org/packages/df/f7/04fee6ac349e915b82171f8e23cee63644d83663b34c539f7a09aed18f9e/certifi-2018.8.24-py2.py3-none-any.whl (147kB) Collecting idna<2.8,>=2.5 (from requests>=2.0.0->sphinx<1.8) Downloading https://files.pythonhosted.org/packages/4b/2a/0276479a4b3caeb8a8c1af2f8e4355746a97fab05a372e4a2c6a6b876165/idna-2.7-py2.py3-none-any.whl (58kB) Collecting chardet<3.1.0,>=3.0.2 (from requests>=2.0.0->sphinx<1.8) Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB) Collecting urllib3<1.24,>=1.21.1 (from requests>=2.0.0->sphinx<1.8) Downloading https://files.pythonhosted.org/packages/bd/c9/6fdd990019071a4a32a5e7cb78a1d92c53851ef4f56f62a3486e6a7d8ffb/urllib3-1.23-py2.py3-none-any.whl (133kB) Building wheels for collected packages: mock, pillow, commonmark, MarkupSafe Running setup.py bdist_wheel for mock: started Running setup.py bdist_wheel for mock: finished with status 'done' Stored in directory: /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/.cache/pip/wheels/7e/72/92/744b532c779242b57aab4bcba80c312b30c069bbd60025e7e6 Running setup.py bdist_wheel for pillow: started Running setup.py bdist_wheel for pillow: finished with status 'done' Stored in directory: /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/.cache/pip/wheels/de/0e/6b/556798d1ac8762a076ddff5b20f65b2e6cc2ae13b0e683c263 Running setup.py bdist_wheel for commonmark: started Running setup.py bdist_wheel for commonmark: finished with status 'done' Stored in directory: /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/.cache/pip/wheels/a0/f4/35/019d917f6875107ade3aad634c982f5c6b604c5631cddf20ac Running setup.py bdist_wheel for MarkupSafe: started Running setup.py bdist_wheel for MarkupSafe: finished with status 'done' Stored in directory: /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/.cache/pip/wheels/33/56/20/ebe49a5c612fffe1c5a632146b16596f9e64676768661e4e46 Successfully built mock pillow commonmark MarkupSafe Installing collected packages: Pygments, setuptools, docutils, mock, pillow, alabaster, commonmark, recommonmark, six, pyparsing, packaging, imagesize, MarkupSafe, Jinja2, sphinxcontrib-websupport, pytz, babel, certifi, idna, chardet, urllib3, requests, snowballstemmer, sphinx, sphinx-rtd-theme, readthedocs-sphinx-ext Found existing installation: setuptools 39.0.1 Uninstalling setuptools-39.0.1: Successfully uninstalled setuptools-39.0.1 Successfully installed Jinja2-2.10 MarkupSafe-1.0 Pygments-2.2.0 alabaster-0.7.11 babel-2.6.0 certifi-2018.8.24 chardet-3.0.4 commonmark-0.5.4 docutils-0.13.1 idna-2.7 imagesize-1.1.0 mock-1.0.1 packaging-18.0 pillow-2.6.1 pyparsing-2.2.1 pytz-2018.5 readthedocs-sphinx-ext-0.5.15 recommonmark-0.4.0 requests-2.19.1 setuptools-39.2.0 six-1.11.0 snowballstemmer-1.2.1 sphinx-1.7.9 sphinx-rtd-theme-0.4.1 sphinxcontrib-websupport-1.1.0 urllib3-1.23 You are using pip version 9.0.3, however version 18.0 is available. You should consider upgrading via the 'pip install --upgrade pip' command. [rtd-command-info] start-time: 2018-09-28T20:09:20.604310Z, end-time: 2018-09-28T20:09:36.629800Z, duration: 16, exit-code: 0 python pip install --exists-action=w --cache-dir /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/.cache/pip -r /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/checkouts/latest/requirements.txt Collecting pandas>=0.21.0 (from -r /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/checkouts/latest/requirements.txt (line 1)) Downloading https://files.pythonhosted.org/packages/e1/d8/feeb346d41f181e83fba45224ab14a8d8af019b48af742e047f3845d8cff/pandas-0.23.4-cp36-cp36m-manylinux1_x86_64.whl (8.9MB) Collecting numpy~=1.14.0 (from -r /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/checkouts/latest/requirements.txt (line 2)) Downloading https://files.pythonhosted.org/packages/e5/c4/395ebb218053ba44d64935b3729bc88241ec279915e72100c5979db10945/numpy-1.14.6-cp36-cp36m-manylinux1_x86_64.whl (13.8MB) Collecting scipy~=1.0 (from -r /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/checkouts/latest/requirements.txt (line 3)) Downloading https://files.pythonhosted.org/packages/a8/0b/f163da98d3a01b3e0ef1cab8dd2123c34aee2bafbb1c5bffa354cc8a1730/scipy-1.1.0-cp36-cp36m-manylinux1_x86_64.whl (31.2MB) Collecting h5py (from -r /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/checkouts/latest/requirements.txt (line 4)) Downloading https://files.pythonhosted.org/packages/8e/cb/726134109e7bd71d98d1fcc717ffe051767aac42ede0e7326fd1787e5d64/h5py-2.8.0-cp36-cp36m-manylinux1_x86_64.whl (2.8MB) Collecting natsort (from -r /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/checkouts/latest/requirements.txt (line 5)) Downloading https://files.pythonhosted.org/packages/e3/31/b937f858addee2e1a62f15842f0f3f07e9277aa87fb67fe9b9e28ac90d50/natsort-5.4.1-py2.py3-none-any.whl Collecting python-dateutil>=2.5.0 (from pandas>=0.21.0->-r /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/checkouts/latest/requirements.txt (line 1)) Downloading https://files.pythonhosted.org/packages/cf/f5/af2b09c957ace60dcfac112b669c45c8c97e32f94aa8b56da4c6d1682825/python_dateutil-2.7.3-py2.py3-none-any.whl (211kB) Requirement already satisfied: pytz>=2011k in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from pandas>=0.21.0->-r /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/checkouts/latest/requirements.txt (line 1)) Requirement already satisfied: six in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from h5py->-r /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/checkouts/latest/requirements.txt (line 4)) Installing collected packages: numpy, python-dateutil, pandas, scipy, h5py, natsort Successfully installed h5py-2.8.0 natsort-5.4.1 numpy-1.14.6 pandas-0.23.4 python-dateutil-2.7.3 scipy-1.1.0 You are using pip version 9.0.3, however version 18.0 is available. You should consider upgrading via the 'pip install --upgrade pip' command. [rtd-command-info] start-time: 2018-09-28T20:09:37.083137Z, end-time: 2018-09-28T20:09:37.159892Z, duration: 0, exit-code: 0 cat docs/conf.py import os import sys import time import inspect from pathlib import Path, PurePosixPath import logging HERE = Path(__file__).parent sys.path.insert(0, str(HERE / '..')) import anndata logger = logging.getLogger(__name__) for generated in HERE.glob('anndata.*.rst'): generated.unlink() # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. # # needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ 'sphinx.ext.autodoc', 'sphinx.ext.intersphinx', 'sphinx.ext.doctest', 'sphinx.ext.coverage', 'sphinx.ext.mathjax', 'sphinx.ext.napoleon', 'sphinx.ext.autosummary', # 'plot_generator', # 'plot_directive', 'sphinx_autodoc_typehints', # needs to be after napoleon # 'ipython_directive', # 'ipython_console_highlighting', ] # Generate the API documentation when building autosummary_generate = True autodoc_mock_imports = ['_tkinter'] # why this? autodoc_member_order = 'bysource' #autodoc_default_flags = ['members'] napoleon_use_param = True intersphinx_mapping = dict( python=('https://docs.python.org/3', None), h5py=('http://docs.h5py.org/en/latest/', None) ) templates_path = ['_templates'] source_suffix = '.rst' master_doc = 'index' project = 'anndata' copyright = '{}, Alex Wolf, Philipp Angerer, Sergei Rybakov'.format(time.strftime("%Y")) author = 'Alex Wolf, Philipp Angerer, Sergei Rybakov' version = anndata.__version__.replace('.dirty', '') release = version exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] pygments_style = 'sphinx' todo_include_todos = False # -- Options for HTML output ---------------------------------------------- html_theme = 'sphinx_rtd_theme' html_theme_options = { 'navigation_depth': 2, } html_context = { 'display_github': True, # Integrate GitHub 'github_user': 'theislab', # Username 'github_repo': 'anndata', # Repo name 'github_version': 'master', # Version 'conf_py_path': '/docs/', # Path in the checkout to the docs root 'css_files': [ # Additional CSS '_static/css/override.css', ], } if 'READTHEDOCS' in os.environ: # For some reason, RTD doesn’t insert their stuff anymore once we add custom CSS files. html_context['css_files'].insert(0, 'https://media.readthedocs.org/css/sphinx_rtd_theme.css') html_static_path = ['_static'] # -- Options for HTMLHelp output ------------------------------------------ # Output file base name for HTML help builder. htmlhelp_basename = 'anndatadoc' # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). # # 'papersize': 'letterpaper', # The font size ('10pt', '11pt' or '12pt'). # # 'pointsize': '10pt', # Additional stuff for the LaTeX preamble. # # 'preamble': '', # Latex figure (float) alignment # # 'figure_align': 'htbp', } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ (master_doc, 'anndata.tex', 'anndata Documentation', 'Alex Wolf, Philipp Angerer', 'manual'), ] # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ (master_doc, 'anndata', 'anndata Documentation', [author], 1) ] # -- Options for Texinfo output ------------------------------------------- # Grouping the document tree into Texinfo files. List of tuples # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ (master_doc, 'anndata', 'anndata Documentation', author, 'anndata', 'One line description of project.', 'Miscellaneous'), ] # -- GitHub links --------------------------------------------------------- def get_obj_module(qualname): """Get a module/class/attribute and its original module by qualname""" modname = qualname classname = None attrname = None while modname not in sys.modules: attrname = classname modname, classname = modname.rsplit('.', 1) # retrieve object and find original module name if classname: cls = getattr(sys.modules[modname], classname) modname = cls.__module__ obj = getattr(cls, attrname) if attrname else cls else: obj = None return obj, sys.modules[modname] def get_linenos(obj): """Get an object’s line numbers""" try: lines, start = inspect.getsourcelines(obj) except TypeError: return None, None else: return start, start + len(lines) - 1 project_dir = Path(__file__).parent.parent # project/docs/conf.py/../.. → project/ github_url1 = 'https://github.com/{github_user}/{github_repo}/tree/{github_version}'.format_map(html_context) github_url2 = 'https://github.com/theislab/anndata/tree/master' def modurl(qualname): """Get the full GitHub URL for some object’s qualname.""" obj, module = get_obj_module(qualname) github_url = github_url1 try: path = PurePosixPath(Path(module.__file__).resolve().relative_to(project_dir)) except ValueError: # trying to document something from another package github_url = github_url2 path = '/'.join(module.__file__.split('/')[-2:]) start, end = get_linenos(obj) fragment = '#L{}-L{}'.format(start, end) if start and end else '' return '{}/{}{}'.format(github_url, path, fragment) # html_context doesn’t apply to autosummary templates ☹ # and there’s no way to insert filters into those templates # so we have to modify the default filters from jinja2.defaults import DEFAULT_FILTERS DEFAULT_FILTERS['modurl'] = modurl # -- Prettier Param docs -------------------------------------------- from typing import Dict, List, Tuple from docutils import nodes from sphinx import addnodes from sphinx.domains.python import PyTypedField, PyObject from sphinx.environment import BuildEnvironment class PrettyTypedField(PyTypedField): list_type = nodes.definition_list def make_field( self, types: Dict[str, List[nodes.Node]], domain: str, items: Tuple[str, List[nodes.inline]], env: BuildEnvironment = None ) -> nodes.field: def makerefs(rolename, name, node): return self.make_xrefs(rolename, domain, name, node, env=env) def handle_item(fieldarg: str, content: List[nodes.inline]) -> nodes.definition_list_item: head = nodes.term() head += makerefs(self.rolename, fieldarg, addnodes.literal_strong) fieldtype = types.pop(fieldarg, None) if fieldtype is not None: head += nodes.Text(' : ') if len(fieldtype) == 1 and isinstance(fieldtype[0], nodes.Text): typename = ''.join(n.astext() for n in fieldtype) head += makerefs(self.typerolename, typename, addnodes.literal_emphasis) else: head += fieldtype body_content = nodes.paragraph('', '', *content) body = nodes.definition('', body_content) return nodes.definition_list_item('', head, body) fieldname = nodes.field_name('', self.label) if len(items) == 1 and self.can_collapse: fieldarg, content = items[0] bodynode = handle_item(fieldarg, content) else: bodynode = self.list_type() for fieldarg, content in items: bodynode += handle_item(fieldarg, content) fieldbody = nodes.field_body('', bodynode) return nodes.field('', fieldname, fieldbody) # replace matching field types with ours PyObject.doc_field_types = [ PrettyTypedField( ft.name, names=ft.names, typenames=ft.typenames, label=ft.label, rolename=ft.rolename, typerolename=ft.typerolename, can_collapse=ft.can_collapse, ) if isinstance(ft, PyTypedField) else ft for ft in PyObject.doc_field_types ] ########################################################################### # auto-created readthedocs.org specific configuration # ########################################################################### # # The following code was added during an automated build on readthedocs.org # It is auto created and injected for every build. The result is based on the # conf.py.tmpl file found in the readthedocs.org codebase: # https://github.com/rtfd/readthedocs.org/blob/master/readthedocs/doc_builder/templates/doc_builder/conf.py.tmpl # import sys import os.path from six import string_types from sphinx import version_info # Get suffix for proper linking to GitHub # This is deprecated in Sphinx 1.3+, # as each page can have its own suffix if globals().get('source_suffix', False): if isinstance(source_suffix, string_types): SUFFIX = source_suffix else: SUFFIX = source_suffix[0] else: SUFFIX = '.rst' # Add RTD Static Path. Add to the end because it overwrites previous files. if not 'html_static_path' in globals(): html_static_path = [] if os.path.exists('_static'): html_static_path.append('_static') html_static_path.append('/home/docs/checkouts/readthedocs.org/readthedocs/templates/sphinx/_static') # Add RTD Theme only if they aren't overriding it already using_rtd_theme = False if 'html_theme' in globals(): if html_theme in ['default']: # Allow people to bail with a hack of having an html_style if not 'html_style' in globals(): import sphinx_rtd_theme html_theme = 'sphinx_rtd_theme' html_style = None html_theme_options = {} if 'html_theme_path' in globals(): html_theme_path.append(sphinx_rtd_theme.get_html_theme_path()) else: html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] using_rtd_theme = True else: import sphinx_rtd_theme html_theme = 'sphinx_rtd_theme' html_style = None html_theme_options = {} if 'html_theme_path' in globals(): html_theme_path.append(sphinx_rtd_theme.get_html_theme_path()) else: html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] using_rtd_theme = True if globals().get('websupport2_base_url', False): websupport2_base_url = 'https://readthedocs.com/websupport' websupport2_static_url = 'https://media.readthedocs.com/' #Add project information to the template context. context = { 'using_theme': using_rtd_theme, 'html_theme': html_theme, 'current_version': "latest", 'version_slug': "latest", 'MEDIA_URL': "https://media.readthedocs.com/media/", 'STATIC_URL': "https://media.readthedocs.com/", 'PRODUCTION_DOMAIN': "readthedocs.com", 'versions': [ ("latest", "/en/latest/"), ("stable", "/en/stable/"), ], 'downloads': [ ], 'subprojects': [ ], 'slug': 'icb-anndata', 'name': u'anndata', 'rtd_language': u'en', 'programming_language': u'py', 'canonical_url': 'https://icb-anndata.readthedocs-hosted.com/en/latest/', 'analytics_code': 'None', 'single_version': False, 'conf_py_path': '/docs/', 'api_host': 'https://readthedocs.com', 'github_user': 'theislab', 'github_repo': 'anndata', 'github_version': 'master', 'display_github': True, 'bitbucket_user': 'None', 'bitbucket_repo': 'None', 'bitbucket_version': 'master', 'display_bitbucket': False, 'gitlab_user': 'None', 'gitlab_repo': 'None', 'gitlab_version': 'master', 'display_gitlab': False, 'READTHEDOCS': True, 'using_theme': (html_theme == "default"), 'new_theme': (html_theme == "sphinx_rtd_theme"), 'source_suffix': SUFFIX, 'ad_free': False, 'user_analytics_code': '', 'global_analytics_code': 'UA-17997319-2', 'commit': 'e3e6c900', } if 'html_context' in globals(): html_context.update(context) else: html_context = context # Add custom RTD extension if 'extensions' in globals(): # Insert at the beginning because it can interfere # with other extensions. # See https://github.com/rtfd/readthedocs.org/pull/4054 extensions.insert(0, "readthedocs_ext.readthedocs") else: extensions = ["readthedocs_ext.readthedocs"] [rtd-command-info] start-time: 2018-09-28T20:09:37.232929Z, end-time: 2018-09-28T20:09:38.495111Z, duration: 1, exit-code: 2 python sphinx-build -T -b readthedocs -d _build/doctrees-readthedocs -D language=en . _build/html Running Sphinx v1.7.9 loading translations [en]... done Traceback (most recent call last): File "/home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages/sphinx/registry.py", line 315, in load_extension mod = __import__(extname, None, None, ['setup']) ModuleNotFoundError: No module named 'sphinx_autodoc_typehints' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages/sphinx/cmdline.py", line 303, in main args.warningiserror, args.tags, args.verbosity, args.jobs) File "/home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages/sphinx/application.py", line 191, in __init__ self.setup_extension(extension) File "/home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages/sphinx/application.py", line 411, in setup_extension self.registry.load_extension(self, extname) File "/home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages/sphinx/registry.py", line 318, in load_extension raise ExtensionError(__('Could not import extension %s') % extname, err) sphinx.errors.ExtensionError: Could not import extension sphinx_autodoc_typehints (exception: No module named 'sphinx_autodoc_typehints') Extension error: Could not import extension sphinx_autodoc_typehints (exception: No module named 'sphinx_autodoc_typehints')