From 0c04fe677cffe2b87b79710fad74324ba11491d3 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 7 Aug 2024 17:04:46 +0200 Subject: [PATCH] MAINT: update pip constraints and pre-commit (#224) * DX: implement `.envrc` for `direnv` * DX: switch to Python 3.12 as developer version * FIX: relink matplotlib API * MAINT: address Ruff issues * MAINT: implement updates from pre-commit hooks * MAINT: reduce diff * MAINT: remove redundant notebook cell metadata --- .constraints/py3.10.txt | 119 +++++++++++++++++----------------- .constraints/py3.11.txt | 117 ++++++++++++++++----------------- .constraints/py3.12.txt | 117 ++++++++++++++++----------------- .constraints/py3.8.txt | 85 ++++++++++++------------ .constraints/py3.9.txt | 113 ++++++++++++++++---------------- .envrc | 1 + .github/workflows/ci.yml | 3 + .gitpod.yml | 4 +- .pre-commit-config.yaml | 14 ++-- .readthedocs.yml | 4 +- .vscode/settings.json | 4 ++ docs/conf.py | 9 ++- docs/dynamics.ipynb | 3 - docs/introduction.ipynb | 3 - docs/software.ipynb | 3 - environment.yml | 4 +- pyproject.toml | 58 +++++++---------- src/pwa_pages/repo/_gitlab.py | 4 +- 18 files changed, 322 insertions(+), 343 deletions(-) create mode 100644 .envrc diff --git a/.constraints/py3.10.txt b/.constraints/py3.10.txt index a37e6cee..6ea9137b 100644 --- a/.constraints/py3.10.txt +++ b/.constraints/py3.10.txt @@ -1,7 +1,7 @@ # This file was autogenerated by uv via the following command: # uv pip compile pyproject.toml -o .constraints/py3.10.txt --all-extras --no-annotate --python-version=3.10 --no-emit-package setuptools accessible-pygments==0.0.5 -alabaster==0.7.16 +alabaster==1.0.0 annotated-types==0.7.0 anyio==4.4.0 argon2-cffi==23.1.0 @@ -9,15 +9,14 @@ argon2-cffi-bindings==21.2.0 arrow==1.3.0 asttokens==2.4.1 async-lru==2.0.4 -attrs==23.2.0 +attrs==24.2.0 babel==2.15.0 beautifulsoup4==4.12.3 -black==24.4.2 bleach==6.1.0 -cachetools==5.3.3 +cachetools==5.4.0 cattrs==23.2.3 -certifi==2024.6.2 -cffi==1.16.0 +certifi==2024.7.4 +cffi==1.17.0 cfgv==3.4.0 chardet==5.2.0 charset-normalizer==3.3.2 @@ -25,11 +24,11 @@ click==8.1.7 colorama==0.4.6 comm==0.2.2 contourpy==1.2.1 -coverage==7.5.3 -cryptography==42.0.8 +coverage==7.6.1 +cryptography==43.0.0 cycler==0.12.1 dataproperty==1.0.1 -debugpy==1.8.1 +debugpy==1.8.5 decorator==5.1.1 defusedxml==0.7.1 deprecated==1.2.14 @@ -37,13 +36,13 @@ distlib==0.3.8 docstring-to-markdown==0.15 docutils==0.21.2 dominate==2.9.1 -exceptiongroup==1.2.1 +exceptiongroup==1.2.2 execnet==2.1.1 executing==2.0.1 fastjsonschema==2.20.0 feynman==2.1.0 -filelock==3.15.3 -fonttools==4.53.0 +filelock==3.15.4 +fonttools==4.53.1 fqdn==1.5.1 gitdb==4.0.11 gitpython==3.1.43 @@ -51,21 +50,20 @@ greenlet==3.0.3 h11==0.14.0 httpcore==1.0.5 httpx==0.27.0 -identify==2.5.36 +identify==2.6.0 idna==3.7 imagesize==1.4.1 -importlib-metadata==7.1.0 +importlib-metadata==8.2.0 iniconfig==2.0.0 -ipykernel==6.29.4 -ipython==8.25.0 +ipykernel==6.29.5 +ipython==8.26.0 ipywidgets==8.1.3 isoduration==20.11.0 -isort==5.13.2 jedi==0.19.1 jinja2==3.1.4 json5==0.9.25 jsonpointer==3.0.0 -jsonschema==4.22.0 +jsonschema==4.23.0 jsonschema-specifications==2023.12.1 jupyter==1.0.0 jupyter-cache==1.0.0 @@ -74,33 +72,33 @@ jupyter-console==6.6.3 jupyter-core==5.7.2 jupyter-events==0.10.0 jupyter-lsp==2.2.5 -jupyter-server==2.14.1 +jupyter-server==2.14.2 jupyter-server-mathjax==0.2.6 jupyter-server-terminals==0.5.3 -jupyterlab==4.2.2 -jupyterlab-code-formatter==2.2.1 +jupyterlab==4.2.4 +jupyterlab-code-formatter==3.0.1 jupyterlab-git==0.50.1 jupyterlab-lsp==5.1.0 jupyterlab-myst==2.4.2 jupyterlab-pygments==0.3.0 -jupyterlab-server==2.27.2 +jupyterlab-server==2.27.3 jupyterlab-widgets==3.0.11 kiwisolver==1.4.5 latexcodec==3.0.0 lsprotocol==2023.0.1 markdown-it-py==3.0.0 markupsafe==2.1.5 -matplotlib==3.9.0 +matplotlib==3.9.1.post1 matplotlib-inline==0.1.7 mbstrdecoder==1.1.3 mdit-py-plugins==0.4.1 mdurl==0.1.2 mistune==3.0.2 mpmath==1.3.0 -mypy==1.10.0 +mypy==1.11.1 mypy-extensions==1.0.0 -myst-nb==1.1.0 -myst-parser==3.0.1 +myst-nb==1.1.1 +myst-parser==4.0.0 nbclient==0.6.8 nbconvert==7.16.4 nbdime==4.0.1 @@ -110,49 +108,48 @@ nest-asyncio==1.6.0 nodeenv==1.9.1 notebook==7.2.1 notebook-shim==0.2.4 -numpy==2.0.0 +numpy==2.0.1 overrides==7.7.0 packaging==24.1 pandocfilters==1.5.1 parso==0.8.4 -pathspec==0.12.1 pathvalidate==3.2.0 pexpect==4.9.0 -pillow==10.3.0 +pillow==10.4.0 platformdirs==4.2.2 pluggy==1.5.0 -pre-commit==3.7.1 +pre-commit==3.8.0 prometheus-client==0.20.0 prompt-toolkit==3.0.47 psutil==6.0.0 ptyprocess==0.7.0 -pure-eval==0.2.2 +pure-eval==0.2.3 pybtex==0.24.0 pybtex-docutils==1.0.3 pycparser==2.22 -pydantic==2.7.4 -pydantic-core==2.18.4 -pydata-sphinx-theme==0.15.3 +pydantic==2.8.2 +pydantic-core==2.20.1 +pydata-sphinx-theme==0.15.4 pygithub==2.3.0 pygments==2.18.0 -pyjwt==2.8.0 +pyjwt==2.9.0 pynacl==1.5.0 pyparsing==3.1.2 -pyproject-api==1.6.1 +pyproject-api==1.7.1 pytablewriter==1.2.0 -pytest==8.2.2 +pytest==8.3.2 pytest-cov==5.0.0 pytest-xdist==3.6.1 python-dateutil==2.9.0.post0 -python-gitlab==4.6.0 +python-gitlab==4.9.0 python-json-logger==2.0.7 python-lsp-jsonrpc==1.1.2 -python-lsp-ruff==2.2.1 +python-lsp-ruff==2.2.2 python-lsp-server==1.11.0 pytoolconfig==1.3.1 pytz==2024.1 -pyyaml==6.0.1 -pyzmq==26.0.3 +pyyaml==6.0.2 +pyzmq==26.1.0 qtconsole==5.5.2 qtpy==2.4.1 referencing==0.35.1 @@ -161,37 +158,37 @@ requests-toolbelt==1.0.0 rfc3339-validator==0.1.4 rfc3986-validator==0.1.1 rope==1.13.0 -rpds-py==0.18.1 -ruff==0.4.9 +rpds-py==0.20.0 +ruff==0.5.6 send2trash==1.8.3 six==1.16.0 smmap==5.0.1 sniffio==1.3.1 snowballstemmer==2.2.0 soupsieve==2.5 -sphinx==7.3.7 +sphinx==8.0.2 sphinx-api-relink==0.0.9 sphinx-autobuild==2024.4.16 sphinx-book-theme==1.1.3 sphinx-codeautolink==0.15.2 sphinx-comments==0.0.3 sphinx-copybutton==0.5.2 -sphinx-design==0.6.0 +sphinx-design==0.6.1 sphinx-hep-pdgref==0.2.0 sphinx-pybtex-etal-style==0.0.2 sphinx-thebe==0.3.1 sphinx-togglebutton==0.3.2 -sphinxcontrib-applehelp==1.0.8 +sphinxcontrib-applehelp==2.0.0 sphinxcontrib-bibtex==2.6.2 -sphinxcontrib-devhelp==1.0.6 -sphinxcontrib-htmlhelp==2.0.5 +sphinxcontrib-devhelp==2.0.0 +sphinxcontrib-htmlhelp==2.1.0 sphinxcontrib-jsmath==1.0.1 -sphinxcontrib-qthelp==1.0.7 -sphinxcontrib-serializinghtml==1.1.10 -sqlalchemy==2.0.31 +sphinxcontrib-qthelp==2.0.0 +sphinxcontrib-serializinghtml==2.0.0 +sqlalchemy==2.0.32 stack-data==0.6.3 -starlette==0.37.2 -sympy==1.12.1 +starlette==0.38.2 +sympy==1.13.1 tabledata==1.3.3 tabulate==0.9.0 tcolorpy==0.1.6 @@ -199,26 +196,26 @@ terminado==0.18.1 tinycss2==1.3.0 tomli==2.0.1 tornado==6.4.1 -tox==4.15.1 +tox==4.17.0 traitlets==5.14.3 typepy==1.3.2 -types-docutils==0.21.0.20240423 +types-docutils==0.21.0.20240724 types-python-dateutil==2.9.0.20240316 -types-pyyaml==6.0.12.20240311 -types-setuptools==70.0.0.20240524 +types-pyyaml==6.0.12.20240724 +types-setuptools==71.1.0.20240806 typing-extensions==4.12.2 ujson==5.10.0 uri-template==1.3.0 urllib3==2.2.2 -uvicorn==0.30.1 -virtualenv==20.26.2 -watchfiles==0.22.0 +uvicorn==0.30.5 +virtualenv==20.26.3 +watchfiles==0.23.0 wcwidth==0.2.13 webcolors==24.6.0 webencodings==0.5.1 websocket-client==1.8.0 websockets==12.0 -wheel==0.43.0 +wheel==0.44.0 widgetsnbextension==4.0.11 wrapt==1.16.0 zipp==3.19.2 diff --git a/.constraints/py3.11.txt b/.constraints/py3.11.txt index d6b486db..0974f958 100644 --- a/.constraints/py3.11.txt +++ b/.constraints/py3.11.txt @@ -1,7 +1,7 @@ # This file was autogenerated by uv via the following command: # uv pip compile pyproject.toml -o .constraints/py3.11.txt --all-extras --no-annotate --python-version=3.11 --no-emit-package setuptools accessible-pygments==0.0.5 -alabaster==0.7.16 +alabaster==1.0.0 annotated-types==0.7.0 anyio==4.4.0 argon2-cffi==23.1.0 @@ -9,15 +9,14 @@ argon2-cffi-bindings==21.2.0 arrow==1.3.0 asttokens==2.4.1 async-lru==2.0.4 -attrs==23.2.0 +attrs==24.2.0 babel==2.15.0 beautifulsoup4==4.12.3 -black==24.4.2 bleach==6.1.0 -cachetools==5.3.3 +cachetools==5.4.0 cattrs==23.2.3 -certifi==2024.6.2 -cffi==1.16.0 +certifi==2024.7.4 +cffi==1.17.0 cfgv==3.4.0 chardet==5.2.0 charset-normalizer==3.3.2 @@ -25,11 +24,11 @@ click==8.1.7 colorama==0.4.6 comm==0.2.2 contourpy==1.2.1 -coverage==7.5.3 -cryptography==42.0.8 +coverage==7.6.1 +cryptography==43.0.0 cycler==0.12.1 dataproperty==1.0.1 -debugpy==1.8.1 +debugpy==1.8.5 decorator==5.1.1 defusedxml==0.7.1 deprecated==1.2.14 @@ -41,8 +40,8 @@ execnet==2.1.1 executing==2.0.1 fastjsonschema==2.20.0 feynman==2.1.0 -filelock==3.15.3 -fonttools==4.53.0 +filelock==3.15.4 +fonttools==4.53.1 fqdn==1.5.1 gitdb==4.0.11 gitpython==3.1.43 @@ -50,21 +49,20 @@ greenlet==3.0.3 h11==0.14.0 httpcore==1.0.5 httpx==0.27.0 -identify==2.5.36 +identify==2.6.0 idna==3.7 imagesize==1.4.1 -importlib-metadata==7.1.0 +importlib-metadata==8.2.0 iniconfig==2.0.0 -ipykernel==6.29.4 -ipython==8.25.0 +ipykernel==6.29.5 +ipython==8.26.0 ipywidgets==8.1.3 isoduration==20.11.0 -isort==5.13.2 jedi==0.19.1 jinja2==3.1.4 json5==0.9.25 jsonpointer==3.0.0 -jsonschema==4.22.0 +jsonschema==4.23.0 jsonschema-specifications==2023.12.1 jupyter==1.0.0 jupyter-cache==1.0.0 @@ -73,33 +71,33 @@ jupyter-console==6.6.3 jupyter-core==5.7.2 jupyter-events==0.10.0 jupyter-lsp==2.2.5 -jupyter-server==2.14.1 +jupyter-server==2.14.2 jupyter-server-mathjax==0.2.6 jupyter-server-terminals==0.5.3 -jupyterlab==4.2.2 -jupyterlab-code-formatter==2.2.1 +jupyterlab==4.2.4 +jupyterlab-code-formatter==3.0.1 jupyterlab-git==0.50.1 jupyterlab-lsp==5.1.0 jupyterlab-myst==2.4.2 jupyterlab-pygments==0.3.0 -jupyterlab-server==2.27.2 +jupyterlab-server==2.27.3 jupyterlab-widgets==3.0.11 kiwisolver==1.4.5 latexcodec==3.0.0 lsprotocol==2023.0.1 markdown-it-py==3.0.0 markupsafe==2.1.5 -matplotlib==3.9.0 +matplotlib==3.9.1.post1 matplotlib-inline==0.1.7 mbstrdecoder==1.1.3 mdit-py-plugins==0.4.1 mdurl==0.1.2 mistune==3.0.2 mpmath==1.3.0 -mypy==1.10.0 +mypy==1.11.1 mypy-extensions==1.0.0 -myst-nb==1.1.0 -myst-parser==3.0.1 +myst-nb==1.1.1 +myst-parser==4.0.0 nbclient==0.6.8 nbconvert==7.16.4 nbdime==4.0.1 @@ -109,49 +107,48 @@ nest-asyncio==1.6.0 nodeenv==1.9.1 notebook==7.2.1 notebook-shim==0.2.4 -numpy==2.0.0 +numpy==2.0.1 overrides==7.7.0 packaging==24.1 pandocfilters==1.5.1 parso==0.8.4 -pathspec==0.12.1 pathvalidate==3.2.0 pexpect==4.9.0 -pillow==10.3.0 +pillow==10.4.0 platformdirs==4.2.2 pluggy==1.5.0 -pre-commit==3.7.1 +pre-commit==3.8.0 prometheus-client==0.20.0 prompt-toolkit==3.0.47 psutil==6.0.0 ptyprocess==0.7.0 -pure-eval==0.2.2 +pure-eval==0.2.3 pybtex==0.24.0 pybtex-docutils==1.0.3 pycparser==2.22 -pydantic==2.7.4 -pydantic-core==2.18.4 -pydata-sphinx-theme==0.15.3 +pydantic==2.8.2 +pydantic-core==2.20.1 +pydata-sphinx-theme==0.15.4 pygithub==2.3.0 pygments==2.18.0 -pyjwt==2.8.0 +pyjwt==2.9.0 pynacl==1.5.0 pyparsing==3.1.2 -pyproject-api==1.6.1 +pyproject-api==1.7.1 pytablewriter==1.2.0 -pytest==8.2.2 +pytest==8.3.2 pytest-cov==5.0.0 pytest-xdist==3.6.1 python-dateutil==2.9.0.post0 -python-gitlab==4.6.0 +python-gitlab==4.9.0 python-json-logger==2.0.7 python-lsp-jsonrpc==1.1.2 -python-lsp-ruff==2.2.1 +python-lsp-ruff==2.2.2 python-lsp-server==1.11.0 pytoolconfig==1.3.1 pytz==2024.1 -pyyaml==6.0.1 -pyzmq==26.0.3 +pyyaml==6.0.2 +pyzmq==26.1.0 qtconsole==5.5.2 qtpy==2.4.1 referencing==0.35.1 @@ -160,63 +157,63 @@ requests-toolbelt==1.0.0 rfc3339-validator==0.1.4 rfc3986-validator==0.1.1 rope==1.13.0 -rpds-py==0.18.1 -ruff==0.4.9 +rpds-py==0.20.0 +ruff==0.5.6 send2trash==1.8.3 six==1.16.0 smmap==5.0.1 sniffio==1.3.1 snowballstemmer==2.2.0 soupsieve==2.5 -sphinx==7.3.7 +sphinx==8.0.2 sphinx-api-relink==0.0.9 sphinx-autobuild==2024.4.16 sphinx-book-theme==1.1.3 sphinx-codeautolink==0.15.2 sphinx-comments==0.0.3 sphinx-copybutton==0.5.2 -sphinx-design==0.6.0 +sphinx-design==0.6.1 sphinx-hep-pdgref==0.2.0 sphinx-pybtex-etal-style==0.0.2 sphinx-thebe==0.3.1 sphinx-togglebutton==0.3.2 -sphinxcontrib-applehelp==1.0.8 +sphinxcontrib-applehelp==2.0.0 sphinxcontrib-bibtex==2.6.2 -sphinxcontrib-devhelp==1.0.6 -sphinxcontrib-htmlhelp==2.0.5 +sphinxcontrib-devhelp==2.0.0 +sphinxcontrib-htmlhelp==2.1.0 sphinxcontrib-jsmath==1.0.1 -sphinxcontrib-qthelp==1.0.7 -sphinxcontrib-serializinghtml==1.1.10 -sqlalchemy==2.0.31 +sphinxcontrib-qthelp==2.0.0 +sphinxcontrib-serializinghtml==2.0.0 +sqlalchemy==2.0.32 stack-data==0.6.3 -starlette==0.37.2 -sympy==1.12.1 +starlette==0.38.2 +sympy==1.13.1 tabledata==1.3.3 tabulate==0.9.0 tcolorpy==0.1.6 terminado==0.18.1 tinycss2==1.3.0 tornado==6.4.1 -tox==4.15.1 +tox==4.17.0 traitlets==5.14.3 typepy==1.3.2 -types-docutils==0.21.0.20240423 +types-docutils==0.21.0.20240724 types-python-dateutil==2.9.0.20240316 -types-pyyaml==6.0.12.20240311 -types-setuptools==70.0.0.20240524 +types-pyyaml==6.0.12.20240724 +types-setuptools==71.1.0.20240806 typing-extensions==4.12.2 ujson==5.10.0 uri-template==1.3.0 urllib3==2.2.2 -uvicorn==0.30.1 -virtualenv==20.26.2 -watchfiles==0.22.0 +uvicorn==0.30.5 +virtualenv==20.26.3 +watchfiles==0.23.0 wcwidth==0.2.13 webcolors==24.6.0 webencodings==0.5.1 websocket-client==1.8.0 websockets==12.0 -wheel==0.43.0 +wheel==0.44.0 widgetsnbextension==4.0.11 wrapt==1.16.0 zipp==3.19.2 diff --git a/.constraints/py3.12.txt b/.constraints/py3.12.txt index e2aa7c42..bec8281b 100644 --- a/.constraints/py3.12.txt +++ b/.constraints/py3.12.txt @@ -1,7 +1,7 @@ # This file was autogenerated by uv via the following command: # uv pip compile pyproject.toml -o .constraints/py3.12.txt --all-extras --no-annotate --python-version=3.12 --no-emit-package setuptools accessible-pygments==0.0.5 -alabaster==0.7.16 +alabaster==1.0.0 annotated-types==0.7.0 anyio==4.4.0 argon2-cffi==23.1.0 @@ -9,15 +9,14 @@ argon2-cffi-bindings==21.2.0 arrow==1.3.0 asttokens==2.4.1 async-lru==2.0.4 -attrs==23.2.0 +attrs==24.2.0 babel==2.15.0 beautifulsoup4==4.12.3 -black==24.4.2 bleach==6.1.0 -cachetools==5.3.3 +cachetools==5.4.0 cattrs==23.2.3 -certifi==2024.6.2 -cffi==1.16.0 +certifi==2024.7.4 +cffi==1.17.0 cfgv==3.4.0 chardet==5.2.0 charset-normalizer==3.3.2 @@ -25,11 +24,11 @@ click==8.1.7 colorama==0.4.6 comm==0.2.2 contourpy==1.2.1 -coverage==7.5.3 -cryptography==42.0.8 +coverage==7.6.1 +cryptography==43.0.0 cycler==0.12.1 dataproperty==1.0.1 -debugpy==1.8.1 +debugpy==1.8.5 decorator==5.1.1 defusedxml==0.7.1 deprecated==1.2.14 @@ -41,8 +40,8 @@ execnet==2.1.1 executing==2.0.1 fastjsonschema==2.20.0 feynman==2.1.0 -filelock==3.15.3 -fonttools==4.53.0 +filelock==3.15.4 +fonttools==4.53.1 fqdn==1.5.1 gitdb==4.0.11 gitpython==3.1.43 @@ -50,21 +49,20 @@ greenlet==3.0.3 h11==0.14.0 httpcore==1.0.5 httpx==0.27.0 -identify==2.5.36 +identify==2.6.0 idna==3.7 imagesize==1.4.1 -importlib-metadata==7.1.0 +importlib-metadata==8.2.0 iniconfig==2.0.0 -ipykernel==6.29.4 -ipython==8.25.0 +ipykernel==6.29.5 +ipython==8.26.0 ipywidgets==8.1.3 isoduration==20.11.0 -isort==5.13.2 jedi==0.19.1 jinja2==3.1.4 json5==0.9.25 jsonpointer==3.0.0 -jsonschema==4.22.0 +jsonschema==4.23.0 jsonschema-specifications==2023.12.1 jupyter==1.0.0 jupyter-cache==1.0.0 @@ -73,33 +71,33 @@ jupyter-console==6.6.3 jupyter-core==5.7.2 jupyter-events==0.10.0 jupyter-lsp==2.2.5 -jupyter-server==2.14.1 +jupyter-server==2.14.2 jupyter-server-mathjax==0.2.6 jupyter-server-terminals==0.5.3 -jupyterlab==4.2.2 -jupyterlab-code-formatter==2.2.1 +jupyterlab==4.2.4 +jupyterlab-code-formatter==3.0.1 jupyterlab-git==0.50.1 jupyterlab-lsp==5.1.0 jupyterlab-myst==2.4.2 jupyterlab-pygments==0.3.0 -jupyterlab-server==2.27.2 +jupyterlab-server==2.27.3 jupyterlab-widgets==3.0.11 kiwisolver==1.4.5 latexcodec==3.0.0 lsprotocol==2023.0.1 markdown-it-py==3.0.0 markupsafe==2.1.5 -matplotlib==3.9.0 +matplotlib==3.9.1.post1 matplotlib-inline==0.1.7 mbstrdecoder==1.1.3 mdit-py-plugins==0.4.1 mdurl==0.1.2 mistune==3.0.2 mpmath==1.3.0 -mypy==1.10.0 +mypy==1.11.1 mypy-extensions==1.0.0 -myst-nb==1.1.0 -myst-parser==3.0.1 +myst-nb==1.1.1 +myst-parser==4.0.0 nbclient==0.6.8 nbconvert==7.16.4 nbdime==4.0.1 @@ -109,49 +107,48 @@ nest-asyncio==1.6.0 nodeenv==1.9.1 notebook==7.2.1 notebook-shim==0.2.4 -numpy==2.0.0 +numpy==2.0.1 overrides==7.7.0 packaging==24.1 pandocfilters==1.5.1 parso==0.8.4 -pathspec==0.12.1 pathvalidate==3.2.0 pexpect==4.9.0 -pillow==10.3.0 +pillow==10.4.0 platformdirs==4.2.2 pluggy==1.5.0 -pre-commit==3.7.1 +pre-commit==3.8.0 prometheus-client==0.20.0 prompt-toolkit==3.0.47 psutil==6.0.0 ptyprocess==0.7.0 -pure-eval==0.2.2 +pure-eval==0.2.3 pybtex==0.24.0 pybtex-docutils==1.0.3 pycparser==2.22 -pydantic==2.7.4 -pydantic-core==2.18.4 -pydata-sphinx-theme==0.15.3 +pydantic==2.8.2 +pydantic-core==2.20.1 +pydata-sphinx-theme==0.15.4 pygithub==2.3.0 pygments==2.18.0 -pyjwt==2.8.0 +pyjwt==2.9.0 pynacl==1.5.0 pyparsing==3.1.2 -pyproject-api==1.6.1 +pyproject-api==1.7.1 pytablewriter==1.2.0 -pytest==8.2.2 +pytest==8.3.2 pytest-cov==5.0.0 pytest-xdist==3.6.1 python-dateutil==2.9.0.post0 -python-gitlab==4.6.0 +python-gitlab==4.9.0 python-json-logger==2.0.7 python-lsp-jsonrpc==1.1.2 -python-lsp-ruff==2.2.1 +python-lsp-ruff==2.2.2 python-lsp-server==1.11.0 pytoolconfig==1.3.1 pytz==2024.1 -pyyaml==6.0.1 -pyzmq==26.0.3 +pyyaml==6.0.2 +pyzmq==26.1.0 qtconsole==5.5.2 qtpy==2.4.1 referencing==0.35.1 @@ -160,63 +157,63 @@ requests-toolbelt==1.0.0 rfc3339-validator==0.1.4 rfc3986-validator==0.1.1 rope==1.13.0 -rpds-py==0.18.1 -ruff==0.4.9 +rpds-py==0.20.0 +ruff==0.5.6 send2trash==1.8.3 six==1.16.0 smmap==5.0.1 sniffio==1.3.1 snowballstemmer==2.2.0 soupsieve==2.5 -sphinx==7.3.7 +sphinx==8.0.2 sphinx-api-relink==0.0.9 sphinx-autobuild==2024.4.16 sphinx-book-theme==1.1.3 sphinx-codeautolink==0.15.2 sphinx-comments==0.0.3 sphinx-copybutton==0.5.2 -sphinx-design==0.6.0 +sphinx-design==0.6.1 sphinx-hep-pdgref==0.2.0 sphinx-pybtex-etal-style==0.0.2 sphinx-thebe==0.3.1 sphinx-togglebutton==0.3.2 -sphinxcontrib-applehelp==1.0.8 +sphinxcontrib-applehelp==2.0.0 sphinxcontrib-bibtex==2.6.2 -sphinxcontrib-devhelp==1.0.6 -sphinxcontrib-htmlhelp==2.0.5 +sphinxcontrib-devhelp==2.0.0 +sphinxcontrib-htmlhelp==2.1.0 sphinxcontrib-jsmath==1.0.1 -sphinxcontrib-qthelp==1.0.7 -sphinxcontrib-serializinghtml==1.1.10 -sqlalchemy==2.0.31 +sphinxcontrib-qthelp==2.0.0 +sphinxcontrib-serializinghtml==2.0.0 +sqlalchemy==2.0.32 stack-data==0.6.3 -starlette==0.37.2 -sympy==1.12.1 +starlette==0.38.2 +sympy==1.13.1 tabledata==1.3.3 tabulate==0.9.0 tcolorpy==0.1.6 terminado==0.18.1 tinycss2==1.3.0 tornado==6.4.1 -tox==4.15.1 +tox==4.17.0 traitlets==5.14.3 typepy==1.3.2 -types-docutils==0.21.0.20240423 +types-docutils==0.21.0.20240724 types-python-dateutil==2.9.0.20240316 -types-pyyaml==6.0.12.20240311 -types-setuptools==70.0.0.20240524 +types-pyyaml==6.0.12.20240724 +types-setuptools==71.1.0.20240806 typing-extensions==4.12.2 ujson==5.10.0 uri-template==1.3.0 urllib3==2.2.2 -uvicorn==0.30.1 -virtualenv==20.26.2 -watchfiles==0.22.0 +uvicorn==0.30.5 +virtualenv==20.26.3 +watchfiles==0.23.0 wcwidth==0.2.13 webcolors==24.6.0 webencodings==0.5.1 websocket-client==1.8.0 websockets==12.0 -wheel==0.43.0 +wheel==0.44.0 widgetsnbextension==4.0.11 wrapt==1.16.0 zipp==3.19.2 diff --git a/.constraints/py3.8.txt b/.constraints/py3.8.txt index 34531395..44e0d781 100644 --- a/.constraints/py3.8.txt +++ b/.constraints/py3.8.txt @@ -9,16 +9,15 @@ argon2-cffi-bindings==21.2.0 arrow==1.3.0 asttokens==2.4.1 async-lru==2.0.4 -attrs==23.2.0 +attrs==24.2.0 babel==2.15.0 backcall==0.2.0 beautifulsoup4==4.12.3 -black==24.4.2 bleach==6.1.0 -cachetools==5.3.3 +cachetools==5.4.0 cattrs==23.2.3 -certifi==2024.6.2 -cffi==1.16.0 +certifi==2024.7.4 +cffi==1.17.0 cfgv==3.4.0 chardet==5.2.0 charset-normalizer==3.3.2 @@ -26,11 +25,11 @@ click==8.1.7 colorama==0.4.6 comm==0.2.2 contourpy==1.1.1 -coverage==7.5.3 -cryptography==42.0.8 +coverage==7.6.1 +cryptography==43.0.0 cycler==0.12.1 dataproperty==1.0.1 -debugpy==1.8.1 +debugpy==1.8.5 decorator==5.1.1 defusedxml==0.7.1 deprecated==1.2.14 @@ -38,13 +37,13 @@ distlib==0.3.8 docstring-to-markdown==0.15 docutils==0.17.1 dominate==2.9.1 -exceptiongroup==1.2.1 +exceptiongroup==1.2.2 execnet==2.1.1 executing==2.0.1 fastjsonschema==2.20.0 feynman==2.1.0 -filelock==3.15.3 -fonttools==4.53.0 +filelock==3.15.4 +fonttools==4.53.1 fqdn==1.5.1 gitdb==4.0.11 gitpython==3.1.43 @@ -52,22 +51,21 @@ greenlet==3.0.3 h11==0.14.0 httpcore==1.0.5 httpx==0.27.0 -identify==2.5.36 +identify==2.6.0 idna==3.7 imagesize==1.4.1 -importlib-metadata==7.1.0 +importlib-metadata==8.2.0 importlib-resources==6.4.0 iniconfig==2.0.0 -ipykernel==6.29.4 +ipykernel==6.29.5 ipython==8.12.3 ipywidgets==8.1.3 isoduration==20.11.0 -isort==5.13.2 jedi==0.19.1 jinja2==3.1.4 json5==0.9.25 jsonpointer==3.0.0 -jsonschema==4.22.0 +jsonschema==4.23.0 jsonschema-specifications==2023.12.1 jupyter==1.0.0 jupyter-cache==0.6.1 @@ -76,20 +74,20 @@ jupyter-console==6.6.3 jupyter-core==5.7.2 jupyter-events==0.10.0 jupyter-lsp==2.2.5 -jupyter-server==2.14.1 +jupyter-server==2.14.2 jupyter-server-mathjax==0.2.6 jupyter-server-terminals==0.5.3 -jupyterlab==4.2.2 -jupyterlab-code-formatter==2.2.1 +jupyterlab==4.2.4 +jupyterlab-code-formatter==3.0.1 jupyterlab-git==0.50.1 jupyterlab-lsp==5.1.0 jupyterlab-myst==2.4.2 jupyterlab-pygments==0.3.0 -jupyterlab-server==2.27.2 +jupyterlab-server==2.27.3 jupyterlab-widgets==3.0.11 kiwisolver==1.4.5 latexcodec==3.0.0 -livereload==2.6.3 +livereload==2.7.0 lsprotocol==2023.0.1 markdown-it-py==2.2.0 markupsafe==2.1.5 @@ -100,7 +98,7 @@ mdit-py-plugins==0.3.5 mdurl==0.1.2 mistune==3.0.2 mpmath==1.3.0 -mypy==1.10.0 +mypy==1.11.1 mypy-extensions==1.0.0 myst-nb==0.17.2 myst-parser==0.18.1 @@ -118,11 +116,10 @@ overrides==7.7.0 packaging==24.1 pandocfilters==1.5.1 parso==0.8.4 -pathspec==0.12.1 pathvalidate==3.2.0 pexpect==4.9.0 pickleshare==0.7.5 -pillow==10.3.0 +pillow==10.4.0 pkgutil-resolve-name==1.3.10 platformdirs==4.2.2 pluggy==1.5.0 @@ -131,33 +128,33 @@ prometheus-client==0.20.0 prompt-toolkit==3.0.47 psutil==6.0.0 ptyprocess==0.7.0 -pure-eval==0.2.2 +pure-eval==0.2.3 pybtex==0.24.0 pybtex-docutils==1.0.3 pycparser==2.22 -pydantic==2.7.4 -pydantic-core==2.18.4 +pydantic==2.8.2 +pydantic-core==2.20.1 pydata-sphinx-theme==0.14.4 pygithub==2.3.0 pygments==2.18.0 -pyjwt==2.8.0 +pyjwt==2.9.0 pynacl==1.5.0 pyparsing==3.1.2 -pyproject-api==1.6.1 +pyproject-api==1.7.1 pytablewriter==1.2.0 -pytest==8.2.2 +pytest==8.3.2 pytest-cov==5.0.0 pytest-xdist==3.6.1 python-dateutil==2.9.0.post0 -python-gitlab==4.6.0 +python-gitlab==4.9.0 python-json-logger==2.0.7 python-lsp-jsonrpc==1.1.2 -python-lsp-ruff==2.2.1 +python-lsp-ruff==2.2.2 python-lsp-server==1.11.0 pytoolconfig==1.3.1 pytz==2024.1 -pyyaml==6.0.1 -pyzmq==26.0.3 +pyyaml==6.0.2 +pyzmq==26.1.0 qtconsole==5.5.2 qtpy==2.4.1 referencing==0.35.1 @@ -166,8 +163,8 @@ requests-toolbelt==1.0.0 rfc3339-validator==0.1.4 rfc3986-validator==0.1.1 rope==1.13.0 -rpds-py==0.18.1 -ruff==0.4.9 +rpds-py==0.20.0 +ruff==0.5.6 send2trash==1.8.3 six==1.16.0 smmap==5.0.1 @@ -193,9 +190,9 @@ sphinxcontrib-htmlhelp==2.0.1 sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==1.0.3 sphinxcontrib-serializinghtml==1.1.5 -sqlalchemy==2.0.31 +sqlalchemy==2.0.32 stack-data==0.6.3 -sympy==1.12.1 +sympy==1.13.1 tabledata==1.3.3 tabulate==0.9.0 tcolorpy==0.1.6 @@ -203,23 +200,23 @@ terminado==0.18.1 tinycss2==1.3.0 tomli==2.0.1 tornado==6.4.1 -tox==4.15.1 +tox==4.17.0 traitlets==5.14.3 typepy==1.3.2 -types-docutils==0.21.0.20240423 +types-docutils==0.21.0.20240724 types-python-dateutil==2.9.0.20240316 -types-pyyaml==6.0.12.20240311 -types-setuptools==70.0.0.20240524 +types-pyyaml==6.0.12.20240724 +types-setuptools==71.1.0.20240806 typing-extensions==4.12.2 ujson==5.10.0 uri-template==1.3.0 urllib3==2.2.2 -virtualenv==20.26.2 +virtualenv==20.26.3 wcwidth==0.2.13 webcolors==24.6.0 webencodings==0.5.1 websocket-client==1.8.0 -wheel==0.43.0 +wheel==0.44.0 widgetsnbextension==4.0.11 wrapt==1.16.0 zipp==3.19.2 diff --git a/.constraints/py3.9.txt b/.constraints/py3.9.txt index 214c6d66..5aa587dd 100644 --- a/.constraints/py3.9.txt +++ b/.constraints/py3.9.txt @@ -9,15 +9,14 @@ argon2-cffi-bindings==21.2.0 arrow==1.3.0 asttokens==2.4.1 async-lru==2.0.4 -attrs==23.2.0 +attrs==24.2.0 babel==2.15.0 beautifulsoup4==4.12.3 -black==24.4.2 bleach==6.1.0 -cachetools==5.3.3 +cachetools==5.4.0 cattrs==23.2.3 -certifi==2024.6.2 -cffi==1.16.0 +certifi==2024.7.4 +cffi==1.17.0 cfgv==3.4.0 chardet==5.2.0 charset-normalizer==3.3.2 @@ -25,11 +24,11 @@ click==8.1.7 colorama==0.4.6 comm==0.2.2 contourpy==1.2.1 -coverage==7.5.3 -cryptography==42.0.8 +coverage==7.6.1 +cryptography==43.0.0 cycler==0.12.1 dataproperty==1.0.1 -debugpy==1.8.1 +debugpy==1.8.5 decorator==5.1.1 defusedxml==0.7.1 deprecated==1.2.14 @@ -37,13 +36,13 @@ distlib==0.3.8 docstring-to-markdown==0.15 docutils==0.21.2 dominate==2.9.1 -exceptiongroup==1.2.1 +exceptiongroup==1.2.2 execnet==2.1.1 executing==2.0.1 fastjsonschema==2.20.0 feynman==2.1.0 -filelock==3.15.3 -fonttools==4.53.0 +filelock==3.15.4 +fonttools==4.53.1 fqdn==1.5.1 gitdb==4.0.11 gitpython==3.1.43 @@ -51,22 +50,21 @@ greenlet==3.0.3 h11==0.14.0 httpcore==1.0.5 httpx==0.27.0 -identify==2.5.36 +identify==2.6.0 idna==3.7 imagesize==1.4.1 -importlib-metadata==7.1.0 +importlib-metadata==8.2.0 importlib-resources==6.4.0 iniconfig==2.0.0 -ipykernel==6.29.4 +ipykernel==6.29.5 ipython==8.18.1 ipywidgets==8.1.3 isoduration==20.11.0 -isort==5.13.2 jedi==0.19.1 jinja2==3.1.4 json5==0.9.25 jsonpointer==3.0.0 -jsonschema==4.22.0 +jsonschema==4.23.0 jsonschema-specifications==2023.12.1 jupyter==1.0.0 jupyter-cache==1.0.0 @@ -75,32 +73,32 @@ jupyter-console==6.6.3 jupyter-core==5.7.2 jupyter-events==0.10.0 jupyter-lsp==2.2.5 -jupyter-server==2.14.1 +jupyter-server==2.14.2 jupyter-server-mathjax==0.2.6 jupyter-server-terminals==0.5.3 -jupyterlab==4.2.2 -jupyterlab-code-formatter==2.2.1 +jupyterlab==4.2.4 +jupyterlab-code-formatter==3.0.1 jupyterlab-git==0.50.1 jupyterlab-lsp==5.1.0 jupyterlab-myst==2.4.2 jupyterlab-pygments==0.3.0 -jupyterlab-server==2.27.2 +jupyterlab-server==2.27.3 jupyterlab-widgets==3.0.11 kiwisolver==1.4.5 latexcodec==3.0.0 lsprotocol==2023.0.1 markdown-it-py==3.0.0 markupsafe==2.1.5 -matplotlib==3.9.0 +matplotlib==3.9.1.post1 matplotlib-inline==0.1.7 mbstrdecoder==1.1.3 mdit-py-plugins==0.4.1 mdurl==0.1.2 mistune==3.0.2 mpmath==1.3.0 -mypy==1.10.0 +mypy==1.11.1 mypy-extensions==1.0.0 -myst-nb==1.1.0 +myst-nb==1.1.1 myst-parser==3.0.1 nbclient==0.6.8 nbconvert==7.16.4 @@ -111,49 +109,48 @@ nest-asyncio==1.6.0 nodeenv==1.9.1 notebook==7.2.1 notebook-shim==0.2.4 -numpy==2.0.0 +numpy==2.0.1 overrides==7.7.0 packaging==24.1 pandocfilters==1.5.1 parso==0.8.4 -pathspec==0.12.1 pathvalidate==3.2.0 pexpect==4.9.0 -pillow==10.3.0 +pillow==10.4.0 platformdirs==4.2.2 pluggy==1.5.0 -pre-commit==3.7.1 +pre-commit==3.8.0 prometheus-client==0.20.0 prompt-toolkit==3.0.47 psutil==6.0.0 ptyprocess==0.7.0 -pure-eval==0.2.2 +pure-eval==0.2.3 pybtex==0.24.0 pybtex-docutils==1.0.3 pycparser==2.22 -pydantic==2.7.4 -pydantic-core==2.18.4 -pydata-sphinx-theme==0.15.3 +pydantic==2.8.2 +pydantic-core==2.20.1 +pydata-sphinx-theme==0.15.4 pygithub==2.3.0 pygments==2.18.0 -pyjwt==2.8.0 +pyjwt==2.9.0 pynacl==1.5.0 pyparsing==3.1.2 -pyproject-api==1.6.1 +pyproject-api==1.7.1 pytablewriter==1.2.0 -pytest==8.2.2 +pytest==8.3.2 pytest-cov==5.0.0 pytest-xdist==3.6.1 python-dateutil==2.9.0.post0 -python-gitlab==4.6.0 +python-gitlab==4.9.0 python-json-logger==2.0.7 python-lsp-jsonrpc==1.1.2 -python-lsp-ruff==2.2.1 +python-lsp-ruff==2.2.2 python-lsp-server==1.11.0 pytoolconfig==1.3.1 pytz==2024.1 -pyyaml==6.0.1 -pyzmq==26.0.3 +pyyaml==6.0.2 +pyzmq==26.1.0 qtconsole==5.5.2 qtpy==2.4.1 referencing==0.35.1 @@ -162,37 +159,37 @@ requests-toolbelt==1.0.0 rfc3339-validator==0.1.4 rfc3986-validator==0.1.1 rope==1.13.0 -rpds-py==0.18.1 -ruff==0.4.9 +rpds-py==0.20.0 +ruff==0.5.6 send2trash==1.8.3 six==1.16.0 smmap==5.0.1 sniffio==1.3.1 snowballstemmer==2.2.0 soupsieve==2.5 -sphinx==7.3.7 +sphinx==7.4.7 sphinx-api-relink==0.0.9 sphinx-autobuild==2024.4.16 sphinx-book-theme==1.1.3 sphinx-codeautolink==0.15.2 sphinx-comments==0.0.3 sphinx-copybutton==0.5.2 -sphinx-design==0.6.0 +sphinx-design==0.6.1 sphinx-hep-pdgref==0.2.0 sphinx-pybtex-etal-style==0.0.2 sphinx-thebe==0.3.1 sphinx-togglebutton==0.3.2 -sphinxcontrib-applehelp==1.0.8 +sphinxcontrib-applehelp==2.0.0 sphinxcontrib-bibtex==2.6.2 -sphinxcontrib-devhelp==1.0.6 -sphinxcontrib-htmlhelp==2.0.5 +sphinxcontrib-devhelp==2.0.0 +sphinxcontrib-htmlhelp==2.1.0 sphinxcontrib-jsmath==1.0.1 -sphinxcontrib-qthelp==1.0.7 -sphinxcontrib-serializinghtml==1.1.10 -sqlalchemy==2.0.31 +sphinxcontrib-qthelp==2.0.0 +sphinxcontrib-serializinghtml==2.0.0 +sqlalchemy==2.0.32 stack-data==0.6.3 -starlette==0.37.2 -sympy==1.12.1 +starlette==0.38.2 +sympy==1.13.1 tabledata==1.3.3 tabulate==0.9.0 tcolorpy==0.1.6 @@ -200,26 +197,26 @@ terminado==0.18.1 tinycss2==1.3.0 tomli==2.0.1 tornado==6.4.1 -tox==4.15.1 +tox==4.17.0 traitlets==5.14.3 typepy==1.3.2 -types-docutils==0.21.0.20240423 +types-docutils==0.21.0.20240724 types-python-dateutil==2.9.0.20240316 -types-pyyaml==6.0.12.20240311 -types-setuptools==70.0.0.20240524 +types-pyyaml==6.0.12.20240724 +types-setuptools==71.1.0.20240806 typing-extensions==4.12.2 ujson==5.10.0 uri-template==1.3.0 urllib3==2.2.2 -uvicorn==0.30.1 -virtualenv==20.26.2 -watchfiles==0.22.0 +uvicorn==0.30.5 +virtualenv==20.26.3 +watchfiles==0.23.0 wcwidth==0.2.13 webcolors==24.6.0 webencodings==0.5.1 websocket-client==1.8.0 websockets==12.0 -wheel==0.43.0 +wheel==0.44.0 widgetsnbextension==4.0.11 wrapt==1.16.0 zipp==3.19.2 diff --git a/.envrc b/.envrc new file mode 100644 index 00000000..cce3aa58 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +layout anaconda diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 53ac26ad..f49ead21 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,6 +33,7 @@ jobs: pages: write id-token: write with: + python-version: "3.12" specific-pip-packages: ${{ inputs.specific-pip-packages }} pytest: uses: ComPWA/actions/.github/workflows/pytest.yml@v1 @@ -45,3 +46,5 @@ jobs: secrets: token: ${{ secrets.PAT }} uses: ComPWA/actions/.github/workflows/pre-commit.yml@v1 + with: + python-version: "3.12" diff --git a/.gitpod.yml b/.gitpod.yml index baf57924..585d4329 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -1,6 +1,6 @@ tasks: - - init: pyenv local 3.9 - - init: pip install -c .constraints/py3.9.txt -e .[dev] + - init: pyenv local 3.12 + - init: pip install -c .constraints/py3.12.txt -e .[dev] github: prebuilds: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d25c2074..43bcb54d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -24,8 +24,10 @@ repos: - | cell.attachments cell.metadata.code_folding + cell.metadata.editable cell.metadata.id cell.metadata.pycharm + cell.metadata.slideshow cell.metadata.user_expressions metadata.celltoolbar metadata.colab.name @@ -41,11 +43,12 @@ repos: metadata.vscode - repo: https://github.com/ComPWA/policy - rev: 0.3.9 + rev: 0.3.18 hooks: - id: check-dev-files args: - --ci-skipped-tests=all + - --dev-python-version=3.12 - --no-macos - --no-prettierrc - --pin-requirements=bimonthly @@ -53,9 +56,10 @@ repos: - --repo-title=PWA Pages - id: colab-toc-visible - id: fix-nbformat-version + - id: remove-empty-tags - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.4.9 + rev: v0.5.6 hooks: - id: ruff args: [--fix] @@ -105,7 +109,7 @@ repos: - --in-place - repo: https://github.com/sirosen/check-jsonschema - rev: 0.28.5 + rev: 0.29.1 hooks: - id: check-jsonschema name: Check project inventory YAML files @@ -115,7 +119,7 @@ repos: args: ["--schemafile", "./docs/software/project-inventory-schema.json"] - repo: https://github.com/streetsidesoftware/cspell-cli - rev: v8.8.2 + rev: v8.13.1 hooks: - id: cspell @@ -141,7 +145,7 @@ repos: - python - repo: https://github.com/ComPWA/mirrors-pyright - rev: v1.1.368 + rev: v1.1.374 hooks: - id: pyright diff --git a/.readthedocs.yml b/.readthedocs.yml index 4cf45a5c..9e45e749 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -11,10 +11,10 @@ formats: build: os: ubuntu-22.04 tools: - python: "3.9" + python: "3.12" apt_packages: - graphviz jobs: post_install: - python -m pip install 'uv>=0.2.0' - - python -m uv pip install -c .constraints/py3.9.txt -e .[doc] + - python -m uv pip install -c .constraints/py3.12.txt -e .[doc] diff --git a/.vscode/settings.json b/.vscode/settings.json index f3006037..0036f834 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -33,6 +33,9 @@ "cSpell.enabled": true, "diffEditor.experimental.showMoves": true, "editor.formatOnSave": true, + "files.associations": { + "**/.constraints/py*.txt": "pip-requirements" + }, "files.watcherExclude": { "**/*_cache/**": true, "**/.eggs/**": true, @@ -60,6 +63,7 @@ "python.analysis.autoImportCompletions": false, "python.analysis.inlayHints.pytestParameters": true, "python.analysis.typeCheckingMode": "strict", + "python.terminal.activateEnvironment": false, "python.testing.autoTestDiscoverOnSaveEnabled": false, "python.testing.pytestArgs": [ "--color=no", diff --git a/docs/conf.py b/docs/conf.py index b68622d3..ed21893a 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -16,7 +16,10 @@ "8.12.2": "8.12.1", "8.12.3": "8.12.1", }, - "matplotlib": {"3.5.1": "3.5.0"}, + "matplotlib": { + "3.5.1": "3.5.0", + "3.9.1.post1": "3.9.1", + }, }) BRANCH = get_branch_name() @@ -35,7 +38,7 @@ "members": True, "undoc-members": True, "show-inheritance": True, - "special-members": ", ".join([ + "special-members": ", ".join([ # noqa: FLY002 "__call__", "__eq__", ]), @@ -143,7 +146,7 @@ ] myst_substitutions = { "branch": BRANCH, - "build_date": datetime.today().strftime("%d %B %Y"), + "build_date": datetime.today().strftime("%d %B %Y"), # noqa: DTZ002 "repo": f"{ORGANIZATION}/{REPO_NAME}", } myst_update_mathjax = False diff --git a/docs/dynamics.ipynb b/docs/dynamics.ipynb index a62e4cea..097dd139 100644 --- a/docs/dynamics.ipynb +++ b/docs/dynamics.ipynb @@ -10,9 +10,6 @@ "jupyter": { "source_hidden": true }, - "slideshow": { - "slide_type": "skip" - }, "tags": [ "remove-cell" ] diff --git a/docs/introduction.ipynb b/docs/introduction.ipynb index c2530065..6ca40551 100644 --- a/docs/introduction.ipynb +++ b/docs/introduction.ipynb @@ -10,9 +10,6 @@ "jupyter": { "source_hidden": true }, - "slideshow": { - "slide_type": "skip" - }, "tags": [ "remove-cell" ] diff --git a/docs/software.ipynb b/docs/software.ipynb index 8df51ea0..4c6d6530 100644 --- a/docs/software.ipynb +++ b/docs/software.ipynb @@ -10,9 +10,6 @@ "jupyter": { "source_hidden": true }, - "slideshow": { - "slide_type": "skip" - }, "tags": [ "remove-cell" ] diff --git a/environment.yml b/environment.yml index ae1b3e69..c8f087ef 100644 --- a/environment.yml +++ b/environment.yml @@ -2,10 +2,10 @@ name: pwa-pages channels: - defaults dependencies: - - python==3.9.* + - python==3.12.* - pip - graphviz # for binder - pip: - - -c .constraints/py3.9.txt -e .[dev] + - -c .constraints/py3.12.txt -e .[dev] variables: PRETTIER_LEGACY_CLI: "1" diff --git a/pyproject.toml b/pyproject.toml index 1b35a7f6..0ed05aa4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -81,10 +81,8 @@ doc = [ ] jupyter = [ "PWA-pages[doc]", - "black", - "isort", "jupyterlab", - "jupyterlab-code-formatter", + "jupyterlab-code-formatter >=3.0.0", "jupyterlab-git", "jupyterlab-lsp", "jupyterlab-myst", @@ -239,39 +237,10 @@ docstring-code-format = true line-ending = "lf" [tool.ruff.lint] -extend-select = [ - "A", - "B", - "BLE", - "C4", - "C90", - "D", - "EM", - "ERA", - "FA", - "I", - "ICN", - "INP", - "ISC", - "N", - "NPY", - "PGH", - "PIE", - "PL", - "Q", - "RET", - "RSE", - "RUF", - "S", - "SIM", - "T20", - "TCH", - "TID", - "TRY", - "UP", - "YTT", -] ignore = [ + "ANN401", + "COM812", + "CPY001", "D101", "D102", "D103", @@ -281,21 +250,37 @@ ignore = [ "D213", "D407", "D416", + "DOC", "E501", + "FURB101", + "FURB103", + "FURB140", + "G004", "ISC001", "PLW1514", + "PT001", + "PTH", "SIM108", ] +select = ["ALL"] task-tags = ["cspell"] +[tool.ruff.lint.flake8-builtins] +builtins-ignorelist = ["display"] + +[tool.ruff.lint.flake8-comprehensions] +allow-dict-calls-with-keyword-arguments = true + [tool.ruff.lint.isort] split-on-trailing-comma = false [tool.ruff.lint.per-file-ignores] "*.ipynb" = [ + "ANN", "B018", "C90", "D", + "E303", "E402", "E703", "N806", @@ -326,7 +311,9 @@ split-on-trailing-comma = false "UP00", ] "tests/*" = [ + "ANN", "D", + "FBT001", "INP001", "PGH001", "PLC2701", @@ -334,6 +321,7 @@ split-on-trailing-comma = false "PLR2004", "PLR6301", "S101", + "SLF001", "T20", ] diff --git a/src/pwa_pages/repo/_gitlab.py b/src/pwa_pages/repo/_gitlab.py index 64dbd620..48670afd 100644 --- a/src/pwa_pages/repo/_gitlab.py +++ b/src/pwa_pages/repo/_gitlab.py @@ -35,7 +35,7 @@ def get_first_commit_date(repo: GitlabProject) -> datetime: all_commits = commits.list(all=True) assert isinstance(all_commits, list) # noqa: S101 first_commit = all_commits[-1] - commit_info = first_commit._attrs + commit_info = first_commit._attrs # noqa: SLF001 return parse_date(commit_info["created_at"]) @@ -44,7 +44,7 @@ def get_latest_commit_date(repo: GitlabProject) -> datetime: default_branch = repo.attributes["default_branch"] commits: ProjectCommitManager = repo.commits latest_commit = commits.get(default_branch) - commit_info = latest_commit._attrs + commit_info = latest_commit._attrs # noqa: SLF001 return parse_date(commit_info["created_at"])