diff --git a/.constraints/py3.10.txt b/.constraints/py3.10.txt index 1bc95693..5491cc8a 100644 --- a/.constraints/py3.10.txt +++ b/.constraints/py3.10.txt @@ -9,13 +9,13 @@ arrow==1.3.0 asttokens==2.4.1 async-lru==2.0.4 attrs==24.2.0 -babel==2.15.0 +babel==2.16.0 beautifulsoup4==4.12.3 bleach==6.1.0 -cachetools==5.4.0 -cattrs==23.2.3 -certifi==2024.7.4 -cffi==1.17.0 +cachetools==5.5.0 +cattrs==24.1.0 +certifi==2024.8.30 +cffi==1.17.1 cfgv==3.4.0 chardet==5.2.0 charset-normalizer==3.3.2 @@ -31,27 +31,27 @@ docstring-to-markdown==0.15 docutils==0.21.2 exceptiongroup==1.2.2 execnet==2.1.1 -executing==2.0.1 +executing==2.1.0 fastjsonschema==2.20.0 -filelock==3.15.4 +filelock==3.16.0 fqdn==1.5.1 gitdb==4.0.11 gitpython==3.1.43 gprof2dot==2024.6.6 graphviz==0.20.3 -greenlet==3.0.3 +greenlet==3.1.0 h11==0.14.0 hepunits==2.3.4 httpcore==1.0.5 -httpx==0.27.0 +httpx==0.27.2 identify==2.6.0 -idna==3.7 +idna==3.8 imagesize==1.4.1 -importlib-metadata==8.2.0 +importlib-metadata==8.4.0 iniconfig==2.0.0 ipykernel==6.29.5 -ipython==8.26.0 -ipywidgets==8.1.3 +ipython==8.27.0 +ipywidgets==8.1.5 isoduration==20.11.0 jedi==0.19.1 jinja2==3.1.4 @@ -67,29 +67,29 @@ jupyter-lsp==2.2.5 jupyter-server==2.14.2 jupyter-server-mathjax==0.2.6 jupyter-server-terminals==0.5.3 -jupyterlab==4.2.4 -jupyterlab-code-formatter==3.0.1 +jupyterlab==4.2.5 +jupyterlab-code-formatter==3.0.2 jupyterlab-git==0.50.1 jupyterlab-lsp==5.1.0 jupyterlab-myst==2.4.2 jupyterlab-pygments==0.3.0 jupyterlab-server==2.27.3 -jupyterlab-widgets==3.0.11 +jupyterlab-widgets==3.0.13 latexcodec==3.0.0 lsprotocol==2023.0.1 markdown-it-py==3.0.0 markupsafe==2.1.5 matplotlib-inline==0.1.7 -mdit-py-plugins==0.4.1 +mdit-py-plugins==0.4.2 mdurl==0.1.2 mistune==3.0.2 -mypy==1.11.1 +mypy==1.11.2 mypy-extensions==1.0.0 myst-nb==1.1.1 myst-parser==4.0.0 nbclient==0.6.8 nbconvert==7.16.4 -nbdime==4.0.1 +nbdime==4.0.2 nbformat==5.10.4 nbmake==1.5.4 nest-asyncio==1.6.0 @@ -99,9 +99,9 @@ overrides==7.7.0 packaging==24.1 pandocfilters==1.5.1 parso==0.8.4 -particle==0.24.0 +particle==0.25.0 pexpect==4.9.0 -platformdirs==4.2.2 +platformdirs==4.3.2 pluggy==1.5.0 pre-commit==3.8.0 prometheus-client==0.20.0 @@ -115,9 +115,9 @@ pycparser==2.22 pydata-sphinx-theme==0.15.4 pydot==1.4.2 pygments==2.18.0 -pyparsing==3.1.2 +pyparsing==3.1.4 pyproject-api==1.7.1 -pytest==8.3.2 +pytest==8.3.3 pytest-cov==5.0.0 pytest-profiling==1.7.0 pytest-xdist==3.6.1 @@ -126,26 +126,26 @@ python-dateutil==2.9.0.post0 python-json-logger==2.0.7 python-lsp-jsonrpc==1.1.2 python-lsp-ruff==2.2.2 -python-lsp-server==1.11.0 +python-lsp-server==1.12.0 pytoolconfig==1.3.1 pyyaml==6.0.2 -pyzmq==26.1.0 +pyzmq==26.2.0 referencing==0.35.1 requests==2.32.3 rfc3339-validator==0.1.4 rfc3986-validator==0.1.1 rope==1.13.0 rpds-py==0.20.0 -ruff==0.5.6 +ruff==0.6.4 send2trash==1.8.3 six==1.16.0 smmap==5.0.1 sniffio==1.3.1 snowballstemmer==2.2.0 -soupsieve==2.5 +soupsieve==2.6 sphinx==8.0.2 sphinx-api-relink==0.0.9 -sphinx-autobuild==2024.4.16 +sphinx-autobuild==2024.9.3 sphinx-book-theme==1.1.3 sphinx-codeautolink==0.15.2 sphinx-comments==0.0.3 @@ -162,35 +162,35 @@ sphinxcontrib-htmlhelp==2.1.0 sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==2.0.0 sphinxcontrib-serializinghtml==2.0.0 -sqlalchemy==2.0.32 +sqlalchemy==2.0.34 stack-data==0.6.3 -starlette==0.38.2 +starlette==0.38.5 tabulate==0.9.0 terminado==0.18.1 tinycss2==1.3.0 tomli==2.0.1 tornado==6.4.1 -tox==4.17.0 +tox==4.18.1 tqdm==4.66.5 traitlets==5.14.3 -types-python-dateutil==2.9.0.20240316 -types-pyyaml==6.0.12.20240724 -types-setuptools==71.1.0.20240806 +types-python-dateutil==2.9.0.20240906 +types-pyyaml==6.0.12.20240808 +types-setuptools==74.1.0.20240907 typing-extensions==4.12.2 ujson==5.10.0 uri-template==1.3.0 urllib3==2.2.2 -uvicorn==0.30.5 -virtualenv==20.26.3 -watchfiles==0.23.0 +uvicorn==0.30.6 +virtualenv==20.26.4 +watchfiles==0.24.0 wcwidth==0.2.13 -webcolors==24.6.0 +webcolors==24.8.0 webencodings==0.5.1 websocket-client==1.8.0 -websockets==12.0 +websockets==13.0.1 wheel==0.44.0 -widgetsnbextension==4.0.11 -zipp==3.19.2 +widgetsnbextension==4.0.13 +zipp==3.20.1 # The following packages were excluded from the output: # setuptools diff --git a/.constraints/py3.11.txt b/.constraints/py3.11.txt index fd32efd0..2452cbf5 100644 --- a/.constraints/py3.11.txt +++ b/.constraints/py3.11.txt @@ -9,13 +9,13 @@ arrow==1.3.0 asttokens==2.4.1 async-lru==2.0.4 attrs==24.2.0 -babel==2.15.0 +babel==2.16.0 beautifulsoup4==4.12.3 bleach==6.1.0 -cachetools==5.4.0 -cattrs==23.2.3 -certifi==2024.7.4 -cffi==1.17.0 +cachetools==5.5.0 +cattrs==24.1.0 +certifi==2024.8.30 +cffi==1.17.1 cfgv==3.4.0 chardet==5.2.0 charset-normalizer==3.3.2 @@ -30,27 +30,27 @@ distlib==0.3.8 docstring-to-markdown==0.15 docutils==0.21.2 execnet==2.1.1 -executing==2.0.1 +executing==2.1.0 fastjsonschema==2.20.0 -filelock==3.15.4 +filelock==3.16.0 fqdn==1.5.1 gitdb==4.0.11 gitpython==3.1.43 gprof2dot==2024.6.6 graphviz==0.20.3 -greenlet==3.0.3 +greenlet==3.1.0 h11==0.14.0 hepunits==2.3.4 httpcore==1.0.5 -httpx==0.27.0 +httpx==0.27.2 identify==2.6.0 -idna==3.7 +idna==3.8 imagesize==1.4.1 -importlib-metadata==8.2.0 +importlib-metadata==8.4.0 iniconfig==2.0.0 ipykernel==6.29.5 -ipython==8.26.0 -ipywidgets==8.1.3 +ipython==8.27.0 +ipywidgets==8.1.5 isoduration==20.11.0 jedi==0.19.1 jinja2==3.1.4 @@ -66,29 +66,29 @@ jupyter-lsp==2.2.5 jupyter-server==2.14.2 jupyter-server-mathjax==0.2.6 jupyter-server-terminals==0.5.3 -jupyterlab==4.2.4 -jupyterlab-code-formatter==3.0.1 +jupyterlab==4.2.5 +jupyterlab-code-formatter==3.0.2 jupyterlab-git==0.50.1 jupyterlab-lsp==5.1.0 jupyterlab-myst==2.4.2 jupyterlab-pygments==0.3.0 jupyterlab-server==2.27.3 -jupyterlab-widgets==3.0.11 +jupyterlab-widgets==3.0.13 latexcodec==3.0.0 lsprotocol==2023.0.1 markdown-it-py==3.0.0 markupsafe==2.1.5 matplotlib-inline==0.1.7 -mdit-py-plugins==0.4.1 +mdit-py-plugins==0.4.2 mdurl==0.1.2 mistune==3.0.2 -mypy==1.11.1 +mypy==1.11.2 mypy-extensions==1.0.0 myst-nb==1.1.1 myst-parser==4.0.0 nbclient==0.6.8 nbconvert==7.16.4 -nbdime==4.0.1 +nbdime==4.0.2 nbformat==5.10.4 nbmake==1.5.4 nest-asyncio==1.6.0 @@ -98,9 +98,9 @@ overrides==7.7.0 packaging==24.1 pandocfilters==1.5.1 parso==0.8.4 -particle==0.24.0 +particle==0.25.0 pexpect==4.9.0 -platformdirs==4.2.2 +platformdirs==4.3.2 pluggy==1.5.0 pre-commit==3.8.0 prometheus-client==0.20.0 @@ -114,9 +114,9 @@ pycparser==2.22 pydata-sphinx-theme==0.15.4 pydot==1.4.2 pygments==2.18.0 -pyparsing==3.1.2 +pyparsing==3.1.4 pyproject-api==1.7.1 -pytest==8.3.2 +pytest==8.3.3 pytest-cov==5.0.0 pytest-profiling==1.7.0 pytest-xdist==3.6.1 @@ -125,26 +125,26 @@ python-dateutil==2.9.0.post0 python-json-logger==2.0.7 python-lsp-jsonrpc==1.1.2 python-lsp-ruff==2.2.2 -python-lsp-server==1.11.0 +python-lsp-server==1.12.0 pytoolconfig==1.3.1 pyyaml==6.0.2 -pyzmq==26.1.0 +pyzmq==26.2.0 referencing==0.35.1 requests==2.32.3 rfc3339-validator==0.1.4 rfc3986-validator==0.1.1 rope==1.13.0 rpds-py==0.20.0 -ruff==0.5.6 +ruff==0.6.4 send2trash==1.8.3 six==1.16.0 smmap==5.0.1 sniffio==1.3.1 snowballstemmer==2.2.0 -soupsieve==2.5 +soupsieve==2.6 sphinx==8.0.2 sphinx-api-relink==0.0.9 -sphinx-autobuild==2024.4.16 +sphinx-autobuild==2024.9.3 sphinx-book-theme==1.1.3 sphinx-codeautolink==0.15.2 sphinx-comments==0.0.3 @@ -161,34 +161,35 @@ sphinxcontrib-htmlhelp==2.1.0 sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==2.0.0 sphinxcontrib-serializinghtml==2.0.0 -sqlalchemy==2.0.32 +sqlalchemy==2.0.34 stack-data==0.6.3 -starlette==0.38.2 +starlette==0.38.5 tabulate==0.9.0 terminado==0.18.1 tinycss2==1.3.0 +tomli==2.0.1 tornado==6.4.1 -tox==4.17.0 +tox==4.18.1 tqdm==4.66.5 traitlets==5.14.3 -types-python-dateutil==2.9.0.20240316 -types-pyyaml==6.0.12.20240724 -types-setuptools==71.1.0.20240806 +types-python-dateutil==2.9.0.20240906 +types-pyyaml==6.0.12.20240808 +types-setuptools==74.1.0.20240907 typing-extensions==4.12.2 ujson==5.10.0 uri-template==1.3.0 urllib3==2.2.2 -uvicorn==0.30.5 -virtualenv==20.26.3 -watchfiles==0.23.0 +uvicorn==0.30.6 +virtualenv==20.26.4 +watchfiles==0.24.0 wcwidth==0.2.13 -webcolors==24.6.0 +webcolors==24.8.0 webencodings==0.5.1 websocket-client==1.8.0 -websockets==12.0 +websockets==13.0.1 wheel==0.44.0 -widgetsnbextension==4.0.11 -zipp==3.19.2 +widgetsnbextension==4.0.13 +zipp==3.20.1 # The following packages were excluded from the output: # setuptools diff --git a/.constraints/py3.12.txt b/.constraints/py3.12.txt index 187c11d8..24badb1f 100644 --- a/.constraints/py3.12.txt +++ b/.constraints/py3.12.txt @@ -9,13 +9,13 @@ arrow==1.3.0 asttokens==2.4.1 async-lru==2.0.4 attrs==24.2.0 -babel==2.15.0 +babel==2.16.0 beautifulsoup4==4.12.3 bleach==6.1.0 -cachetools==5.4.0 -cattrs==23.2.3 -certifi==2024.7.4 -cffi==1.17.0 +cachetools==5.5.0 +cattrs==24.1.0 +certifi==2024.8.30 +cffi==1.17.1 cfgv==3.4.0 chardet==5.2.0 charset-normalizer==3.3.2 @@ -30,27 +30,27 @@ distlib==0.3.8 docstring-to-markdown==0.15 docutils==0.21.2 execnet==2.1.1 -executing==2.0.1 +executing==2.1.0 fastjsonschema==2.20.0 -filelock==3.15.4 +filelock==3.16.0 fqdn==1.5.1 gitdb==4.0.11 gitpython==3.1.43 gprof2dot==2024.6.6 graphviz==0.20.3 -greenlet==3.0.3 +greenlet==3.1.0 h11==0.14.0 hepunits==2.3.4 httpcore==1.0.5 -httpx==0.27.0 +httpx==0.27.2 identify==2.6.0 -idna==3.7 +idna==3.8 imagesize==1.4.1 -importlib-metadata==8.2.0 +importlib-metadata==8.4.0 iniconfig==2.0.0 ipykernel==6.29.5 -ipython==8.26.0 -ipywidgets==8.1.3 +ipython==8.27.0 +ipywidgets==8.1.5 isoduration==20.11.0 jedi==0.19.1 jinja2==3.1.4 @@ -66,29 +66,29 @@ jupyter-lsp==2.2.5 jupyter-server==2.14.2 jupyter-server-mathjax==0.2.6 jupyter-server-terminals==0.5.3 -jupyterlab==4.2.4 -jupyterlab-code-formatter==3.0.1 +jupyterlab==4.2.5 +jupyterlab-code-formatter==3.0.2 jupyterlab-git==0.50.1 jupyterlab-lsp==5.1.0 jupyterlab-myst==2.4.2 jupyterlab-pygments==0.3.0 jupyterlab-server==2.27.3 -jupyterlab-widgets==3.0.11 +jupyterlab-widgets==3.0.13 latexcodec==3.0.0 lsprotocol==2023.0.1 markdown-it-py==3.0.0 markupsafe==2.1.5 matplotlib-inline==0.1.7 -mdit-py-plugins==0.4.1 +mdit-py-plugins==0.4.2 mdurl==0.1.2 mistune==3.0.2 -mypy==1.11.1 +mypy==1.11.2 mypy-extensions==1.0.0 myst-nb==1.1.1 myst-parser==4.0.0 nbclient==0.6.8 nbconvert==7.16.4 -nbdime==4.0.1 +nbdime==4.0.2 nbformat==5.10.4 nbmake==1.5.4 nest-asyncio==1.6.0 @@ -98,9 +98,9 @@ overrides==7.7.0 packaging==24.1 pandocfilters==1.5.1 parso==0.8.4 -particle==0.24.0 +particle==0.25.0 pexpect==4.9.0 -platformdirs==4.2.2 +platformdirs==4.3.2 pluggy==1.5.0 pre-commit==3.8.0 prometheus-client==0.20.0 @@ -114,9 +114,9 @@ pycparser==2.22 pydata-sphinx-theme==0.15.4 pydot==1.4.2 pygments==2.18.0 -pyparsing==3.1.2 +pyparsing==3.1.4 pyproject-api==1.7.1 -pytest==8.3.2 +pytest==8.3.3 pytest-cov==5.0.0 pytest-profiling==1.7.0 pytest-xdist==3.6.1 @@ -125,26 +125,26 @@ python-dateutil==2.9.0.post0 python-json-logger==2.0.7 python-lsp-jsonrpc==1.1.2 python-lsp-ruff==2.2.2 -python-lsp-server==1.11.0 +python-lsp-server==1.12.0 pytoolconfig==1.3.1 pyyaml==6.0.2 -pyzmq==26.1.0 +pyzmq==26.2.0 referencing==0.35.1 requests==2.32.3 rfc3339-validator==0.1.4 rfc3986-validator==0.1.1 rope==1.13.0 rpds-py==0.20.0 -ruff==0.5.6 +ruff==0.6.4 send2trash==1.8.3 six==1.16.0 smmap==5.0.1 sniffio==1.3.1 snowballstemmer==2.2.0 -soupsieve==2.5 +soupsieve==2.6 sphinx==8.0.2 sphinx-api-relink==0.0.9 -sphinx-autobuild==2024.4.16 +sphinx-autobuild==2024.9.3 sphinx-book-theme==1.1.3 sphinx-codeautolink==0.15.2 sphinx-comments==0.0.3 @@ -161,34 +161,34 @@ sphinxcontrib-htmlhelp==2.1.0 sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==2.0.0 sphinxcontrib-serializinghtml==2.0.0 -sqlalchemy==2.0.32 +sqlalchemy==2.0.34 stack-data==0.6.3 -starlette==0.38.2 +starlette==0.38.5 tabulate==0.9.0 terminado==0.18.1 tinycss2==1.3.0 tornado==6.4.1 -tox==4.17.0 +tox==4.18.1 tqdm==4.66.5 traitlets==5.14.3 -types-python-dateutil==2.9.0.20240316 -types-pyyaml==6.0.12.20240724 -types-setuptools==71.1.0.20240806 +types-python-dateutil==2.9.0.20240906 +types-pyyaml==6.0.12.20240808 +types-setuptools==74.1.0.20240907 typing-extensions==4.12.2 ujson==5.10.0 uri-template==1.3.0 urllib3==2.2.2 -uvicorn==0.30.5 -virtualenv==20.26.3 -watchfiles==0.23.0 +uvicorn==0.30.6 +virtualenv==20.26.4 +watchfiles==0.24.0 wcwidth==0.2.13 -webcolors==24.6.0 +webcolors==24.8.0 webencodings==0.5.1 websocket-client==1.8.0 -websockets==12.0 +websockets==13.0.1 wheel==0.44.0 -widgetsnbextension==4.0.11 -zipp==3.19.2 +widgetsnbextension==4.0.13 +zipp==3.20.1 # The following packages were excluded from the output: # setuptools diff --git a/.constraints/py3.7.txt b/.constraints/py3.7.txt index da79b3a7..180c4aa5 100644 --- a/.constraints/py3.7.txt +++ b/.constraints/py3.7.txt @@ -14,9 +14,9 @@ backcall==0.2.0 beautifulsoup4==4.12.3 bleach==6.0.0 cached-property==1.5.2 -cachetools==5.4.0 +cachetools==5.5.0 cattrs==23.1.2 -certifi==2024.7.4 +certifi==2024.8.30 cffi==1.15.1 cfgv==3.3.1 chardet==5.2.0 @@ -41,10 +41,10 @@ gitdb==4.0.11 gitpython==3.1.43 gprof2dot==2022.7.29 graphviz==0.20.1 -greenlet==3.0.3 +greenlet==3.1.0 hepunits==2.3.3 identify==2.5.24 -idna==3.7 +idna==3.8 imagesize==1.4.1 importlib-metadata==6.7.0 importlib-resources==5.12.0 @@ -52,7 +52,7 @@ iniconfig==2.0.0 ipykernel==6.16.2 ipython==7.34.0 ipython-genutils==0.2.0 -ipywidgets==8.1.3 +ipywidgets==8.1.5 isoduration==20.11.0 jedi==0.18.2 jinja2==3.1.4 @@ -65,18 +65,18 @@ jupyter-core==4.12.0 jupyter-events==0.6.3 jupyter-lsp==1.5.1 jupyter-server==1.24.0 -jupyter-server-fileid==0.9.2 +jupyter-server-fileid==0.9.3 jupyter-server-mathjax==0.2.6 jupyter-server-ydoc==0.8.0 jupyter-ydoc==0.2.5 -jupyterlab==3.6.7 -jupyterlab-code-formatter==3.0.1 +jupyterlab==3.6.8 +jupyterlab-code-formatter==3.0.2 jupyterlab-git==0.44.0 jupyterlab-lsp==3.10.2 jupyterlab-myst==1.2.0 jupyterlab-pygments==0.2.2 jupyterlab-server==2.24.0 -jupyterlab-widgets==3.0.11 +jupyterlab-widgets==3.0.13 latexcodec==3.0.0 livereload==2.7.0 lsprotocol==2023.0.1 @@ -117,11 +117,11 @@ ptyprocess==0.7.0 pybtex==0.24.0 pybtex-docutils==1.0.3 pycparser==2.21 -pydantic==1.10.17 +pydantic==1.10.18 pydata-sphinx-theme==0.13.3 pydot==1.4.2 pygments==2.17.2 -pyparsing==3.1.2 +pyparsing==3.1.4 pyproject-api==1.5.3 pyrsistent==0.19.3 pytest==7.4.4 @@ -137,7 +137,7 @@ python-lsp-server==1.7.4 pytoolconfig==1.3.0 pytz==2024.1 pyyaml==6.0.1 -pyzmq==26.1.0 +pyzmq==26.2.0 requests==2.31.0 rfc3339-validator==0.1.4 rfc3986-validator==0.1.1 @@ -168,7 +168,7 @@ sphinxcontrib-htmlhelp==2.0.0 sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==1.0.3 sphinxcontrib-serializinghtml==1.1.5 -sqlalchemy==1.4.53 +sqlalchemy==1.4.54 tabulate==0.9.0 terminado==0.17.1 tinycss2==1.2.1 @@ -184,13 +184,13 @@ typing-extensions==4.7.1 ujson==5.7.0 uri-template==1.3.0 urllib3==2.0.7 -virtualenv==20.26.3 +virtualenv==20.26.4 wcwidth==0.2.13 webcolors==1.13 webencodings==0.5.1 websocket-client==1.6.1 wheel==0.42.0 -widgetsnbextension==4.0.11 +widgetsnbextension==4.0.13 y-py==0.6.2 ypy-websocket==0.8.4 zipp==3.15.0 diff --git a/.constraints/py3.8.txt b/.constraints/py3.8.txt index 67b05998..e5a2358c 100644 --- a/.constraints/py3.8.txt +++ b/.constraints/py3.8.txt @@ -9,14 +9,14 @@ arrow==1.3.0 asttokens==2.4.1 async-lru==2.0.4 attrs==24.2.0 -babel==2.15.0 +babel==2.16.0 backcall==0.2.0 beautifulsoup4==4.12.3 bleach==6.1.0 -cachetools==5.4.0 -cattrs==23.2.3 -certifi==2024.7.4 -cffi==1.17.0 +cachetools==5.5.0 +cattrs==24.1.0 +certifi==2024.8.30 +cffi==1.17.1 cfgv==3.4.0 chardet==5.2.0 charset-normalizer==3.3.2 @@ -32,28 +32,28 @@ docstring-to-markdown==0.15 docutils==0.17.1 exceptiongroup==1.2.2 execnet==2.1.1 -executing==2.0.1 +executing==2.1.0 fastjsonschema==2.20.0 -filelock==3.15.4 +filelock==3.16.0 fqdn==1.5.1 gitdb==4.0.11 gitpython==3.1.43 gprof2dot==2024.6.6 graphviz==0.20.3 -greenlet==3.0.3 +greenlet==3.1.0 h11==0.14.0 hepunits==2.3.4 httpcore==1.0.5 -httpx==0.27.0 +httpx==0.27.2 identify==2.6.0 -idna==3.7 +idna==3.8 imagesize==1.4.1 -importlib-metadata==8.2.0 -importlib-resources==6.4.0 +importlib-metadata==8.4.0 +importlib-resources==6.4.5 iniconfig==2.0.0 ipykernel==6.29.5 ipython==8.12.3 -ipywidgets==8.1.3 +ipywidgets==8.1.5 isoduration==20.11.0 jedi==0.19.1 jinja2==3.1.4 @@ -69,14 +69,14 @@ jupyter-lsp==2.2.5 jupyter-server==2.14.2 jupyter-server-mathjax==0.2.6 jupyter-server-terminals==0.5.3 -jupyterlab==4.2.4 -jupyterlab-code-formatter==3.0.1 +jupyterlab==4.2.5 +jupyterlab-code-formatter==3.0.2 jupyterlab-git==0.50.1 jupyterlab-lsp==5.1.0 jupyterlab-myst==2.4.2 jupyterlab-pygments==0.3.0 jupyterlab-server==2.27.3 -jupyterlab-widgets==3.0.11 +jupyterlab-widgets==3.0.13 latexcodec==3.0.0 livereload==2.7.0 lsprotocol==2023.0.1 @@ -86,13 +86,13 @@ matplotlib-inline==0.1.7 mdit-py-plugins==0.3.5 mdurl==0.1.2 mistune==3.0.2 -mypy==1.11.1 +mypy==1.11.2 mypy-extensions==1.0.0 myst-nb==0.17.2 myst-parser==0.18.1 nbclient==0.6.8 nbconvert==7.16.4 -nbdime==4.0.1 +nbdime==4.0.2 nbformat==5.10.4 nbmake==1.5.4 nest-asyncio==1.6.0 @@ -102,11 +102,11 @@ overrides==7.7.0 packaging==24.1 pandocfilters==1.5.1 parso==0.8.4 -particle==0.24.0 +particle==0.25.0 pexpect==4.9.0 pickleshare==0.7.5 pkgutil-resolve-name==1.3.10 -platformdirs==4.2.2 +platformdirs==4.3.2 pluggy==1.5.0 pre-commit==3.5.0 prometheus-client==0.20.0 @@ -120,9 +120,9 @@ pycparser==2.22 pydata-sphinx-theme==0.14.4 pydot==1.4.2 pygments==2.18.0 -pyparsing==3.1.2 +pyparsing==3.1.4 pyproject-api==1.7.1 -pytest==8.3.2 +pytest==8.3.3 pytest-cov==5.0.0 pytest-profiling==1.7.0 pytest-xdist==3.6.1 @@ -131,24 +131,24 @@ python-dateutil==2.9.0.post0 python-json-logger==2.0.7 python-lsp-jsonrpc==1.1.2 python-lsp-ruff==2.2.2 -python-lsp-server==1.11.0 +python-lsp-server==1.12.0 pytoolconfig==1.3.1 pytz==2024.1 pyyaml==6.0.2 -pyzmq==26.1.0 +pyzmq==26.2.0 referencing==0.35.1 requests==2.32.3 rfc3339-validator==0.1.4 rfc3986-validator==0.1.1 rope==1.13.0 rpds-py==0.20.0 -ruff==0.5.6 +ruff==0.6.4 send2trash==1.8.3 six==1.16.0 smmap==5.0.1 sniffio==1.3.1 snowballstemmer==2.2.0 -soupsieve==2.5 +soupsieve==2.6 sphinx==5.3.0 sphinx-api-relink==0.0.9 sphinx-autobuild==2021.3.14 @@ -168,31 +168,31 @@ sphinxcontrib-htmlhelp==2.0.1 sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==1.0.3 sphinxcontrib-serializinghtml==1.1.5 -sqlalchemy==2.0.32 +sqlalchemy==2.0.34 stack-data==0.6.3 tabulate==0.9.0 terminado==0.18.1 tinycss2==1.3.0 tomli==2.0.1 tornado==6.4.1 -tox==4.17.0 +tox==4.18.1 tqdm==4.66.5 traitlets==5.14.3 -types-python-dateutil==2.9.0.20240316 -types-pyyaml==6.0.12.20240724 -types-setuptools==71.1.0.20240806 +types-python-dateutil==2.9.0.20240906 +types-pyyaml==6.0.12.20240808 +types-setuptools==74.1.0.20240907 typing-extensions==4.12.2 ujson==5.10.0 uri-template==1.3.0 urllib3==2.2.2 -virtualenv==20.26.3 +virtualenv==20.26.4 wcwidth==0.2.13 -webcolors==24.6.0 +webcolors==24.8.0 webencodings==0.5.1 websocket-client==1.8.0 wheel==0.44.0 -widgetsnbextension==4.0.11 -zipp==3.19.2 +widgetsnbextension==4.0.13 +zipp==3.20.1 # The following packages were excluded from the output: # setuptools diff --git a/.constraints/py3.9.txt b/.constraints/py3.9.txt index 608df10d..eee16a4e 100644 --- a/.constraints/py3.9.txt +++ b/.constraints/py3.9.txt @@ -9,13 +9,13 @@ arrow==1.3.0 asttokens==2.4.1 async-lru==2.0.4 attrs==24.2.0 -babel==2.15.0 +babel==2.16.0 beautifulsoup4==4.12.3 bleach==6.1.0 -cachetools==5.4.0 -cattrs==23.2.3 -certifi==2024.7.4 -cffi==1.17.0 +cachetools==5.5.0 +cattrs==24.1.0 +certifi==2024.8.30 +cffi==1.17.1 cfgv==3.4.0 chardet==5.2.0 charset-normalizer==3.3.2 @@ -31,27 +31,27 @@ docstring-to-markdown==0.15 docutils==0.21.2 exceptiongroup==1.2.2 execnet==2.1.1 -executing==2.0.1 +executing==2.1.0 fastjsonschema==2.20.0 -filelock==3.15.4 +filelock==3.16.0 fqdn==1.5.1 gitdb==4.0.11 gitpython==3.1.43 gprof2dot==2024.6.6 graphviz==0.20.3 -greenlet==3.0.3 +greenlet==3.1.0 h11==0.14.0 hepunits==2.3.4 httpcore==1.0.5 -httpx==0.27.0 +httpx==0.27.2 identify==2.6.0 -idna==3.7 +idna==3.8 imagesize==1.4.1 -importlib-metadata==8.2.0 +importlib-metadata==8.4.0 iniconfig==2.0.0 ipykernel==6.29.5 ipython==8.18.1 -ipywidgets==8.1.3 +ipywidgets==8.1.5 isoduration==20.11.0 jedi==0.19.1 jinja2==3.1.4 @@ -67,29 +67,29 @@ jupyter-lsp==2.2.5 jupyter-server==2.14.2 jupyter-server-mathjax==0.2.6 jupyter-server-terminals==0.5.3 -jupyterlab==4.2.4 -jupyterlab-code-formatter==3.0.1 +jupyterlab==4.2.5 +jupyterlab-code-formatter==3.0.2 jupyterlab-git==0.50.1 jupyterlab-lsp==5.1.0 jupyterlab-myst==2.4.2 jupyterlab-pygments==0.3.0 jupyterlab-server==2.27.3 -jupyterlab-widgets==3.0.11 +jupyterlab-widgets==3.0.13 latexcodec==3.0.0 lsprotocol==2023.0.1 markdown-it-py==3.0.0 markupsafe==2.1.5 matplotlib-inline==0.1.7 -mdit-py-plugins==0.4.1 +mdit-py-plugins==0.4.2 mdurl==0.1.2 mistune==3.0.2 -mypy==1.11.1 +mypy==1.11.2 mypy-extensions==1.0.0 myst-nb==1.1.1 myst-parser==3.0.1 nbclient==0.6.8 nbconvert==7.16.4 -nbdime==4.0.1 +nbdime==4.0.2 nbformat==5.10.4 nbmake==1.5.4 nest-asyncio==1.6.0 @@ -99,9 +99,9 @@ overrides==7.7.0 packaging==24.1 pandocfilters==1.5.1 parso==0.8.4 -particle==0.24.0 +particle==0.25.0 pexpect==4.9.0 -platformdirs==4.2.2 +platformdirs==4.3.2 pluggy==1.5.0 pre-commit==3.8.0 prometheus-client==0.20.0 @@ -115,9 +115,9 @@ pycparser==2.22 pydata-sphinx-theme==0.15.4 pydot==1.4.2 pygments==2.18.0 -pyparsing==3.1.2 +pyparsing==3.1.4 pyproject-api==1.7.1 -pytest==8.3.2 +pytest==8.3.3 pytest-cov==5.0.0 pytest-profiling==1.7.0 pytest-xdist==3.6.1 @@ -126,26 +126,26 @@ python-dateutil==2.9.0.post0 python-json-logger==2.0.7 python-lsp-jsonrpc==1.1.2 python-lsp-ruff==2.2.2 -python-lsp-server==1.11.0 +python-lsp-server==1.12.0 pytoolconfig==1.3.1 pyyaml==6.0.2 -pyzmq==26.1.0 +pyzmq==26.2.0 referencing==0.35.1 requests==2.32.3 rfc3339-validator==0.1.4 rfc3986-validator==0.1.1 rope==1.13.0 rpds-py==0.20.0 -ruff==0.5.6 +ruff==0.6.4 send2trash==1.8.3 six==1.16.0 smmap==5.0.1 sniffio==1.3.1 snowballstemmer==2.2.0 -soupsieve==2.5 +soupsieve==2.6 sphinx==7.4.7 sphinx-api-relink==0.0.9 -sphinx-autobuild==2024.4.16 +sphinx-autobuild==2024.9.3 sphinx-book-theme==1.1.3 sphinx-codeautolink==0.15.2 sphinx-comments==0.0.3 @@ -162,35 +162,35 @@ sphinxcontrib-htmlhelp==2.1.0 sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==2.0.0 sphinxcontrib-serializinghtml==2.0.0 -sqlalchemy==2.0.32 +sqlalchemy==2.0.34 stack-data==0.6.3 -starlette==0.38.2 +starlette==0.38.5 tabulate==0.9.0 terminado==0.18.1 tinycss2==1.3.0 tomli==2.0.1 tornado==6.4.1 -tox==4.17.0 +tox==4.18.1 tqdm==4.66.5 traitlets==5.14.3 -types-python-dateutil==2.9.0.20240316 -types-pyyaml==6.0.12.20240724 -types-setuptools==71.1.0.20240806 +types-python-dateutil==2.9.0.20240906 +types-pyyaml==6.0.12.20240808 +types-setuptools==74.1.0.20240907 typing-extensions==4.12.2 ujson==5.10.0 uri-template==1.3.0 urllib3==2.2.2 -uvicorn==0.30.5 -virtualenv==20.26.3 -watchfiles==0.23.0 +uvicorn==0.30.6 +virtualenv==20.26.4 +watchfiles==0.24.0 wcwidth==0.2.13 -webcolors==24.6.0 +webcolors==24.8.0 webencodings==0.5.1 websocket-client==1.8.0 -websockets==12.0 +websockets==13.0.1 wheel==0.44.0 -widgetsnbextension==4.0.11 -zipp==3.19.2 +widgetsnbextension==4.0.13 +zipp==3.20.1 # The following packages were excluded from the output: # setuptools diff --git a/.cspell.json b/.cspell.json index 8c38a961..9aa9ea83 100644 --- a/.cspell.json +++ b/.cspell.json @@ -26,8 +26,9 @@ "*particle*.*ml", ".constraints/*.txt", ".editorconfig", + ".envrc", + ".gitattributes", ".gitignore", - ".gitpod.*", ".pre-commit-config.yaml", ".prettierignore", ".readthedocs.yml", @@ -78,7 +79,6 @@ "gellmann", "genindex", "getsource", - "gitpod", "hankel", "heli", "heurisch", diff --git a/.envrc b/.envrc index cce3aa58..e1d415a5 100644 --- a/.envrc +++ b/.envrc @@ -1 +1,10 @@ -layout anaconda +if [ -e .venv ]; then + source .venv/bin/activate +elif [ -e venv ]; then + source venv/bin/activate +elif [ -e .pixi ]; then + watch_file pixi.lock + eval "$(pixi shell-hook)" +else + layout anaconda +fi diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..18f6c7e9 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +pixi.lock linguist-language=YAML linguist-generated=true diff --git a/.gitignore b/.gitignore index f7b7246a..cd08a7f8 100644 --- a/.gitignore +++ b/.gitignore @@ -40,6 +40,7 @@ TAGS # Virtual environments *venv/ +.pixi/ .tox/ pyvenv*/ @@ -51,7 +52,6 @@ pyvenv*/ !.cspell.json !.github/*.yml !.github/*/*.yml -!.gitpod.yml !.pre-commit-config.yaml !.readthedocs.yml !.vscode/*.json diff --git a/.gitpod.yml b/.gitpod.yml deleted file mode 100644 index abc3e5cc..00000000 --- a/.gitpod.yml +++ /dev/null @@ -1,37 +0,0 @@ -tasks: - - init: pyenv local 3.9 - - init: pip install -c .constraints/py3.9.txt -e .[dev] - -github: - prebuilds: - master: true - branches: false - pullRequests: true - pullRequestsFromForks: true - addComment: false - addBadge: false - addLabel: false - -vscode: - extensions: - - charliermarsh.ruff - - christian-kohler.path-intellisense - - eamodio.gitlens - - editorconfig.editorconfig - - esbenp.prettier-vscode - - executablebookproject.myst-highlight - - github.vscode-github-actions - - github.vscode-pull-request-github - - joaompinto.vscode-graphviz - - ms-python.mypy-type-checker - - ms-python.python - - ms-python.vscode-pylance - - ms-vscode.live-server - - ms-vsliveshare.vsliveshare - - redhat.vscode-yaml - - ryanluker.vscode-coverage-gutters - - soulcode.vscode-unwanted-extensions - - stkb.rewrap - - streetsidesoftware.code-spell-checker - - tamasfe.even-better-toml - - yzhang.markdown-all-in-one diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 234ffcd2..8ac11a11 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -4,9 +4,7 @@ ci: skip: - check-jsonschema - mypy - - prettier - pyright - - taplo repos: - repo: meta @@ -14,11 +12,31 @@ repos: - id: check-hooks-apply - id: check-useless-excludes + - repo: https://github.com/ComPWA/policy + rev: 0.4.0 + hooks: + - id: check-dev-files + args: + - --doc-apt-packages=graphviz + - --no-prettierrc + - --pin-requirements=monthly + - --repo-name=qrules + - --repo-title=QRules + - id: colab-toc-visible + - id: fix-nbformat-version + - id: remove-empty-tags + - id: set-nb-cells + args: + - --add-install-cell + - --additional-packages=IPython + - --extras-require=doc,viz + - repo: https://github.com/kynan/nbstripout rev: 0.7.1 hooks: - id: nbstripout args: + - --drop-empty-cells - --extra-keys - | cell.attachments @@ -41,27 +59,8 @@ repos: metadata.varInspector metadata.vscode - - repo: https://github.com/ComPWA/policy - rev: 0.3.18 - hooks: - - id: check-dev-files - args: - - --doc-apt-packages=graphviz - - --no-prettierrc - - --pin-requirements=monthly - - --repo-name=qrules - - --repo-title=QRules - - id: colab-toc-visible - - id: fix-nbformat-version - - id: remove-empty-tags - - id: set-nb-cells - args: - - --add-install-cell - - --additional-packages=IPython - - --extras-require=doc,viz - - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.5.6 + rev: v0.6.4 hooks: - id: ruff args: [--fix] @@ -92,15 +91,15 @@ repos: args: ["--django"] - id: trailing-whitespace - - repo: https://github.com/pre-commit/mirrors-prettier - rev: v4.0.0-alpha.8 + - repo: https://github.com/ComPWA/prettier-pre-commit + rev: v3.3.3 hooks: - id: prettier - - repo: https://github.com/ComPWA/mirrors-taplo - rev: v0.8.1 + - repo: https://github.com/ComPWA/taplo-pre-commit + rev: v0.9.3 hooks: - - id: taplo + - id: taplo-format - repo: https://github.com/pappasam/toml-sort rev: v0.23.1 @@ -110,7 +109,7 @@ repos: - --in-place - repo: https://github.com/python-jsonschema/check-jsonschema - rev: 0.29.1 + rev: 0.29.2 hooks: - id: check-jsonschema name: Check CITATION.cff @@ -123,12 +122,12 @@ repos: pass_filenames: false - repo: https://github.com/streetsidesoftware/cspell-cli - rev: v8.13.1 + rev: v8.13.3 hooks: - id: cspell - repo: https://github.com/editorconfig-checker/editorconfig-checker.python - rev: 2.7.3 + rev: 3.0.3 hooks: - id: editorconfig-checker name: editorconfig @@ -149,6 +148,6 @@ repos: - python - repo: https://github.com/ComPWA/mirrors-pyright - rev: v1.1.374 + rev: v1.1.379 hooks: - id: pyright diff --git a/.vscode/extensions.json b/.vscode/extensions.json index c48e310f..2b3cdd42 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -9,6 +9,7 @@ "github.vscode-github-actions", "github.vscode-pull-request-github", "joaompinto.vscode-graphviz", + "mhutchie.git-graph", "ms-python.mypy-type-checker", "ms-python.python", "ms-python.vscode-pylance", diff --git a/.vscode/settings.json b/.vscode/settings.json index a5b46e91..f63375fb 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -34,7 +34,8 @@ "diffEditor.experimental.showMoves": true, "editor.formatOnSave": true, "files.associations": { - "**/.constraints/py*.txt": "pip-requirements" + "**/.constraints/py*.txt": "pip-requirements", + "**/pixi.lock": "yaml" }, "files.watcherExclude": { "**/*_cache/**": true, diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d514fb3e..4d2abc42 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,5 @@ # How to contribute? [![Open in Visual Studio Code](https://img.shields.io/badge/vscode-open-blue?logo=visualstudiocode)](https://open.vscode.dev/ComPWA/qrules) -[![GitPod](https://img.shields.io/badge/gitpod-open-blue?logo=gitpod)](https://gitpod.io/#https://github.com/ComPWA/qrules) This package is part of the [ComPWA Organization](https://github.com/ComPWA). For more information about how to contribute to the packages, go to [compwa.github.io/develop](https://compwa.github.io/develop)! diff --git a/README.md b/README.md index c8f8c30c..29bccede 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,6 @@ [![Binder](https://static.mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/ComPWA/qrules/stable?filepath=docs/usage) [![Google Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ComPWA/qrules/blob/stable) [![Open in Visual Studio Code](https://img.shields.io/badge/vscode-open-blue?logo=visualstudiocode)](https://open.vscode.dev/ComPWA/qrules) -[![GitPod](https://img.shields.io/badge/gitpod-open-blue?logo=gitpod)](https://gitpod.io/#https://github.com/ComPWA/qrules) [![Documentation](https://readthedocs.org/projects/qrules/badge/?version=latest)](https://qrules.readthedocs.io) [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/ComPWA/qrules/main.svg)](https://results.pre-commit.ci/latest/github/ComPWA/qrules/main) diff --git a/docs/usage/reaction.ipynb b/docs/usage/reaction.ipynb index 35c53455..86b6fe85 100644 --- a/docs/usage/reaction.ipynb +++ b/docs/usage/reaction.ipynb @@ -488,7 +488,7 @@ "source": [ "stm.set_allowed_intermediate_particles(r\"f\\([02]\\)\", regex=True)\n", "reaction = stm.find_solutions(problem_sets)\n", - "assert len(reaction.get_intermediate_particles().names) == 12" + "assert len(reaction.get_intermediate_particles().names) == 13" ] }, { @@ -604,7 +604,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.17" + "version": "3.9.19" } }, "nbformat": 4, diff --git a/environment.yml b/environment.yml index 866fc840..28571326 100644 --- a/environment.yml +++ b/environment.yml @@ -7,5 +7,3 @@ dependencies: - graphviz - pip: - -c .constraints/py3.9.txt -e .[dev] -variables: - PRETTIER_LEGACY_CLI: 1 diff --git a/pyproject.toml b/pyproject.toml index f836a7f9..ebca45f6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -146,6 +146,8 @@ namespaces = false where = ["src"] [tool.setuptools_scm] +local_scheme = "no-local-version" +version_scheme = "post-release" write_to = "src/qrules/version.py" [tool.coverage.run] @@ -201,6 +203,128 @@ module = ["sphinx.*"] ignore_missing_imports = true module = ["tqdm.*"] +[tool.pixi.project] +channels = ["conda-forge"] +platforms = ["linux-64"] + +[tool.pixi.activation.env] +PRETTIER_LEGACY_CLI = "1" + +[tool.pixi.dependencies] +graphviz = "*" +python = "3.9.*" + +[tool.pixi.environments] +default = {features = [ + "all", + "dev", + "doc", + "jupyter", + "sty", + "test", + "types", + "viz", +]} + +[tool.pixi.feature.dev.tasks.ci] +depends_on = ["cov", "docnb", "linkcheck", "sty"] + +[tool.pixi.feature.dev.tasks.cov] +cmd = """ +pytest tests/unit \ + --cov-fail-under=90 \ + --cov-report=html \ + --cov-report=xml \ + --cov=qrules +""" + +[tool.pixi.feature.dev.tasks.doc] +cmd = """ +sphinx-build \ + --builder html \ + --keep-going \ + --show-traceback --fail-on-warning \ + docs/ docs/_build/html +""" +env = {FORCE_COLOR = "yes"} + +[tool.pixi.feature.dev.tasks.doclive] +cmd = """ +sphinx-autobuild \ + --builder html \ + --open-browser \ + --re-ignore '.*/__pycache__/.*' \ + --re-ignore '.*/.ipynb_checkpoints/.*' \ + --re-ignore '.*\\.tmp' \ + --re-ignore 'docs/_build/.*' \ + --re-ignore 'docs/_images/.*' \ + --re-ignore 'docs/_static/logo\\..*' \ + --re-ignore 'docs/.*\\.csv' \ + --re-ignore 'docs/.*\\.gv' \ + --re-ignore 'docs/.*\\.inv' \ + --re-ignore 'docs/.*\\.json' \ + --re-ignore 'docs/.*\\.pickle' \ + --re-ignore 'docs/.*\\.yaml' \ + --re-ignore 'docs/.*\\.yml' \ + --re-ignore 'docs/api/.*' \ + --watch docs \ + --watch src \ + docs/ docs/_build/html +""" +env = {FORCE_COLOR = "yes"} + +[tool.pixi.feature.dev.tasks.docnb] +cmd = "pixi run doc" +env = {EXECUTE_NB = "yes", FORCE_COLOR = "yes"} + +[tool.pixi.feature.dev.tasks.docnb-force] +cmd = "pixi run doc" +env = {FORCE_COLOR = "yes", FORCE_EXECUTE_NB = "yes", PYTHONHASHSEED = "0"} + +[tool.pixi.feature.dev.tasks.docnblive] +cmd = "pixi run doclive" +env = {EXECUTE_NB = "yes", FORCE_COLOR = "yes", PYTHONHASHSEED = "0"} + +[tool.pixi.feature.dev.tasks.linkcheck] +cmd = """ +sphinx-build \ + --builder linkcheck \ + --show-traceback \ + docs/ docs/_build/linkcheck +""" +env = {FORCE_COLOR = "yes"} + +[tool.pixi.feature.dev.tasks.nb] +cmd = "pytest --nbmake docs" + +[tool.pixi.feature.dev.tasks.pydeps] +cmd = """ +pydeps qrules \ + -o ../module_structure.svg \ + --exclude *._* \ + --max-bacon=1 \ + --noshow +""" + +[tool.pixi.feature.dev.tasks.sty] +cmd = "pre-commit run -a" +env = {SKIP = "pyright"} + +[tool.pixi.feature.dev.tasks.test] +cmd = """ +pytest \ + --cov-fail-under=90 \ + --cov-report=html \ + --cov-report=xml \ + --cov=qrules +""" + +[tool.pixi.feature.dev.tasks.tests] +cmd = "pytest src tests/unit" + +[tool.pixi.pypi-dependencies] +qrules = {path = ".", editable = true} + [tool.pyright] exclude = [ "**/.git", @@ -281,7 +405,6 @@ src = [ "src", "tests", ] -target-version = "py37" [tool.ruff.format] docstring-code-format = true @@ -398,6 +521,5 @@ sort_first = [ "tool.setuptools", "tool.setuptools_scm", ] -sort_table_keys = true spaces_indent_inline_array = 4 trailing_comma_inline_array = true diff --git a/src/qrules/solving.py b/src/qrules/solving.py index 73b22a50..8897ad06 100644 --- a/src/qrules/solving.py +++ b/src/qrules/solving.py @@ -440,16 +440,16 @@ def find_solutions(self, problem_set: QNProblemSet) -> QNResult: # noqa: C901 edge_not_satisfied_rules: dict[int, set[GraphElementRule]] = defaultdict(set) for node_id, rules in self.__node_rules.items(): for rule in rules: - if self.__scoresheet.rule_calls[(node_id, rule)] == 0: + if self.__scoresheet.rule_calls[node_id, rule] == 0: node_not_executed_rules[node_id].add(rule) - elif self.__scoresheet.rule_passes[(node_id, rule)] == 0: + elif self.__scoresheet.rule_passes[node_id, rule] == 0: node_not_satisfied_rules[node_id].add(rule) for edge_id, edge_rules in self.__edge_rules.items(): for rule in edge_rules: - if self.__scoresheet.rule_calls[(edge_id, rule)] == 0: + if self.__scoresheet.rule_calls[edge_id, rule] == 0: edge_not_executed_rules[edge_id].add(rule) - elif self.__scoresheet.rule_passes[(edge_id, rule)] == 0: + elif self.__scoresheet.rule_passes[edge_id, rule] == 0: edge_not_satisfied_rules[edge_id].add(rule) solutions = self.__convert_solution_keys(problem_set.topology, solutions) @@ -750,8 +750,8 @@ def __init__(self) -> None: def register_rule( self, graph_element_id: int, rule: Rule ) -> Callable[[bool], None]: - self.__rule_calls[(graph_element_id, rule)] = 0 - self.__rule_passes[(graph_element_id, rule)] = 0 + self.__rule_calls[graph_element_id, rule] = 0 + self.__rule_passes[graph_element_id, rule] = 0 return self.__create_callback(graph_element_id, rule) @@ -760,8 +760,8 @@ def __create_callback( ) -> Callable[[bool], None]: def passed_callback(passed: bool) -> None: if passed: - self.__rule_passes[(graph_element_id, rule)] += 1 - self.__rule_calls[(graph_element_id, rule)] += 1 + self.__rule_passes[graph_element_id, rule] += 1 + self.__rule_calls[graph_element_id, rule] += 1 return passed_callback diff --git a/tests/unit/io/test_dict.py b/tests/unit/io/test_dict.py index 038e3af1..fc34459d 100644 --- a/tests/unit/io/test_dict.py +++ b/tests/unit/io/test_dict.py @@ -24,8 +24,10 @@ def test_serialization( n_particles = len(particle_selection) if skh_particle_version < "0.16": assert n_particles == 181 - else: + elif skh_particle_version < "0.25": assert n_particles == 193 + else: + assert n_particles == 194 asdict = io.asdict(particle_selection) imported_collection = io.fromdict(asdict) assert isinstance(imported_collection, ParticleCollection) diff --git a/tests/unit/test_particle.py b/tests/unit/test_particle.py index 4d68c984..d85138ca 100644 --- a/tests/unit/test_particle.py +++ b/tests/unit/test_particle.py @@ -417,8 +417,10 @@ def test_create_antiparticle_tilde( assert len(anti_particles) == 165 elif skh_particle_version < "0.16": assert len(anti_particles) == 172 - else: + elif skh_particle_version < "0.25": assert len(anti_particles) == 175 + else: + assert len(anti_particles) == 176 for anti_particle in anti_particles: particle_name = anti_particle.name.replace("~", "") if "+" in particle_name: @@ -447,8 +449,10 @@ def test_create_antiparticle_by_pid( assert n_particles_with_neg_pid == 428 elif skh_particle_version < "0.16": assert n_particles_with_neg_pid == 442 - else: + elif skh_particle_version < "0.25": assert n_particles_with_neg_pid == 454 + else: + assert n_particles_with_neg_pid == 456 @pytest.mark.parametrize( diff --git a/tests/unit/test_pdg.py b/tests/unit/test_pdg.py index 7d4c7f99..d1b3b244 100644 --- a/tests/unit/test_pdg.py +++ b/tests/unit/test_pdg.py @@ -36,12 +36,14 @@ def test_pdg_size(pdg: ParticleCollection): 519, # particle==0.14-0.15 531, # particle==0.16-0.20 530, # particle==0.21-0.22 - 537, # particle==0.23 + 537, # particle==0.23-0.24 + 539, # particle==0.25 } assert len(pdg.filter(lambda p: "~" in p.name)) in { 165, # particle==0.13 172, # particle==0.14, 0.15 - 175, # particle==0.16 + 175, # particle==0.16-0.24 + 176, # particle==0.25 } diff --git a/tox.ini b/tox.ini index 36e587db..889faea2 100644 --- a/tox.ini +++ b/tox.ini @@ -32,9 +32,10 @@ allowlist_externals = sphinx-build commands = sphinx-build \ + --builder html \ + --fail-on-warning \ --keep-going \ - -TW \ - -b html \ + --show-traceback \ docs/ docs/_build/html description = Build documentation and API through Sphinx @@ -47,10 +48,14 @@ allowlist_externals = sphinx-autobuild commands = sphinx-autobuild \ + --builder html \ --open-browser \ - --re-ignore .*/.ipynb_checkpoints/.* \ --re-ignore .*/__pycache__/.* \ + --re-ignore .*/.ipynb_checkpoints/.* \ --re-ignore .*\.tmp \ + --re-ignore docs/_build/.* \ + --re-ignore docs/_images/.* \ + --re-ignore docs/_static/logo\..* \ --re-ignore docs/.*\.csv \ --re-ignore docs/.*\.gv \ --re-ignore docs/.*\.inv \ @@ -58,13 +63,9 @@ commands = --re-ignore docs/.*\.pickle \ --re-ignore docs/.*\.yaml \ --re-ignore docs/.*\.yml \ - --re-ignore docs/_build/.* \ - --re-ignore docs/_images/.* \ - --re-ignore docs/_static/logo\..* \ --re-ignore docs/api/.* \ --watch docs \ --watch src \ - -b html \ docs/ docs/_build/html description = Set up a server to directly preview changes to the HTML pages @@ -77,9 +78,9 @@ allowlist_externals = sphinx-build commands = sphinx-build \ + --builder html \ --keep-going \ - -TW \ - -b html \ + --show-traceback --fail-on-warning \ docs/ docs/_build/html description = Build documentation through Sphinx WITH output of Jupyter notebooks @@ -94,10 +95,14 @@ allowlist_externals = sphinx-autobuild commands = sphinx-autobuild \ + --builder html \ --open-browser \ - --re-ignore .*/.ipynb_checkpoints/.* \ --re-ignore .*/__pycache__/.* \ + --re-ignore .*/.ipynb_checkpoints/.* \ --re-ignore .*\.tmp \ + --re-ignore docs/_build/.* \ + --re-ignore docs/_images/.* \ + --re-ignore docs/_static/logo\..* \ --re-ignore docs/.*\.csv \ --re-ignore docs/.*\.gv \ --re-ignore docs/.*\.inv \ @@ -105,13 +110,9 @@ commands = --re-ignore docs/.*\.pickle \ --re-ignore docs/.*\.yaml \ --re-ignore docs/.*\.yml \ - --re-ignore docs/_build/.* \ - --re-ignore docs/_images/.* \ - --re-ignore docs/_static/logo\..* \ --re-ignore docs/api/.* \ --watch docs \ --watch src \ - -b html \ docs/ docs/_build/html description = Set up a server to directly preview changes to the HTML pages @@ -126,9 +127,9 @@ allowlist_externals = sphinx-build commands = sphinx-build \ + --builder html \ + --fail-on-warning \ --keep-going \ - -b html \ - -nW \ docs/ docs/_build/html description = Execute ALL Jupyter notebooks and build documentation with Sphinx @@ -152,8 +153,8 @@ allowlist_externals = sphinx-build commands = sphinx-build \ - -T \ - -b linkcheck \ + --builder linkcheck \ + --show-traceback \ docs/ docs/_build/linkcheck description = Check external links in the documentation (requires internet connection)