Read the Docs build information Build id: 170475 Project: icb-anndata Version: latest Commit: 8b602a7691dc4ab5bbef8f0443ccbccee085c94e Date: 2018-12-28T13:03:09.686378Z State: finished Success: False [rtd-command-info] start-time: 2018-12-28T13:03:10.146652Z, end-time: 2018-12-28T13:03:10.151875Z, duration: 0, exit-code: 0 git remote set-url origin https://github.com/theislab/anndata.git [rtd-command-info] start-time: 2018-12-28T13:03:10.211069Z, end-time: 2018-12-28T13:03:10.476103Z, duration: 0, exit-code: 0 git fetch --depth 50 --tags --prune --prune-tags From https://github.com/theislab/anndata 6557c86..8b602a7 master -> origin/master [rtd-command-info] start-time: 2018-12-28T13:03:10.676240Z, end-time: 2018-12-28T13:03:10.685771Z, duration: 0, exit-code: 0 git checkout --force origin/master Previous HEAD position was 6557c86 fixed type annotation for AnnData constructor HEAD is now at 8b602a7 cleaned up conf.py [rtd-command-info] start-time: 2018-12-28T13:03:10.766663Z, end-time: 2018-12-28T13:03:10.774143Z, duration: 0, exit-code: 0 git clean -d -f -f [rtd-command-info] start-time: 2018-12-28T13:03:11.401667Z, end-time: 2018-12-28T13:03:14.891714Z, 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 Not overwriting existing python script /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/bin/python (you must use /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/bin/python3.6) Installing setuptools, pip, wheel...done. [rtd-command-info] start-time: 2018-12-28T13:03:14.963685Z, end-time: 2018-12-28T13:03:15.618255Z, duration: 0, exit-code: 0 python pip install --upgrade --cache-dir /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/.cache/pip pip Requirement already up-to-date: pip in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages [rtd-command-info] start-time: 2018-12-28T13:03:15.687431Z, end-time: 2018-12-28T13:03:18.074467Z, duration: 2, 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 Requirement already up-to-date: Pygments==2.2.0 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages Requirement already up-to-date: setuptools<40 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages Requirement already up-to-date: docutils==0.13.1 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages Requirement already up-to-date: mock==1.0.1 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages Requirement already up-to-date: pillow==2.6.1 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages Requirement already up-to-date: alabaster!=0.7.5,<0.8,>=0.7 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages Requirement already up-to-date: commonmark==0.5.4 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages Requirement already up-to-date: recommonmark==0.4.0 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages Requirement already up-to-date: sphinx<1.8 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages Requirement already up-to-date: sphinx-rtd-theme<0.5 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages Requirement already up-to-date: readthedocs-sphinx-ext<0.6 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages Requirement already up-to-date: snowballstemmer>=1.1 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from sphinx<1.8) Requirement already up-to-date: Jinja2>=2.3 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from sphinx<1.8) Requirement already up-to-date: requests>=2.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from sphinx<1.8) Requirement already up-to-date: sphinxcontrib-websupport in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from sphinx<1.8) Requirement already up-to-date: babel!=2.0,>=1.3 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from sphinx<1.8) Requirement already up-to-date: six>=1.5 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from sphinx<1.8) Requirement already up-to-date: packaging in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from sphinx<1.8) Requirement already up-to-date: imagesize in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from sphinx<1.8) Requirement already up-to-date: MarkupSafe>=0.23 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from Jinja2>=2.3->sphinx<1.8) Requirement already up-to-date: certifi>=2017.4.17 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from requests>=2.0.0->sphinx<1.8) Requirement already up-to-date: idna<2.9,>=2.5 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from requests>=2.0.0->sphinx<1.8) Requirement already up-to-date: chardet<3.1.0,>=3.0.2 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from requests>=2.0.0->sphinx<1.8) Requirement already up-to-date: urllib3<1.25,>=1.21.1 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from requests>=2.0.0->sphinx<1.8) Requirement already up-to-date: pytz>=0a in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from babel!=2.0,>=1.3->sphinx<1.8) Requirement already up-to-date: pyparsing>=2.0.2 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from packaging->sphinx<1.8) [rtd-command-info] start-time: 2018-12-28T13:03:18.144250Z, end-time: 2018-12-28T13:03:18.827505Z, duration: 0, exit-code: 0 python pip install --exists-action=w --cache-dir /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/.cache/pip -r docs/requires.txt Requirement already satisfied: sphinx~=1.7.3 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from -r docs/requires.txt (line 2)) Requirement already satisfied: sphinx-autodoc-typehints in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from -r docs/requires.txt (line 3)) Requirement already satisfied: pandas~=0.21 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from -r docs/requires.txt (line 5)) Requirement already satisfied: scipy in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from -r docs/requires.txt (line 6)) Requirement already satisfied: h5py in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from -r docs/requires.txt (line 7)) Requirement already satisfied: natsort in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from -r docs/requires.txt (line 8)) Requirement already satisfied: imagesize in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from sphinx~=1.7.3->-r docs/requires.txt (line 2)) Requirement already satisfied: packaging in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from sphinx~=1.7.3->-r docs/requires.txt (line 2)) Requirement already satisfied: Jinja2>=2.3 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from sphinx~=1.7.3->-r docs/requires.txt (line 2)) Requirement already satisfied: requests>=2.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from sphinx~=1.7.3->-r docs/requires.txt (line 2)) Requirement already satisfied: six>=1.5 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from sphinx~=1.7.3->-r docs/requires.txt (line 2)) Requirement already satisfied: setuptools in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from sphinx~=1.7.3->-r docs/requires.txt (line 2)) Requirement already satisfied: Pygments>=2.0 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from sphinx~=1.7.3->-r docs/requires.txt (line 2)) Requirement already satisfied: babel!=2.0,>=1.3 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from sphinx~=1.7.3->-r docs/requires.txt (line 2)) Requirement already satisfied: snowballstemmer>=1.1 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from sphinx~=1.7.3->-r docs/requires.txt (line 2)) Requirement already satisfied: alabaster<0.8,>=0.7 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from sphinx~=1.7.3->-r docs/requires.txt (line 2)) Requirement already satisfied: docutils>=0.11 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from sphinx~=1.7.3->-r docs/requires.txt (line 2)) Requirement already satisfied: sphinxcontrib-websupport in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from sphinx~=1.7.3->-r docs/requires.txt (line 2)) Requirement already satisfied: python-dateutil>=2.5.0 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from pandas~=0.21->-r docs/requires.txt (line 5)) 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->-r docs/requires.txt (line 5)) Requirement already satisfied: numpy>=1.9.0 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from pandas~=0.21->-r docs/requires.txt (line 5)) Requirement already satisfied: pyparsing>=2.0.2 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from packaging->sphinx~=1.7.3->-r docs/requires.txt (line 2)) Requirement already satisfied: MarkupSafe>=0.23 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from Jinja2>=2.3->sphinx~=1.7.3->-r docs/requires.txt (line 2)) Requirement already satisfied: urllib3<1.25,>=1.21.1 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from requests>=2.0.0->sphinx~=1.7.3->-r docs/requires.txt (line 2)) Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from requests>=2.0.0->sphinx~=1.7.3->-r docs/requires.txt (line 2)) Requirement already satisfied: idna<2.9,>=2.5 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from requests>=2.0.0->sphinx~=1.7.3->-r docs/requires.txt (line 2)) Requirement already satisfied: certifi>=2017.4.17 in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages (from requests>=2.0.0->sphinx~=1.7.3->-r docs/requires.txt (line 2)) [rtd-command-info] start-time: 2018-12-28T13:03:19.303774Z, end-time: 2018-12-28T13:03:19.363728Z, duration: 0, exit-code: 0 cat docs/conf.py import os import sys import time import inspect from pathlib import Path, PurePosixPath from typing import Optional, Union, Mapping 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_rtype = False napoleon_use_param = True napoleon_custom_sections = [('Params', 'Parameters')] intersphinx_mapping = dict( python=('https://docs.python.org/3', None), h5py=('http://docs.h5py.org/en/latest/', None), numpy=('https://docs.scipy.org/doc/numpy/', None), scipy=('https://docs.scipy.org/doc/scipy/reference/', None), pandas=('http://pandas.pydata.org/pandas-docs/stable/', None), sklearn=('https://scikit-learn.org/stable/', None), ) templates_path = ['_templates'] source_suffix = '.rst' master_doc = 'index' project = 'anndata' author = 'Alex Wolf, Philipp Angerer, Sergei Rybakov' copyright = f'{datetime.now():%Y}, {author}.' 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/custom.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'] # Output file base name for HTML help builder. htmlhelp_basename = 'anndatadoc' # -- Options for other output --------------------------------------- man_pages = [ (master_doc, 'anndata', 'anndata Documentation', [author], 1) ] 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 # -- Override some classnames in autodoc -------------------------------------------- # This makes sure that automatically documented links actually # end up being links instead of pointing nowhere. import sphinx_autodoc_typehints qualname_overrides = { 'anndata.base.AnnData': 'anndata.AnnData', 'pandas.core.frame.DataFrame': 'pandas.DataFrame', 'scipy.sparse.base.spmatrix': 'scipy.sparse.spmatrix', 'scipy.sparse.csr.csr_matrix': 'scipy.sparse.csr_matrix', 'scipy.sparse.csc.csc_matrix': 'scipy.sparse.csc_matrix', } fa_orig = sphinx_autodoc_typehints.format_annotation def format_annotation(annotation): # display `Union[A, B]` as `A, B` if getattr(annotation, '__origin__', None) is Union or hasattr(annotation, '__union_params__'): params = getattr(annotation, '__union_params__', None) or getattr(annotation, '__args__', None) # never use the `Optional` keyword in the displayed docs, instead, use the more verbose `, None` # as is the convention in the other large numerical packages # if len(params or []) == 2 and getattr(params[1], '__qualname__', None) == 'NoneType': # return fa_orig(annotation) # Optional[...] return ', '.join(map(format_annotation, params)) # do not show the arguments of Mapping if getattr(annotation, '__origin__', None) is Mapping: return ':class:`~typing.Mapping`' if inspect.isclass(annotation): full_name = '{}.{}'.format(annotation.__module__, annotation.__qualname__) override = qualname_overrides.get(full_name) if override is not None: return f':py:class:`~{override}`' return fa_orig(annotation) sphinx_autodoc_typehints.format_annotation = format_annotation # -- Change default role -------------------------------------------- from docutils.parsers.rst import roles roles.DEFAULT_INTERPRETED_ROLE = 'literal' # -- 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 importlib 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 = ( ( 'html_theme' in globals() and html_theme in ['default'] and # Allow people to bail with a hack of having an html_style 'html_style' not in globals() ) or 'html_theme' not in globals() ) if using_rtd_theme: theme = importlib.import_module('sphinx_rtd_theme') html_theme = 'sphinx_rtd_theme' html_style = None html_theme_options = {} if 'html_theme_path' in globals(): html_theme_path.append(theme.get_html_theme_path()) else: html_theme_path = [theme.get_html_theme_path()] 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': [ ("htmlzip", "//readthedocs.com/projects/icb-anndata/downloads/htmlzip/latest/"), ], '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': '', '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': '8b602a76', } 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-12-28T13:03:19.431527Z, end-time: 2018-12-28T13:03:20.267752Z, duration: 0, exit-code: 2 python sphinx-build -T -E -b readthedocs -d _build/doctrees-readthedocs -D language=en . _build/html Running Sphinx v1.7.9 Traceback (most recent call last): File "/home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages/sphinx/config.py", line 161, in __init__ execfile_(filename, config) File "/home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages/sphinx/util/pycompat.py", line 150, in execfile_ exec_(code, _globals) File "conf.py", line 68, in copyright = f'{datetime.now():%Y}, {author}.' NameError: name 'datetime' is not defined 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 163, in __init__ confoverrides or {}, self.tags) File "/home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages/sphinx/config.py", line 167, in __init__ raise ConfigError(CONFIG_ERROR % traceback.format_exc()) sphinx.errors.ConfigError: There is a programable error in your configuration file: Traceback (most recent call last): File "/home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages/sphinx/config.py", line 161, in __init__ execfile_(filename, config) File "/home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages/sphinx/util/pycompat.py", line 150, in execfile_ exec_(code, _globals) File "conf.py", line 68, in copyright = f'{datetime.now():%Y}, {author}.' NameError: name 'datetime' is not defined Configuration error: There is a programable error in your configuration file: Traceback (most recent call last): File "/home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages/sphinx/config.py", line 161, in __init__ execfile_(filename, config) File "/home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/latest/lib/python3.6/site-packages/sphinx/util/pycompat.py", line 150, in execfile_ exec_(code, _globals) File "conf.py", line 68, in copyright = f'{datetime.now():%Y}, {author}.' NameError: name 'datetime' is not defined