Read the Docs build information Build id: 160094 Project: icb-scanpy Version: latest Commit: 66e64b40870035c3ee869e3baf34cf7110508d85 Date: 2018-11-16T09:17:27.002192Z State: finished Success: False [rtd-command-info] start-time: 2018-11-16T15:17:27.460985Z, end-time: 2018-11-16T15:17:28.989464Z, duration: 1, exit-code: 0 git clone https://github.com/theislab/scanpy.git . Cloning into '.'... [rtd-command-info] start-time: 2018-11-16T15:17:29.059939Z, end-time: 2018-11-16T15:17:29.158267Z, 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 66e64b4 Hook up leiden in tl and fix its docs [rtd-command-info] start-time: 2018-11-16T15:17:29.226621Z, end-time: 2018-11-16T15:17:29.234142Z, duration: 0, exit-code: 0 git clean -d -f -f [rtd-command-info] start-time: 2018-11-16T15:17:29.329166Z, end-time: 2018-11-16T15:17:29.336109Z, duration: 0, exit-code: 0 git branch -r origin/HEAD -> origin/master origin/VolkerBergen-patch-1 origin/hvg origin/kbet origin/master origin/norml origin/version0 [rtd-command-info] start-time: 2018-11-16T15:17:29.998353Z, end-time: 2018-11-16T15:17:32.773097Z, duration: 2, 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-scanpy/envs/latest/bin/python3.6 Also creating executable in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/bin/python Installing setuptools, pip, wheel...done. [rtd-command-info] start-time: 2018-11-16T15:17:32.837326Z, end-time: 2018-11-16T15:17:58.140595Z, duration: 25, exit-code: 0 python pip install --upgrade --cache-dir /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/.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/10/ad/00b090d23a222943eb0eda509720a404f531a439e803f6538f35136cae9e/alabaster-0.7.12-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/ef/0c/e4a462190506bc4bff6ca8cf93da07b2d13e540466d2e8a760352d0c69b0/sphinx_rtd_theme-0.4.2-py2.py3-none-any.whl (6.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 imagesize (from sphinx<1.8) Downloading https://files.pythonhosted.org/packages/fc/b6/aef66b4c52a6ad6ac18cf6ebc5731ed06d8c9ae4d3b2d9951f261150be67/imagesize-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 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 requests>=2.0.0 (from sphinx<1.8) Downloading https://files.pythonhosted.org/packages/ff/17/5cbb026005115301a8fb2f9b0e3e8d32313142fe8b617070e7baad20554f/requests-2.20.1-py2.py3-none-any.whl (57kB) 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 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 packaging (from sphinx<1.8) Downloading https://files.pythonhosted.org/packages/89/d1/92e6df2e503a69df9faab187c684585f0136662c12bb1f36901d426f3fab/packaging-18.0-py2.py3-none-any.whl Collecting pytz>=0a (from babel!=2.0,>=1.3->sphinx<1.8) Downloading https://files.pythonhosted.org/packages/f8/0e/2365ddc010afb3d79147f1dd544e5ee24bf4ece58ab99b16fbb465ce6dc0/pytz-2018.7-py2.py3-none-any.whl (506kB) Collecting certifi>=2017.4.17 (from requests>=2.0.0->sphinx<1.8) Downloading https://files.pythonhosted.org/packages/56/9d/1d02dd80bc4cd955f98980f28c5ee2200e1209292d5f9e9cc8d030d18655/certifi-2018.10.15-py2.py3-none-any.whl (146kB) 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.25,>=1.21.1 (from requests>=2.0.0->sphinx<1.8) Downloading https://files.pythonhosted.org/packages/62/00/ee1d7de624db8ba7090d1226aebefab96a2c71cd5cfa7629d6ad3f61b79e/urllib3-1.24.1-py2.py3-none-any.whl (118kB) 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 MarkupSafe>=0.23 (from Jinja2>=2.3->sphinx<1.8) Downloading https://files.pythonhosted.org/packages/08/04/f2191b50fb7f0712f03f064b71d8b4605190f2178ba02e975a87f7b89a0d/MarkupSafe-1.1.0-cp36-cp36m-manylinux1_x86_64.whl Collecting pyparsing>=2.0.2 (from packaging->sphinx<1.8) Downloading https://files.pythonhosted.org/packages/71/e8/6777f6624681c8b9701a8a0a5654f3eb56919a01a78e12bf3c73f5a3c714/pyparsing-2.3.0-py2.py3-none-any.whl (59kB) Building wheels for collected packages: mock, pillow, commonmark 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-scanpy/.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-scanpy/.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-scanpy/.cache/pip/wheels/a0/f4/35/019d917f6875107ade3aad634c982f5c6b604c5631cddf20ac Successfully built mock pillow commonmark Installing collected packages: Pygments, setuptools, docutils, mock, pillow, alabaster, commonmark, recommonmark, imagesize, pytz, babel, six, snowballstemmer, certifi, chardet, urllib3, idna, requests, sphinxcontrib-websupport, MarkupSafe, Jinja2, pyparsing, packaging, 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.1.0 Pygments-2.2.0 alabaster-0.7.12 babel-2.6.0 certifi-2018.10.15 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.3.0 pytz-2018.7 readthedocs-sphinx-ext-0.5.15 recommonmark-0.4.0 requests-2.20.1 setuptools-39.2.0 six-1.11.0 snowballstemmer-1.2.1 sphinx-1.7.9 sphinx-rtd-theme-0.4.2 sphinxcontrib-websupport-1.1.0 urllib3-1.24.1 You are using pip version 9.0.3, however version 18.1 is available. You should consider upgrading via the 'pip install --upgrade pip' command. [rtd-command-info] start-time: 2018-11-16T15:17:58.212928Z, end-time: 2018-11-16T15:18:33.590472Z, duration: 35, exit-code: 0 python pip install --exists-action=w --cache-dir /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/.cache/pip -r docs/requires.txt Requirement already satisfied: sphinx_rtd_theme>=0.3.1 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from -r docs/requires.txt (line 2)) Collecting sphinx-autodoc-typehints (from -r docs/requires.txt (line 3)) Downloading https://files.pythonhosted.org/packages/ae/22/970e106fd0921055412f5f4c0d01d6f35f5573e8e496ee2c10d8bf3e7ca8/sphinx_autodoc_typehints-1.5.0-py3-none-any.whl Collecting anndata>=0.6.7 (from -r docs/requires.txt (line 5)) Downloading https://files.pythonhosted.org/packages/3a/a9/9d5254204900249993fd8b63f97fd02a1b70b4008a3da3704cc3b0920713/anndata-0.6.13-py3-none-any.whl (41kB) Collecting matplotlib>=2.2 (from -r docs/requires.txt (line 6)) Downloading https://files.pythonhosted.org/packages/71/07/16d781df15be30df4acfd536c479268f1208b2dfbc91e9ca5d92c9caf673/matplotlib-3.0.2-cp36-cp36m-manylinux1_x86_64.whl (12.9MB) Collecting pandas>=0.21 (from -r docs/requires.txt (line 7)) Downloading https://files.pythonhosted.org/packages/e1/d8/feeb346d41f181e83fba45224ab14a8d8af019b48af742e047f3845d8cff/pandas-0.23.4-cp36-cp36m-manylinux1_x86_64.whl (8.9MB) Collecting scipy (from -r docs/requires.txt (line 8)) Downloading https://files.pythonhosted.org/packages/a8/0b/f163da98d3a01b3e0ef1cab8dd2123c34aee2bafbb1c5bffa354cc8a1730/scipy-1.1.0-cp36-cp36m-manylinux1_x86_64.whl (31.2MB) Collecting seaborn (from -r docs/requires.txt (line 9)) Downloading https://files.pythonhosted.org/packages/a8/76/220ba4420459d9c4c9c9587c6ce607bf56c25b3d3d2de62056efe482dadc/seaborn-0.9.0-py3-none-any.whl (208kB) Collecting h5py (from -r docs/requires.txt (line 10)) Downloading https://files.pythonhosted.org/packages/8e/cb/726134109e7bd71d98d1fcc717ffe051767aac42ede0e7326fd1787e5d64/h5py-2.8.0-cp36-cp36m-manylinux1_x86_64.whl (2.8MB) Collecting tables (from -r docs/requires.txt (line 11)) Downloading https://files.pythonhosted.org/packages/d7/1b/21f4c7f296b718575c17ef25e61c05742a283c45077b4c8d5a190b3e0b59/tables-3.4.4-cp36-cp36m-manylinux1_x86_64.whl (3.8MB) Collecting scikit-learn>=0.19.1 (from -r docs/requires.txt (line 12)) Downloading https://files.pythonhosted.org/packages/0c/b2/05be9b6da9ae4a4c54f537be22e95833f722742a02b1e355fdc09363877c/scikit_learn-0.20.0-cp36-cp36m-manylinux1_x86_64.whl (5.3MB) Collecting networkx (from -r docs/requires.txt (line 14)) Downloading https://files.pythonhosted.org/packages/f3/f4/7e20ef40b118478191cec0b58c3192f822cace858c19505c7670961b76b2/networkx-2.2.zip (1.7MB) Collecting natsort (from -r docs/requires.txt (line 15)) Downloading https://files.pythonhosted.org/packages/e3/31/b937f858addee2e1a62f15842f0f3f07e9277aa87fb67fe9b9e28ac90d50/natsort-5.4.1-py2.py3-none-any.whl Collecting joblib (from -r docs/requires.txt (line 16)) Downloading https://files.pythonhosted.org/packages/0d/1b/995167f6c66848d4eb7eabc386aebe07a1571b397629b2eac3b7bebdc343/joblib-0.13.0-py2.py3-none-any.whl (276kB) Collecting numba (from -r docs/requires.txt (line 17)) Downloading https://files.pythonhosted.org/packages/42/45/8d5fc45e5f760ac65906ba48dec98e99e7920c96783ac7248c5e31c9464e/numba-0.40.1-cp36-cp36m-manylinux1_x86_64.whl (3.2MB) Requirement already satisfied: sphinx in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx_rtd_theme>=0.3.1->-r docs/requires.txt (line 2)) Collecting numpy~=1.14 (from anndata>=0.6.7->-r docs/requires.txt (line 5)) Downloading https://files.pythonhosted.org/packages/ff/7f/9d804d2348471c67a7d8b5f84f9bc59fd1cefa148986f2b74552f8573555/numpy-1.15.4-cp36-cp36m-manylinux1_x86_64.whl (13.9MB) Collecting python-dateutil>=2.1 (from matplotlib>=2.2->-r docs/requires.txt (line 6)) Downloading https://files.pythonhosted.org/packages/74/68/d87d9b36af36f44254a8d512cbfc48369103a3b9e474be9bdfe536abfc45/python_dateutil-2.7.5-py2.py3-none-any.whl (225kB) Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from matplotlib>=2.2->-r docs/requires.txt (line 6)) Collecting kiwisolver>=1.0.1 (from matplotlib>=2.2->-r docs/requires.txt (line 6)) Downloading https://files.pythonhosted.org/packages/69/a7/88719d132b18300b4369fbffa741841cfd36d1e637e1990f27929945b538/kiwisolver-1.0.1-cp36-cp36m-manylinux1_x86_64.whl (949kB) Collecting cycler>=0.10 (from matplotlib>=2.2->-r docs/requires.txt (line 6)) Downloading https://files.pythonhosted.org/packages/f7/d2/e07d3ebb2bd7af696440ce7e754c59dd546ffe1bbe732c8ab68b9c834e61/cycler-0.10.0-py2.py3-none-any.whl Requirement already satisfied: pytz>=2011k in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from pandas>=0.21->-r docs/requires.txt (line 7)) Requirement already satisfied: six in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from h5py->-r docs/requires.txt (line 10)) Collecting numexpr>=2.5.2 (from tables->-r docs/requires.txt (line 11)) Downloading https://files.pythonhosted.org/packages/db/ea/efd9e16283637eb5b6c0042b6cc3521f1b9a5b47767ac463c88bbd37670c/numexpr-2.6.8-cp36-cp36m-manylinux1_x86_64.whl (162kB) Collecting decorator>=4.3.0 (from networkx->-r docs/requires.txt (line 14)) Downloading https://files.pythonhosted.org/packages/bc/bb/a24838832ba35baf52f32ab1a49b906b5f82fb7c76b2f6a7e35e140bac30/decorator-4.3.0-py2.py3-none-any.whl Collecting llvmlite>=0.25.0dev0 (from numba->-r docs/requires.txt (line 17)) Downloading https://files.pythonhosted.org/packages/34/fb/f9c2e9e0ef2b54c52f0b727cf6af75b68c3d7ddb6d88c8d557b1b16bc1ab/llvmlite-0.25.0-cp36-cp36m-manylinux1_x86_64.whl (16.1MB) Requirement already satisfied: snowballstemmer>=1.1 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx->sphinx_rtd_theme>=0.3.1->-r docs/requires.txt (line 2)) Requirement already satisfied: imagesize in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx->sphinx_rtd_theme>=0.3.1->-r docs/requires.txt (line 2)) Requirement already satisfied: sphinxcontrib-websupport in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx->sphinx_rtd_theme>=0.3.1->-r docs/requires.txt (line 2)) Requirement already satisfied: packaging in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx->sphinx_rtd_theme>=0.3.1->-r docs/requires.txt (line 2)) Requirement already satisfied: docutils>=0.11 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx->sphinx_rtd_theme>=0.3.1->-r docs/requires.txt (line 2)) Requirement already satisfied: alabaster<0.8,>=0.7 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx->sphinx_rtd_theme>=0.3.1->-r docs/requires.txt (line 2)) Requirement already satisfied: Jinja2>=2.3 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx->sphinx_rtd_theme>=0.3.1->-r docs/requires.txt (line 2)) Requirement already satisfied: requests>=2.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx->sphinx_rtd_theme>=0.3.1->-r docs/requires.txt (line 2)) Requirement already satisfied: babel!=2.0,>=1.3 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx->sphinx_rtd_theme>=0.3.1->-r docs/requires.txt (line 2)) Requirement already satisfied: Pygments>=2.0 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx->sphinx_rtd_theme>=0.3.1->-r docs/requires.txt (line 2)) Requirement already satisfied: setuptools in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from sphinx->sphinx_rtd_theme>=0.3.1->-r docs/requires.txt (line 2)) Requirement already satisfied: MarkupSafe>=0.23 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from Jinja2>=2.3->sphinx->sphinx_rtd_theme>=0.3.1->-r docs/requires.txt (line 2)) Requirement already satisfied: idna<2.8,>=2.5 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from requests>=2.0.0->sphinx->sphinx_rtd_theme>=0.3.1->-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-scanpy/envs/latest/lib/python3.6/site-packages (from requests>=2.0.0->sphinx->sphinx_rtd_theme>=0.3.1->-r docs/requires.txt (line 2)) Requirement already satisfied: urllib3<1.25,>=1.21.1 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from requests>=2.0.0->sphinx->sphinx_rtd_theme>=0.3.1->-r docs/requires.txt (line 2)) Requirement already satisfied: certifi>=2017.4.17 in /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages (from requests>=2.0.0->sphinx->sphinx_rtd_theme>=0.3.1->-r docs/requires.txt (line 2)) Building wheels for collected packages: networkx Running setup.py bdist_wheel for networkx: started Running setup.py bdist_wheel for networkx: finished with status 'done' Stored in directory: /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/.cache/pip/wheels/68/f8/29/b53346a112a07d30a5a84d53f19aeadaa1a474897c0423af91 Successfully built networkx Installing collected packages: sphinx-autodoc-typehints, natsort, numpy, scipy, h5py, python-dateutil, pandas, anndata, kiwisolver, cycler, matplotlib, seaborn, numexpr, tables, scikit-learn, decorator, networkx, joblib, llvmlite, numba Successfully installed anndata-0.6.13 cycler-0.10.0 decorator-4.3.0 h5py-2.8.0 joblib-0.13.0 kiwisolver-1.0.1 llvmlite-0.25.0 matplotlib-3.0.2 natsort-5.4.1 networkx-2.2 numba-0.40.1 numexpr-2.6.8 numpy-1.15.4 pandas-0.23.4 python-dateutil-2.7.5 scikit-learn-0.20.0 scipy-1.1.0 seaborn-0.9.0 sphinx-autodoc-typehints-1.5.0 tables-3.4.4 You are using pip version 9.0.3, however version 18.1 is available. You should consider upgrading via the 'pip install --upgrade pip' command. [rtd-command-info] start-time: 2018-11-16T15:18:34.074818Z, end-time: 2018-11-16T15:18:34.140574Z, duration: 0, exit-code: 0 cat docs/conf.py import sys import inspect import logging from pathlib import Path from datetime import datetime from typing import Optional from sphinx.application import Sphinx from sphinx.ext import autosummary # remove PyCharm’s old six module if 'six' in sys.modules: print(*sys.path, sep='\n') for pypath in list(sys.path): if any(p in pypath for p in ['PyCharm', 'pycharm']) and 'helpers' in pypath: sys.path.remove(pypath) del sys.modules['six'] import matplotlib # noqa # Don’t use tkinter agg when importing scanpy → … → matplotlib matplotlib.use('agg') HERE = Path(__file__).parent sys.path.insert(0, str(HERE.parent)) import scanpy.api # noqa logger = logging.getLogger(__name__) # -- General configuration ------------------------------------------------ needs_sphinx = '1.7' # autosummary bugfix extensions = [ 'sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.coverage', 'sphinx.ext.mathjax', 'sphinx.ext.autosummary', # 'plot_generator', # 'plot_directive', 'sphinx.ext.napoleon', 'sphinx_autodoc_typehints', 'sphinx.ext.intersphinx', # 'ipython_directive', # 'ipython_console_highlighting', ] # Generate the API documentation when building autosummary_generate = True # both of the following two lines don't work # see falexwolf's issue for numpydoc # autodoc_member_order = 'bysource' # autodoc_default_flags = ['members'] napoleon_google_docstring = False napoleon_numpy_docstring = True napoleon_include_init_with_doc = False napoleon_use_rtype = False napoleon_custom_sections = [('Params', 'Parameters')] intersphinx_mapping = dict( python=('https://docs.python.org/3', 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), matplotlib=('https://matplotlib.org/', None), anndata=('https://anndata.readthedocs.io/en/latest/', None), leidenalg=('https://leidenalg.readthedocs.io/en/latest/', None), ) templates_path = ['_templates'] source_suffix = '.rst' master_doc = 'index' project = 'Scanpy' author = 'Alex Wolf, Philipp Angerer, Fidel Ramirez, Isaac Virshup, Davide Cittaro, Gokcen Eraslan, Tom White, Tobias Callies, Andrés R. Muñoz-Rojas.' copyright = f'{datetime.now():%Y}, {author}' version = scanpy.__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 = dict( navigation_depth=2, ) html_context = dict( display_github=True, # Integrate GitHub github_user='theislab', # Username github_repo='scanpy', # Repo name github_version='master', # Version conf_py_path='/docs/', # Path in the checkout to the docs root ) html_static_path = ['_static'] def setup(app): app.add_stylesheet('css/custom.css') # -- Options for other output formats ------------------------------------------ htmlhelp_basename = 'Scanpydoc' latex_documents = [ (master_doc, 'Scanpy.tex', 'Scanpy Documentation', 'Alex Wolf, Philipp Angerer', 'manual'), ] man_pages = [ (master_doc, 'scanpy', 'Scanpy Documentation', [author], 1) ] texinfo_documents = [ (master_doc, 'Scanpy', 'Scanpy Documentation', author, 'Scanpy', 'One line description of project.', 'Miscellaneous'), ] # -- generate_options override ------------------------------------------ # TODO: why? def process_generate_options(app: Sphinx): genfiles = app.config.autosummary_generate if genfiles and not hasattr(genfiles, '__len__'): env = app.builder.env genfiles = [ env.doc2path(x, base=None) for x in env.found_docs if Path(env.doc2path(x)).is_file() ] if not genfiles: return from sphinx.ext.autosummary.generate import generate_autosummary_docs ext = app.config.source_suffix genfiles = [ genfile + (not genfile.endswith(tuple(ext)) and ext[0] or '') for genfile in genfiles ] suffix = autosummary.get_rst_suffix(app) if suffix is None: return generate_autosummary_docs( genfiles, builder=app.builder, warn=logger.warning, info=logger.info, suffix=suffix, base_path=app.srcdir, imported_members=True, app=app, ) autosummary.process_generate_options = process_generate_options # -- GitHub URLs for class and method pages ------------------------------------------ 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: str) -> str: """Get the full GitHub URL for some object’s qualname.""" obj, module = get_obj_module(qualname) github_url = github_url1 try: path = Path(module.__file__).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 = f'#L{start}-L{end}' if start and end else '' return f'{github_url}/{path}{fragment}' def api_image(qualname: str) -> Optional[str]: # I’d like to make this a contextfilter, but the jinja context doesn’t contain the path, # so no chance to not hardcode “api/” here. path = Path(__file__).parent / 'api' / f'{qualname}.png' print(path, path.is_file()) return f'.. image:: {path.name}\n :width: 200\n :align: right' if path.is_file() else '' # 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.update(modurl=modurl, api_image=api_image) # -- Override some classnames in autodoc -------------------------------------------- import sphinx_autodoc_typehints qualname_overrides = { 'anndata.base.AnnData': 'anndata.AnnData', '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): if inspect.isclass(annotation): full_name = '{}.{}'.format(annotation.__module__, annotation.__qualname__) override = qualname_overrides.get(full_name) if override is not None: return ':py:class:`~{}`'.format(qualname_overrides[full_name]) return fa_orig(annotation) sphinx_autodoc_typehints.format_annotation = format_annotation # -- 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): text_node, = fieldtype # type: nodes.Text head += makerefs(self.typerolename, text_node.astext(), 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-scanpy/downloads/htmlzip/latest/"), ], 'subprojects': [ ], 'slug': 'icb-scanpy', 'name': u'scanpy', 'rtd_language': u'en', 'programming_language': u'py', 'canonical_url': 'https://icb-scanpy.readthedocs-hosted.com/en/latest/', 'analytics_code': '', 'single_version': False, 'conf_py_path': '/docs/', 'api_host': 'https://readthedocs.com', 'github_user': 'theislab', 'github_repo': 'scanpy', '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': '66e64b40', } 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-11-16T15:18:34.203537Z, end-time: 2018-11-16T15:18:41.251301Z, duration: 7, exit-code: 2 python sphinx-build -T -E -b readthedocs -d _build/doctrees-readthedocs -D language=en . _build/html Running Sphinx v1.7.9 /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/bin /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python36.zip /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6 /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/lib-dynload /home/docs/.pyenv/versions/3.6.2/lib/python3.6 /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages loading translations [en]... done Traceback (most recent call last): File "/home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/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-scanpy/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-scanpy/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-scanpy/envs/latest/lib/python3.6/site-packages/sphinx/registry.py", line 326, in load_extension metadata = mod.setup(app) File "/home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages/sphinx_autodoc_typehints.py", line 228, in setup app.connect('config-inited', config_ready) File "/home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages/sphinx/application.py", line 427, in connect listener_id = self.events.connect(event, callback) File "/home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/envs/latest/lib/python3.6/site-packages/sphinx/events.py", line 63, in connect raise ExtensionError(__('Unknown event name: %s') % name) sphinx.errors.ExtensionError: Unknown event name: config-inited Extension error: Unknown event name: config-inited