Read the Docs build information Build id: 1553430 Project: canonical-lxd Version: latest Commit: 5a1c29dddc379114ad237a255843ebc37b5b9d38 Date: 2023-06-21T21:21:08.567935Z State: cancelled Success: False [rtd-command-info] start-time: 2023-06-21T21:21:10.574679Z, end-time: 2023-06-21T21:21:31.330456Z, duration: 20, exit-code: 0 git clone --no-single-branch --depth 50 https://github.com/lxc/lxd . Cloning into '.'... [rtd-command-info] start-time: 2023-06-21T21:21:31.556077Z, end-time: 2023-06-21T21:21:31.856922Z, duration: 0, exit-code: 0 git checkout --force origin/master Note: switching to '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 switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false HEAD is now at 5a1c29ddd Merge pull request #11869 from simondeziel/dependency-review [rtd-command-info] start-time: 2023-06-21T21:21:32.166033Z, end-time: 2023-06-21T21:21:32.259808Z, duration: 0, exit-code: 0 git clean -d -f -f [rtd-command-info] start-time: 2023-06-21T21:21:32.481534Z, end-time: 2023-06-21T21:21:32.552569Z, duration: 0, exit-code: 0 cat doc/.readthedocs.yaml # .readthedocs.yaml # Read the Docs configuration file # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details # Required version: 2 # Set the version of Python and other tools you might need build: os: ubuntu-22.04 tools: python: "3.11" # Build documentation in the docs/ directory with Sphinx sphinx: builder: dirhtml configuration: doc/conf.py fail_on_warning: true # If using Sphinx, optionally build your docs in additional formats such as PDF formats: - pdf # Optionally declare the Python requirements required to build your docs python: install: - requirements: doc/.sphinx/requirements.txt [rtd-command-info] start-time: 2023-06-21T21:21:39.431336Z, end-time: 2023-06-21T21:21:39.572647Z, duration: 0, exit-code: 0 asdf global python 3.11.0 [rtd-command-info] start-time: 2023-06-21T21:21:40.439857Z, end-time: 2023-06-21T21:21:41.617127Z, duration: 1, exit-code: 0 python -mvirtualenv $READTHEDOCS_VIRTUALENV_PATH created virtual environment CPython3.11.0.final.0-64 in 641ms creator CPython3Posix(dest=/home/docs/checkouts/readthedocs.org/user_builds/canonical-lxd/envs/latest, clear=False, no_vcs_ignore=False, global=False) seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/docs/.local/share/virtualenv) added seed packages: pip==21.2.3, setuptools==57.4.0, wheel==0.37.0 activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator [rtd-command-info] start-time: 2023-06-21T21:21:41.927390Z, end-time: 2023-06-21T21:21:54.388097Z, duration: 12, exit-code: 0 python -m pip install --upgrade --no-cache-dir pip setuptools Requirement already satisfied: pip in /home/docs/checkouts/readthedocs.org/user_builds/canonical-lxd/envs/latest/lib/python3.11/site-packages (21.2.3) Collecting pip Downloading pip-23.1.2-py3-none-any.whl (2.1 MB) Requirement already satisfied: setuptools in /home/docs/checkouts/readthedocs.org/user_builds/canonical-lxd/envs/latest/lib/python3.11/site-packages (57.4.0) Collecting setuptools Downloading setuptools-68.0.0-py3-none-any.whl (804 kB) Installing collected packages: setuptools, pip Attempting uninstall: setuptools Found existing installation: setuptools 57.4.0 Uninstalling setuptools-57.4.0: Successfully uninstalled setuptools-57.4.0 Attempting uninstall: pip Found existing installation: pip 21.2.3 Uninstalling pip-21.2.3: Successfully uninstalled pip-21.2.3 Successfully installed pip-23.1.2 setuptools-68.0.0 [rtd-command-info] start-time: 2023-06-21T21:21:54.614488Z, end-time: 2023-06-21T21:22:04.403997Z, duration: 9, exit-code: 0 python -m pip install --upgrade --no-cache-dir pillow mock==1.0.1 alabaster>=0.7,<0.8,!=0.7.5 commonmark==0.9.1 recommonmark==0.5.0 sphinx sphinx-rtd-theme readthedocs-sphinx-ext<2.3 Collecting pillow Downloading Pillow-9.5.0-cp311-cp311-manylinux_2_28_x86_64.whl (3.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.4/3.4 MB 16.2 MB/s eta 0:00:00 Collecting mock==1.0.1 Downloading mock-1.0.1.zip (861 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 861.9/861.9 kB 32.7 MB/s eta 0:00:00 Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Collecting alabaster!=0.7.5,<0.8,>=0.7 Downloading alabaster-0.7.13-py3-none-any.whl (13 kB) Collecting commonmark==0.9.1 Downloading commonmark-0.9.1-py2.py3-none-any.whl (51 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 51.1/51.1 kB 188.7 MB/s eta 0:00:00 Collecting recommonmark==0.5.0 Downloading recommonmark-0.5.0-py2.py3-none-any.whl (9.8 kB) Collecting sphinx Downloading sphinx-7.0.1-py3-none-any.whl (3.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.0/3.0 MB 41.1 MB/s eta 0:00:00 Collecting sphinx-rtd-theme Downloading sphinx_rtd_theme-1.2.2-py2.py3-none-any.whl (2.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.8/2.8 MB 59.7 MB/s eta 0:00:00 Collecting readthedocs-sphinx-ext<2.3 Downloading readthedocs_sphinx_ext-2.2.1-py2.py3-none-any.whl (11 kB) Collecting docutils>=0.11 (from recommonmark==0.5.0) Downloading docutils-0.20.1-py3-none-any.whl (572 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 572.7/572.7 kB 94.8 MB/s eta 0:00:00 Collecting sphinxcontrib-applehelp (from sphinx) Downloading sphinxcontrib_applehelp-1.0.4-py3-none-any.whl (120 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 120.6/120.6 kB 245.1 MB/s eta 0:00:00 Collecting sphinxcontrib-devhelp (from sphinx) Downloading sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl (84 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 84.7/84.7 kB 218.8 MB/s eta 0:00:00 Collecting sphinxcontrib-jsmath (from sphinx) Downloading sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl (5.1 kB) Collecting sphinxcontrib-htmlhelp>=2.0.0 (from sphinx) Downloading sphinxcontrib_htmlhelp-2.0.1-py3-none-any.whl (99 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 99.8/99.8 kB 227.3 MB/s eta 0:00:00 Collecting sphinxcontrib-serializinghtml>=1.1.5 (from sphinx) Downloading sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl (94 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 94.0/94.0 kB 217.6 MB/s eta 0:00:00 Collecting sphinxcontrib-qthelp (from sphinx) Downloading sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl (90 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 90.6/90.6 kB 222.9 MB/s eta 0:00:00 Collecting Jinja2>=3.0 (from sphinx) Downloading Jinja2-3.1.2-py3-none-any.whl (133 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.1/133.1 kB 232.0 MB/s eta 0:00:00 Collecting Pygments>=2.13 (from sphinx) Downloading Pygments-2.15.1-py3-none-any.whl (1.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 77.8 MB/s eta 0:00:00 Collecting snowballstemmer>=2.0 (from sphinx) Downloading snowballstemmer-2.2.0-py2.py3-none-any.whl (93 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 93.0/93.0 kB 209.8 MB/s eta 0:00:00 Collecting babel>=2.9 (from sphinx) Downloading Babel-2.12.1-py3-none-any.whl (10.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.1/10.1 MB 97.8 MB/s eta 0:00:00 Collecting imagesize>=1.3 (from sphinx) Downloading imagesize-1.4.1-py2.py3-none-any.whl (8.8 kB) Collecting requests>=2.25.0 (from sphinx) Downloading requests-2.31.0-py3-none-any.whl (62 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.6/62.6 kB 208.8 MB/s eta 0:00:00 Collecting packaging>=21.0 (from sphinx) Downloading packaging-23.1-py3-none-any.whl (48 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 48.9/48.9 kB 162.2 MB/s eta 0:00:00 Collecting sphinx Downloading sphinx-6.2.1-py3-none-any.whl (3.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.0/3.0 MB 180.3 MB/s eta 0:00:00 Collecting docutils>=0.11 (from recommonmark==0.5.0) Downloading docutils-0.18.1-py2.py3-none-any.whl (570 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 570.0/570.0 kB 248.3 MB/s eta 0:00:00 Collecting sphinxcontrib-jquery<5,>=4 (from sphinx-rtd-theme) Downloading sphinxcontrib_jquery-4.1-py2.py3-none-any.whl (121 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 121.1/121.1 kB 243.4 MB/s eta 0:00:00 Collecting MarkupSafe>=2.0 (from Jinja2>=3.0->sphinx) Downloading MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (28 kB) Collecting charset-normalizer<4,>=2 (from requests>=2.25.0->sphinx) Downloading charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (197 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 197.3/197.3 kB 261.9 MB/s eta 0:00:00 Collecting idna<4,>=2.5 (from requests>=2.25.0->sphinx) Downloading idna-3.4-py3-none-any.whl (61 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.5/61.5 kB 210.6 MB/s eta 0:00:00 Collecting urllib3<3,>=1.21.1 (from requests>=2.25.0->sphinx) Downloading urllib3-2.0.3-py3-none-any.whl (123 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 123.6/123.6 kB 241.6 MB/s eta 0:00:00 Collecting certifi>=2017.4.17 (from requests>=2.25.0->sphinx) Downloading certifi-2023.5.7-py3-none-any.whl (156 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 157.0/157.0 kB 260.6 MB/s eta 0:00:00 Building wheels for collected packages: mock Building wheel for mock (setup.py): started Building wheel for mock (setup.py): finished with status 'done' Created wheel for mock: filename=mock-1.0.1-py3-none-any.whl size=23753 sha256=5f299e5a0a9c7b3221eb179edf4c0409f1afab881bd94d98b08ee3796a40c26e Stored in directory: /tmp/pip-ephem-wheel-cache-_zunr5xm/wheels/80/c2/c8/630c9eb889f0be0202cb11bf30b47aa54bf7588e8d50b70005 Successfully built mock Installing collected packages: snowballstemmer, mock, commonmark, urllib3, sphinxcontrib-serializinghtml, sphinxcontrib-qthelp, sphinxcontrib-jsmath, sphinxcontrib-htmlhelp, sphinxcontrib-devhelp, sphinxcontrib-applehelp, Pygments, pillow, packaging, MarkupSafe, imagesize, idna, docutils, charset-normalizer, certifi, babel, alabaster, requests, Jinja2, sphinx, readthedocs-sphinx-ext, sphinxcontrib-jquery, recommonmark, sphinx-rtd-theme Successfully installed Jinja2-3.1.2 MarkupSafe-2.1.3 Pygments-2.15.1 alabaster-0.7.13 babel-2.12.1 certifi-2023.5.7 charset-normalizer-3.1.0 commonmark-0.9.1 docutils-0.18.1 idna-3.4 imagesize-1.4.1 mock-1.0.1 packaging-23.1 pillow-9.5.0 readthedocs-sphinx-ext-2.2.1 recommonmark-0.5.0 requests-2.31.0 snowballstemmer-2.2.0 sphinx-6.2.1 sphinx-rtd-theme-1.2.2 sphinxcontrib-applehelp-1.0.4 sphinxcontrib-devhelp-1.0.2 sphinxcontrib-htmlhelp-2.0.1 sphinxcontrib-jquery-4.1 sphinxcontrib-jsmath-1.0.1 sphinxcontrib-qthelp-1.0.3 sphinxcontrib-serializinghtml-1.1.5 urllib3-2.0.3 [rtd-command-info] start-time: 2023-06-21T21:22:04.639459Z, end-time: 2023-06-21T21:22:23.032829Z, duration: 18, exit-code: 0 python -m pip install --exists-action=w --no-cache-dir -r doc/.sphinx/requirements.txt Requirement already satisfied: alabaster in /home/docs/checkouts/readthedocs.org/user_builds/canonical-lxd/envs/latest/lib/python3.11/site-packages (from -r doc/.sphinx/requirements.txt (line 1)) (0.7.13) Requirement already satisfied: Babel in /home/docs/checkouts/readthedocs.org/user_builds/canonical-lxd/envs/latest/lib/python3.11/site-packages (from -r doc/.sphinx/requirements.txt (line 2)) (2.12.1) Requirement already satisfied: certifi in /home/docs/checkouts/readthedocs.org/user_builds/canonical-lxd/envs/latest/lib/python3.11/site-packages (from -r doc/.sphinx/requirements.txt (line 3)) (2023.5.7) Requirement already satisfied: charset-normalizer in /home/docs/checkouts/readthedocs.org/user_builds/canonical-lxd/envs/latest/lib/python3.11/site-packages (from -r doc/.sphinx/requirements.txt (line 4)) (3.1.0) Collecting colorama (from -r doc/.sphinx/requirements.txt (line 5)) Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB) Requirement already satisfied: docutils in /home/docs/checkouts/readthedocs.org/user_builds/canonical-lxd/envs/latest/lib/python3.11/site-packages (from -r doc/.sphinx/requirements.txt (line 6)) (0.18.1) Requirement already satisfied: idna in /home/docs/checkouts/readthedocs.org/user_builds/canonical-lxd/envs/latest/lib/python3.11/site-packages (from -r doc/.sphinx/requirements.txt (line 7)) (3.4) Requirement already satisfied: imagesize in /home/docs/checkouts/readthedocs.org/user_builds/canonical-lxd/envs/latest/lib/python3.11/site-packages (from -r doc/.sphinx/requirements.txt (line 8)) (1.4.1) Requirement already satisfied: Jinja2 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-lxd/envs/latest/lib/python3.11/site-packages (from -r doc/.sphinx/requirements.txt (line 9)) (3.1.2) Collecting livereload (from -r doc/.sphinx/requirements.txt (line 10)) Downloading livereload-2.6.3-py2.py3-none-any.whl (24 kB) Requirement already satisfied: MarkupSafe in /home/docs/checkouts/readthedocs.org/user_builds/canonical-lxd/envs/latest/lib/python3.11/site-packages (from -r doc/.sphinx/requirements.txt (line 11)) (2.1.3) Requirement already satisfied: packaging in /home/docs/checkouts/readthedocs.org/user_builds/canonical-lxd/envs/latest/lib/python3.11/site-packages (from -r doc/.sphinx/requirements.txt (line 12)) (23.1) Requirement already satisfied: Pygments in /home/docs/checkouts/readthedocs.org/user_builds/canonical-lxd/envs/latest/lib/python3.11/site-packages (from -r doc/.sphinx/requirements.txt (line 13)) (2.15.1) Collecting pyparsing (from -r doc/.sphinx/requirements.txt (line 14)) Downloading pyparsing-3.1.0-py3-none-any.whl (102 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 102.6/102.6 kB 8.6 MB/s eta 0:00:00 Collecting pytz (from -r doc/.sphinx/requirements.txt (line 15)) Downloading pytz-2023.3-py2.py3-none-any.whl (502 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 502.3/502.3 kB 34.6 MB/s eta 0:00:00 Requirement already satisfied: requests in /home/docs/checkouts/readthedocs.org/user_builds/canonical-lxd/envs/latest/lib/python3.11/site-packages (from -r doc/.sphinx/requirements.txt (line 16)) (2.31.0) Collecting six (from -r doc/.sphinx/requirements.txt (line 17)) Downloading six-1.16.0-py2.py3-none-any.whl (11 kB) Requirement already satisfied: snowballstemmer in /home/docs/checkouts/readthedocs.org/user_builds/canonical-lxd/envs/latest/lib/python3.11/site-packages (from -r doc/.sphinx/requirements.txt (line 18)) (2.2.0) Requirement already satisfied: Sphinx in /home/docs/checkouts/readthedocs.org/user_builds/canonical-lxd/envs/latest/lib/python3.11/site-packages (from -r doc/.sphinx/requirements.txt (line 19)) (6.2.1) Collecting sphinx-autobuild (from -r doc/.sphinx/requirements.txt (line 20)) Downloading sphinx_autobuild-2021.3.14-py3-none-any.whl (9.9 kB) Requirement already satisfied: sphinxcontrib-applehelp in /home/docs/checkouts/readthedocs.org/user_builds/canonical-lxd/envs/latest/lib/python3.11/site-packages (from -r doc/.sphinx/requirements.txt (line 21)) (1.0.4) Requirement already satisfied: sphinxcontrib-devhelp in /home/docs/checkouts/readthedocs.org/user_builds/canonical-lxd/envs/latest/lib/python3.11/site-packages (from -r doc/.sphinx/requirements.txt (line 22)) (1.0.2) Requirement already satisfied: sphinxcontrib-htmlhelp in /home/docs/checkouts/readthedocs.org/user_builds/canonical-lxd/envs/latest/lib/python3.11/site-packages (from -r doc/.sphinx/requirements.txt (line 23)) (2.0.1) Requirement already satisfied: sphinxcontrib-jsmath in /home/docs/checkouts/readthedocs.org/user_builds/canonical-lxd/envs/latest/lib/python3.11/site-packages (from -r doc/.sphinx/requirements.txt (line 24)) (1.0.1) Requirement already satisfied: sphinxcontrib-qthelp in /home/docs/checkouts/readthedocs.org/user_builds/canonical-lxd/envs/latest/lib/python3.11/site-packages (from -r doc/.sphinx/requirements.txt (line 25)) (1.0.3) Requirement already satisfied: sphinxcontrib-serializinghtml in /home/docs/checkouts/readthedocs.org/user_builds/canonical-lxd/envs/latest/lib/python3.11/site-packages (from -r doc/.sphinx/requirements.txt (line 26)) (1.1.5) Requirement already satisfied: sphinxcontrib-jquery in /home/docs/checkouts/readthedocs.org/user_builds/canonical-lxd/envs/latest/lib/python3.11/site-packages (from -r doc/.sphinx/requirements.txt (line 27)) (4.1) Collecting tornado (from -r doc/.sphinx/requirements.txt (line 28)) Downloading tornado-6.3.2-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (426 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 426.9/426.9 kB 263.6 MB/s eta 0:00:00 Requirement already satisfied: urllib3 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-lxd/envs/latest/lib/python3.11/site-packages (from -r doc/.sphinx/requirements.txt (line 29)) (2.0.3) Collecting myst-parser (from -r doc/.sphinx/requirements.txt (line 30)) Downloading myst_parser-2.0.0-py3-none-any.whl (77 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 77.2/77.2 kB 194.2 MB/s eta 0:00:00 Collecting sphinx-tabs (from -r doc/.sphinx/requirements.txt (line 31)) Downloading sphinx_tabs-3.4.1-py3-none-any.whl (10.0 kB) Collecting sphinx-reredirects (from -r doc/.sphinx/requirements.txt (line 32)) Downloading sphinx_reredirects-0.1.2-py3-none-any.whl (5.3 kB) Collecting linkify-it-py (from -r doc/.sphinx/requirements.txt (line 33)) Downloading linkify_it_py-2.0.2-py3-none-any.whl (19 kB) Collecting furo (from -r doc/.sphinx/requirements.txt (line 34)) Downloading furo-2023.5.20-py3-none-any.whl (326 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 326.8/326.8 kB 248.0 MB/s eta 0:00:00 Collecting sphinxext-opengraph>=0.6.1 (from -r doc/.sphinx/requirements.txt (line 35)) Downloading sphinxext_opengraph-0.8.2-py3-none-any.whl (1.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 189.9 MB/s eta 0:00:00 Collecting lxd-sphinx-extensions (from -r doc/.sphinx/requirements.txt (line 36)) Downloading lxd_sphinx_extensions-0.0.7-py3-none-any.whl (17 kB) Collecting pyspelling (from -r doc/.sphinx/requirements.txt (line 37)) Downloading pyspelling-2.8.2-py3-none-any.whl (44 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 44.6/44.6 kB 177.6 MB/s eta 0:00:00 Collecting sphinx-copybutton (from -r doc/.sphinx/requirements.txt (line 38)) Downloading sphinx_copybutton-0.5.2-py3-none-any.whl (13 kB) Collecting gitpython (from -r doc/.sphinx/requirements.txt (line 39)) Downloading GitPython-3.1.31-py3-none-any.whl (184 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 184.3/184.3 kB 245.0 MB/s eta 0:00:00 Collecting wget (from -r doc/.sphinx/requirements.txt (line 40)) Downloading wget-3.2.zip (10 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Collecting markdown-it-py~=3.0 (from myst-parser->-r doc/.sphinx/requirements.txt (line 30)) Downloading markdown_it_py-3.0.0-py3-none-any.whl (87 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 87.5/87.5 kB 226.9 MB/s eta 0:00:00 Collecting mdit-py-plugins~=0.4 (from myst-parser->-r doc/.sphinx/requirements.txt (line 30)) Downloading mdit_py_plugins-0.4.0-py3-none-any.whl (54 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 54.1/54.1 kB 197.8 MB/s eta 0:00:00 Collecting pyyaml (from myst-parser->-r doc/.sphinx/requirements.txt (line 30)) Downloading PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (757 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 757.9/757.9 kB 275.0 MB/s eta 0:00:00 Collecting uc-micro-py (from linkify-it-py->-r doc/.sphinx/requirements.txt (line 33)) Downloading uc_micro_py-1.0.2-py3-none-any.whl (6.2 kB) Collecting beautifulsoup4 (from furo->-r doc/.sphinx/requirements.txt (line 34)) Downloading beautifulsoup4-4.12.2-py3-none-any.whl (142 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 143.0/143.0 kB 254.8 MB/s eta 0:00:00 Collecting sphinx-basic-ng (from furo->-r doc/.sphinx/requirements.txt (line 34)) Downloading sphinx_basic_ng-1.0.0b1-py3-none-any.whl (22 kB) Collecting matplotlib (from sphinxext-opengraph>=0.6.1->-r doc/.sphinx/requirements.txt (line 35)) Downloading matplotlib-3.7.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.6 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.6/11.6 MB 187.3 MB/s eta 0:00:00 Collecting html5lib (from pyspelling->-r doc/.sphinx/requirements.txt (line 37)) Downloading html5lib-1.1-py2.py3-none-any.whl (112 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 112.2/112.2 kB 236.7 MB/s eta 0:00:00 Collecting lxml (from pyspelling->-r doc/.sphinx/requirements.txt (line 37)) Downloading lxml-4.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (7.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.2/7.2 MB 200.8 MB/s eta 0:00:00 Collecting markdown (from pyspelling->-r doc/.sphinx/requirements.txt (line 37)) Downloading Markdown-3.4.3-py3-none-any.whl (93 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 93.9/93.9 kB 213.8 MB/s eta 0:00:00 Collecting soupsieve>=1.8 (from pyspelling->-r doc/.sphinx/requirements.txt (line 37)) Downloading soupsieve-2.4.1-py3-none-any.whl (36 kB) Collecting wcmatch>=6.0.3 (from pyspelling->-r doc/.sphinx/requirements.txt (line 37)) Downloading wcmatch-8.4.1-py3-none-any.whl (39 kB) Collecting gitdb<5,>=4.0.1 (from gitpython->-r doc/.sphinx/requirements.txt (line 39)) Downloading gitdb-4.0.10-py3-none-any.whl (62 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.7/62.7 kB 177.2 MB/s eta 0:00:00 Collecting smmap<6,>=3.0.1 (from gitdb<5,>=4.0.1->gitpython->-r doc/.sphinx/requirements.txt (line 39)) Downloading smmap-5.0.0-py3-none-any.whl (24 kB) Collecting mdurl~=0.1 (from markdown-it-py~=3.0->myst-parser->-r doc/.sphinx/requirements.txt (line 30)) Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB) Collecting bracex>=2.1.1 (from wcmatch>=6.0.3->pyspelling->-r doc/.sphinx/requirements.txt (line 37)) Downloading bracex-2.3.post1-py3-none-any.whl (12 kB) Collecting webencodings (from html5lib->pyspelling->-r doc/.sphinx/requirements.txt (line 37)) Downloading webencodings-0.5.1-py2.py3-none-any.whl (11 kB) Collecting contourpy>=1.0.1 (from matplotlib->sphinxext-opengraph>=0.6.1->-r doc/.sphinx/requirements.txt (line 35)) Downloading contourpy-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (300 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 300.4/300.4 kB 188.8 MB/s eta 0:00:00 Collecting cycler>=0.10 (from matplotlib->sphinxext-opengraph>=0.6.1->-r doc/.sphinx/requirements.txt (line 35)) Downloading cycler-0.11.0-py3-none-any.whl (6.4 kB) Collecting fonttools>=4.22.0 (from matplotlib->sphinxext-opengraph>=0.6.1->-r doc/.sphinx/requirements.txt (line 35)) Downloading fonttools-4.40.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.3 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.3/4.3 MB 187.0 MB/s eta 0:00:00 Collecting kiwisolver>=1.0.1 (from matplotlib->sphinxext-opengraph>=0.6.1->-r doc/.sphinx/requirements.txt (line 35)) Downloading kiwisolver-1.4.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.4/1.4 MB 257.7 MB/s eta 0:00:00 Collecting numpy>=1.20 (from matplotlib->sphinxext-opengraph>=0.6.1->-r doc/.sphinx/requirements.txt (line 35)) Downloading numpy-1.25.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.6 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 17.6/17.6 MB 113.7 MB/s eta 0:00:00 Requirement already satisfied: pillow>=6.2.0 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-lxd/envs/latest/lib/python3.11/site-packages (from matplotlib->sphinxext-opengraph>=0.6.1->-r doc/.sphinx/requirements.txt (line 35)) (9.5.0) Collecting python-dateutil>=2.7 (from matplotlib->sphinxext-opengraph>=0.6.1->-r doc/.sphinx/requirements.txt (line 35)) Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 247.7/247.7 kB 252.2 MB/s eta 0:00:00 Building wheels for collected packages: wget Building wheel for wget (setup.py): started Building wheel for wget (setup.py): finished with status 'done' Created wheel for wget: filename=wget-3.2-py3-none-any.whl size=9655 sha256=6983c0ae369c9714c783a4ff9caace9fceddc224cc2774c785f2be72d5eb949c Stored in directory: /tmp/pip-ephem-wheel-cache-igxete60/wheels/40/b3/0f/a40dbd1c6861731779f62cc4babcb234387e11d697df70ee97 Successfully built wget Installing collected packages: wget, webencodings, pytz, uc-micro-py, tornado, soupsieve, smmap, six, pyyaml, pyparsing, numpy, mdurl, markdown, lxml, kiwisolver, fonttools, cycler, colorama, bracex, wcmatch, python-dateutil, markdown-it-py, livereload, linkify-it-py, html5lib, gitdb, contourpy, beautifulsoup4, sphinx-tabs, sphinx-reredirects, sphinx-copybutton, sphinx-basic-ng, sphinx-autobuild, pyspelling, mdit-py-plugins, matplotlib, lxd-sphinx-extensions, gitpython, sphinxext-opengraph, myst-parser, furo Successfully installed beautifulsoup4-4.12.2 bracex-2.3.post1 colorama-0.4.6 contourpy-1.1.0 cycler-0.11.0 fonttools-4.40.0 furo-2023.5.20 gitdb-4.0.10 gitpython-3.1.31 html5lib-1.1 kiwisolver-1.4.4 linkify-it-py-2.0.2 livereload-2.6.3 lxd-sphinx-extensions-0.0.7 lxml-4.9.2 markdown-3.4.3 markdown-it-py-3.0.0 matplotlib-3.7.1 mdit-py-plugins-0.4.0 mdurl-0.1.2 myst-parser-2.0.0 numpy-1.25.0 pyparsing-3.1.0 pyspelling-2.8.2 python-dateutil-2.8.2 pytz-2023.3 pyyaml-6.0 six-1.16.0 smmap-5.0.0 soupsieve-2.4.1 sphinx-autobuild-2021.3.14 sphinx-basic-ng-1.0.0b1 sphinx-copybutton-0.5.2 sphinx-reredirects-0.1.2 sphinx-tabs-3.4.1 sphinxext-opengraph-0.8.2 tornado-6.3.2 uc-micro-py-1.0.2 wcmatch-8.4.1 webencodings-0.5.1 wget-3.2 [rtd-command-info] start-time: 2023-06-21T21:22:24.448921Z, end-time: 2023-06-21T21:22:24.541971Z, duration: 0, exit-code: 0 cat doc/conf.py import datetime import os import sys import yaml from git import Repo import wget # Download and link swagger-ui files if not os.path.isdir('.sphinx/deps/swagger-ui'): Repo.clone_from('https://github.com/swagger-api/swagger-ui', '.sphinx/deps/swagger-ui', depth=1) os.makedirs('.sphinx/_static/swagger-ui/', exist_ok=True) if not os.path.islink('.sphinx/_static/swagger-ui/swagger-ui-bundle.js'): os.symlink('../../deps/swagger-ui/dist/swagger-ui-bundle.js', '.sphinx/_static/swagger-ui/swagger-ui-bundle.js') if not os.path.islink('.sphinx/_static/swagger-ui/swagger-ui-standalone-preset.js'): os.symlink('../../deps/swagger-ui/dist/swagger-ui-standalone-preset.js', '.sphinx/_static/swagger-ui/swagger-ui-standalone-preset.js') if not os.path.islink('.sphinx/_static/swagger-ui/swagger-ui.css'): os.symlink('../../deps/swagger-ui/dist/swagger-ui.css', '.sphinx/_static/swagger-ui/swagger-ui.css') # Download and link images os.makedirs('.sphinx/_static/download/', exist_ok=True) if not os.path.isfile('.sphinx/_static/download/favicon.ico'): wget.download("https://linuxcontainers.org/static/img/favicon.ico", ".sphinx/_static/download/favicon.ico") if not os.path.isfile('.sphinx/_static/download/containers.png'): wget.download("https://linuxcontainers.org/static/img/containers.png", ".sphinx/_static/download/containers.png") if not os.path.isfile('doc/.sphinx/_static/download/containers.small.png'): wget.download("https://linuxcontainers.org/static/img/containers.small.png", ".sphinx/_static/download/containers.small.png") # Project config. project = "LXD" author = "LXD contributors" copyright = "2014-%s %s" % (datetime.date.today().year, author) with open("../shared/version/flex.go") as fd: version = fd.read().split("\n")[-2].split()[-1].strip("\"") # Extensions. extensions = [ "myst_parser", "sphinx_tabs.tabs", "sphinx_reredirects", "sphinxext.opengraph", "youtube-links", "related-links", "custom-rst-roles", "sphinxcontrib.jquery", "sphinx_copybutton", "sphinx.ext.intersphinx", "terminal-output", "config-options" ] myst_enable_extensions = [ "substitution", "deflist", "linkify" ] myst_linkify_fuzzy_links=False myst_heading_anchors = 7 if os.path.exists("./substitutions.yaml"): with open("./substitutions.yaml", "r") as fd: myst_substitutions = yaml.safe_load(fd.read()) intersphinx_mapping = { 'cloud-init': ('https://cloudinit.readthedocs.io/en/latest/', None) } # Setup theme. templates_path = [".sphinx/_templates"] html_theme = "furo" html_show_sphinx = False html_last_updated_fmt = "" html_favicon = ".sphinx/_static/download/favicon.ico" html_static_path = ['.sphinx/_static'] html_css_files = ['custom.css'] html_js_files = ['header-nav.js','version-switcher.js'] html_extra_path = ['.sphinx/_extra'] html_theme_options = { "sidebar_hide_name": True, "light_css_variables": { "font-stack": "Ubuntu, -apple-system, Segoe UI, Roboto, Oxygen, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif", "font-stack--monospace": "Ubuntu Mono, Consolas, Monaco, Courier, monospace", "color-foreground-primary": "#111", "color-foreground-secondary": "var(--color-foreground-primary)", "color-foreground-muted": "#333", "color-background-secondary": "#FFF", "color-background-hover": "#f2f2f2", "color-brand-primary": "#111", "color-brand-content": "#06C", "color-api-background": "#cdcdcd", "color-inline-code-background": "rgba(0,0,0,.03)", "color-sidebar-link-text": "#111", "color-sidebar-item-background--current": "#ebebeb", "color-sidebar-item-background--hover": "#f2f2f2", "toc-font-size": "var(--font-size--small)", "color-admonition-title-background--note": "var(--color-background-primary)", "color-admonition-title-background--tip": "var(--color-background-primary)", "color-admonition-title-background--important": "var(--color-background-primary)", "color-admonition-title-background--caution": "var(--color-background-primary)", "color-admonition-title--note": "#24598F", "color-admonition-title--tip": "#24598F", "color-admonition-title--important": "#C7162B", "color-admonition-title--caution": "#F99B11", "color-highlighted-background": "#EbEbEb", "color-link-underline": "var(--color-background-primary)", "color-link-underline--hover": "var(--color-background-primary)", "color-version-popup": "#772953" }, "dark_css_variables": { "color-foreground-secondary": "var(--color-foreground-primary)", "color-foreground-muted": "#CDCDCD", "color-background-secondary": "var(--color-background-primary)", "color-background-hover": "#666", "color-brand-primary": "#fff", "color-brand-content": "#06C", "color-sidebar-link-text": "#f7f7f7", "color-sidebar-item-background--current": "#666", "color-sidebar-item-background--hover": "#333", "color-admonition-background": "transparent", "color-admonition-title-background--note": "var(--color-background-primary)", "color-admonition-title-background--tip": "var(--color-background-primary)", "color-admonition-title-background--important": "var(--color-background-primary)", "color-admonition-title-background--caution": "var(--color-background-primary)", "color-admonition-title--note": "#24598F", "color-admonition-title--tip": "#24598F", "color-admonition-title--important": "#C7162B", "color-admonition-title--caution": "#F99B11", "color-highlighted-background": "#666", "color-link-underline": "var(--color-background-primary)", "color-link-underline--hover": "var(--color-background-primary)", "color-version-popup": "#F29879" }, } html_context = { "github_url": "https://github.com/lxc/lxd", "github_version": "master", "github_folder": "/doc/", "github_filetype": "md", "discourse_prefix": "https://discuss.linuxcontainers.org/t/" } # Pass a variable to the template files that informs if we're on # RTD or not if ("ON_RTD" in os.environ) and (os.environ["ON_RTD"] == "True"): html_context["ON_RTD"] = True else: # only change the sidebar when we're not on RTD html_sidebars = { "**": [ "sidebar/variant-selector.html", "sidebar/search.html", "sidebar/scroll-start.html", "sidebar/navigation.html", "sidebar/scroll-end.html", ] } source_suffix = ".md" # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # This pattern also affects html_static_path and html_extra_path. exclude_patterns = ['html', 'README.md', '.sphinx'] # Open Graph configuration ogp_site_url = "https://linuxcontainers.org/lxd/docs/latest/" ogp_site_name = "LXD documentation" ogp_image = "https://linuxcontainers.org/static/img/containers.png" # Links to ignore when checking links linkcheck_ignore = [ 'https://127.0.0.1:8443/1.0', 'https://web.libera.chat/#lxc' ] # Setup redirects (https://documatt.gitlab.io/sphinx-reredirects/usage.html) redirects = { "index/index": "../index.html", "network-peers/index": "../howto/network_ovn_peers/index.html", "network-acls/index": "../howto/network_acls/index.html", "network-forwards/index": "../howto/network_forwards/index.html", "network-zones/index": "../howto/network_zones/index.html", "howto/storage_create_pool/index": "../storage_pools/index.html#create-a-storage-pool", "howto/storage_configure_pool/index": "../storage_pools/index.html#configure-storage-pool-settings", "howto/storage_view_pools/index": "../storage_pools/index.html#view-storage-pools", "howto/storage_resize_pool/index": "../storage_pools/index.html#resize-a-storage-pool", "howto/storage_create_bucket/index": "../storage_buckets/index.html#create-a-storage-bucket", "howto/storage_configure_bucket/index": "../storage_buckets/index.html#configure-storage-bucket-settings", "howto/storage_view_buckets/index": "../storage_buckets/index.html#view-storage-buckets", "howto/storage_resize_bucket/index": "../storage_buckets/index.html#resize-a-storage-bucket", "howto/storage_create_volume/index": "../storage_volumes/index.html#create-a-custom-storage-volume", "howto/storage_configure_volume/index": "../storage_volumes/index.html#configure-storage-volume-settings", "howto/storage_view_volumes/index": "../storage_volumes/index.html#view-storage-volumes", "howto/storage_resize_volume/index": "../storage_volumes/index.html#resize-a-storage-volume", "containers/index": "../explanation/instances", "virtual-machines/index": "../explanation/instances", "preseed/index": "../howto/initialize/index.html#initialize-preseed", "configuration/index": "../server" } ########################################################################### # 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/main/readthedocs/doc_builder/templates/doc_builder/conf.py.tmpl # # Note: this file shouldn't rely on extra dependencies. import importlib import sys import os.path # Borrowed from six. PY3 = sys.version_info[0] == 3 string_types = str if PY3 else basestring 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 elif isinstance(source_suffix, (list, tuple)): # Sphinx >= 1.3 supports list/tuple to define multiple suffixes SUFFIX = source_suffix[0] elif isinstance(source_suffix, dict): # Sphinx >= 1.8 supports a mapping dictionary for multiple suffixes SUFFIX = list(source_suffix.keys())[0] # make a ``list()`` for py2/py3 compatibility else: # default to .rst SUFFIX = '.rst' 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') # 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: html_theme = 'sphinx_rtd_theme' html_style = None html_theme_options = {} # This following legacy behavior will gradually be sliced out until its deprecated and removed. # Skipped for Sphinx 6+ # Skipped by internal Feature flag SKIP_SPHINX_HTML_THEME_PATH # Skipped by all new projects since SKIP_SPHINX_HTML_THEME_PATH's introduction (jan 2023) if ( using_rtd_theme and version_info < (6,0) and not False ): theme = importlib.import_module('sphinx_rtd_theme') if 'html_theme_path' in globals(): html_theme_path.append(theme.get_html_theme_path()) else: html_theme_path = [theme.get_html_theme_path()] # Define websupport2_base_url and websupport2_static_url if globals().get('websupport2_base_url', False): websupport2_base_url = 'https://readthedocs.com/websupport' websupport2_static_url = 'https://assets.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://assets.readthedocs.com/", 'PRODUCTION_DOMAIN': "readthedocs.com", 'proxied_static_path': "/_/static/", 'versions': [ ], 'downloads': [ ("pdf", "//canonical-lxd.readthedocs-hosted.com/_/downloads/en/latest/pdf/"), ], 'subprojects': [ ], 'slug': 'canonical-lxd', 'name': u'LXD', 'rtd_language': u'en', 'programming_language': u'words', 'canonical_url': '', 'analytics_code': 'None', 'single_version': False, 'conf_py_path': '/doc/', 'api_host': 'https://readthedocs.com', 'github_user': 'lxc', 'proxied_api_host': '/_', 'github_repo': 'lxd', '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, 'docsearch_disabled': False, 'user_analytics_code': '', 'global_analytics_code': 'UA-17997319-2', 'commit': '5a1c29dd', } # For sphinx >=1.8 we can use html_baseurl to set the canonical URL. # https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-html_baseurl if version_info >= (1, 8): if not globals().get('html_baseurl'): html_baseurl = context['canonical_url'] context['canonical_url'] = None if 'html_context' in globals(): for key in context: if key not in html_context: html_context[key] = context[key] 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"] # Add External version warning banner to the external version documentation if 'branch' == 'external': extensions.insert(1, "readthedocs_ext.external_version_warning") readthedocs_vcs_url = 'None' readthedocs_build_url = 'https://readthedocs.com/projects/canonical-lxd/builds/1553430/' project_language = 'en' # User's Sphinx configurations language_user = globals().get('language', None) latex_engine_user = globals().get('latex_engine', None) latex_elements_user = globals().get('latex_elements', None) # Remove this once xindy gets installed in Docker image and XINDYOPS # env variable is supported # https://github.com/rtfd/readthedocs-docker-images/pull/98 latex_use_xindy = False chinese = any([ language_user in ('zh_CN', 'zh_TW'), project_language in ('zh_CN', 'zh_TW'), ]) japanese = any([ language_user == 'ja', project_language == 'ja', ]) if chinese: latex_engine = latex_engine_user or 'xelatex' latex_elements_rtd = { 'preamble': '\\usepackage[UTF8]{ctex}\n', } latex_elements = latex_elements_user or latex_elements_rtd elif japanese: latex_engine = latex_engine_user or 'platex' # Make sure our build directory is always excluded exclude_patterns = globals().get('exclude_patterns', []) exclude_patterns.extend(['_build'])