From 9290de284f4d5a4789e6b86912ab56a5362a5002 Mon Sep 17 00:00:00 2001 From: Yao Xiao <108576690+Charlie-XIAO@users.noreply.github.com> Date: Tue, 16 Jan 2024 01:18:11 +0800 Subject: [PATCH 01/19] switch to pydata-sphinx-theme --- .gitignore | 2 + build_tools/circle/doc_environment.yml | 3 + build_tools/circle/doc_linux-64_conda.lock | 42 +++--- .../doc_min_dependencies_environment.yml | 3 + .../doc_min_dependencies_linux-64_conda.lock | 29 ++-- .../update_environments_and_lock_files.py | 18 ++- doc/Makefile | 1 + doc/conf.py | 136 +++++++++++++++--- doc/contents.rst | 21 ++- doc/css/.gitkeep | 0 doc/js/scripts/details-permalink.js | 47 ++++++ doc/make.bat | 19 ++- doc/scss/colors.scss | 6 + doc/scss/custom.scss | 54 +++++++ doc/templates/index.html | 30 +++- sklearn/_min_dependencies.py | 3 + 16 files changed, 349 insertions(+), 65 deletions(-) create mode 100644 doc/css/.gitkeep create mode 100644 doc/js/scripts/details-permalink.js create mode 100644 doc/scss/colors.scss create mode 100644 doc/scss/custom.scss diff --git a/.gitignore b/.gitignore index 770f0b84f074a..7b4f61beaf353 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,8 @@ MANIFEST doc/sg_execution_times.rst doc/_build/ doc/auto_examples/ +doc/css/* +!doc/css/.gitkeep doc/modules/generated/ doc/datasets/generated/ doc/min_dependency_table.rst diff --git a/build_tools/circle/doc_environment.yml b/build_tools/circle/doc_environment.yml index 22400c45091bb..f297b1c7d73f2 100644 --- a/build_tools/circle/doc_environment.yml +++ b/build_tools/circle/doc_environment.yml @@ -31,7 +31,10 @@ dependencies: - polars - pooch - sphinxext-opengraph + - sphinx-remove-toctrees + - pydata-sphinx-theme - pip - pip: - jupyterlite-sphinx - jupyterlite-pyodide-kernel + - sphinxcontrib-sass diff --git a/build_tools/circle/doc_linux-64_conda.lock b/build_tools/circle/doc_linux-64_conda.lock index 77565ab07e476..f38c5444a6de0 100644 --- a/build_tools/circle/doc_linux-64_conda.lock +++ b/build_tools/circle/doc_linux-64_conda.lock @@ -1,6 +1,6 @@ # Generated by conda-lock. # platform: linux-64 -# input_hash: e9ce7b66471a75e2156a32c83078c9688bbda241cd62e3d881989eae546ee2e9 +# input_hash: 940dff0ee891fb4b29325235ed06163d1ae81a33715db9d7dd7ceeb83125dc0e @EXPLICIT https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2#d7c89558ba9fa0495403155b64376d81 https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2023.11.17-hbcca054_0.conda#01ffc8d36f9eba0ce0b3c1955fa780ee @@ -56,7 +56,7 @@ https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.cond https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-hd590300_5.conda#f36c115f1ee199da648e0597ec2047ad https://conda.anaconda.org/conda-forge/linux-64/libzopfli-1.0.3-h9c3ff4c_0.tar.bz2#c66fe2d123249af7651ebde8984c51c2 https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.9.4-hcb278e6_0.conda#318b08df404f9c9be5712aaa5a6f0bb0 -https://conda.anaconda.org/conda-forge/linux-64/mpg123-1.32.3-h59595ed_0.conda#bdadff838d5437aea83607ced8b37f75 +https://conda.anaconda.org/conda-forge/linux-64/mpg123-1.32.4-h59595ed_0.conda#3f1017b4141e943d9bc8739237f749e8 https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.4-h59595ed_2.conda#7dbaa197d7ba6032caf7ae7f32c1efa0 https://conda.anaconda.org/conda-forge/linux-64/nspr-4.35-h27087fc_0.conda#da0ec11a6454ae19bff5b02ed881a2b1 https://conda.anaconda.org/conda-forge/linux-64/openssl-3.2.0-hd590300_1.conda#603827b39ea2b835268adb8c821b8570 @@ -123,7 +123,7 @@ https://conda.anaconda.org/conda-forge/linux-64/xcb-util-keysyms-0.4.0-h8ee46fc_ https://conda.anaconda.org/conda-forge/linux-64/xcb-util-renderutil-0.3.9-hd590300_1.conda#e995b155d938b6779da6ace6c6b13816 https://conda.anaconda.org/conda-forge/linux-64/xcb-util-wm-0.4.1-h8ee46fc_1.conda#90108a432fb5c6150ccfee3f03388656 https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.7-h8ee46fc_0.conda#49e482d882669206653b095f5206c05b -https://conda.anaconda.org/conda-forge/noarch/alabaster-0.7.13-pyhd8ed1ab_0.conda#06006184e203b61d3525f90de394471e +https://conda.anaconda.org/conda-forge/noarch/alabaster-0.7.16-pyhd8ed1ab_0.conda#def531a3ac77b7fb8c21d17bb5d0badb https://conda.anaconda.org/conda-forge/linux-64/brotli-1.1.0-hd590300_1.conda#f27a24d46e3ea7b70a1f98e50c62508f https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py39h3d6467e_1.conda#c48418c8b35f1d59ae9ae1174812b40a https://conda.anaconda.org/conda-forge/linux-64/c-compiler-1.7.0-hd590300_0.conda#fad1d0a651bf929c6c16fbf1f6ccfa7c @@ -134,7 +134,7 @@ https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda#5 https://conda.anaconda.org/conda-forge/linux-64/cython-3.0.7-py39h3d6467e_0.conda#04866e62ce30cff8f6f9c2ea9460eb09 https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-h5008d03_3.tar.bz2#ecfff944ba3960ecb334b9a2663d708d https://conda.anaconda.org/conda-forge/linux-64/docutils-0.20.1-py39hf3d152e_3.conda#09a48956e1c155907fd0d626f3e80f2e -https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_0.conda#f6c211fee3c98229652b60a9a42ef363 +https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda#8d652ea2ee8eaee02ed8dc820bc794aa https://conda.anaconda.org/conda-forge/noarch/execnet-2.0.2-pyhd8ed1ab_0.conda#67de0d8241e1060a479e3c37793e26f9 https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.14.2-h14ed4e7_0.conda#0f69b688f52ff6da70bccb7ff7001d1d https://conda.anaconda.org/conda-forge/linux-64/gfortran-12.3.0-h499e0f7_2.conda#0558a8c44eb7a18e6682bd3a8ae6dcab @@ -171,6 +171,7 @@ https://conda.anaconda.org/conda-forge/noarch/pytz-2023.3.post1-pyhd8ed1ab_0.con https://conda.anaconda.org/conda-forge/noarch/setuptools-69.0.3-pyhd8ed1ab_0.conda#40695fdfd15a92121ed2922900d0308b https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2#e5f25f8dbc060e9a8d912e432202afc2 https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-2.2.0-pyhd8ed1ab_0.tar.bz2#4d22a9315e78c6827f806065957d566e +https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.5-pyhd8ed1ab_1.conda#3f144b2c34f8cb5a9abd9ed23a39c561 https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jsmath-1.0.1-pyhd8ed1ab_0.conda#da1d979339e2714c30a8e806a33ec087 https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhd8ed1ab_1.tar.bz2#4759805cce2d914c38472f70bf4d8bcb https://conda.anaconda.org/conda-forge/noarch/tenacity-8.2.3-pyhd8ed1ab_0.conda#1482e77f87c6a702a7e05ef22c9b197b @@ -186,16 +187,18 @@ https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.40-hd590300_0 https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.4-h0b41bf4_2.conda#82b6df12252e6f32402b96dacc656fec https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hd590300_0.conda#ed67c36f215b310412b2af935bf3e530 https://conda.anaconda.org/conda-forge/noarch/zipp-3.17.0-pyhd8ed1ab_0.conda#2e4d6bc0b14e10f895fc6791a7d9b26a +https://conda.anaconda.org/conda-forge/noarch/accessible-pygments-0.0.4-pyhd8ed1ab_0.conda#46a2e6e3dfa718ce3492018d5a110dd6 https://conda.anaconda.org/conda-forge/noarch/babel-2.14.0-pyhd8ed1ab_0.conda#9669586875baeced8fc30c0826c3270e +https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.2-pyha770c72_0.conda#a362ff7d976217f8fa78c0f1c4f59717 https://conda.anaconda.org/conda-forge/linux-64/brunsli-0.1-h9c3ff4c_0.tar.bz2#c1ac6229d0bfd14f8354ff9ad2a26cad https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-h3faef2a_0.conda#f907bb958910dc404647326ca80c263e https://conda.anaconda.org/conda-forge/linux-64/cxx-compiler-1.7.0-h00ab1b0_0.conda#b4537c98cb59f8725b0e1e65816b4a28 -https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.47.0-py39hd1e30aa_0.conda#01eba09d574310de928abf121f89b116 +https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.47.2-py39hd1e30aa_0.conda#4e2b802b69be81944fdcd71018b74226 https://conda.anaconda.org/conda-forge/linux-64/fortran-compiler-1.7.0-heb67821_0.conda#7ef7c0f111dad1c8006504a0f1ccd820 https://conda.anaconda.org/conda-forge/linux-64/glib-2.78.3-hfc55251_0.conda#e08e51acc7d1ae8dbe13255e7b4c64ac https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-7.0.1-pyha770c72_0.conda#746623a787e06191d80a2133e5daff17 https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.1.1-pyhd8ed1ab_0.conda#3d5fa25cf42f3f32a12b2d874ace8574 -https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.2-pyhd8ed1ab_1.tar.bz2#c8490ed5c70966d232fdd389d0dbed37 +https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.3-pyhd8ed1ab_0.conda#e7d8df6509ba635247ff9aea31134262 https://conda.anaconda.org/conda-forge/noarch/joblib-1.3.2-pyhd8ed1ab_0.conda#4da50d410f553db77e62ab62ffaa1abc https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-20_linux64_openblas.conda#36d486d72ab64ffea932329a1d3729a3 https://conda.anaconda.org/conda-forge/linux-64/libclang-15.0.7-default_hb11cfb5_4.conda#c90f4cbb57839c98fef8f830e4b9972f @@ -209,6 +212,7 @@ https://conda.anaconda.org/conda-forge/linux-64/pulseaudio-client-16.1-hb77b528_ https://conda.anaconda.org/conda-forge/noarch/pytest-7.4.4-pyhd8ed1ab_0.conda#a9d145de8c5f064b5fa68fb34725d9f4 https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.2-pyhd8ed1ab_0.tar.bz2#dd999d1cc9f79e67dbb855c8924c7984 https://conda.anaconda.org/conda-forge/linux-64/sip-6.7.12-py39h3d6467e_0.conda#e667a3ab0df62c54e60e1843d2e6defb +https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.9.0-hd8ed1ab_0.conda#c16524c1b7227dc80b36b4fa6f77cc86 https://conda.anaconda.org/conda-forge/noarch/urllib3-2.1.0-pyhd8ed1ab_0.conda#f8ced8ee63830dec7ecc1be048d1470a https://conda.anaconda.org/conda-forge/linux-64/compilers-1.7.0-ha770c72_0.conda#81458b3aed8ab8711951ec3c0c04e097 https://conda.anaconda.org/conda-forge/linux-64/gstreamer-1.22.8-h98fc4e7_1.conda#1b52a89485ab573a5bb83a5225ff706e @@ -226,7 +230,7 @@ https://conda.anaconda.org/conda-forge/linux-64/imagecodecs-2024.1.1-py39hf9b8f0 https://conda.anaconda.org/conda-forge/noarch/imageio-2.33.1-pyh8c1a49c_0.conda#1c34d58ac469a34e7e96832861368bce https://conda.anaconda.org/conda-forge/linux-64/pandas-2.1.4-py39hddac248_0.conda#dcfd2f15c6f8f0bbf234412b18a2a5d0 https://conda.anaconda.org/conda-forge/noarch/patsy-0.5.6-pyhd8ed1ab_0.conda#a5b55d1cb110cdcedc748b5c3e16e687 -https://conda.anaconda.org/conda-forge/linux-64/polars-0.20.3-py39h927a070_1.conda#9228d65338fc75b9f7040c30465cd84b +https://conda.anaconda.org/conda-forge/linux-64/polars-0.20.4-py39h927a070_0.conda#1e895a6feb7c5cc843ce460392d83692 https://conda.anaconda.org/conda-forge/noarch/pooch-1.8.0-pyhd8ed1ab_0.conda#134b2b57b7865d2316a7cce1915a51ed https://conda.anaconda.org/conda-forge/linux-64/pywavelets-1.4.1-py39h44dd56e_1.conda#d037c20e3da2e85f03ebd20ad480c359 https://conda.anaconda.org/conda-forge/linux-64/scipy-1.11.4-py39h474f0d3_0.conda#4b401c1516417b4b14aa1249d2f7929d @@ -242,15 +246,17 @@ https://conda.anaconda.org/conda-forge/noarch/seaborn-base-0.13.1-pyhd8ed1ab_0.c https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.8.2-py39hf3d152e_0.conda#18d40a5ada9a801cabaf5d47c15c6282 https://conda.anaconda.org/conda-forge/noarch/seaborn-0.13.1-hd8ed1ab_0.conda#8d9b6f5e94b7840210b2b9ed235068c7 https://conda.anaconda.org/conda-forge/noarch/numpydoc-1.6.0-pyhd8ed1ab_0.conda#191b8a622191a403700d16a2008e4e29 +https://conda.anaconda.org/conda-forge/noarch/pydata-sphinx-theme-0.15.1-pyhd8ed1ab_0.conda#0fabe529030c483e4d9eb885667ce47f https://conda.anaconda.org/conda-forge/noarch/sphinx-copybutton-0.5.2-pyhd8ed1ab_0.conda#ac832cc43adc79118cf6e23f1f9b8995 https://conda.anaconda.org/conda-forge/noarch/sphinx-gallery-0.15.0-pyhd8ed1ab_0.conda#1a49ca9515ef9a96edff2eea06143dc6 https://conda.anaconda.org/conda-forge/noarch/sphinx-prompt-1.4.0-pyhd8ed1ab_0.tar.bz2#88ee91e8679603f2a5bd036d52919cc2 -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-1.0.7-pyhd8ed1ab_0.conda#aebfabcb60c33a89c1f9290cab49bc93 -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-devhelp-1.0.5-pyhd8ed1ab_0.conda#ebf08f5184d8eaa486697bc060031953 -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.0.4-pyhd8ed1ab_0.conda#a9a89000dfd19656ad004b937eeb6828 -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-1.0.6-pyhd8ed1ab_0.conda#cf5c9649272c677a964a7313279e3a9b +https://conda.anaconda.org/conda-forge/noarch/sphinx-remove-toctrees-0.0.3-pyhd8ed1ab_0.tar.bz2#f6d4e2188e88cf6929847a850db3b223 +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-1.0.8-pyhd8ed1ab_0.conda#611a35a27914fac3aa37611a6fe40bb5 +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-devhelp-1.0.6-pyhd8ed1ab_0.conda#d7e4954df0d3aea2eacc7835ad12671d +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.0.5-pyhd8ed1ab_0.conda#7e1e7437273682ada2ed5e9e9714b140 +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-1.0.7-pyhd8ed1ab_0.conda#26acae54b06f178681bfb551760f5dd1 https://conda.anaconda.org/conda-forge/noarch/sphinx-7.2.6-pyhd8ed1ab_0.conda#bbfd1120d1824d2d073bc65935f0e4c0 -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.9-pyhd8ed1ab_0.conda#0612e497d7860728f2cda421ea2aec09 +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.10-pyhd8ed1ab_0.conda#e507335cb4ca9cff4c3d0fa9cdab255e https://conda.anaconda.org/conda-forge/noarch/sphinxext-opengraph-0.9.1-pyhd8ed1ab_0.conda#286283e05a1eff606f55e7cd70f6d7f7 # pip attrs @ https://files.pythonhosted.org/packages/e0/44/827b2a91a5816512fcaf3cc4ebc465ccd5d598c45cefa6703fcf4a79018f/attrs-23.2.0-py3-none-any.whl#sha256=99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1 # pip cloudpickle @ https://files.pythonhosted.org/packages/96/43/dae06432d0c4b1dc9e9149ad37b4ca8384cf6eb7700cd9215b177b914f0a/cloudpickle-3.0.0-py3-none-any.whl#sha256=246ee7d0c295602a036e86369c77fecda4ab17b506496730f2f576d9016fd9c7 @@ -260,6 +266,7 @@ https://conda.anaconda.org/conda-forge/noarch/sphinxext-opengraph-0.9.1-pyhd8ed1 # pip json5 @ https://files.pythonhosted.org/packages/70/ba/fa37123a86ae8287d6678535a944f9c3377d8165e536310ed6f6cb0f0c0e/json5-0.9.14-py2.py3-none-any.whl#sha256=740c7f1b9e584a468dbb2939d8d458db3427f2c93ae2139d05f47e453eae964f # pip jsonpointer @ https://files.pythonhosted.org/packages/12/f6/0232cc0c617e195f06f810534d00b74d2f348fe71b2118009ad8ad31f878/jsonpointer-2.4-py2.py3-none-any.whl#sha256=15d51bba20eea3165644553647711d150376234112651b4f1811022aecad7d7a # pip jupyterlab-pygments @ https://files.pythonhosted.org/packages/b1/dd/ead9d8ea85bf202d90cc513b533f9c363121c7792674f78e0d8a854b63b4/jupyterlab_pygments-0.3.0-py3-none-any.whl#sha256=841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780 +# pip libsass @ https://files.pythonhosted.org/packages/fd/5a/eb5b62641df0459a3291fc206cf5bd669c0feed7814dded8edef4ade8512/libsass-0.23.0-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl#sha256=4a218406d605f325d234e4678bd57126a66a88841cb95bee2caeafdc6f138306 # pip mistune @ https://files.pythonhosted.org/packages/f0/74/c95adcdf032956d9ef6c89a9b8a5152bf73915f8c633f3e3d88d06bd699c/mistune-3.0.2-py3-none-any.whl#sha256=71481854c30fdbc938963d3605b72501f5c10a9320ecd412c121c163a1c7d205 # pip overrides @ https://files.pythonhosted.org/packages/da/28/3fa6ef8297302fc7b3844980b6c5dbc71cdbd4b61e9b2591234214d5ab39/overrides-7.4.0-py3-none-any.whl#sha256=3ad24583f86d6d7a49049695efe9933e67ba62f0c7625d53c59fa832ce4b8b7d # pip pandocfilters @ https://files.pythonhosted.org/packages/5e/a8/878258cffd53202a6cc1903c226cf09e58ae3df6b09f8ddfa98033286637/pandocfilters-1.5.0-py2.py3-none-any.whl#sha256=33aae3f25fd1a026079f5d27bdd52496f0e0803b3469282162bafdcbdf6ef14f @@ -270,10 +277,9 @@ https://conda.anaconda.org/conda-forge/noarch/sphinxext-opengraph-0.9.1-pyhd8ed1 # pip python-json-logger @ https://files.pythonhosted.org/packages/35/a6/145655273568ee78a581e734cf35beb9e33a370b29c5d3c8fee3744de29f/python_json_logger-2.0.7-py3-none-any.whl#sha256=f380b826a991ebbe3de4d897aeec42760035ac760345e57b812938dc8b35e2bd # pip pyyaml @ https://files.pythonhosted.org/packages/7d/39/472f2554a0f1e825bd7c5afc11c817cd7a2f3657460f7159f691fbb37c51/PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c # pip rfc3986-validator @ https://files.pythonhosted.org/packages/9e/51/17023c0f8f1869d8806b979a2bffa3f861f26a3f1a66b094288323fba52f/rfc3986_validator-0.1.1-py2.py3-none-any.whl#sha256=2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9 -# pip rpds-py @ https://files.pythonhosted.org/packages/5e/e3/8a2d5cfb6c77c5897e72793b6bdc769fd55e4ce349569a4faf8e076eb775/rpds_py-0.16.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=80443fe2f7b3ea3934c5d75fb0e04a5dbb4a8e943e5ff2de0dec059202b70a8b +# pip rpds-py @ https://files.pythonhosted.org/packages/c2/e9/190521d63b504c12bdcffb27ea6aaac1dbb2521be983c3a2a0ab4a938b8c/rpds_py-0.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=dfe07308b311a8293a0d5ef4e61411c5c20f682db6b5e73de6c7c8824272c256 # pip send2trash @ https://files.pythonhosted.org/packages/a9/78/e4df1e080ed790acf3a704edf521006dd96b9841bd2e2a462c0d255e0565/Send2Trash-1.8.2-py3-none-any.whl#sha256=a384719d99c07ce1eefd6905d2decb6f8b7ed054025bb0e618919f945de4f679 # pip sniffio @ https://files.pythonhosted.org/packages/c3/a0/5dba8ed157b0136607c7f2151db695885606968d1fae123dc3391e0cfdbf/sniffio-1.3.0-py3-none-any.whl#sha256=eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384 -# pip soupsieve @ https://files.pythonhosted.org/packages/4c/f3/038b302fdfbe3be7da016777069f26ceefe11a681055ea1f7817546508e3/soupsieve-2.5-py3-none-any.whl#sha256=eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7 # pip traitlets @ https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl#sha256=2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74 # pip types-python-dateutil @ https://files.pythonhosted.org/packages/28/50/8ed67814241e2684369f4b8b881c7d31a0816e76c8690ea8518017a35b7e/types_python_dateutil-2.8.19.20240106-py3-none-any.whl#sha256=efbbdc54590d0f16152fa103c9879c7d4a00e82078f6e2cf01769042165acaa2 # pip uri-template @ https://files.pythonhosted.org/packages/e7/00/3fca040d7cf8a32776d3d81a00c8ee7457e00f80c649f1e4a863c8321ae9/uri_template-1.3.0-py3-none-any.whl#sha256=a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363 @@ -282,13 +288,13 @@ https://conda.anaconda.org/conda-forge/noarch/sphinxext-opengraph-0.9.1-pyhd8ed1 # pip websocket-client @ https://files.pythonhosted.org/packages/1e/70/1e88138a9afbed1d37093b85f0bebc3011623c4f47c166431599fe9d6c93/websocket_client-1.7.0-py3-none-any.whl#sha256=f4c3d22fec12a2461427a29957ff07d35098ee2d976d3ba244e688b8b4057588 # pip anyio @ https://files.pythonhosted.org/packages/bf/cd/d6d9bb1dadf73e7af02d18225cbd2c93f8552e13130484f1c8dcfece292b/anyio-4.2.0-py3-none-any.whl#sha256=745843b39e829e108e518c489b31dc757de7d2131d53fac32bd8df268227bfee # pip arrow @ https://files.pythonhosted.org/packages/f8/ed/e97229a566617f2ae958a6b13e7cc0f585470eac730a73e9e82c32a3cdd2/arrow-1.3.0-py3-none-any.whl#sha256=c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80 -# pip beautifulsoup4 @ https://files.pythonhosted.org/packages/57/f4/a69c20ee4f660081a7dedb1ac57f29be9378e04edfcb90c526b923d4bebc/beautifulsoup4-4.12.2-py3-none-any.whl#sha256=bd2520ca0d9d7d12694a53d44ac482d181b4ec1888909b035a3dbf40d0f57d4a # pip bleach @ https://files.pythonhosted.org/packages/ea/63/da7237f805089ecc28a3f36bca6a21c31fcbc2eb380f3b8f1be3312abd14/bleach-6.1.0-py3-none-any.whl#sha256=3225f354cfc436b9789c66c4ee030194bee0568fbf9cbdad3bc8b5c26c5f12b6 # pip cffi @ https://files.pythonhosted.org/packages/ea/ac/e9e77bc385729035143e54cc8c4785bd480eaca9df17565963556b0b7a93/cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098 # pip doit @ https://files.pythonhosted.org/packages/44/83/a2960d2c975836daa629a73995134fd86520c101412578c57da3d2aa71ee/doit-0.36.0-py3-none-any.whl#sha256=ebc285f6666871b5300091c26eafdff3de968a6bd60ea35dd1e3fc6f2e32479a -# pip jupyter-core @ https://files.pythonhosted.org/packages/4f/64/c15b7ac8915f7cae6c64718a6ffbb5e75fd398cda05d0a8aca2f570f0ed5/jupyter_core-5.7.0-py3-none-any.whl#sha256=16eea462f7dad23ba9f86542bdf17f830804e2028eb48d609b6134d91681e983 +# pip jupyter-core @ https://files.pythonhosted.org/packages/86/a1/354cade6907f2fbbd32d89872ec64b62406028e7645ac13acfdb5732829e/jupyter_core-5.7.1-py3-none-any.whl#sha256=c65c82126453a723a2804aa52409930434598fd9d35091d63dfb919d2b765bb7 # pip referencing @ https://files.pythonhosted.org/packages/14/2a/0a9f649354cd2d40f6c4f16eadabd9727377e3b9bc2ccec6cb630d9a6765/referencing-0.32.1-py3-none-any.whl#sha256=7e4dc12271d8e15612bfe35792f5ea1c40970dadf8624602e33db2758f7ee554 # pip rfc3339-validator @ https://files.pythonhosted.org/packages/7b/44/4e421b96b67b2daff264473f7465db72fbdf36a07e05494f50300cc7b0c6/rfc3339_validator-0.1.4-py2.py3-none-any.whl#sha256=24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa +# pip sphinxcontrib-sass @ https://files.pythonhosted.org/packages/2e/87/7c2eb08e3ca1d6baae32c0a5e005330fe1cec93a36aa085e714c3b3a3c7d/sphinxcontrib_sass-0.3.4-py2.py3-none-any.whl#sha256=a0c79a44ae8b8935c02dc340ebe40c9e002c839331201c899dc93708970c355a # pip terminado @ https://files.pythonhosted.org/packages/69/df/deebc9fb14a49062a3330f673e80b100e665b54d998163b3f62620b6240c/terminado-0.18.0-py3-none-any.whl#sha256=87b0d96642d0fe5f5abd7783857b9cab167f221a39ff98e3b9619a788a3c0f2e # pip tinycss2 @ https://files.pythonhosted.org/packages/da/99/fd23634d6962c2791fb8cb6ccae1f05dcbfc39bce36bba8b1c9a8d92eae8/tinycss2-1.2.1-py3-none-any.whl#sha256=2b80a96d41e7c3914b8cda8bc7f705a4d9c49275616e886103dd839dfc847847 # pip argon2-cffi-bindings @ https://files.pythonhosted.org/packages/ec/f7/378254e6dd7ae6f31fe40c8649eea7d4832a42243acaf0f1fff9083b2bed/argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae @@ -304,7 +310,7 @@ https://conda.anaconda.org/conda-forge/noarch/sphinxext-opengraph-0.9.1-pyhd8ed1 # pip jupyter-events @ https://files.pythonhosted.org/packages/e3/55/0c1aa72f4317e826a471dc4adc3036acd11d496ded68c4bbac2a88551519/jupyter_events-0.9.0-py3-none-any.whl#sha256=d853b3c10273ff9bc8bb8b30076d65e2c9685579db736873de6c2232dde148bf # pip nbformat @ https://files.pythonhosted.org/packages/f4/e7/ef30a90b70eba39e675689b9eaaa92530a71d7435ab8f9cae520814e0caf/nbformat-5.9.2-py3-none-any.whl#sha256=1c5172d786a41b82bcfd0c23f9e6b6f072e8fb49c39250219e4acfff1efe89e9 # pip nbclient @ https://files.pythonhosted.org/packages/6b/3a/607149974149f847125c38a62b9ea2b8267eb74823bbf8d8c54ae0212a00/nbclient-0.9.0-py3-none-any.whl#sha256=a3a1ddfb34d4a9d17fc744d655962714a866639acd30130e9be84191cd97cd15 -# pip nbconvert @ https://files.pythonhosted.org/packages/7f/ba/3a8a9870a8b42e63e8f5e770adedd191d5adc2348f3097fc0e7c83a39439/nbconvert-7.14.0-py3-none-any.whl#sha256=483dde47facdaa4875903d651305ad53cd76e2255ae3c61efe412a95f2d22a24 -# pip jupyter-server @ https://files.pythonhosted.org/packages/0c/3b/24a511c81b580a038aca06c91fc89df0464815903044bae1c85145cdf03c/jupyter_server-2.12.2-py3-none-any.whl#sha256=abcfa33f98a959f908c8733aa2d9fa0101d26941cbd49b148f4cef4d3046fc61 +# pip nbconvert @ https://files.pythonhosted.org/packages/17/d3/7d08470a59e591f73afbc685d910886f96a38be86df3ca95398c491b8d23/nbconvert-7.14.1-py3-none-any.whl#sha256=aa83e3dd27ea38d0c1d908e3ce9518d15fa908dd30521b6d5040bd23f33fffb0 +# pip jupyter-server @ https://files.pythonhosted.org/packages/f9/12/92ddd4af39e6c994722f6a016602647dbab74c3a2ff661b257e44f3ce27d/jupyter_server-2.12.4-py3-none-any.whl#sha256=a125ae18a60de568f78f55c84dd58759901a18ef279abf0418ac220653ca1320 # pip jupyterlab-server @ https://files.pythonhosted.org/packages/a2/97/abbbe35fc67b6f9423309988f2e411f7cb117b08321866d3d8b720f4c0d4/jupyterlab_server-2.25.2-py3-none-any.whl#sha256=5b1798c9cc6a44f65c757de9f97fc06fc3d42535afbf47d2ace5e964ab447aaf # pip jupyterlite-sphinx @ https://files.pythonhosted.org/packages/9c/bd/1695eebeb376315c9fc5cbd41c54fb84bb69c68e69651bfc6f03aa4fe659/jupyterlite_sphinx-0.11.0-py3-none-any.whl#sha256=2a0762167e89ec6acd267c73bb90b528728fdba5e30390ea4fe37ddcec277191 diff --git a/build_tools/circle/doc_min_dependencies_environment.yml b/build_tools/circle/doc_min_dependencies_environment.yml index 3a8320a7f8dd0..37682ec2c5ce3 100644 --- a/build_tools/circle/doc_min_dependencies_environment.yml +++ b/build_tools/circle/doc_min_dependencies_environment.yml @@ -30,6 +30,9 @@ dependencies: - plotly=5.14.0 # min - polars=0.19.12 # min - pooch + - sphinx-remove-toctrees=0.0.3 # min + - pydata-sphinx-theme=0.13.3 # min - pip - pip: - sphinxext-opengraph==0.4.2 # min + - sphinxcontrib-sass==0.3.4 # min diff --git a/build_tools/circle/doc_min_dependencies_linux-64_conda.lock b/build_tools/circle/doc_min_dependencies_linux-64_conda.lock index b0848d8fbea6f..718260ba75faa 100644 --- a/build_tools/circle/doc_min_dependencies_linux-64_conda.lock +++ b/build_tools/circle/doc_min_dependencies_linux-64_conda.lock @@ -1,6 +1,6 @@ # Generated by conda-lock. # platform: linux-64 -# input_hash: a58a98732e5815c15757bc1def8ddc0d87f20f11edcf6e7b408594bf948cbb3e +# input_hash: d2a405ae969c3a19dc55137b3fc1e6dbf1571929b04d8e9bc1dcaee6a97bd034 @EXPLICIT https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2#d7c89558ba9fa0495403155b64376d81 https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2023.11.17-hbcca054_0.conda#01ffc8d36f9eba0ce0b3c1955fa780ee @@ -48,7 +48,7 @@ https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.3.2-hd590300_0.co https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda#5aa797f8787fe7a17d1b0821485b5adc https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-hd590300_5.conda#f36c115f1ee199da648e0597ec2047ad https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.9.4-hcb278e6_0.conda#318b08df404f9c9be5712aaa5a6f0bb0 -https://conda.anaconda.org/conda-forge/linux-64/mpg123-1.32.3-h59595ed_0.conda#bdadff838d5437aea83607ced8b37f75 +https://conda.anaconda.org/conda-forge/linux-64/mpg123-1.32.4-h59595ed_0.conda#3f1017b4141e943d9bc8739237f749e8 https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.4-h59595ed_2.conda#7dbaa197d7ba6032caf7ae7f32c1efa0 https://conda.anaconda.org/conda-forge/linux-64/nspr-4.35-h27087fc_0.conda#da0ec11a6454ae19bff5b02ed881a2b1 https://conda.anaconda.org/conda-forge/linux-64/openssl-3.2.0-hd590300_1.conda#603827b39ea2b835268adb8c821b8570 @@ -105,7 +105,7 @@ https://conda.anaconda.org/conda-forge/linux-64/xcb-util-keysyms-0.4.0-h8ee46fc_ https://conda.anaconda.org/conda-forge/linux-64/xcb-util-renderutil-0.3.9-hd590300_1.conda#e995b155d938b6779da6ace6c6b13816 https://conda.anaconda.org/conda-forge/linux-64/xcb-util-wm-0.4.1-h8ee46fc_1.conda#90108a432fb5c6150ccfee3f03388656 https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.7-h8ee46fc_0.conda#49e482d882669206653b095f5206c05b -https://conda.anaconda.org/conda-forge/noarch/alabaster-0.7.13-pyhd8ed1ab_0.conda#06006184e203b61d3525f90de394471e +https://conda.anaconda.org/conda-forge/noarch/alabaster-0.7.16-pyhd8ed1ab_0.conda#def531a3ac77b7fb8c21d17bb5d0badb https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py39h3d6467e_1.conda#c48418c8b35f1d59ae9ae1174812b40a https://conda.anaconda.org/conda-forge/linux-64/c-compiler-1.7.0-hd590300_0.conda#fad1d0a651bf929c6c16fbf1f6ccfa7c https://conda.anaconda.org/conda-forge/noarch/certifi-2023.11.17-pyhd8ed1ab_0.conda#2011bcf45376341dd1d690263fdbc789 @@ -117,7 +117,7 @@ https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda#5 https://conda.anaconda.org/conda-forge/linux-64/cython-0.29.33-py39h227be39_0.conda#34bab6ef3e8cdf86fe78c46a984d3217 https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-h5008d03_3.tar.bz2#ecfff944ba3960ecb334b9a2663d708d https://conda.anaconda.org/conda-forge/linux-64/docutils-0.19-py39hf3d152e_1.tar.bz2#adb733ec2ee669f6d010758d054da60f -https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_0.conda#f6c211fee3c98229652b60a9a42ef363 +https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda#8d652ea2ee8eaee02ed8dc820bc794aa https://conda.anaconda.org/conda-forge/noarch/execnet-2.0.2-pyhd8ed1ab_0.conda#67de0d8241e1060a479e3c37793e26f9 https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.14.2-h14ed4e7_0.conda#0f69b688f52ff6da70bccb7ff7001d1d https://conda.anaconda.org/conda-forge/noarch/fsspec-2023.12.2-pyhca7485f_0.conda#bf40f2a8835b78b1f91083d306b493d2 @@ -154,6 +154,7 @@ https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.1-py39hd1e30aa_1.cond https://conda.anaconda.org/conda-forge/linux-64/setuptools-59.8.0-py39hf3d152e_1.tar.bz2#4252d0c211566a9f65149ba7f6e87aa4 https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2#e5f25f8dbc060e9a8d912e432202afc2 https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-2.2.0-pyhd8ed1ab_0.tar.bz2#4d22a9315e78c6827f806065957d566e +https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.5-pyhd8ed1ab_1.conda#3f144b2c34f8cb5a9abd9ed23a39c561 https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jsmath-1.0.1-pyhd8ed1ab_0.conda#da1d979339e2714c30a8e806a33ec087 https://conda.anaconda.org/conda-forge/noarch/tenacity-8.2.3-pyhd8ed1ab_0.conda#1482e77f87c6a702a7e05ef22c9b197b https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.2.0-pyha21a80b_0.conda#978d03388b62173b8e6f79162cf52b86 @@ -168,14 +169,16 @@ https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.40-hd590300_0 https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.4-h0b41bf4_2.conda#82b6df12252e6f32402b96dacc656fec https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hd590300_0.conda#ed67c36f215b310412b2af935bf3e530 https://conda.anaconda.org/conda-forge/noarch/zipp-3.17.0-pyhd8ed1ab_0.conda#2e4d6bc0b14e10f895fc6791a7d9b26a +https://conda.anaconda.org/conda-forge/noarch/accessible-pygments-0.0.4-pyhd8ed1ab_0.conda#46a2e6e3dfa718ce3492018d5a110dd6 https://conda.anaconda.org/conda-forge/noarch/babel-2.14.0-pyhd8ed1ab_0.conda#9669586875baeced8fc30c0826c3270e +https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.2-pyha770c72_0.conda#a362ff7d976217f8fa78c0f1c4f59717 https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-h3faef2a_0.conda#f907bb958910dc404647326ca80c263e https://conda.anaconda.org/conda-forge/linux-64/cxx-compiler-1.7.0-h00ab1b0_0.conda#b4537c98cb59f8725b0e1e65816b4a28 https://conda.anaconda.org/conda-forge/linux-64/cytoolz-0.12.2-py39hd1e30aa_1.conda#e5b62f0c1f96413116f16d33973f1a44 https://conda.anaconda.org/conda-forge/linux-64/fortran-compiler-1.7.0-heb67821_0.conda#7ef7c0f111dad1c8006504a0f1ccd820 https://conda.anaconda.org/conda-forge/linux-64/glib-2.78.3-hfc55251_0.conda#e08e51acc7d1ae8dbe13255e7b4c64ac https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-7.0.1-pyha770c72_0.conda#746623a787e06191d80a2133e5daff17 -https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.2-pyhd8ed1ab_1.tar.bz2#c8490ed5c70966d232fdd389d0dbed37 +https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.3-pyhd8ed1ab_0.conda#e7d8df6509ba635247ff9aea31134262 https://conda.anaconda.org/conda-forge/noarch/joblib-1.3.2-pyhd8ed1ab_0.conda#4da50d410f553db77e62ab62ffaa1abc https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-20_linux64_openblas.conda#36d486d72ab64ffea932329a1d3729a3 https://conda.anaconda.org/conda-forge/linux-64/libclang-15.0.7-default_hb11cfb5_4.conda#c90f4cbb57839c98fef8f830e4b9972f @@ -201,7 +204,7 @@ https://conda.anaconda.org/conda-forge/linux-64/pyqt5-sip-12.12.2-py39h3d6467e_5 https://conda.anaconda.org/conda-forge/noarch/pytest-xdist-3.5.0-pyhd8ed1ab_0.conda#d5f595da2daead898ca958ac62f0307b https://conda.anaconda.org/conda-forge/noarch/requests-2.31.0-pyhd8ed1ab_0.conda#a30144e4156cdbb236f99ebb49828f8b https://conda.anaconda.org/conda-forge/linux-64/blas-devel-3.9.0-20_linux64_openblas.conda#9932a1d4e9ecf2d35fb19475446e361e -https://conda.anaconda.org/conda-forge/noarch/dask-core-2023.12.1-pyhd8ed1ab_0.conda#bf6ad72d882bc3f04e6a0fb50fd2cce8 +https://conda.anaconda.org/conda-forge/noarch/dask-core-2024.1.0-pyhd8ed1ab_0.conda#cab4cec272dc1e30086f7d32faa4f130 https://conda.anaconda.org/conda-forge/linux-64/gst-plugins-base-1.22.8-h8e1006c_1.conda#3926dab94fe06d88ade0e716d77b8cf8 https://conda.anaconda.org/conda-forge/linux-64/imagecodecs-lite-2019.12.3-py39hd257fcd_5.tar.bz2#32dba66d6abc2b4b5b019c9e54307312 https://conda.anaconda.org/conda-forge/noarch/imageio-2.33.1-pyh8c1a49c_0.conda#1c34d58ac469a34e7e96832861368bce @@ -223,13 +226,17 @@ https://conda.anaconda.org/conda-forge/linux-64/scikit-image-0.17.2-py39hde0f152 https://conda.anaconda.org/conda-forge/noarch/seaborn-0.12.2-hd8ed1ab_0.conda#50847a47c07812f88581081c620f5160 https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.3.4-py39hf3d152e_0.tar.bz2#cbaec993375a908bbe506dc7328d747c https://conda.anaconda.org/conda-forge/noarch/numpydoc-1.2-pyhd8ed1ab_0.tar.bz2#025ad7ca2c7f65007ab6b6f5d93a56eb +https://conda.anaconda.org/conda-forge/noarch/pydata-sphinx-theme-0.13.3-pyhd8ed1ab_0.conda#07aca5f2dea315dcc16680d6891e9056 https://conda.anaconda.org/conda-forge/noarch/sphinx-copybutton-0.5.2-pyhd8ed1ab_0.conda#ac832cc43adc79118cf6e23f1f9b8995 https://conda.anaconda.org/conda-forge/noarch/sphinx-gallery-0.15.0-pyhd8ed1ab_0.conda#1a49ca9515ef9a96edff2eea06143dc6 https://conda.anaconda.org/conda-forge/noarch/sphinx-prompt-1.3.0-py_0.tar.bz2#9363002e2a134a287af4e32ff0f26cdc -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-1.0.7-pyhd8ed1ab_0.conda#aebfabcb60c33a89c1f9290cab49bc93 -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-devhelp-1.0.5-pyhd8ed1ab_0.conda#ebf08f5184d8eaa486697bc060031953 -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.0.4-pyhd8ed1ab_0.conda#a9a89000dfd19656ad004b937eeb6828 -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-1.0.6-pyhd8ed1ab_0.conda#cf5c9649272c677a964a7313279e3a9b +https://conda.anaconda.org/conda-forge/noarch/sphinx-remove-toctrees-0.0.3-pyhd8ed1ab_0.tar.bz2#f6d4e2188e88cf6929847a850db3b223 +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-1.0.8-pyhd8ed1ab_0.conda#611a35a27914fac3aa37611a6fe40bb5 +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-devhelp-1.0.6-pyhd8ed1ab_0.conda#d7e4954df0d3aea2eacc7835ad12671d +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.0.5-pyhd8ed1ab_0.conda#7e1e7437273682ada2ed5e9e9714b140 +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-1.0.7-pyhd8ed1ab_0.conda#26acae54b06f178681bfb551760f5dd1 https://conda.anaconda.org/conda-forge/noarch/sphinx-6.0.0-pyhd8ed1ab_2.conda#ac1d3b55da1669ee3a56973054fd7efb -https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.9-pyhd8ed1ab_0.conda#0612e497d7860728f2cda421ea2aec09 +https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.10-pyhd8ed1ab_0.conda#e507335cb4ca9cff4c3d0fa9cdab255e +# pip libsass @ https://files.pythonhosted.org/packages/fd/5a/eb5b62641df0459a3291fc206cf5bd669c0feed7814dded8edef4ade8512/libsass-0.23.0-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl#sha256=4a218406d605f325d234e4678bd57126a66a88841cb95bee2caeafdc6f138306 +# pip sphinxcontrib-sass @ https://files.pythonhosted.org/packages/2e/87/7c2eb08e3ca1d6baae32c0a5e005330fe1cec93a36aa085e714c3b3a3c7d/sphinxcontrib_sass-0.3.4-py2.py3-none-any.whl#sha256=a0c79a44ae8b8935c02dc340ebe40c9e002c839331201c899dc93708970c355a # pip sphinxext-opengraph @ https://files.pythonhosted.org/packages/50/ac/c105ed3e0a00b14b28c0aa630935af858fd8a32affeff19574b16e2c6ae8/sphinxext_opengraph-0.4.2-py3-none-any.whl#sha256=a51f2604f9a5b6c0d25d3a88e694d5c02e20812dc0e482adf96c8628f9109357 diff --git a/build_tools/update_environments_and_lock_files.py b/build_tools/update_environments_and_lock_files.py index 1115e89408dd9..7daa3ff448833 100644 --- a/build_tools/update_environments_and_lock_files.py +++ b/build_tools/update_environments_and_lock_files.py @@ -287,8 +287,13 @@ def remove_from(alist, to_remove): "plotly", "polars", "pooch", + "sphinx-remove-toctrees", + "pydata-sphinx-theme", + ], + "pip_dependencies": [ + "sphinxext-opengraph", + "sphinxcontrib-sass", ], - "pip_dependencies": ["sphinxext-opengraph"], "package_constraints": { "python": "3.9", "numpy": "min", @@ -305,6 +310,9 @@ def remove_from(alist, to_remove): "sphinxext-opengraph": "min", "plotly": "min", "polars": "min", + "sphinxcontrib-sass": "min", + "sphinx-remove-toctrees": "min", + "pydata-sphinx-theme": "min", }, }, { @@ -328,8 +336,14 @@ def remove_from(alist, to_remove): "polars", "pooch", "sphinxext-opengraph", + "sphinx-remove-toctrees", + "pydata-sphinx-theme", + ], + "pip_dependencies": [ + "jupyterlite-sphinx", + "jupyterlite-pyodide-kernel", + "sphinxcontrib-sass", ], - "pip_dependencies": ["jupyterlite-sphinx", "jupyterlite-pyodide-kernel"], "package_constraints": { "python": "3.9", }, diff --git a/doc/Makefile b/doc/Makefile index 44f02585f6205..248c0694b9e53 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -50,6 +50,7 @@ clean: -rm -rf auto_examples/ -rm -rf generated/* -rm -rf modules/generated/ + -rm -rf css/styles/ # Default to SPHINX_NUMJOBS=1 for full documentation build. Using # SPHINX_NUMJOBS!=1 may actually slow down the build, or cause weird issues in diff --git a/doc/conf.py b/doc/conf.py index 20181c0a84769..9992c582e6b68 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -55,14 +55,17 @@ "sphinx.ext.intersphinx", "sphinx.ext.imgconverter", "sphinx_gallery.gen_gallery", - "sphinx_issues", - "add_toctree_functions", "sphinx-prompt", "sphinx_copybutton", "sphinxext.opengraph", - "doi_role", - "allow_nan_estimators", "matplotlib.sphinxext.plot_directive", + "sphinxcontrib.sass", + "sphinx_remove_toctrees", + # See sphinxext/ + "add_toctree_functions", + "allow_nan_estimators", + "doi_role", + "sphinx_issues", ] # Specify how to identify the prompt when copying code snippets @@ -122,7 +125,7 @@ source_suffix = ".rst" # The encoding of source files. -# source_encoding = 'utf-8' +source_encoding = "utf-8" # The main toctree document. root_doc = "contents" @@ -176,9 +179,6 @@ # output. They are ignored by default. # show_authors = False -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = "sphinx" - # A list of ignored prefixes for module index sorting. # modindex_common_prefix = [] @@ -187,20 +187,101 @@ # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. -html_theme = "scikit-learn-modern" +html_theme = "pydata_sphinx_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. html_theme_options = { - "legacy_google_analytics": True, - "analytics": True, - "mathjax_path": mathjax_path, - "link_to_live_contributing_page": not parsed_version.is_devrelease, + # -- General configuration ------------------------------------------------ + "sidebar_includehidden": True, + "use_edit_page_button": True, + "external_links": [], + "icon_links_label": "Icon Links", + "icon_links": [ + { + "name": "GitHub", + "url": "https://github.com/scikit-learn/scikit-learn", + "icon": "fa-brands fa-square-github", + "type": "fontawesome", + }, + ], + "analytics": { + "plausible_analytics_domain": "scikit-learn.org", + "plausible_analytics_url": "https://views.scientific-python.org/js/script.js", + }, + # If "prev-next" is included in article_footer_items, then setting show_prev_next + # to True would repeat prev and next links, as of pydata-sphinx-theme 0.14.0. See + # https://github.com/pydata/pydata-sphinx-theme/blob/b731dc230bc26a3d1d1bb039c56c977a9b3d25d8/src/pydata_sphinx_theme/theme/pydata_sphinx_theme/layout.html#L118-L129 + "show_prev_next": False, + "search_bar_text": "Search the docs ...", + "navigation_with_keys": False, + "collapse_navigation": False, + "navigation_depth": 2, + "show_nav_level": 1, + "show_toc_level": 1, + "navbar_align": "left", + "header_links_before_dropdown": 5, + "header_dropdown_text": "More", + # The switcher requires a JSON file with the list of documentation versions, which + # is generated by the script build_tools/circle/list_versions.py. For the switcher + # to be displayed, one adds "version-switcher" somewhere in the page layout. See + # https://pydata-sphinx-theme.readthedocs.io/en/stable/user_guide/version-dropdown.html + "switcher": { + # TODO: Change to (maybe) https://scikit-learn.org/dev/_static/versions.json + # The current URL is hosted on my personal website, and is for testing purpose. + # My ideal logic is here: in CircleCI when running build_doc.sh we generate the + # versions.json file under doc/, and this file is added in html_extra_path to be + # copied into the build directory, uploaded somewhere under scikit-learn.org, + # and that "somewhere" is the "json_url" here. + "json_url": ( + "https://charlie-xiao.github.io/assets/json/sklearn-versions-test.json" + ), + "version_match": release, + }, + # check_switcher may be set to False if docbuild pipeline fails. See + # https://pydata-sphinx-theme.readthedocs.io/en/stable/user_guide/version-dropdown.html#configure-switcher-json-url + "check_switcher": True, + "pygment_light_style": "tango", + "pygment_dark_style": "monokai", + "logo": { + # TODO: we should put "link": "index" here, but it is not currently working + # because the navbar-logo component is using hasdoc() to determine if the link + # is an internal link or an external url, while html_additional_pages do not + # seem to pass hasdoc(). See + # https://github.com/pydata/pydata-sphinx-theme/issues/1647 + # If this cannot be fixed we can consider vendoring the navbar-logo component + # and fixing it ourselves. + "alt_text": "scikit-learn homepage", + "image_relative": "logos/scikit-learn-logo-small.png", + "image_light": "logos/scikit-learn-logo-small.png", + "image_dark": "logos/scikit-learn-logo-small.png", + }, + "surface_warnings": True, + # -- Template placement in theme layouts ---------------------------------- + "navbar_start": ["navbar-logo"], + # Note that the alignment of navbar_center is controlled by navbar_align + "navbar_center": ["navbar-nav"], + "navbar_end": ["theme-switcher", "navbar-icon-links", "version-switcher"], + # navbar_persistent is persistent right (even when on mobiles) + "navbar_persistent": ["search-button"], + "article_header_start": ["breadcrumbs"], + "article_header_end": [], + "article_footer_items": ["prev-next"], + "content_footer_items": [], + # Use html_sidebars that map page patterns to list of sidebar templates + "primary_sidebar_end": [], + "footer_start": ["copyright"], + "footer_center": [], + "footer_end": [], + # Use :html_theme.sidebar_secondary.remove: for file-wide removal + "secondary_sidebar_items": ["page-toc", "sourcelink"], + "show_version_warning_banner": True, + "announcement": [], } # Add any paths that contain custom themes here, relative to this directory. -html_theme_path = ["themes"] +# html_theme_path = ["themes"] # The name for this set of Sphinx documents. If None, it defaults to @@ -210,10 +291,6 @@ # A shorter title for the navigation bar. Default is the same as html_title. html_short_title = "scikit-learn" -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -html_logo = "logos/scikit-learn-logo-small.png" - # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. @@ -222,7 +299,7 @@ # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ["images"] +html_static_path = ["images", "css", "js"] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. @@ -235,6 +312,18 @@ # template names. html_additional_pages = {"index": "index.html"} +# Additional JS files +html_js_files = ["scripts/details-permalink.js"] + +# Additional CSS files, which are compiled from scss files using sphinxcontrib-sass +html_css_file_names = [ + "colors", + "custom", +] +sass_src_dir, sass_out_dir = "scss", "css/styles" +sass_targets = {f"{name}.scss": f"{name}.css" for name in html_css_file_names} +html_css_files = [f"styles/{name}.css" for name in html_css_file_names] + # If false, no module index is generated. html_domain_indices = False @@ -311,12 +400,15 @@ for old_link in redirects: html_additional_pages[old_link] = "redirects.html" +# See https://github.com/scikit-learn/scikit-learn/pull/22550 +html_context["is_devrelease"] = parsed_version.is_devrelease + # Not showing the search summary makes the search page load faster. html_show_search_summary = True # The "summary-anchor" IDs will be overwritten via JavaScript to be unique. -# See `doc/theme/scikit-learn-modern/static/js/details-permalink.js`. +# See `doc/js/scripts/details-permalink.js`. rst_prolog = """ .. |details-start| raw:: html @@ -802,6 +894,10 @@ def setup(app): "consistently-create-same-random-numpy-array/5837352#comment6712034_5837352", ] +# Config for sphinx-remove-toctrees + +remove_from_toctrees = ["metadata_routing.rst"] + # Use a browser-like user agent to avoid some "403 Client Error: Forbidden for # url" errors. This is taken from the variable navigator.userAgent inside a # browser console. diff --git a/doc/contents.rst b/doc/contents.rst index a28634621d558..f37aad8c5547b 100644 --- a/doc/contents.rst +++ b/doc/contents.rst @@ -14,11 +14,20 @@ Table Of Contents .. toctree:: :maxdepth: 2 - preface - tutorial/index - getting_started + Install user_guide - glossary + API auto_examples/index - modules/classes - developers/index + Community + getting_started + Tutorials + whats_new + Glossary + Development + FAQ + support + related_projects + roadmap + Governance + about + Other Versions and Download diff --git a/doc/css/.gitkeep b/doc/css/.gitkeep new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/doc/js/scripts/details-permalink.js b/doc/js/scripts/details-permalink.js new file mode 100644 index 0000000000000..62392e9836f64 --- /dev/null +++ b/doc/js/scripts/details-permalink.js @@ -0,0 +1,47 @@ +// Function to create permalink into
elements to be able to link them +// The assumption is that such a block will be defined as follows: +//
+// +// Some title +// Click for more details +// ΒΆ +// +//
+// Some details +//
+//
+// We seek to replace `#summary-anchor` with a unique identifier based on the +// summary text. +// This syntax is defined in `doc/conf.py` in the `rst_prolog` variable. +function updateIdAndHrefBasedOnSummaryText() { + var allDetailsElements = document.querySelectorAll('details'); + // Counter to store the duplicated summary text to add it as a suffix in the + // anchor ID + var anchorIDCounters = {}; + + allDetailsElements.forEach(function (detailsElement) { + // Get the element within the current
+ var summaryElement = detailsElement.querySelector('summary'); + + // The ID uses the first line, lowercased, and spaces replaced with dashes + var anchorID = summaryElement.textContent.trim().split("\n")[0].replace(/\s+/g, '-').toLowerCase(); + + // Suffix the anchor ID with a counter if it already exists + if (anchorIDCounters[anchorID]) { + anchorIDCounters[anchorID] += 1; + anchorID = anchorID + '-' + anchorIDCounters[anchorID]; + } else { + anchorIDCounters[anchorID] = 1; + } + + detailsElement.setAttribute('id', anchorID); + + var anchorElement = summaryElement.querySelector('a.headerlink'); + anchorElement.setAttribute('href', '#' + anchorID); + }); +} + +// Add an event listener to execute the function when the page is loaded +document.addEventListener('DOMContentLoaded', function () { + updateIdAndHrefBasedOnSummaryText(); +}); diff --git a/doc/make.bat b/doc/make.bat index b7e269a6a7836..1fbcb570e1697 100644 --- a/doc/make.bat +++ b/doc/make.bat @@ -29,8 +29,23 @@ if "%1" == "help" ( ) if "%1" == "clean" ( - for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i - del /q /s %BUILDDIR%\* + if exist %BUILDDIR%\ ( + for /d %%i in (%BUILDDIR%\*) do rmdir /q /s "%%i" + del /q /s %BUILDDIR%\* + ) + if exist auto_examples\ ( + rmdir /q /s auto_examples + ) + if exist generated\ ( + for /d %%i in (generated\*) do rmdir /q /s "%%i" + del /q /s generated\* + ) + if exist modules\generated\ ( + rmdir /q /s modules\generated + ) + if exist css\styles\ ( + rmdir /q /s css\styles + ) goto end ) diff --git a/doc/scss/colors.scss b/doc/scss/colors.scss new file mode 100644 index 0000000000000..28623e5307a4e --- /dev/null +++ b/doc/scss/colors.scss @@ -0,0 +1,6 @@ +/** This is the style sheet for customized colors of scikit-learn. + */ + +:root { + +} diff --git a/doc/scss/custom.scss b/doc/scss/custom.scss new file mode 100644 index 0000000000000..d73a3634c48b0 --- /dev/null +++ b/doc/scss/custom.scss @@ -0,0 +1,54 @@ +/** This is a general styling sheet. + * It is mainly used to override the default styling of pydata-sphinx-theme. + */ + +/** The search button in pydata-sphinx-theme, when used as "search-button" instead of + * "search-button-field", has a strange bottom padding that cause it to not align with + * other buttons in the navbar. + */ + +button.search-button { + padding: 0; +} + +/** Fix the width of the primary sidebar. + */ + +.bd-sidebar-primary{ + width: 20em; +} + +/** Disable the border and background of ..topic::; meanwhile revert the text coloring + * to normal and retain the normal padding of lists. + */ + +div.topic +aside.topic { + background-color: transparent; + border: none; + padding: 0; + box-shadow: none !important; + + p { + color: var(--pst-color-text-base) !important; + } + + ul.simple { + padding-left: 2rem; + } +} + +/** pydata-sphinx-theme unsets margin-bottom for the version switcher button only when + * screen width >= 960px, causing the button to not align with other icons when screen + * width is small */ + +button.btn.version-switcher__button { + margin-bottom: unset; +} + +/** Ensure that aspect ratio of images in the body part is not changed. + */ + +article.bd-article img { + height: unset !important; +} diff --git a/doc/templates/index.html b/doc/templates/index.html index a20da900bafcb..bc95b52f62270 100644 --- a/doc/templates/index.html +++ b/doc/templates/index.html @@ -1,16 +1,19 @@ {% extends "layout.html" %} {% set title = 'scikit-learn: machine learning in Python' %} -{% if theme_link_to_live_contributing_page|tobool %} +{% if is_devrelease|tobool %} + {%- set contributing_link = pathto("developers/contributing") %} + {%- set contributing_attrs = "" %} +{%- else %} {%- set contributing_link = "https://scikit-learn.org/dev/developers/contributing.html" %} {%- set contributing_attrs = 'target="_blank" rel="noopener noreferrer"' %} -{%- else %} - {%- set contributing_link = pathto('developers/contributing') %} - {%- set contributing_attrs = '' %} {%- endif %} +{%- import "static/webpack-macros.html" as _webpack with context %} + +{% block docs_navbar %} +{{ super() }} -{% block content %}
@@ -33,6 +36,10 @@

Machine Learning in

+{% endblock docs_navbar %} + +{% block docs_main %} +
@@ -160,6 +167,10 @@

Machine Learning in

+{% endblock docs_main %} + +{% block footer %} +
@@ -263,4 +274,11 @@

Who uses scikit-learn?

-{% endblock %} + +{% endblock footer %} + + + +{%- block scripts_end %} +{{ _webpack.body_post() }} +{%- endblock scripts_end %} diff --git a/sklearn/_min_dependencies.py b/sklearn/_min_dependencies.py index e52034fa5a1e6..7537214d6bde6 100644 --- a/sklearn/_min_dependencies.py +++ b/sklearn/_min_dependencies.py @@ -42,6 +42,9 @@ "sphinx-prompt": ("1.3.0", "docs"), "sphinxext-opengraph": ("0.4.2", "docs"), "plotly": ("5.14.0", "docs, examples"), + "sphinxcontrib-sass": ("0.3.4", "docs"), + "sphinx-remove-toctrees": ("0.0.3", "docs"), + "pydata-sphinx-theme": ("0.13.3", "docs"), # XXX: Pin conda-lock to the latest released version (needs manual update # from time to time) "conda-lock": ("2.4.2", "maintenance"), From cc6717e00e68805af6d42a05f84ecb7166d46007 Mon Sep 17 00:00:00 2001 From: Yao Xiao <108576690+Charlie-XIAO@users.noreply.github.com> Date: Tue, 16 Jan 2024 03:27:53 +0800 Subject: [PATCH 02/19] pin <0.15.0 because top navbar is broken --- build_tools/circle/doc_environment.yml | 2 +- build_tools/circle/doc_linux-64_conda.lock | 4 ++-- build_tools/circle/doc_min_dependencies_environment.yml | 2 +- build_tools/circle/doc_min_dependencies_linux-64_conda.lock | 5 +++-- build_tools/update_environments_and_lock_files.py | 2 ++ sklearn/_min_dependencies.py | 2 +- 6 files changed, 10 insertions(+), 7 deletions(-) diff --git a/build_tools/circle/doc_environment.yml b/build_tools/circle/doc_environment.yml index f297b1c7d73f2..16efad6078132 100644 --- a/build_tools/circle/doc_environment.yml +++ b/build_tools/circle/doc_environment.yml @@ -32,7 +32,7 @@ dependencies: - pooch - sphinxext-opengraph - sphinx-remove-toctrees - - pydata-sphinx-theme + - pydata-sphinx-theme<0.15.0 - pip - pip: - jupyterlite-sphinx diff --git a/build_tools/circle/doc_linux-64_conda.lock b/build_tools/circle/doc_linux-64_conda.lock index f38c5444a6de0..56fa38e14c1f5 100644 --- a/build_tools/circle/doc_linux-64_conda.lock +++ b/build_tools/circle/doc_linux-64_conda.lock @@ -1,6 +1,6 @@ # Generated by conda-lock. # platform: linux-64 -# input_hash: 940dff0ee891fb4b29325235ed06163d1ae81a33715db9d7dd7ceeb83125dc0e +# input_hash: 8212814cb69bb27c0bb01ca4fdfbe55a6ed1c6a7caad4f61fc5cf14f8a4a4d2f @EXPLICIT https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2#d7c89558ba9fa0495403155b64376d81 https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2023.11.17-hbcca054_0.conda#01ffc8d36f9eba0ce0b3c1955fa780ee @@ -246,7 +246,7 @@ https://conda.anaconda.org/conda-forge/noarch/seaborn-base-0.13.1-pyhd8ed1ab_0.c https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.8.2-py39hf3d152e_0.conda#18d40a5ada9a801cabaf5d47c15c6282 https://conda.anaconda.org/conda-forge/noarch/seaborn-0.13.1-hd8ed1ab_0.conda#8d9b6f5e94b7840210b2b9ed235068c7 https://conda.anaconda.org/conda-forge/noarch/numpydoc-1.6.0-pyhd8ed1ab_0.conda#191b8a622191a403700d16a2008e4e29 -https://conda.anaconda.org/conda-forge/noarch/pydata-sphinx-theme-0.15.1-pyhd8ed1ab_0.conda#0fabe529030c483e4d9eb885667ce47f +https://conda.anaconda.org/conda-forge/noarch/pydata-sphinx-theme-0.14.4-pyhd8ed1ab_0.conda#c79b8443908032263ffb40ee6215e9e4 https://conda.anaconda.org/conda-forge/noarch/sphinx-copybutton-0.5.2-pyhd8ed1ab_0.conda#ac832cc43adc79118cf6e23f1f9b8995 https://conda.anaconda.org/conda-forge/noarch/sphinx-gallery-0.15.0-pyhd8ed1ab_0.conda#1a49ca9515ef9a96edff2eea06143dc6 https://conda.anaconda.org/conda-forge/noarch/sphinx-prompt-1.4.0-pyhd8ed1ab_0.tar.bz2#88ee91e8679603f2a5bd036d52919cc2 diff --git a/build_tools/circle/doc_min_dependencies_environment.yml b/build_tools/circle/doc_min_dependencies_environment.yml index 37682ec2c5ce3..c8f2a23deb74d 100644 --- a/build_tools/circle/doc_min_dependencies_environment.yml +++ b/build_tools/circle/doc_min_dependencies_environment.yml @@ -31,7 +31,7 @@ dependencies: - polars=0.19.12 # min - pooch - sphinx-remove-toctrees=0.0.3 # min - - pydata-sphinx-theme=0.13.3 # min + - pydata-sphinx-theme=0.14.3 # min - pip - pip: - sphinxext-opengraph==0.4.2 # min diff --git a/build_tools/circle/doc_min_dependencies_linux-64_conda.lock b/build_tools/circle/doc_min_dependencies_linux-64_conda.lock index 718260ba75faa..28dcf40d776ef 100644 --- a/build_tools/circle/doc_min_dependencies_linux-64_conda.lock +++ b/build_tools/circle/doc_min_dependencies_linux-64_conda.lock @@ -1,6 +1,6 @@ # Generated by conda-lock. # platform: linux-64 -# input_hash: d2a405ae969c3a19dc55137b3fc1e6dbf1571929b04d8e9bc1dcaee6a97bd034 +# input_hash: ddfb6eeae4092857597a44a2616fa67249de8b88d49030188e55d95266a75bec @EXPLICIT https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2#d7c89558ba9fa0495403155b64376d81 https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2023.11.17-hbcca054_0.conda#01ffc8d36f9eba0ce0b3c1955fa780ee @@ -193,6 +193,7 @@ https://conda.anaconda.org/conda-forge/linux-64/pulseaudio-client-16.1-hb77b528_ https://conda.anaconda.org/conda-forge/noarch/pytest-7.4.4-pyhd8ed1ab_0.conda#a9d145de8c5f064b5fa68fb34725d9f4 https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.2-pyhd8ed1ab_0.tar.bz2#dd999d1cc9f79e67dbb855c8924c7984 https://conda.anaconda.org/conda-forge/linux-64/sip-6.7.12-py39h3d6467e_0.conda#e667a3ab0df62c54e60e1843d2e6defb +https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.9.0-hd8ed1ab_0.conda#c16524c1b7227dc80b36b4fa6f77cc86 https://conda.anaconda.org/conda-forge/noarch/urllib3-2.1.0-pyhd8ed1ab_0.conda#f8ced8ee63830dec7ecc1be048d1470a https://conda.anaconda.org/conda-forge/linux-64/compilers-1.7.0-ha770c72_0.conda#81458b3aed8ab8711951ec3c0c04e097 https://conda.anaconda.org/conda-forge/linux-64/gstreamer-1.22.8-h98fc4e7_1.conda#1b52a89485ab573a5bb83a5225ff706e @@ -226,7 +227,7 @@ https://conda.anaconda.org/conda-forge/linux-64/scikit-image-0.17.2-py39hde0f152 https://conda.anaconda.org/conda-forge/noarch/seaborn-0.12.2-hd8ed1ab_0.conda#50847a47c07812f88581081c620f5160 https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.3.4-py39hf3d152e_0.tar.bz2#cbaec993375a908bbe506dc7328d747c https://conda.anaconda.org/conda-forge/noarch/numpydoc-1.2-pyhd8ed1ab_0.tar.bz2#025ad7ca2c7f65007ab6b6f5d93a56eb -https://conda.anaconda.org/conda-forge/noarch/pydata-sphinx-theme-0.13.3-pyhd8ed1ab_0.conda#07aca5f2dea315dcc16680d6891e9056 +https://conda.anaconda.org/conda-forge/noarch/pydata-sphinx-theme-0.14.3-pyhd8ed1ab_1.conda#fbe2993dd48f14724b90bf12e92cc164 https://conda.anaconda.org/conda-forge/noarch/sphinx-copybutton-0.5.2-pyhd8ed1ab_0.conda#ac832cc43adc79118cf6e23f1f9b8995 https://conda.anaconda.org/conda-forge/noarch/sphinx-gallery-0.15.0-pyhd8ed1ab_0.conda#1a49ca9515ef9a96edff2eea06143dc6 https://conda.anaconda.org/conda-forge/noarch/sphinx-prompt-1.3.0-py_0.tar.bz2#9363002e2a134a287af4e32ff0f26cdc diff --git a/build_tools/update_environments_and_lock_files.py b/build_tools/update_environments_and_lock_files.py index 7daa3ff448833..69efd0117f6bd 100644 --- a/build_tools/update_environments_and_lock_files.py +++ b/build_tools/update_environments_and_lock_files.py @@ -346,6 +346,8 @@ def remove_from(alist, to_remove): ], "package_constraints": { "python": "3.9", + # TODO: temporary pin because pydata-sphinx-theme 0.15.0 breaks the navbar + "pydata-sphinx-theme": "<0.15.0", }, }, { diff --git a/sklearn/_min_dependencies.py b/sklearn/_min_dependencies.py index 7537214d6bde6..d3101d74de837 100644 --- a/sklearn/_min_dependencies.py +++ b/sklearn/_min_dependencies.py @@ -44,7 +44,7 @@ "plotly": ("5.14.0", "docs, examples"), "sphinxcontrib-sass": ("0.3.4", "docs"), "sphinx-remove-toctrees": ("0.0.3", "docs"), - "pydata-sphinx-theme": ("0.13.3", "docs"), + "pydata-sphinx-theme": ("0.14.3", "docs"), # XXX: Pin conda-lock to the latest released version (needs manual update # from time to time) "conda-lock": ("2.4.2", "maintenance"), From d090feed828e74465a1cd356ae177f58145c8e10 Mon Sep 17 00:00:00 2001 From: Yao Xiao <108576690+Charlie-XIAO@users.noreply.github.com> Date: Tue, 16 Jan 2024 05:02:02 +0800 Subject: [PATCH 03/19] postpone more changes to further PRs --- doc/scss/colors.scss | 4 ---- doc/scss/custom.scss | 51 ---------------------------------------- doc/templates/index.html | 30 +++++------------------ 3 files changed, 6 insertions(+), 79 deletions(-) diff --git a/doc/scss/colors.scss b/doc/scss/colors.scss index 28623e5307a4e..b374dbba5b73b 100644 --- a/doc/scss/colors.scss +++ b/doc/scss/colors.scss @@ -1,6 +1,2 @@ /** This is the style sheet for customized colors of scikit-learn. */ - -:root { - -} diff --git a/doc/scss/custom.scss b/doc/scss/custom.scss index d73a3634c48b0..22e5675596d16 100644 --- a/doc/scss/custom.scss +++ b/doc/scss/custom.scss @@ -1,54 +1,3 @@ /** This is a general styling sheet. * It is mainly used to override the default styling of pydata-sphinx-theme. */ - -/** The search button in pydata-sphinx-theme, when used as "search-button" instead of - * "search-button-field", has a strange bottom padding that cause it to not align with - * other buttons in the navbar. - */ - -button.search-button { - padding: 0; -} - -/** Fix the width of the primary sidebar. - */ - -.bd-sidebar-primary{ - width: 20em; -} - -/** Disable the border and background of ..topic::; meanwhile revert the text coloring - * to normal and retain the normal padding of lists. - */ - -div.topic -aside.topic { - background-color: transparent; - border: none; - padding: 0; - box-shadow: none !important; - - p { - color: var(--pst-color-text-base) !important; - } - - ul.simple { - padding-left: 2rem; - } -} - -/** pydata-sphinx-theme unsets margin-bottom for the version switcher button only when - * screen width >= 960px, causing the button to not align with other icons when screen - * width is small */ - -button.btn.version-switcher__button { - margin-bottom: unset; -} - -/** Ensure that aspect ratio of images in the body part is not changed. - */ - -article.bd-article img { - height: unset !important; -} diff --git a/doc/templates/index.html b/doc/templates/index.html index bc95b52f62270..a20da900bafcb 100644 --- a/doc/templates/index.html +++ b/doc/templates/index.html @@ -1,19 +1,16 @@ {% extends "layout.html" %} {% set title = 'scikit-learn: machine learning in Python' %} -{% if is_devrelease|tobool %} - {%- set contributing_link = pathto("developers/contributing") %} - {%- set contributing_attrs = "" %} -{%- else %} +{% if theme_link_to_live_contributing_page|tobool %} {%- set contributing_link = "https://scikit-learn.org/dev/developers/contributing.html" %} {%- set contributing_attrs = 'target="_blank" rel="noopener noreferrer"' %} +{%- else %} + {%- set contributing_link = pathto('developers/contributing') %} + {%- set contributing_attrs = '' %} {%- endif %} -{%- import "static/webpack-macros.html" as _webpack with context %} - -{% block docs_navbar %} -{{ super() }} +{% block content %}
@@ -36,10 +33,6 @@

Machine Learning in

-{% endblock docs_navbar %} - -{% block docs_main %} -
@@ -167,10 +160,6 @@

Machine Learning in

-{% endblock docs_main %} - -{% block footer %} -
@@ -274,11 +263,4 @@

Who uses scikit-learn?

- -{% endblock footer %} - - - -{%- block scripts_end %} -{{ _webpack.body_post() }} -{%- endblock scripts_end %} +{% endblock %} From 91d7371eb087ca78cbf5fb57e5724bb0941e0bd3 Mon Sep 17 00:00:00 2001 From: Yao Xiao <108576690+Charlie-XIAO@users.noreply.github.com> Date: Tue, 16 Jan 2024 16:46:18 +0800 Subject: [PATCH 04/19] format scss and js using prettier --- .pre-commit-config.yaml | 6 ++++ doc/js/scripts/details-permalink.js | 48 ++++++++++++++++------------- 2 files changed, 32 insertions(+), 22 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index abffbbe149f2c..52550d7ef44ac 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -27,3 +27,9 @@ repos: # TODO: add the double-quote-cython-strings hook when it's usability has improved: # possibility to pass a directory and use it as a check instead of auto-formatter. - id: cython-lint +- repo: https://github.com/pre-commit/mirrors-prettier + rev: v2.7.1 + hooks: + - id: prettier + files: ^doc/scss/|^doc/js/scripts/ + types_or: ["scss", "javascript"] diff --git a/doc/js/scripts/details-permalink.js b/doc/js/scripts/details-permalink.js index 62392e9836f64..17df9c440f2f2 100644 --- a/doc/js/scripts/details-permalink.js +++ b/doc/js/scripts/details-permalink.js @@ -14,34 +14,38 @@ // summary text. // This syntax is defined in `doc/conf.py` in the `rst_prolog` variable. function updateIdAndHrefBasedOnSummaryText() { - var allDetailsElements = document.querySelectorAll('details'); - // Counter to store the duplicated summary text to add it as a suffix in the - // anchor ID - var anchorIDCounters = {}; + var allDetailsElements = document.querySelectorAll("details"); + // Counter to store the duplicated summary text to add it as a suffix in the + // anchor ID + var anchorIDCounters = {}; - allDetailsElements.forEach(function (detailsElement) { - // Get the element within the current
- var summaryElement = detailsElement.querySelector('summary'); + allDetailsElements.forEach(function (detailsElement) { + // Get the element within the current
+ var summaryElement = detailsElement.querySelector("summary"); - // The ID uses the first line, lowercased, and spaces replaced with dashes - var anchorID = summaryElement.textContent.trim().split("\n")[0].replace(/\s+/g, '-').toLowerCase(); + // The ID uses the first line, lowercased, and spaces replaced with dashes + var anchorID = summaryElement.textContent + .trim() + .split("\n")[0] + .replace(/\s+/g, "-") + .toLowerCase(); - // Suffix the anchor ID with a counter if it already exists - if (anchorIDCounters[anchorID]) { - anchorIDCounters[anchorID] += 1; - anchorID = anchorID + '-' + anchorIDCounters[anchorID]; - } else { - anchorIDCounters[anchorID] = 1; - } + // Suffix the anchor ID with a counter if it already exists + if (anchorIDCounters[anchorID]) { + anchorIDCounters[anchorID] += 1; + anchorID = anchorID + "-" + anchorIDCounters[anchorID]; + } else { + anchorIDCounters[anchorID] = 1; + } - detailsElement.setAttribute('id', anchorID); + detailsElement.setAttribute("id", anchorID); - var anchorElement = summaryElement.querySelector('a.headerlink'); - anchorElement.setAttribute('href', '#' + anchorID); - }); + var anchorElement = summaryElement.querySelector("a.headerlink"); + anchorElement.setAttribute("href", "#" + anchorID); + }); } // Add an event listener to execute the function when the page is loaded -document.addEventListener('DOMContentLoaded', function () { - updateIdAndHrefBasedOnSummaryText(); +document.addEventListener("DOMContentLoaded", function () { + updateIdAndHrefBasedOnSummaryText(); }); From 6d6a71a551eedd26e9a5fac01b438e998bf45c5b Mon Sep 17 00:00:00 2001 From: Yao Xiao <108576690+Charlie-XIAO@users.noreply.github.com> Date: Wed, 17 Jan 2024 11:26:36 +0800 Subject: [PATCH 05/19] remove contents and preface; let index do their job --- doc/conf.py | 4 +++- doc/{contents.rst => index.rst} | 12 ++---------- doc/preface.rst | 32 -------------------------------- 3 files changed, 5 insertions(+), 43 deletions(-) rename doc/{contents.rst => index.rst} (73%) delete mode 100644 doc/preface.rst diff --git a/doc/conf.py b/doc/conf.py index 9992c582e6b68..58a5d333edc32 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -128,7 +128,7 @@ source_encoding = "utf-8" # The main toctree document. -root_doc = "contents" +root_doc = master_doc = "index" # General information about the project. project = "scikit-learn" @@ -373,6 +373,8 @@ # redirects dictionary maps from old links to new links redirects = { "documentation": "index", + "contents": "index", + "preface": "index", "auto_examples/feature_selection/plot_permutation_test_for_classification": ( "auto_examples/model_selection/plot_permutation_tests_for_classification" ), diff --git a/doc/contents.rst b/doc/index.rst similarity index 73% rename from doc/contents.rst rename to doc/index.rst index f37aad8c5547b..ebc491150f75b 100644 --- a/doc/contents.rst +++ b/doc/index.rst @@ -1,17 +1,9 @@ -.. include:: includes/big_toc_css.rst -.. include:: tune_toc.rst - -.. Places global toc into the sidebar - -:globalsidebartoc: True - -================= -Table Of Contents -================= +.. title:: Index .. Define an order for the Table of Contents: .. toctree:: + :hidden: :maxdepth: 2 Install diff --git a/doc/preface.rst b/doc/preface.rst deleted file mode 100644 index 447083a3a8136..0000000000000 --- a/doc/preface.rst +++ /dev/null @@ -1,32 +0,0 @@ -.. This helps define the TOC ordering for "about us" sections. Particularly - useful for PDF output as this section is not linked from elsewhere. - -.. Places global toc into the sidebar - -:globalsidebartoc: True - -.. _preface_menu: - -.. include:: includes/big_toc_css.rst -.. include:: tune_toc.rst - -======================= -Welcome to scikit-learn -======================= - -| - -.. toctree:: - :maxdepth: 2 - - install - faq - support - related_projects - about - testimonials/testimonials - whats_new - roadmap - governance - -| From b0d2aca542b52face2e4b78a0d6a89cb9414b6a7 Mon Sep 17 00:00:00 2001 From: Yao Xiao <108576690+Charlie-XIAO@users.noreply.github.com> Date: Wed, 17 Jan 2024 11:36:56 +0800 Subject: [PATCH 06/19] remove outdated comment --- doc/conf.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index 58a5d333edc32..1b4b3a5eda26d 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -245,13 +245,6 @@ "pygment_light_style": "tango", "pygment_dark_style": "monokai", "logo": { - # TODO: we should put "link": "index" here, but it is not currently working - # because the navbar-logo component is using hasdoc() to determine if the link - # is an internal link or an external url, while html_additional_pages do not - # seem to pass hasdoc(). See - # https://github.com/pydata/pydata-sphinx-theme/issues/1647 - # If this cannot be fixed we can consider vendoring the navbar-logo component - # and fixing it ourselves. "alt_text": "scikit-learn homepage", "image_relative": "logos/scikit-learn-logo-small.png", "image_light": "logos/scikit-learn-logo-small.png", From 2a9364e7bc1af51d350469de410287a2bc132f34 Mon Sep 17 00:00:00 2001 From: Yao Xiao <108576690+Charlie-XIAO@users.noreply.github.com> Date: Wed, 17 Jan 2024 11:43:20 +0800 Subject: [PATCH 07/19] remove experimental stuff that are unnecessary --- doc/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/conf.py b/doc/conf.py index 1b4b3a5eda26d..e61fb876643d0 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -128,7 +128,7 @@ source_encoding = "utf-8" # The main toctree document. -root_doc = master_doc = "index" +root_doc = "index" # General information about the project. project = "scikit-learn" From af6a16ec013f4d0e92032b34163bea099e737595 Mon Sep 17 00:00:00 2001 From: Yao Xiao <108576690+Charlie-XIAO@users.noreply.github.com> Date: Wed, 17 Jan 2024 11:57:09 +0800 Subject: [PATCH 08/19] index no longer needs to be an additional page --- doc/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/conf.py b/doc/conf.py index e61fb876643d0..aef41abd53c2f 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -303,7 +303,7 @@ # Additional templates that should be rendered to pages, maps page names to # template names. -html_additional_pages = {"index": "index.html"} +html_additional_pages = {} # Additional JS files html_js_files = ["scripts/details-permalink.js"] From c1a4e9980ff7ae60e959f6ed4546c727c8345c9c Mon Sep 17 00:00:00 2001 From: Yao Xiao <108576690+Charlie-XIAO@users.noreply.github.com> Date: Wed, 17 Jan 2024 12:02:49 +0800 Subject: [PATCH 09/19] some comments --- doc/index.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/index.rst b/doc/index.rst index ebc491150f75b..afe15ae4f044f 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -1,6 +1,7 @@ .. title:: Index -.. Define an order for the Table of Contents: +.. Define the overall structure, that affects the prev-next buttons and the order + of the sections in the top navbar. .. toctree:: :hidden: From 3cdedf862f1350fbc73bc44cb6068696251d99f5 Mon Sep 17 00:00:00 2001 From: Yao Xiao <108576690+Charlie-XIAO@users.noreply.github.com> Date: Wed, 17 Jan 2024 12:41:06 +0800 Subject: [PATCH 10/19] revert removing index from html_additional_pages --- doc/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/conf.py b/doc/conf.py index aef41abd53c2f..e61fb876643d0 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -303,7 +303,7 @@ # Additional templates that should be rendered to pages, maps page names to # template names. -html_additional_pages = {} +html_additional_pages = {"index": "index.html"} # Additional JS files html_js_files = ["scripts/details-permalink.js"] From fb6a28a2405d9ddd351c88fab512075acbacd93b Mon Sep 17 00:00:00 2001 From: Yao Xiao <108576690+Charlie-XIAO@users.noreply.github.com> Date: Wed, 17 Jan 2024 18:23:03 +0800 Subject: [PATCH 11/19] change comment --- doc/scss/custom.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/scss/custom.scss b/doc/scss/custom.scss index 22e5675596d16..3260b02ce4a50 100644 --- a/doc/scss/custom.scss +++ b/doc/scss/custom.scss @@ -1,3 +1,3 @@ /** This is a general styling sheet. - * It is mainly used to override the default styling of pydata-sphinx-theme. + * It should be used for customizations that affect multiple pages. */ From 7657516f54be6ff536d28798cd94b1a54ae613b5 Mon Sep 17 00:00:00 2001 From: Yao Xiao <108576690+Charlie-XIAO@users.noreply.github.com> Date: Thu, 18 Jan 2024 14:22:39 +0800 Subject: [PATCH 12/19] minor update of comments --- doc/scss/colors.scss | 5 +++-- doc/scss/custom.scss | 7 ++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/doc/scss/colors.scss b/doc/scss/colors.scss index b374dbba5b73b..b159499003b8a 100644 --- a/doc/scss/colors.scss +++ b/doc/scss/colors.scss @@ -1,2 +1,3 @@ -/** This is the style sheet for customized colors of scikit-learn. - */ +/** + * This is the style sheet for customized colors of scikit-learn. + */ diff --git a/doc/scss/custom.scss b/doc/scss/custom.scss index 3260b02ce4a50..9ea6c4a8e2bae 100644 --- a/doc/scss/custom.scss +++ b/doc/scss/custom.scss @@ -1,3 +1,4 @@ -/** This is a general styling sheet. - * It should be used for customizations that affect multiple pages. - */ +/** + * This is a general styling sheet. + * It should be used for customizations that affect multiple pages. + */ From 30120304a86455fe3230d3acf1312a383a49f689 Mon Sep 17 00:00:00 2001 From: Yao Xiao <108576690+Charlie-XIAO@users.noreply.github.com> Date: Fri, 19 Jan 2024 12:45:23 +0800 Subject: [PATCH 13/19] remove pin and bump minimum version of pydata-sphinx-theme to 0.15.2 --- build_tools/circle/doc_environment.yml | 2 +- build_tools/circle/doc_linux-64_conda.lock | 20 +++++++++---------- .../doc_min_dependencies_environment.yml | 2 +- .../doc_min_dependencies_linux-64_conda.lock | 8 ++++---- .../update_environments_and_lock_files.py | 4 +--- doc/conf.py | 2 +- sklearn/_min_dependencies.py | 2 +- 7 files changed, 19 insertions(+), 21 deletions(-) diff --git a/build_tools/circle/doc_environment.yml b/build_tools/circle/doc_environment.yml index 16efad6078132..f297b1c7d73f2 100644 --- a/build_tools/circle/doc_environment.yml +++ b/build_tools/circle/doc_environment.yml @@ -32,7 +32,7 @@ dependencies: - pooch - sphinxext-opengraph - sphinx-remove-toctrees - - pydata-sphinx-theme<0.15.0 + - pydata-sphinx-theme - pip - pip: - jupyterlite-sphinx diff --git a/build_tools/circle/doc_linux-64_conda.lock b/build_tools/circle/doc_linux-64_conda.lock index 56fa38e14c1f5..b2942dc34a04e 100644 --- a/build_tools/circle/doc_linux-64_conda.lock +++ b/build_tools/circle/doc_linux-64_conda.lock @@ -1,6 +1,6 @@ # Generated by conda-lock. # platform: linux-64 -# input_hash: 8212814cb69bb27c0bb01ca4fdfbe55a6ed1c6a7caad4f61fc5cf14f8a4a4d2f +# input_hash: 940dff0ee891fb4b29325235ed06163d1ae81a33715db9d7dd7ceeb83125dc0e @EXPLICIT https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2#d7c89558ba9fa0495403155b64376d81 https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2023.11.17-hbcca054_0.conda#01ffc8d36f9eba0ce0b3c1955fa780ee @@ -91,7 +91,7 @@ https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.39-h753d276_0.conda#e https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.44.2-h2797004_0.conda#3b6a9f225c3dbe0d24f4fedd4625c5bf https://conda.anaconda.org/conda-forge/linux-64/libvorbis-1.3.7-h9c3ff4c_0.tar.bz2#309dec04b70a3cc0f1e84a4013683bc0 https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.15-h0b41bf4_0.conda#33277193f5b92bad9fdd230eb700929c -https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.3-h232c23b_0.conda#bc6ac4c0cea148d924f621985bc3892b +https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.4-h232c23b_1.conda#53e951fab78d7e3bab40745f7b3d1620 https://conda.anaconda.org/conda-forge/linux-64/mysql-common-8.0.33-hf1915f5_6.conda#80bf3b277c120dd294b51d404b931a75 https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.42-hcad00b1_0.conda#679c8961826aa4b50653bce17ee52abe https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda#47d31b792659ce70f470b5c82fdfb7a4 @@ -189,7 +189,7 @@ https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hd590300_ https://conda.anaconda.org/conda-forge/noarch/zipp-3.17.0-pyhd8ed1ab_0.conda#2e4d6bc0b14e10f895fc6791a7d9b26a https://conda.anaconda.org/conda-forge/noarch/accessible-pygments-0.0.4-pyhd8ed1ab_0.conda#46a2e6e3dfa718ce3492018d5a110dd6 https://conda.anaconda.org/conda-forge/noarch/babel-2.14.0-pyhd8ed1ab_0.conda#9669586875baeced8fc30c0826c3270e -https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.2-pyha770c72_0.conda#a362ff7d976217f8fa78c0f1c4f59717 +https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda#332493000404d8411859539a5a630865 https://conda.anaconda.org/conda-forge/linux-64/brunsli-0.1-h9c3ff4c_0.tar.bz2#c1ac6229d0bfd14f8354ff9ad2a26cad https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-h3faef2a_0.conda#f907bb958910dc404647326ca80c263e https://conda.anaconda.org/conda-forge/linux-64/cxx-compiler-1.7.0-h00ab1b0_0.conda#b4537c98cb59f8725b0e1e65816b4a28 @@ -230,7 +230,7 @@ https://conda.anaconda.org/conda-forge/linux-64/imagecodecs-2024.1.1-py39hf9b8f0 https://conda.anaconda.org/conda-forge/noarch/imageio-2.33.1-pyh8c1a49c_0.conda#1c34d58ac469a34e7e96832861368bce https://conda.anaconda.org/conda-forge/linux-64/pandas-2.1.4-py39hddac248_0.conda#dcfd2f15c6f8f0bbf234412b18a2a5d0 https://conda.anaconda.org/conda-forge/noarch/patsy-0.5.6-pyhd8ed1ab_0.conda#a5b55d1cb110cdcedc748b5c3e16e687 -https://conda.anaconda.org/conda-forge/linux-64/polars-0.20.4-py39h927a070_0.conda#1e895a6feb7c5cc843ce460392d83692 +https://conda.anaconda.org/conda-forge/linux-64/polars-0.20.5-py39h927a070_0.conda#739c3045e502a5d8f4a2e9aba4756cde https://conda.anaconda.org/conda-forge/noarch/pooch-1.8.0-pyhd8ed1ab_0.conda#134b2b57b7865d2316a7cce1915a51ed https://conda.anaconda.org/conda-forge/linux-64/pywavelets-1.4.1-py39h44dd56e_1.conda#d037c20e3da2e85f03ebd20ad480c359 https://conda.anaconda.org/conda-forge/linux-64/scipy-1.11.4-py39h474f0d3_0.conda#4b401c1516417b4b14aa1249d2f7929d @@ -246,7 +246,7 @@ https://conda.anaconda.org/conda-forge/noarch/seaborn-base-0.13.1-pyhd8ed1ab_0.c https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.8.2-py39hf3d152e_0.conda#18d40a5ada9a801cabaf5d47c15c6282 https://conda.anaconda.org/conda-forge/noarch/seaborn-0.13.1-hd8ed1ab_0.conda#8d9b6f5e94b7840210b2b9ed235068c7 https://conda.anaconda.org/conda-forge/noarch/numpydoc-1.6.0-pyhd8ed1ab_0.conda#191b8a622191a403700d16a2008e4e29 -https://conda.anaconda.org/conda-forge/noarch/pydata-sphinx-theme-0.14.4-pyhd8ed1ab_0.conda#c79b8443908032263ffb40ee6215e9e4 +https://conda.anaconda.org/conda-forge/noarch/pydata-sphinx-theme-0.15.2-pyhd8ed1ab_0.conda#ce99859070b0e17ccc63234ca58f3ed8 https://conda.anaconda.org/conda-forge/noarch/sphinx-copybutton-0.5.2-pyhd8ed1ab_0.conda#ac832cc43adc79118cf6e23f1f9b8995 https://conda.anaconda.org/conda-forge/noarch/sphinx-gallery-0.15.0-pyhd8ed1ab_0.conda#1a49ca9515ef9a96edff2eea06143dc6 https://conda.anaconda.org/conda-forge/noarch/sphinx-prompt-1.4.0-pyhd8ed1ab_0.tar.bz2#88ee91e8679603f2a5bd036d52919cc2 @@ -269,7 +269,7 @@ https://conda.anaconda.org/conda-forge/noarch/sphinxext-opengraph-0.9.1-pyhd8ed1 # pip libsass @ https://files.pythonhosted.org/packages/fd/5a/eb5b62641df0459a3291fc206cf5bd669c0feed7814dded8edef4ade8512/libsass-0.23.0-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl#sha256=4a218406d605f325d234e4678bd57126a66a88841cb95bee2caeafdc6f138306 # pip mistune @ https://files.pythonhosted.org/packages/f0/74/c95adcdf032956d9ef6c89a9b8a5152bf73915f8c633f3e3d88d06bd699c/mistune-3.0.2-py3-none-any.whl#sha256=71481854c30fdbc938963d3605b72501f5c10a9320ecd412c121c163a1c7d205 # pip overrides @ https://files.pythonhosted.org/packages/da/28/3fa6ef8297302fc7b3844980b6c5dbc71cdbd4b61e9b2591234214d5ab39/overrides-7.4.0-py3-none-any.whl#sha256=3ad24583f86d6d7a49049695efe9933e67ba62f0c7625d53c59fa832ce4b8b7d -# pip pandocfilters @ https://files.pythonhosted.org/packages/5e/a8/878258cffd53202a6cc1903c226cf09e58ae3df6b09f8ddfa98033286637/pandocfilters-1.5.0-py2.py3-none-any.whl#sha256=33aae3f25fd1a026079f5d27bdd52496f0e0803b3469282162bafdcbdf6ef14f +# pip pandocfilters @ https://files.pythonhosted.org/packages/ef/af/4fbc8cab944db5d21b7e2a5b8e9211a03a79852b1157e2c102fcc61ac440/pandocfilters-1.5.1-py2.py3-none-any.whl#sha256=93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc # pip pkginfo @ https://files.pythonhosted.org/packages/b3/f2/6e95c86a23a30fa205ea6303a524b20cbae27fbee69216377e3d95266406/pkginfo-1.9.6-py3-none-any.whl#sha256=4b7a555a6d5a22169fcc9cf7bfd78d296b0361adad412a346c1226849af5e546 # pip prometheus-client @ https://files.pythonhosted.org/packages/bb/9f/ad934418c48d01269fc2af02229ff64bcf793fd5d7f8f82dc5e7ea7ef149/prometheus_client-0.19.0-py3-none-any.whl#sha256=c88b1e6ecf6b41cd8fb5731c7ae919bf66df6ec6fafa555cd6c0e16ca169ae92 # pip ptyprocess @ https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl#sha256=4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 @@ -304,13 +304,13 @@ https://conda.anaconda.org/conda-forge/noarch/sphinxext-opengraph-0.9.1-pyhd8ed1 # pip jupyterlite-core @ https://files.pythonhosted.org/packages/93/62/4387ca1578447027560863e8a4ebabd5d919ac990c99dc124a45a45846b2/jupyterlite_core-0.2.2-py3-none-any.whl#sha256=1f1babdbe630d429f631a508f0e3b3ffb4dfa005aeb748831e854c24025e766f # pip pyzmq @ https://files.pythonhosted.org/packages/76/8b/6fca99e22c6316917de32b17be299dea431544209d619da16b6d9ec85c83/pyzmq-25.1.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=c0b5ca88a8928147b7b1e2dfa09f3b6c256bc1135a1338536cbc9ea13d3b7add # pip argon2-cffi @ https://files.pythonhosted.org/packages/a4/6a/e8a041599e78b6b3752da48000b14c8d1e8a04ded09c88c714ba047f34f5/argon2_cffi-23.1.0-py3-none-any.whl#sha256=c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea -# pip jsonschema @ https://files.pythonhosted.org/packages/0f/ed/0058234d8dd2b1fc6beeea8eab945191a05e9d391a63202f49fe23327586/jsonschema-4.20.0-py3-none-any.whl#sha256=ed6231f0429ecf966f5bc8dfef245998220549cbbcf140f913b7464c52c3b6b3 +# pip jsonschema @ https://files.pythonhosted.org/packages/76/f4/41e31ff45e30a9ed80f3e399b23481ac3db1cb796d315bc8813716ed8d5f/jsonschema-4.21.0-py3-none-any.whl#sha256=70a09719d375c0a2874571b363c8a24be7df8071b80c9aa76bc4551e7297c63c # pip jupyter-client @ https://files.pythonhosted.org/packages/43/ae/5f4f72980765e2e5e02b260f9c53bcc706cefa7ac9c8d7240225c55788d4/jupyter_client-8.6.0-py3-none-any.whl#sha256=909c474dbe62582ae62b758bca86d6518c85234bdee2d908c778db6d72f39d99 -# pip jupyterlite-pyodide-kernel @ https://files.pythonhosted.org/packages/1c/a8/d4c30081747f4c5d3d75c1e77251ef64f2c3b927023f2796168a83aa65e2/jupyterlite_pyodide_kernel-0.2.0-py3-none-any.whl#sha256=17d713f0eeb3f778c4d51129834096d364c16f05ac06e10292383c43c0eb5bd9 +# pip jupyterlite-pyodide-kernel @ https://files.pythonhosted.org/packages/30/cb/e932d08d33b80bae67a10e6c751f5b5055cfebaa70541c9a48430ba74b96/jupyterlite_pyodide_kernel-0.2.1-py3-none-any.whl#sha256=3575e43131fa6b755da32458d7a23dd282329e35593a2b1cf4ef682f4bc65533 # pip jupyter-events @ https://files.pythonhosted.org/packages/e3/55/0c1aa72f4317e826a471dc4adc3036acd11d496ded68c4bbac2a88551519/jupyter_events-0.9.0-py3-none-any.whl#sha256=d853b3c10273ff9bc8bb8b30076d65e2c9685579db736873de6c2232dde148bf # pip nbformat @ https://files.pythonhosted.org/packages/f4/e7/ef30a90b70eba39e675689b9eaaa92530a71d7435ab8f9cae520814e0caf/nbformat-5.9.2-py3-none-any.whl#sha256=1c5172d786a41b82bcfd0c23f9e6b6f072e8fb49c39250219e4acfff1efe89e9 # pip nbclient @ https://files.pythonhosted.org/packages/6b/3a/607149974149f847125c38a62b9ea2b8267eb74823bbf8d8c54ae0212a00/nbclient-0.9.0-py3-none-any.whl#sha256=a3a1ddfb34d4a9d17fc744d655962714a866639acd30130e9be84191cd97cd15 -# pip nbconvert @ https://files.pythonhosted.org/packages/17/d3/7d08470a59e591f73afbc685d910886f96a38be86df3ca95398c491b8d23/nbconvert-7.14.1-py3-none-any.whl#sha256=aa83e3dd27ea38d0c1d908e3ce9518d15fa908dd30521b6d5040bd23f33fffb0 -# pip jupyter-server @ https://files.pythonhosted.org/packages/f9/12/92ddd4af39e6c994722f6a016602647dbab74c3a2ff661b257e44f3ce27d/jupyter_server-2.12.4-py3-none-any.whl#sha256=a125ae18a60de568f78f55c84dd58759901a18ef279abf0418ac220653ca1320 +# pip nbconvert @ https://files.pythonhosted.org/packages/f4/50/275525adbd3dcef9aee708b97f146a094c4f7f24c15c668a6e7cb4120181/nbconvert-7.14.2-py3-none-any.whl#sha256=db28590cef90f7faf2ebbc71acd402cbecf13d29176df728c0a9025a49345ea1 +# pip jupyter-server @ https://files.pythonhosted.org/packages/25/d6/6ee093c967d11144aeb1b0b4952d30e51da8eb2737837ab612084c783a58/jupyter_server-2.12.5-py3-none-any.whl#sha256=184a0f82809a8522777cfb6b760ab6f4b1bb398664c5860a27cec696cb884923 # pip jupyterlab-server @ https://files.pythonhosted.org/packages/a2/97/abbbe35fc67b6f9423309988f2e411f7cb117b08321866d3d8b720f4c0d4/jupyterlab_server-2.25.2-py3-none-any.whl#sha256=5b1798c9cc6a44f65c757de9f97fc06fc3d42535afbf47d2ace5e964ab447aaf # pip jupyterlite-sphinx @ https://files.pythonhosted.org/packages/9c/bd/1695eebeb376315c9fc5cbd41c54fb84bb69c68e69651bfc6f03aa4fe659/jupyterlite_sphinx-0.11.0-py3-none-any.whl#sha256=2a0762167e89ec6acd267c73bb90b528728fdba5e30390ea4fe37ddcec277191 diff --git a/build_tools/circle/doc_min_dependencies_environment.yml b/build_tools/circle/doc_min_dependencies_environment.yml index c8f2a23deb74d..5dd9727ca4906 100644 --- a/build_tools/circle/doc_min_dependencies_environment.yml +++ b/build_tools/circle/doc_min_dependencies_environment.yml @@ -31,7 +31,7 @@ dependencies: - polars=0.19.12 # min - pooch - sphinx-remove-toctrees=0.0.3 # min - - pydata-sphinx-theme=0.14.3 # min + - pydata-sphinx-theme=0.15.2 # min - pip - pip: - sphinxext-opengraph==0.4.2 # min diff --git a/build_tools/circle/doc_min_dependencies_linux-64_conda.lock b/build_tools/circle/doc_min_dependencies_linux-64_conda.lock index 28dcf40d776ef..39c2bfff9f201 100644 --- a/build_tools/circle/doc_min_dependencies_linux-64_conda.lock +++ b/build_tools/circle/doc_min_dependencies_linux-64_conda.lock @@ -1,6 +1,6 @@ # Generated by conda-lock. # platform: linux-64 -# input_hash: ddfb6eeae4092857597a44a2616fa67249de8b88d49030188e55d95266a75bec +# input_hash: 468f9f19b49f388a714e0c7d9b90c4fa3beb403c7165fd4ffc80fbd8b4a7cf81 @EXPLICIT https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2#d7c89558ba9fa0495403155b64376d81 https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2023.11.17-hbcca054_0.conda#01ffc8d36f9eba0ce0b3c1955fa780ee @@ -76,7 +76,7 @@ https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.39-h753d276_0.conda#e https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.44.2-h2797004_0.conda#3b6a9f225c3dbe0d24f4fedd4625c5bf https://conda.anaconda.org/conda-forge/linux-64/libvorbis-1.3.7-h9c3ff4c_0.tar.bz2#309dec04b70a3cc0f1e84a4013683bc0 https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.15-h0b41bf4_0.conda#33277193f5b92bad9fdd230eb700929c -https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.3-h232c23b_0.conda#bc6ac4c0cea148d924f621985bc3892b +https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.4-h232c23b_1.conda#53e951fab78d7e3bab40745f7b3d1620 https://conda.anaconda.org/conda-forge/linux-64/mysql-common-8.0.33-hf1915f5_6.conda#80bf3b277c120dd294b51d404b931a75 https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.42-hcad00b1_0.conda#679c8961826aa4b50653bce17ee52abe https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda#47d31b792659ce70f470b5c82fdfb7a4 @@ -171,7 +171,7 @@ https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hd590300_ https://conda.anaconda.org/conda-forge/noarch/zipp-3.17.0-pyhd8ed1ab_0.conda#2e4d6bc0b14e10f895fc6791a7d9b26a https://conda.anaconda.org/conda-forge/noarch/accessible-pygments-0.0.4-pyhd8ed1ab_0.conda#46a2e6e3dfa718ce3492018d5a110dd6 https://conda.anaconda.org/conda-forge/noarch/babel-2.14.0-pyhd8ed1ab_0.conda#9669586875baeced8fc30c0826c3270e -https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.2-pyha770c72_0.conda#a362ff7d976217f8fa78c0f1c4f59717 +https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda#332493000404d8411859539a5a630865 https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-h3faef2a_0.conda#f907bb958910dc404647326ca80c263e https://conda.anaconda.org/conda-forge/linux-64/cxx-compiler-1.7.0-h00ab1b0_0.conda#b4537c98cb59f8725b0e1e65816b4a28 https://conda.anaconda.org/conda-forge/linux-64/cytoolz-0.12.2-py39hd1e30aa_1.conda#e5b62f0c1f96413116f16d33973f1a44 @@ -227,7 +227,7 @@ https://conda.anaconda.org/conda-forge/linux-64/scikit-image-0.17.2-py39hde0f152 https://conda.anaconda.org/conda-forge/noarch/seaborn-0.12.2-hd8ed1ab_0.conda#50847a47c07812f88581081c620f5160 https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.3.4-py39hf3d152e_0.tar.bz2#cbaec993375a908bbe506dc7328d747c https://conda.anaconda.org/conda-forge/noarch/numpydoc-1.2-pyhd8ed1ab_0.tar.bz2#025ad7ca2c7f65007ab6b6f5d93a56eb -https://conda.anaconda.org/conda-forge/noarch/pydata-sphinx-theme-0.14.3-pyhd8ed1ab_1.conda#fbe2993dd48f14724b90bf12e92cc164 +https://conda.anaconda.org/conda-forge/noarch/pydata-sphinx-theme-0.15.2-pyhd8ed1ab_0.conda#ce99859070b0e17ccc63234ca58f3ed8 https://conda.anaconda.org/conda-forge/noarch/sphinx-copybutton-0.5.2-pyhd8ed1ab_0.conda#ac832cc43adc79118cf6e23f1f9b8995 https://conda.anaconda.org/conda-forge/noarch/sphinx-gallery-0.15.0-pyhd8ed1ab_0.conda#1a49ca9515ef9a96edff2eea06143dc6 https://conda.anaconda.org/conda-forge/noarch/sphinx-prompt-1.3.0-py_0.tar.bz2#9363002e2a134a287af4e32ff0f26cdc diff --git a/build_tools/update_environments_and_lock_files.py b/build_tools/update_environments_and_lock_files.py index 69efd0117f6bd..20438a5ae9044 100644 --- a/build_tools/update_environments_and_lock_files.py +++ b/build_tools/update_environments_and_lock_files.py @@ -346,8 +346,6 @@ def remove_from(alist, to_remove): ], "package_constraints": { "python": "3.9", - # TODO: temporary pin because pydata-sphinx-theme 0.15.0 breaks the navbar - "pydata-sphinx-theme": "<0.15.0", }, }, { @@ -499,7 +497,7 @@ def write_all_conda_environments(build_metadata_list): def conda_lock(environment_path, lock_file_path, platform): command = ( f"conda-lock lock --mamba --kind explicit --platform {platform} " - f"--file {environment_path} --filename-template {lock_file_path}" + f"--file '{environment_path}' --filename-template '{lock_file_path}'" ) execute_command(shlex.split(command)) diff --git a/doc/conf.py b/doc/conf.py index e61fb876643d0..e8d298c783e2c 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -211,7 +211,7 @@ "plausible_analytics_url": "https://views.scientific-python.org/js/script.js", }, # If "prev-next" is included in article_footer_items, then setting show_prev_next - # to True would repeat prev and next links, as of pydata-sphinx-theme 0.14.0. See + # to True would repeat prev and next links. See # https://github.com/pydata/pydata-sphinx-theme/blob/b731dc230bc26a3d1d1bb039c56c977a9b3d25d8/src/pydata_sphinx_theme/theme/pydata_sphinx_theme/layout.html#L118-L129 "show_prev_next": False, "search_bar_text": "Search the docs ...", diff --git a/sklearn/_min_dependencies.py b/sklearn/_min_dependencies.py index d3101d74de837..dd134d6fba6bc 100644 --- a/sklearn/_min_dependencies.py +++ b/sklearn/_min_dependencies.py @@ -44,7 +44,7 @@ "plotly": ("5.14.0", "docs, examples"), "sphinxcontrib-sass": ("0.3.4", "docs"), "sphinx-remove-toctrees": ("0.0.3", "docs"), - "pydata-sphinx-theme": ("0.14.3", "docs"), + "pydata-sphinx-theme": ("0.15.2", "docs"), # XXX: Pin conda-lock to the latest released version (needs manual update # from time to time) "conda-lock": ("2.4.2", "maintenance"), From b79e268084ed0045d9d143b3d8307f35a7450fdf Mon Sep 17 00:00:00 2001 From: Yao Xiao <108576690+Charlie-XIAO@users.noreply.github.com> Date: Fri, 19 Jan 2024 12:47:42 +0800 Subject: [PATCH 14/19] remove unrelated --- build_tools/update_environments_and_lock_files.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_tools/update_environments_and_lock_files.py b/build_tools/update_environments_and_lock_files.py index 20438a5ae9044..7daa3ff448833 100644 --- a/build_tools/update_environments_and_lock_files.py +++ b/build_tools/update_environments_and_lock_files.py @@ -497,7 +497,7 @@ def write_all_conda_environments(build_metadata_list): def conda_lock(environment_path, lock_file_path, platform): command = ( f"conda-lock lock --mamba --kind explicit --platform {platform} " - f"--file '{environment_path}' --filename-template '{lock_file_path}'" + f"--file {environment_path} --filename-template {lock_file_path}" ) execute_command(shlex.split(command)) From 87192ffcdd1c589fc668968b75284387477fb755 Mon Sep 17 00:00:00 2001 From: Yao Xiao <108576690+Charlie-XIAO@users.noreply.github.com> Date: Fri, 19 Jan 2024 19:03:23 +0800 Subject: [PATCH 15/19] all scss should be compiled, but not all css need to be included everywhere --- doc/conf.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index e8d298c783e2c..337d3f411c926 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -309,13 +309,12 @@ html_js_files = ["scripts/details-permalink.js"] # Additional CSS files, which are compiled from scss files using sphinxcontrib-sass -html_css_file_names = [ - "colors", - "custom", -] sass_src_dir, sass_out_dir = "scss", "css/styles" -sass_targets = {f"{name}.scss": f"{name}.css" for name in html_css_file_names} -html_css_files = [f"styles/{name}.css" for name in html_css_file_names] +scss_targets = { + f"{file.stem}.scss": f"{file.stem}.css" + for file in Path(sass_src_dir).glob("*.scss") +} +html_css_files = ["styles/colors.css", "styles/custom.css"] # If false, no module index is generated. html_domain_indices = False From 2b74b3b2d5418c36dcc8a2fc7515b46a52f7509b Mon Sep 17 00:00:00 2001 From: Yao Xiao <108576690+Charlie-XIAO@users.noreply.github.com> Date: Fri, 19 Jan 2024 19:06:46 +0800 Subject: [PATCH 16/19] FIX typos and comments --- doc/conf.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index 337d3f411c926..98bec31002196 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -308,12 +308,14 @@ # Additional JS files html_js_files = ["scripts/details-permalink.js"] -# Additional CSS files, which are compiled from scss files using sphinxcontrib-sass +# Compile scss files into css files using sphinxcontrib-sass sass_src_dir, sass_out_dir = "scss", "css/styles" -scss_targets = { +sass_targets = { f"{file.stem}.scss": f"{file.stem}.css" for file in Path(sass_src_dir).glob("*.scss") } + +# Additional CSS files, should be subset of the values of `sass_targets` html_css_files = ["styles/colors.css", "styles/custom.css"] # If false, no module index is generated. From bbf3325b476b1adb34481224a867a03d35263e09 Mon Sep 17 00:00:00 2001 From: Yao Xiao <108576690+Charlie-XIAO@users.noreply.github.com> Date: Fri, 19 Jan 2024 19:15:40 +0800 Subject: [PATCH 17/19] allow adding css/js only for a subset of pages --- doc/conf.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/doc/conf.py b/doc/conf.py index 98bec31002196..10f55a094ad6e 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -318,6 +318,17 @@ # Additional CSS files, should be subset of the values of `sass_targets` html_css_files = ["styles/colors.css", "styles/custom.css"] + +def add_js_css_files(app, pagename, templatename, context, doctree): + """Load additional JS and CSS files only for certain pages. + + Note that `html_js_files` and `html_css_files` are included in all pages and + should be used for the ones that are used by multiple pages. All page-specific + JS and CSS files should be added here instead. + """ + return + + # If false, no module index is generated. html_domain_indices = False @@ -772,6 +783,9 @@ def setup(app): app.connect("builder-inited", generate_min_dependency_table) app.connect("builder-inited", generate_min_dependency_substitutions) + # triggered just before the HTML for an individual page is created + app.connect("html-page-context", add_js_css_files) + # to hide/show the prompt in code examples: app.connect("build-finished", make_carousel_thumbs) app.connect("build-finished", filter_search_index) From 21e369b4262b091c17b163c26effbf6688135ea4 Mon Sep 17 00:00:00 2001 From: Yao Xiao <108576690+Charlie-XIAO@users.noreply.github.com> Date: Mon, 29 Jan 2024 20:53:50 +0800 Subject: [PATCH 18/19] added some general styling (after thinking over I think it is still best to include here) --- doc/scss/colors.scss | 45 +++++++++++++++++++++++ doc/scss/custom.scss | 86 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 131 insertions(+) diff --git a/doc/scss/colors.scss b/doc/scss/colors.scss index b159499003b8a..767f9ce435ae9 100644 --- a/doc/scss/colors.scss +++ b/doc/scss/colors.scss @@ -1,3 +1,48 @@ /** * This is the style sheet for customized colors of scikit-learn. + * Tints and shades are generated by https://colorkit.co/color-shades-generator/ */ + +:root { + /* scikit-learn cyan */ + --sk-cyan-tint-9: #edf7fd; + --sk-cyan-tint-8: #daeffa; + --sk-cyan-tint-7: #c8e6f8; + --sk-cyan-tint-6: #b5def5; + --sk-cyan-tint-5: #a2d6f2; + --sk-cyan-tint-4: #8fcdef; + --sk-cyan-tint-3: #7ac5ec; + --sk-cyan-tint-2: #64bce9; + --sk-cyan-tint-1: #4bb4e5; + --sk-cyan: #29abe2; + --sk-cyan-shades-1: #2294c4; + --sk-cyan-shades-2: #1c7ea8; + --sk-cyan-shades-3: #15688c; + --sk-cyan-shades-4: #0f5471; + --sk-cyan-shades-5: #094057; + --sk-cyan-shades-6: #052d3e; + --sk-cyan-shades-7: #021b27; + --sk-cyan-shades-8: #010b12; + --sk-cyan-shades-9: #000103; + + /* scikit-learn orange */ + --sk-orange-tint-9: #fff5ec; + --sk-orange-tint-8: #ffead9; + --sk-orange-tint-7: #ffe0c5; + --sk-orange-tint-6: #ffd5b2; + --sk-orange-tint-5: #fecb9e; + --sk-orange-tint-4: #fdc08a; + --sk-orange-tint-3: #fcb575; + --sk-orange-tint-2: #fbaa5e; + --sk-orange-tint-1: #f99f44; + --sk-orange: #f7931e; + --sk-orange-shades-1: #d77f19; + --sk-orange-shades-2: #b76c13; + --sk-orange-shades-3: #99590e; + --sk-orange-shades-4: #7c4709; + --sk-orange-shades-5: #603605; + --sk-orange-shades-6: #452503; + --sk-orange-shades-7: #2c1601; + --sk-orange-shades-8: #150800; + --sk-orange-shades-9: #030100; +} diff --git a/doc/scss/custom.scss b/doc/scss/custom.scss index 9ea6c4a8e2bae..577bb4b9b0220 100644 --- a/doc/scss/custom.scss +++ b/doc/scss/custom.scss @@ -2,3 +2,89 @@ * This is a general styling sheet. * It should be used for customizations that affect multiple pages. */ + +/* Global */ + +code.literal { + border: 0; +} + +/* Primary sidebar */ + +.bd-sidebar-primary { + width: 22.5%; + min-width: 16rem; + + // The version switcher button in the sidebar is ill-styled + button.version-switcher__button { + margin-bottom: unset; + margin-left: 0.3rem; + font-size: 1rem; + } + + // The section navigation part is to close to the right boundary (originally an even + // larger negative right margin was used) + nav.bd-links { + margin-right: -0.5rem; + } +} + +/* Article content */ + +.bd-article { + h1 { + font-weight: 500; + margin-bottom: 2rem; + } + + h2 { + font-weight: 500; + margin-bottom: 1.5rem; + } + + // Avoid changing the aspect ratio of images; add some padding so that at least + // there is some space between image and background in dark mode + img { + height: unset !important; + padding: 1%; + } + + // Override the pydata-sphinx-theme styling of .. topic:: directives + div.topic, + aside.topic { + background-color: transparent; + border: none; + padding: 0; + box-shadow: none !important; + + p { + color: var(--pst-color-text-base) !important; + } + + ul.simple { + padding-left: 2rem; + } + } +} + +/* scikit-learn buttons */ + +a.btn { + &.sk-btn-orange { + background-color: var(--sk-orange-tint-1); + color: black !important; + + &:hover { + background-color: var(--sk-orange-tint-3); + } + } + + &.sk-btn-cyan { + background-color: var(--sk-cyan-shades-2); + color: white !important; + + &:hover { + background-color: var(--sk-cyan-shades-1); + } + } +} From 06cf452c754997e929c6423ec8a3ef75222f45e3 Mon Sep 17 00:00:00 2001 From: Yao Xiao <108576690+Charlie-XIAO@users.noreply.github.com> Date: Tue, 30 Jan 2024 09:05:38 +0800 Subject: [PATCH 19/19] avoid template overriding index.rst to enable navigation for now --- doc/conf.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/conf.py b/doc/conf.py index dce93ec9b127f..acd9595025dcc 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -303,7 +303,9 @@ # Additional templates that should be rendered to pages, maps page names to # template names. -html_additional_pages = {"index": "index.html"} +# TODO: change to html_additional_pages = {"index": "index.html"} so that our landing +# page template can override the one generated from index.rst +html_additional_pages = {} # Additional JS files html_js_files = ["scripts/details-permalink.js"]