diff --git a/.constraints/py3.10.txt b/.constraints/py3.10.txt index 0aee6e93..8c7a4daa 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 ampform==0.15.4 ampform-dpd==0.1.7 anyio==4.4.0 @@ -10,19 +10,18 @@ argon2-cffi-bindings==21.2.0 arrow==1.3.0 asttokens==2.4.1 async-lru==2.0.4 -attrs==23.2.0 -awkward==2.6.5 -awkward-cpp==34 +attrs==24.2.0 +awkward==2.6.7 +awkward-cpp==37 babel==2.15.0 beautifulsoup4==4.12.3 -black==24.4.2 bleach==6.1.0 -cachetools==5.3.3 +cachetools==5.4.0 cairocffi==1.7.1 cairosvg==2.7.1 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 @@ -34,21 +33,21 @@ contourpy==1.2.1 cramjam==2.8.3 cssselect2==0.7.0 cycler==0.12.1 -debugpy==1.8.1 +debugpy==1.8.5 decorator==5.1.1 deepdiff==7.0.1 defusedxml==0.7.1 distlib==0.3.8 docstring-to-markdown==0.15 docutils==0.21.2 -exceptiongroup==1.2.1 +exceptiongroup==1.2.2 execnet==2.1.1 executing==2.0.1 fastjsonschema==2.20.0 -filelock==3.15.3 -fonttools==4.53.0 +filelock==3.15.4 +fonttools==4.53.1 fqdn==1.5.1 -fsspec==2024.6.0 +fsspec==2024.6.1 gitdb==4.0.11 gitpython==3.1.43 greenlet==3.0.3 @@ -56,42 +55,41 @@ h11==0.14.0 hepunits==2.3.4 httpcore==1.0.5 httpx==0.27.0 -identify==2.5.36 +identify==2.6.0 idna==3.7 imagesize==1.4.1 -iminuit==2.26.0 -importlib-metadata==7.2.0 +iminuit==2.28.0 +importlib-metadata==8.2.0 iniconfig==2.0.0 -ipykernel==6.29.4 +ipykernel==6.29.5 ipympl==0.9.4 -ipython==8.25.0 +ipython==8.26.0 ipython-genutils==0.2.0 ipywidgets==8.1.3 isoduration==20.11.0 -isort==5.13.2 -jax==0.4.30 -jaxlib==0.4.30 +jax==0.4.31 +jaxlib==0.4.31 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-cache==1.0.0 jupyter-client==8.6.2 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 kaleido==0.2.1 kiwisolver==1.4.5 @@ -100,17 +98,17 @@ lsprotocol==2023.0.1 lxml==5.2.2 markdown-it-py==3.0.0 markupsafe==2.1.5 -matplotlib==3.9.0 +matplotlib==3.9.1.post1 matplotlib-inline==0.1.7 mdit-py-plugins==0.4.1 mdurl==0.1.2 mistune==3.0.2 ml-dtypes==0.4.0 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 @@ -119,7 +117,7 @@ nbmake==1.5.4 nest-asyncio==1.6.0 nodeenv==1.9.1 notebook-shim==0.2.4 -numpy==2.0.0 +numpy==2.0.1 opt-einsum==3.3.0 ordered-set==4.1.0 overrides==7.7.0 @@ -128,104 +126,103 @@ pandas==2.2.2 pandocfilters==1.5.1 parso==0.8.4 particle==0.24.0 -pathspec==0.12.1 pexpect==4.9.0 -pillow==10.3.0 +pillow==10.4.0 platformdirs==4.2.2 -plotly==5.22.0 +plotly==5.23.0 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 -pydata-sphinx-theme==0.15.3 +pydata-sphinx-theme==0.15.4 pygments==2.18.0 pyparsing==3.1.2 -pyproject-api==1.6.1 -pytest==8.2.2 +pyproject-api==1.7.1 +pytest==8.3.2 pytest-xdist==3.6.1 python-constraint2==2.0.0b5 python-dateutil==2.9.0.post0 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 qrules==0.10.2 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.18.1 -ruff==0.4.10 -scipy==1.13.1 +rpds-py==0.20.0 +ruff==0.5.6 +scipy==1.14.0 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-copybutton==0.5.2 -sphinx-design==0.6.0 +sphinx-design==0.6.1 sphinx-pybtex-etal-style==0.0.2 -sphinx-reredirects==0.1.4 +sphinx-reredirects==0.1.5 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 +sphinxcontrib-qthelp==2.0.0 +sphinxcontrib-serializinghtml==2.0.0 sphinxcontrib-svg2pdfconverter==1.2.2 -sqlalchemy==2.0.31 +sqlalchemy==2.0.32 stack-data==0.6.3 -starlette==0.37.2 +starlette==0.38.2 svgutils==0.3.4 -sympy==1.12.1 +sympy==1.13.1 tabulate==0.9.0 -tenacity==8.4.1 +tenacity==9.0.0 tensorwaves==0.4.12 terminado==0.18.1 tinycss2==1.3.0 tomli==2.0.1 tornado==6.4.1 -tox==4.15.1 -tqdm==4.66.4 +tox==4.17.0 +tqdm==4.66.5 traitlets==5.14.3 -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-requests==2.32.0.20240602 +types-pyyaml==6.0.12.20240724 +types-requests==2.32.0.20240712 typing-extensions==4.12.2 tzdata==2024.1 ujson==5.10.0 -uproot==5.3.7 +uproot==5.3.10 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 zipp==3.19.2 diff --git a/.constraints/py3.11.txt b/.constraints/py3.11.txt index ea50bce8..3e10d951 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 ampform==0.15.4 ampform-dpd==0.1.7 anyio==4.4.0 @@ -10,19 +10,18 @@ argon2-cffi-bindings==21.2.0 arrow==1.3.0 asttokens==2.4.1 async-lru==2.0.4 -attrs==23.2.0 -awkward==2.6.5 -awkward-cpp==34 +attrs==24.2.0 +awkward==2.6.7 +awkward-cpp==37 babel==2.15.0 beautifulsoup4==4.12.3 -black==24.4.2 bleach==6.1.0 -cachetools==5.3.3 +cachetools==5.4.0 cairocffi==1.7.1 cairosvg==2.7.1 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 @@ -34,7 +33,7 @@ contourpy==1.2.1 cramjam==2.8.3 cssselect2==0.7.0 cycler==0.12.1 -debugpy==1.8.1 +debugpy==1.8.5 decorator==5.1.1 deepdiff==7.0.1 defusedxml==0.7.1 @@ -44,10 +43,10 @@ docutils==0.21.2 execnet==2.1.1 executing==2.0.1 fastjsonschema==2.20.0 -filelock==3.15.3 -fonttools==4.53.0 +filelock==3.15.4 +fonttools==4.53.1 fqdn==1.5.1 -fsspec==2024.6.0 +fsspec==2024.6.1 gitdb==4.0.11 gitpython==3.1.43 greenlet==3.0.3 @@ -55,42 +54,41 @@ h11==0.14.0 hepunits==2.3.4 httpcore==1.0.5 httpx==0.27.0 -identify==2.5.36 +identify==2.6.0 idna==3.7 imagesize==1.4.1 -iminuit==2.26.0 -importlib-metadata==7.2.0 +iminuit==2.28.0 +importlib-metadata==8.2.0 iniconfig==2.0.0 -ipykernel==6.29.4 +ipykernel==6.29.5 ipympl==0.9.4 -ipython==8.25.0 +ipython==8.26.0 ipython-genutils==0.2.0 ipywidgets==8.1.3 isoduration==20.11.0 -isort==5.13.2 -jax==0.4.30 -jaxlib==0.4.30 +jax==0.4.31 +jaxlib==0.4.31 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-cache==1.0.0 jupyter-client==8.6.2 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 kaleido==0.2.1 kiwisolver==1.4.5 @@ -99,17 +97,17 @@ lsprotocol==2023.0.1 lxml==5.2.2 markdown-it-py==3.0.0 markupsafe==2.1.5 -matplotlib==3.9.0 +matplotlib==3.9.1.post1 matplotlib-inline==0.1.7 mdit-py-plugins==0.4.1 mdurl==0.1.2 mistune==3.0.2 ml-dtypes==0.4.0 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 @@ -118,7 +116,7 @@ nbmake==1.5.4 nest-asyncio==1.6.0 nodeenv==1.9.1 notebook-shim==0.2.4 -numpy==2.0.0 +numpy==2.0.1 opt-einsum==3.3.0 ordered-set==4.1.0 overrides==7.7.0 @@ -127,103 +125,102 @@ pandas==2.2.2 pandocfilters==1.5.1 parso==0.8.4 particle==0.24.0 -pathspec==0.12.1 pexpect==4.9.0 -pillow==10.3.0 +pillow==10.4.0 platformdirs==4.2.2 -plotly==5.22.0 +plotly==5.23.0 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 -pydata-sphinx-theme==0.15.3 +pydata-sphinx-theme==0.15.4 pygments==2.18.0 pyparsing==3.1.2 -pyproject-api==1.6.1 -pytest==8.2.2 +pyproject-api==1.7.1 +pytest==8.3.2 pytest-xdist==3.6.1 python-constraint2==2.0.0b5 python-dateutil==2.9.0.post0 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 qrules==0.10.2 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.18.1 -ruff==0.4.10 -scipy==1.13.1 +rpds-py==0.20.0 +ruff==0.5.6 +scipy==1.14.0 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-copybutton==0.5.2 -sphinx-design==0.6.0 +sphinx-design==0.6.1 sphinx-pybtex-etal-style==0.0.2 -sphinx-reredirects==0.1.4 +sphinx-reredirects==0.1.5 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 +sphinxcontrib-qthelp==2.0.0 +sphinxcontrib-serializinghtml==2.0.0 sphinxcontrib-svg2pdfconverter==1.2.2 -sqlalchemy==2.0.31 +sqlalchemy==2.0.32 stack-data==0.6.3 -starlette==0.37.2 +starlette==0.38.2 svgutils==0.3.4 -sympy==1.12.1 +sympy==1.13.1 tabulate==0.9.0 -tenacity==8.4.1 +tenacity==9.0.0 tensorwaves==0.4.12 terminado==0.18.1 tinycss2==1.3.0 tornado==6.4.1 -tox==4.15.1 -tqdm==4.66.4 +tox==4.17.0 +tqdm==4.66.5 traitlets==5.14.3 -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-requests==2.32.0.20240602 +types-pyyaml==6.0.12.20240724 +types-requests==2.32.0.20240712 typing-extensions==4.12.2 tzdata==2024.1 ujson==5.10.0 -uproot==5.3.7 +uproot==5.3.10 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 zipp==3.19.2 diff --git a/.constraints/py3.12.txt b/.constraints/py3.12.txt index 14afe4d3..2a3abd21 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 ampform==0.15.4 ampform-dpd==0.1.7 anyio==4.4.0 @@ -10,19 +10,18 @@ argon2-cffi-bindings==21.2.0 arrow==1.3.0 asttokens==2.4.1 async-lru==2.0.4 -attrs==23.2.0 -awkward==2.6.5 -awkward-cpp==34 +attrs==24.2.0 +awkward==2.6.7 +awkward-cpp==37 babel==2.15.0 beautifulsoup4==4.12.3 -black==24.4.2 bleach==6.1.0 -cachetools==5.3.3 +cachetools==5.4.0 cairocffi==1.7.1 cairosvg==2.7.1 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 @@ -34,7 +33,7 @@ contourpy==1.2.1 cramjam==2.8.3 cssselect2==0.7.0 cycler==0.12.1 -debugpy==1.8.1 +debugpy==1.8.5 decorator==5.1.1 deepdiff==7.0.1 defusedxml==0.7.1 @@ -44,10 +43,10 @@ docutils==0.21.2 execnet==2.1.1 executing==2.0.1 fastjsonschema==2.20.0 -filelock==3.15.3 -fonttools==4.53.0 +filelock==3.15.4 +fonttools==4.53.1 fqdn==1.5.1 -fsspec==2024.6.0 +fsspec==2024.6.1 gitdb==4.0.11 gitpython==3.1.43 greenlet==3.0.3 @@ -55,42 +54,41 @@ h11==0.14.0 hepunits==2.3.4 httpcore==1.0.5 httpx==0.27.0 -identify==2.5.36 +identify==2.6.0 idna==3.7 imagesize==1.4.1 -iminuit==2.26.0 -importlib-metadata==7.2.0 +iminuit==2.28.0 +importlib-metadata==8.2.0 iniconfig==2.0.0 -ipykernel==6.29.4 +ipykernel==6.29.5 ipympl==0.9.4 -ipython==8.25.0 +ipython==8.26.0 ipython-genutils==0.2.0 ipywidgets==8.1.3 isoduration==20.11.0 -isort==5.13.2 -jax==0.4.30 -jaxlib==0.4.30 +jax==0.4.31 +jaxlib==0.4.31 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-cache==1.0.0 jupyter-client==8.6.2 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 kaleido==0.2.1 kiwisolver==1.4.5 @@ -99,17 +97,17 @@ lsprotocol==2023.0.1 lxml==5.2.2 markdown-it-py==3.0.0 markupsafe==2.1.5 -matplotlib==3.9.0 +matplotlib==3.9.1.post1 matplotlib-inline==0.1.7 mdit-py-plugins==0.4.1 mdurl==0.1.2 mistune==3.0.2 ml-dtypes==0.4.0 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 @@ -118,7 +116,7 @@ nbmake==1.5.4 nest-asyncio==1.6.0 nodeenv==1.9.1 notebook-shim==0.2.4 -numpy==2.0.0 +numpy==2.0.1 opt-einsum==3.3.0 ordered-set==4.1.0 overrides==7.7.0 @@ -127,103 +125,102 @@ pandas==2.2.2 pandocfilters==1.5.1 parso==0.8.4 particle==0.24.0 -pathspec==0.12.1 pexpect==4.9.0 -pillow==10.3.0 +pillow==10.4.0 platformdirs==4.2.2 -plotly==5.22.0 +plotly==5.23.0 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 -pydata-sphinx-theme==0.15.3 +pydata-sphinx-theme==0.15.4 pygments==2.18.0 pyparsing==3.1.2 -pyproject-api==1.6.1 -pytest==8.2.2 +pyproject-api==1.7.1 +pytest==8.3.2 pytest-xdist==3.6.1 python-constraint2==2.0.0b5 python-dateutil==2.9.0.post0 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 qrules==0.10.2 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.18.1 -ruff==0.4.10 -scipy==1.13.1 +rpds-py==0.20.0 +ruff==0.5.6 +scipy==1.14.0 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-copybutton==0.5.2 -sphinx-design==0.6.0 +sphinx-design==0.6.1 sphinx-pybtex-etal-style==0.0.2 -sphinx-reredirects==0.1.4 +sphinx-reredirects==0.1.5 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 +sphinxcontrib-qthelp==2.0.0 +sphinxcontrib-serializinghtml==2.0.0 sphinxcontrib-svg2pdfconverter==1.2.2 -sqlalchemy==2.0.31 +sqlalchemy==2.0.32 stack-data==0.6.3 -starlette==0.37.2 +starlette==0.38.2 svgutils==0.3.4 -sympy==1.12.1 +sympy==1.13.1 tabulate==0.9.0 -tenacity==8.4.1 +tenacity==9.0.0 tensorwaves==0.4.12 terminado==0.18.1 tinycss2==1.3.0 tornado==6.4.1 -tox==4.15.1 -tqdm==4.66.4 +tox==4.17.0 +tqdm==4.66.5 traitlets==5.14.3 -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-requests==2.32.0.20240602 +types-pyyaml==6.0.12.20240724 +types-requests==2.32.0.20240712 typing-extensions==4.12.2 tzdata==2024.1 ujson==5.10.0 -uproot==5.3.7 +uproot==5.3.10 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 zipp==3.19.2 diff --git a/.constraints/py3.8.txt b/.constraints/py3.8.txt index 30009bc7..a066bdd6 100644 --- a/.constraints/py3.8.txt +++ b/.constraints/py3.8.txt @@ -10,20 +10,19 @@ argon2-cffi-bindings==21.2.0 arrow==1.3.0 asttokens==2.4.1 async-lru==2.0.4 -attrs==23.2.0 -awkward==2.6.5 -awkward-cpp==34 +attrs==24.2.0 +awkward==2.6.7 +awkward-cpp==37 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 cairocffi==1.7.1 cairosvg==2.7.1 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 @@ -35,21 +34,21 @@ contourpy==1.1.1 cramjam==2.8.3 cssselect2==0.7.0 cycler==0.12.1 -debugpy==1.8.1 +debugpy==1.8.5 decorator==5.1.1 deepdiff==7.0.1 defusedxml==0.7.1 distlib==0.3.8 docstring-to-markdown==0.15 docutils==0.17.1 -exceptiongroup==1.2.1 +exceptiongroup==1.2.2 execnet==2.1.1 executing==2.0.1 fastjsonschema==2.20.0 -filelock==3.15.3 -fonttools==4.53.0 +filelock==3.15.4 +fonttools==4.53.1 fqdn==1.5.1 -fsspec==2024.6.0 +fsspec==2024.6.1 gitdb==4.0.11 gitpython==3.1.43 greenlet==3.0.3 @@ -57,48 +56,47 @@ h11==0.14.0 hepunits==2.3.4 httpcore==1.0.5 httpx==0.27.0 -identify==2.5.36 +identify==2.6.0 idna==3.7 imagesize==1.4.1 -iminuit==2.26.0 -importlib-metadata==7.2.0 +iminuit==2.27.0 +importlib-metadata==8.2.0 importlib-resources==6.4.0 iniconfig==2.0.0 -ipykernel==6.29.4 +ipykernel==6.29.5 ipympl==0.9.3 ipython==8.12.3 ipython-genutils==0.2.0 ipywidgets==8.1.3 isoduration==20.11.0 -isort==5.13.2 jax==0.4.13 jaxlib==0.4.13 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-cache==0.6.1 jupyter-client==8.6.2 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 kaleido==0.2.1 kiwisolver==1.4.5 latexcodec==3.0.0 -livereload==2.6.3 +livereload==2.7.0 lsprotocol==2023.0.1 lxml==5.2.2 markdown-it-py==2.2.0 @@ -110,7 +108,7 @@ mdurl==0.1.2 mistune==3.0.2 ml-dtypes==0.2.0 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 @@ -131,47 +129,46 @@ pandas==2.0.3 pandocfilters==1.5.1 parso==0.8.4 particle==0.24.0 -pathspec==0.12.1 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 -plotly==5.22.0 +plotly==5.23.0 pluggy==1.5.0 pre-commit==3.5.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 pydata-sphinx-theme==0.14.4 pygments==2.18.0 pyparsing==3.1.2 -pyproject-api==1.6.1 -pytest==8.2.2 +pyproject-api==1.7.1 +pytest==8.3.2 pytest-xdist==3.6.1 python-constraint2==2.0.0b5 python-dateutil==2.9.0.post0 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 qrules==0.10.2 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.18.1 -ruff==0.4.10 +rpds-py==0.20.0 +ruff==0.5.6 scipy==1.10.1 send2trash==1.8.3 six==1.16.0 @@ -197,36 +194,36 @@ sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==1.0.3 sphinxcontrib-serializinghtml==1.1.5 sphinxcontrib-svg2pdfconverter==1.2.2 -sqlalchemy==2.0.31 +sqlalchemy==2.0.32 stack-data==0.6.3 svgutils==0.3.4 -sympy==1.12.1 +sympy==1.13.1 tabulate==0.9.0 -tenacity==8.4.1 +tenacity==9.0.0 tensorwaves==0.4.12 terminado==0.18.1 tinycss2==1.3.0 tomli==2.0.1 tornado==6.4.1 -tox==4.15.1 -tqdm==4.66.4 +tox==4.17.0 +tqdm==4.66.5 traitlets==5.14.3 -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-requests==2.32.0.20240602 +types-pyyaml==6.0.12.20240724 +types-requests==2.32.0.20240712 typing-extensions==4.12.2 tzdata==2024.1 ujson==5.10.0 -uproot==5.3.7 +uproot==5.3.10 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 zipp==3.19.2 diff --git a/.constraints/py3.9.txt b/.constraints/py3.9.txt index a078b3e8..889ad094 100644 --- a/.constraints/py3.9.txt +++ b/.constraints/py3.9.txt @@ -10,19 +10,18 @@ argon2-cffi-bindings==21.2.0 arrow==1.3.0 asttokens==2.4.1 async-lru==2.0.4 -attrs==23.2.0 -awkward==2.6.5 -awkward-cpp==34 +attrs==24.2.0 +awkward==2.6.7 +awkward-cpp==37 babel==2.15.0 beautifulsoup4==4.12.3 -black==24.4.2 bleach==6.1.0 -cachetools==5.3.3 +cachetools==5.4.0 cairocffi==1.7.1 cairosvg==2.7.1 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 @@ -34,21 +33,21 @@ contourpy==1.2.1 cramjam==2.8.3 cssselect2==0.7.0 cycler==0.12.1 -debugpy==1.8.1 +debugpy==1.8.5 decorator==5.1.1 deepdiff==7.0.1 defusedxml==0.7.1 distlib==0.3.8 docstring-to-markdown==0.15 docutils==0.21.2 -exceptiongroup==1.2.1 +exceptiongroup==1.2.2 execnet==2.1.1 executing==2.0.1 fastjsonschema==2.20.0 -filelock==3.15.3 -fonttools==4.53.0 +filelock==3.15.4 +fonttools==4.53.1 fqdn==1.5.1 -fsspec==2024.6.0 +fsspec==2024.6.1 gitdb==4.0.11 gitpython==3.1.43 greenlet==3.0.3 @@ -56,43 +55,42 @@ h11==0.14.0 hepunits==2.3.4 httpcore==1.0.5 httpx==0.27.0 -identify==2.5.36 +identify==2.6.0 idna==3.7 imagesize==1.4.1 -iminuit==2.26.0 -importlib-metadata==7.2.0 +iminuit==2.28.0 +importlib-metadata==8.2.0 importlib-resources==6.4.0 iniconfig==2.0.0 -ipykernel==6.29.4 +ipykernel==6.29.5 ipympl==0.9.4 ipython==8.18.1 ipython-genutils==0.2.0 ipywidgets==8.1.3 isoduration==20.11.0 -isort==5.13.2 jax==0.4.30 jaxlib==0.4.30 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-cache==1.0.0 jupyter-client==8.6.2 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 kaleido==0.2.1 kiwisolver==1.4.5 @@ -101,16 +99,16 @@ lsprotocol==2023.0.1 lxml==5.2.2 markdown-it-py==3.0.0 markupsafe==2.1.5 -matplotlib==3.9.0 +matplotlib==3.9.1.post1 matplotlib-inline==0.1.7 mdit-py-plugins==0.4.1 mdurl==0.1.2 mistune==3.0.2 ml-dtypes==0.4.0 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 @@ -120,7 +118,7 @@ nbmake==1.5.4 nest-asyncio==1.6.0 nodeenv==1.9.1 notebook-shim==0.2.4 -numpy==2.0.0 +numpy==2.0.1 opt-einsum==3.3.0 ordered-set==4.1.0 overrides==7.7.0 @@ -129,45 +127,44 @@ pandas==2.2.2 pandocfilters==1.5.1 parso==0.8.4 particle==0.24.0 -pathspec==0.12.1 pexpect==4.9.0 -pillow==10.3.0 +pillow==10.4.0 platformdirs==4.2.2 -plotly==5.22.0 +plotly==5.23.0 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 -pydata-sphinx-theme==0.15.3 +pydata-sphinx-theme==0.15.4 pygments==2.18.0 pyparsing==3.1.2 -pyproject-api==1.6.1 -pytest==8.2.2 +pyproject-api==1.7.1 +pytest==8.3.2 pytest-xdist==3.6.1 python-constraint2==2.0.0b5 python-dateutil==2.9.0.post0 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 qrules==0.10.2 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.18.1 -ruff==0.4.10 +rpds-py==0.20.0 +ruff==0.5.6 scipy==1.13.1 send2trash==1.8.3 six==1.16.0 @@ -175,58 +172,58 @@ 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-copybutton==0.5.2 -sphinx-design==0.6.0 +sphinx-design==0.6.1 sphinx-pybtex-etal-style==0.0.2 -sphinx-reredirects==0.1.4 +sphinx-reredirects==0.1.5 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 +sphinxcontrib-qthelp==2.0.0 +sphinxcontrib-serializinghtml==2.0.0 sphinxcontrib-svg2pdfconverter==1.2.2 -sqlalchemy==2.0.31 +sqlalchemy==2.0.32 stack-data==0.6.3 -starlette==0.37.2 +starlette==0.38.2 svgutils==0.3.4 -sympy==1.12.1 +sympy==1.13.1 tabulate==0.9.0 -tenacity==8.4.1 +tenacity==9.0.0 tensorwaves==0.4.12 terminado==0.18.1 tinycss2==1.3.0 tomli==2.0.1 tornado==6.4.1 -tox==4.15.1 -tqdm==4.66.4 +tox==4.17.0 +tqdm==4.66.5 traitlets==5.14.3 -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-requests==2.32.0.20240602 +types-pyyaml==6.0.12.20240724 +types-requests==2.32.0.20240712 typing-extensions==4.12.2 tzdata==2024.1 ujson==5.10.0 -uproot==5.3.7 +uproot==5.3.10 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 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/.pre-commit-config.yaml b/.pre-commit-config.yaml index 03d705dd..7e94601f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -23,8 +23,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 @@ -40,20 +42,22 @@ repos: metadata.vscode - repo: https://github.com/ComPWA/policy - rev: 0.3.9 + rev: 0.3.18 hooks: - id: check-dev-files args: - --dependabot=keep + - --dev-python-version=3.12 - --no-cspell-update - --no-github-actions - --no-gitpod - --no-prettierrc - --repo-name=polarimetry - id: colab-toc-visible + - id: remove-empty-tags - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.4.10 + rev: v0.5.6 hooks: - id: ruff args: [--fix] @@ -99,7 +103,7 @@ repos: exclude: (?x)^(.*/Manifest\.toml|.*/Project\.toml)$ - repo: https://github.com/python-jsonschema/check-jsonschema - rev: 0.28.5 + rev: 0.29.1 hooks: - id: check-jsonschema name: Check CITATION.cff @@ -112,7 +116,7 @@ repos: pass_filenames: false - repo: https://github.com/streetsidesoftware/cspell-cli - rev: v8.9.0 + rev: v8.13.1 hooks: - id: cspell @@ -138,6 +142,6 @@ repos: - python - repo: https://github.com/ComPWA/mirrors-pyright - rev: v1.1.368 + rev: v1.1.374 hooks: - id: pyright diff --git a/.vscode/settings.json b/.vscode/settings.json index 6fd616a5..1db41c8a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -37,6 +37,7 @@ "\u03c3": true }, "files.associations": { + "**/.constraints/py*.txt": "pip-requirements", ".cspell/*.txt": "plaintext" }, "files.eol": "\n", @@ -55,6 +56,7 @@ "python.analysis.autoImportCompletions": false, "python.analysis.inlayHints.pytestParameters": true, "python.analysis.typeCheckingMode": "strict", + "python.terminal.activateEnvironment": false, "python.testing.pytestArgs": ["--color=no"], "python.testing.pytestEnabled": true, "python.testing.unittestEnabled": false, diff --git a/docs/amplitude-model.ipynb b/docs/amplitude-model.ipynb index b6c12b2e..aa3e94e7 100644 --- a/docs/amplitude-model.ipynb +++ b/docs/amplitude-model.ipynb @@ -86,9 +86,7 @@ }, { "cell_type": "markdown", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "Particle definitions as defined in {download}`particle-definitions.yaml<../data/particle-definitions.yaml>`:" ] @@ -238,8 +236,7 @@ "metadata": { "jupyter": { "source_hidden": true - }, - "tags": [] + } }, "outputs": [], "source": [ @@ -283,9 +280,7 @@ }, { "cell_type": "markdown", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "Note that we simplified notation here: the amplitude indices for the spinless states are not rendered and their corresponding Wigner-$d$ alignment functions are simply $1$.\n", "\n", @@ -334,9 +329,7 @@ }, { "cell_type": "markdown", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "The $\\theta_{ij}$ angles are {doc}`defined as`:" ] @@ -432,9 +425,7 @@ }, { "cell_type": "markdown", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "### Helicity coupling values" ] diff --git a/docs/appendix/alignment.ipynb b/docs/appendix/alignment.ipynb index c70014e8..4374db8e 100644 --- a/docs/appendix/alignment.ipynb +++ b/docs/appendix/alignment.ipynb @@ -2,9 +2,7 @@ "cells": [ { "cell_type": "markdown", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "# Alignment consistency" ] @@ -71,9 +69,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "model_choice = 0\n", @@ -187,9 +183,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "subs_intensity_exprs = {\n", diff --git a/docs/appendix/angles.ipynb b/docs/appendix/angles.ipynb index 4b6e870d..bd05f176 100644 --- a/docs/appendix/angles.ipynb +++ b/docs/appendix/angles.ipynb @@ -77,9 +77,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "for i in [1, 2, 3]:\n", @@ -168,9 +166,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "for i in [1, 2, 3]:\n", diff --git a/docs/appendix/benchmark.ipynb b/docs/appendix/benchmark.ipynb index 869615c5..37db178e 100644 --- a/docs/appendix/benchmark.ipynb +++ b/docs/appendix/benchmark.ipynb @@ -114,9 +114,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "n_events = 100_000\n", @@ -417,9 +415,7 @@ }, { "cell_type": "markdown", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "### 100.000 event phase space sample" ] diff --git a/docs/appendix/ls-model.ipynb b/docs/appendix/ls-model.ipynb index 974cec24..c52fff34 100644 --- a/docs/appendix/ls-model.ipynb +++ b/docs/appendix/ls-model.ipynb @@ -82,9 +82,7 @@ }, { "cell_type": "markdown", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "## Model inspection" ] @@ -404,13 +402,9 @@ "cell_type": "code", "execution_count": null, "metadata": { - "editable": true, "jupyter": { "source_hidden": true }, - "slideshow": { - "slide_type": "" - }, "tags": [ "remove-input" ] diff --git a/docs/appendix/model-serialization.ipynb b/docs/appendix/model-serialization.ipynb index 97136075..9bd7207f 100644 --- a/docs/appendix/model-serialization.ipynb +++ b/docs/appendix/model-serialization.ipynb @@ -2,13 +2,7 @@ "cells": [ { "cell_type": "markdown", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, + "metadata": {}, "source": [ "# Model serialization\n", "\n", @@ -249,13 +243,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "density({\"sigma1\": jnp.array([1.0, 1.1]), \"sigma2\": jnp.array([3.0, 3.2])})" @@ -278,13 +266,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "%%time\n", @@ -295,10 +277,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, "tags": [ "hide-input" ] @@ -322,13 +300,7 @@ }, { "cell_type": "markdown", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, + "metadata": {}, "source": [ "It is up to the user, however, to import the classes of each exported node before the string can be unparsed with [`eval()`](https://docs.python.org/3/library/functions.html#eval) (see [this comment](https://github.com/ComPWA/polarimetry/issues/20#issuecomment-1809840854))." ] @@ -337,10 +309,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, "tags": [ "raises-exception" ] @@ -352,13 +320,7 @@ }, { "cell_type": "markdown", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, + "metadata": {}, "source": [ "In the case of this intensity expression, it is sufficient to import all definition from the main `sympy` module and the `Str` class." ] @@ -366,13 +328,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "from sympy import * # noqa: F403\n", @@ -382,13 +338,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "%%time\n", @@ -397,13 +347,7 @@ }, { "cell_type": "markdown", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, + "metadata": {}, "source": [ "Notice how the imported expression is **exactly the same** as the serialized one, including assumptions:" ] @@ -411,13 +355,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "assert eval_imported_intensity_expr == unfolded_intensity_expr\n", @@ -426,13 +364,7 @@ }, { "cell_type": "markdown", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, + "metadata": {}, "source": [ "Optionally, the `import` statements can be embedded into the string. The parsing is then done with [`exec()`](https://docs.python.org/3/library/functions.html#exec) instead:" ] @@ -440,13 +372,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "exec_str = f\"\"\"\\\n", @@ -461,13 +387,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "exec_filename = \"exported_intensity_model.py\"\n", @@ -479,13 +399,9 @@ "cell_type": "code", "execution_count": null, "metadata": { - "editable": true, "jupyter": { "source_hidden": true }, - "slideshow": { - "slide_type": "" - }, "tags": [ "remove-input" ] @@ -501,13 +417,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "%%time\n", @@ -518,13 +428,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "assert exec_imported_intensity_expr == unfolded_intensity_expr\n", @@ -533,13 +437,7 @@ }, { "cell_type": "markdown", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, + "metadata": {}, "source": [ ":::{note}\n", "The load time is faster due to caching within SymPy.\n", @@ -555,13 +453,7 @@ }, { "cell_type": "markdown", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, + "metadata": {}, "source": [ "[![PyPI package](https://badge.fury.io/py/polarimetry-lc2pkpi.svg)](https://pypi.org/project/polarimetry-lc2pkpi)\n", "[![Supported Python versions](https://img.shields.io/pypi/pyversions/polarimetry-lc2pkpi)](https://pypi.org/project/polarimetry-lc2pkpi)\n", @@ -582,13 +474,9 @@ "cell_type": "code", "execution_count": null, "metadata": { - "editable": true, "jupyter": { "source_hidden": true }, - "slideshow": { - "slide_type": "" - }, "tags": [ "remove-input" ] @@ -604,10 +492,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, "tags": [ "full-width" ] @@ -622,13 +506,7 @@ }, { "cell_type": "markdown", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, + "metadata": {}, "source": [ "The expressions have to be converted to a numerical function to evaluate them over larger data samples. There are several ways of doing this (such as [algebraically substituting the parameter values first](https://github.com/ComPWA/polarimetry/issues/336#issuecomment-1905795986)), but it depends on your application what is best. Here's a small example where we want to evaluate the model over a set of data points on the Dalitz plane. We first 'unfold' the main intensity expression and lambdify it to a numerical function with [JAX](https://jax.rtfd.io) as computational backend." ] @@ -636,13 +514,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "from ampform.sympy import perform_cached_doit\n", @@ -658,13 +530,7 @@ }, { "cell_type": "markdown", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, + "metadata": {}, "source": [ "Now, let's say we have [some data sample](https://github.com/ComPWA/polarimetry/issues/336#issuecomment-1904067511) containing generated phase space data points in the Dalitz plane." ] @@ -673,16 +539,12 @@ "cell_type": "code", "execution_count": null, "metadata": { - "editable": true, "jupyter": { "source_hidden": true }, "mystnb": { "code_prompt_show": "Download ZIP data" }, - "slideshow": { - "slide_type": "" - }, "tags": [ "hide-input" ] @@ -702,13 +564,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "import uproot\n", @@ -721,13 +577,7 @@ }, { "cell_type": "markdown", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, + "metadata": {}, "source": [ "Here, we have data points for the two Mandelstam variables $\\sigma_1$ and $\\sigma_2$. The {attr}`~ampform_dpd.AmplitudeModel.invariants` attribute of the amplitude model provides symbolic expressions for how to compute the third Mandelstam. In combination with the {attr}`~ampform_dpd.AmplitudeModel.variables` and {attr}`~ampform_dpd.AmplitudeModel.parameter_defaults` attributes, we can create a data transformer for computing helicity angles and DPD alignment angles." ] @@ -736,13 +586,9 @@ "cell_type": "code", "execution_count": null, "metadata": { - "editable": true, "jupyter": { "source_hidden": true }, - "slideshow": { - "slide_type": "" - }, "tags": [ "hide-input" ] @@ -758,13 +604,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "import sympy as sp\n", @@ -782,13 +622,7 @@ }, { "cell_type": "markdown", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, + "metadata": {}, "source": [ "Finally, we can create an input {obj}`~tensorwaves.interface.DataSample` that we can feed to the numerical function for the amplitude model." ] @@ -796,13 +630,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "data = {\n", diff --git a/docs/appendix/phase-space.ipynb b/docs/appendix/phase-space.ipynb index e81c2617..9ce7a22e 100644 --- a/docs/appendix/phase-space.ipynb +++ b/docs/appendix/phase-space.ipynb @@ -127,8 +127,7 @@ "metadata": { "jupyter": { "source_hidden": true - }, - "tags": [] + } }, "outputs": [], "source": [ diff --git a/docs/appendix/serialization.ipynb b/docs/appendix/serialization.ipynb index c1f0ad76..d369fa4c 100644 --- a/docs/appendix/serialization.ipynb +++ b/docs/appendix/serialization.ipynb @@ -181,7 +181,7 @@ }, "outputs": [], "source": [ - "def render_kilobytes(path, markdown: bool = False) -> str:\n", + "def render_kilobytes(path) -> str:\n", " byt = os.path.getsize(path)\n", " kb = f\"{1e-3 * byt:.0f}\"\n", " return f\"| {{download}}`{path}` | **{kb} kB** |\\n\"\n", @@ -319,9 +319,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "n_points = 100_000\n", diff --git a/docs/conf.py b/docs/conf.py index 52eaffff..b32c003b 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -73,15 +73,12 @@ def execute_pluto_notebooks() -> None: if "EXECUTE_PLUTO" not in os.environ: return if shutil.which("julia") is None: - msg = ( - "Julia is not installed. Please download it at`" - " https://julialang.org/downloads" - ) + msg = "Julia is not installed. Please download it at https://julialang.org/downloads" raise ValueError(msg) result = subprocess.call( - "julia --project=. ./exportnotebooks.jl", # noqa: S607 + "julia --project=. ./exportnotebooks.jl", cwd="../julia", - shell=True, # noqa: S602 + shell=True, ) if result != 0: msg = "Failed to execute pluto notebooks" @@ -218,6 +215,9 @@ def print(self) -> None: "ipywidgets": { "8.1.1": "8.1.2", }, + "matplotlib": { + "3.9.1.post1": "3.9.1", + }, }) MISSING_FILES = MissingFileCollector() @@ -277,7 +277,7 @@ def print(self) -> None: } author = "Mikhail Mikhasenko, Remco de Boer, Miriam Fritsch" autodoc_default_options = { - "exclude-members": ", ".join([ + "exclude-members": ", ".join([ # noqa: FLY002 "default_assumptions", "doit", "evaluate", diff --git a/docs/cross-check.ipynb b/docs/cross-check.ipynb index 9c72e7e1..7d628285 100644 --- a/docs/cross-check.ipynb +++ b/docs/cross-check.ipynb @@ -2,9 +2,7 @@ "cells": [ { "cell_type": "markdown", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "# Cross-check with LHCb data\n", "\n", @@ -76,9 +74,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "with open(\"../data/crosscheck.json\") as stream:\n", diff --git a/docs/index.ipynb b/docs/index.ipynb index 0eceb60d..05cd68bd 100644 --- a/docs/index.ipynb +++ b/docs/index.ipynb @@ -119,13 +119,7 @@ }, { "cell_type": "markdown", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, + "metadata": {}, "source": [ "[![PyPI package](https://badge.fury.io/py/polarimetry-lc2pkpi.svg)](https://pypi.org/project/polarimetry-lc2pkpi)\n", "[![Supported Python versions](https://img.shields.io/pypi/pyversions/polarimetry-lc2pkpi)](https://pypi.org/project/polarimetry-lc2pkpi)\n", @@ -146,13 +140,9 @@ "cell_type": "code", "execution_count": null, "metadata": { - "editable": true, "jupyter": { "source_hidden": true }, - "slideshow": { - "slide_type": "" - }, "tags": [ "remove-input" ] @@ -168,10 +158,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, "tags": [ "full-width" ] @@ -193,13 +179,7 @@ }, { "cell_type": "markdown", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, + "metadata": {}, "source": [ "```{toctree}\n", "---\n", @@ -221,13 +201,7 @@ }, { "cell_type": "markdown", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, + "metadata": {}, "source": [ ":::{only} html\n", "```{toctree}\n", diff --git a/docs/intensity.ipynb b/docs/intensity.ipynb index 78cae1aa..91252d02 100644 --- a/docs/intensity.ipynb +++ b/docs/intensity.ipynb @@ -2,9 +2,7 @@ "cells": [ { "cell_type": "markdown", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "# Intensity distribution" ] @@ -91,9 +89,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "unfolded_intensity_expr = perform_cached_doit(model.full_expression)" @@ -140,8 +136,7 @@ "metadata": { "jupyter": { "source_hidden": true - }, - "tags": [] + } }, "outputs": [], "source": [ @@ -449,9 +444,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "I_K = sub_intensity(intensity_func, integration_sample, non_zero_couplings=[\"K\"])\n", @@ -610,9 +603,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "np.testing.assert_almost_equal(compute_sum_over_decay_rates(decay_rates), 1.0)" @@ -785,13 +776,9 @@ "cell_type": "code", "execution_count": null, "metadata": { - "editable": true, "jupyter": { "source_hidden": true }, - "slideshow": { - "slide_type": "" - }, "tags": [ "remove-cell" ] diff --git a/docs/polarimetry.ipynb b/docs/polarimetry.ipynb index 35c0b345..1728be87 100644 --- a/docs/polarimetry.ipynb +++ b/docs/polarimetry.ipynb @@ -675,9 +675,7 @@ }, { "cell_type": "markdown", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ ":::{only} latex\n", "{{ FIG_POLARIMETER_TOTAL }}\n", diff --git a/docs/uncertainties.ipynb b/docs/uncertainties.ipynb index 0aa26210..054b2f60 100644 --- a/docs/uncertainties.ipynb +++ b/docs/uncertainties.ipynb @@ -87,9 +87,7 @@ }, { "cell_type": "markdown", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "## Model loading" ] @@ -255,7 +253,7 @@ "\n", "\n", "jax_functions = {}\n", - "original_parameters: dict[str, dict[str, complex | float | int]] = {}\n", + "original_parameters: dict[str, dict[str, complex | int]] = {}\n", "progress_bar = tqdm(desc=\"Lambdifying to JAX\", disable=NO_TQDM, total=len(models))\n", "for title, model in models.items():\n", " progress_bar.set_postfix_str(title)\n", @@ -505,7 +503,7 @@ " outside_value=0,\n", " ).doit()\n", " filter_func = create_function(filter_expr, backend=\"jax\")\n", - " return filter_func(contour_sample) # noqa: F821\n", + " return filter_func(phsp)\n", "\n", "\n", "def draw_dalitz_contour(ax, color: str = \"black\", width: float = 0.1, **kwargs) -> None:\n", @@ -829,9 +827,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "n_models = len(models)\n", diff --git a/docs/zz.polarization-fit.ipynb b/docs/zz.polarization-fit.ipynb index 770a71cf..57212511 100644 --- a/docs/zz.polarization-fit.ipynb +++ b/docs/zz.polarization-fit.ipynb @@ -2,9 +2,7 @@ "cells": [ { "cell_type": "markdown", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "# Determination of polarization\n", "\n", @@ -77,9 +75,7 @@ }, { "cell_type": "markdown", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "Given the aligned polarimeter field $\\vec\\alpha$ and the corresponding intensity distribution $I_0$, the intensity distribution $I$ for a polarized decay can be computed as follows:\n", "\n", @@ -149,14 +145,14 @@ "outputs": [], "source": [ "def interpolate_intensity(phsp: DataSample, model_id: int) -> jax.Array:\n", - " x = PHSP[\"sigma1\"]\n", - " y = PHSP[\"sigma2\"]\n", + " x = phsp[\"sigma1\"]\n", + " y = phsp[\"sigma2\"]\n", " return jnp.array(create_interpolated_function(model_id, \"intensity\")(x, y))\n", "\n", "\n", "def interpolate_polarimetry_field(phsp: DataSample, model_id: int) -> jax.Array:\n", - " x = PHSP[\"sigma1\"]\n", - " y = PHSP[\"sigma2\"]\n", + " x = phsp[\"sigma1\"]\n", + " y = phsp[\"sigma2\"]\n", " return jnp.array([\n", " create_interpolated_function(model_id, f\"alpha_{i}\")(x, y) for i in \"xyz\"\n", " ])\n", @@ -237,15 +233,13 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "P = (+0.2165, +0.0108, -0.665)\n", "I = compute_polarized_intensity(\n", " *P,\n", - " I0=interpolate_intensity(PHSP, model_id=0),\n", + " I0=interpolate_intensity(model_id=0),\n", " alpha=interpolate_polarimetry_field(PHSP, model_id=0),\n", " phsp=PHSP,\n", ")\n", @@ -437,8 +431,7 @@ "metadata": { "jupyter": { "source_hidden": true - }, - "tags": [] + } }, "source": [ "This is to be compared with the model uncertainties reported by {cite}`LHCb-PAPER-2022-002`:\n", @@ -799,7 +792,7 @@ "outputs": [], "source": [ "def render_propagated_polarization(\n", - " polarizations: list[tuple[float, float, float]], polar: bool\n", + " polarizations: list[tuple[float, float, float]],\n", ") -> str:\n", " nominal_p = extract_polarization(SYST_FIT_RESULTS_AVERAGED[0])\n", " diff_combinatorics = np.abs(np.array(polarizations) - np.array(nominal_p))\n", @@ -819,13 +812,13 @@ "Polarizations from $\\overline{{\\alpha}}$ in cartesian coordinates:\n", "\n", "$$\n", - "{render_propagated_polarization(PROPAGATED_POLARIZATIONS_CARTESIAN, polar=False)}\n", + "{render_propagated_polarization(PROPAGATED_POLARIZATIONS_CARTESIAN)}\n", "$$\n", "\n", "Polarizations from $\\overline{{\\alpha}}$ in polar coordinates:\n", "\n", "$$\n", - "{render_propagated_polarization(PROPAGATED_POLARIZATIONS_POLAR, polar=True)}\n", + "{render_propagated_polarization(PROPAGATED_POLARIZATIONS_POLAR)}\n", "$$\n", "\"\"\"\n", "Markdown(src)" diff --git a/environment.yml b/environment.yml index 167a6912..6ab88365 100644 --- a/environment.yml +++ b/environment.yml @@ -4,10 +4,10 @@ channels: - conda-forge dependencies: - juliaup - - python==3.9.* + - python==3.12.* - pip>=21.3 # pyproject.toml - pip: - - -c .constraints/py3.9.txt -e .[dev] + - -c .constraints/py3.12.txt -e .[dev] variables: PRETTIER_LEGACY_CLI: 1 PYTHONHASHSEED: 0 diff --git a/pyproject.toml b/pyproject.toml index 0015de55..b3617bc7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -83,11 +83,9 @@ doc = [ "uproot", ] jupyter = [ - "black", - "isort", "jupyterlab >=3.0", "jupyterlab", - "jupyterlab-code-formatter", + "jupyterlab-code-formatter >=3.0.0", "jupyterlab-git", "jupyterlab-lsp", "jupyterlab-myst", @@ -146,6 +144,10 @@ warn_unused_configs = true ignore_missing_imports = true module = ["latexcodec.*"] +[[tool.mypy.overrides]] +ignore_missing_imports = true +module = ["sympy.*"] + [[tool.mypy.overrides]] ignore_missing_imports = true module = ["pybtex.*"] @@ -226,39 +228,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 = [ + "ANN", + "COM812", + "CPY001", "D101", "D102", "D103", @@ -268,7 +241,13 @@ ignore = [ "D213", "D407", "D416", + "DOC", "E501", + "FBT", + "FURB101", + "FURB103", + "FURB140", + "G004", "ISC001", "ISC003", "PLC2401", @@ -277,12 +256,22 @@ ignore = [ "PLR2004", "PLW1514", "PLW2901", + "PT001", + "PTH", "RUF001", "S403", "SIM108", ] +select = ["ALL"] task-tags = ["cspell"] +[tool.ruff.lint.flake8-builtins] +builtins-allowed-modules = ["io"] +builtins-ignorelist = ["display"] + +[tool.ruff.lint.flake8-comprehensions] +allow-dict-calls-with-keyword-arguments = true + [tool.ruff.lint.flake8-tidy-imports] ban-relative-imports = "all" @@ -317,20 +306,24 @@ ignore-names = [ [tool.ruff.lint.per-file-ignores] "**/benchmark.ipynb" = ["F821"] +"**/extensions/*.py" = ["ARG001"] +"**/polarimetry.ipynb" = ["SLF001"] +"**/uncertainties.ipynb" = ["ARG001"] +"**/widget.ipynb" = ["ARG001"] "*.ipynb" = [ "B018", "C408", "C90", "D", + "E303", "E402", "E703", "E741", - "ISC001", "N8", + "PD901", "PGH001", "PLC2701", "PLR09", - "PLR2004", "PLW0602", "PLW0603", "S101", @@ -352,7 +345,9 @@ ignore-names = [ "docs/conf.py" = [ "A00", "D100", + "DTZ005", "S404", + "S60", "T201", ] "src/polarimetry/io.py" = ["S301"] # pickle @@ -363,9 +358,9 @@ ignore-names = [ "N806", "PGH001", "PLC2701", - "PLR2004", "PLR6301", "S101", + "SLF001", "T20", ] diff --git a/src/polarimetry/lhcb/__init__.py b/src/polarimetry/lhcb/__init__.py index 4372f96e..97feb85c 100644 --- a/src/polarimetry/lhcb/__init__.py +++ b/src/polarimetry/lhcb/__init__.py @@ -253,11 +253,11 @@ def __init__( self._parameters = {str(k): v for k, v in symbolic_parameters.items()} @property - def values(self) -> dict[str, complex | float | int]: + def values(self) -> dict[str, complex | int]: return {k: v.value for k, v in self._parameters.items()} @property - def uncertainties(self) -> dict[str, complex | float | int]: + def uncertainties(self) -> dict[str, complex | int]: return {k: v.uncertainty for k, v in self._parameters.items()} def create_distribution( @@ -276,7 +276,7 @@ def load_model_parameters( decay: ThreeBodyDecay, model_id: int | ModelName = 0, particle_definitions: dict[str, Particle] | None = None, -) -> dict[sp.Indexed | sp.Symbol, complex | float]: +) -> dict[sp.Indexed | sp.Symbol, complex]: parameters = load_model_parameters_with_uncertainties( filename, decay, model_id, particle_definitions ) @@ -306,8 +306,8 @@ def load_model_parameters_with_uncertainties( def _smear_gaussian( - parameter_values: dict[str, complex | float], - parameter_uncertainties: dict[str, complex | float], + parameter_values: dict[str, complex], + parameter_uncertainties: dict[str, complex], size: int, seed: int | None = None, ) -> dict[str, np.ndarray]: @@ -320,8 +320,8 @@ def _smear_gaussian( def _create_gaussian_distribution( - mean: complex | float, - std: complex | float, + mean: complex, + std: complex, size: int, seed: int | None = None, ) -> np.ndarray: @@ -351,7 +351,7 @@ def flip_production_coupling_signs( ) if isinstance(obj, ParameterBootstrap): bootstrap = deepcopy(obj) - bootstrap._parameters = _flip_signs(bootstrap._parameters, subsystem_names) # type: ignore[reportPrivateUsage] + bootstrap._parameters = _flip_signs(bootstrap._parameters, subsystem_names) # type: ignore[reportPrivateUsage] # noqa: SLF001 return bootstrap # type:ignore[return-value] if isinstance(obj, dict): return _flip_signs(obj, subsystem_names) # type:ignore[return-value] diff --git a/tests/test_lhcb.py b/tests/test_lhcb.py index 707e9ff5..a9c2dc8a 100644 --- a/tests/test_lhcb.py +++ b/tests/test_lhcb.py @@ -110,7 +110,7 @@ def _load_builder(model_choice: int | ModelName) -> DalitzPlotDecompositionBuild def _load_parameters( model_choice: int | ModelName, -) -> dict[sp.Indexed | sp.Symbol, complex | float]: +) -> dict[sp.Indexed | sp.Symbol, complex]: model_builder = _load_builder(model_choice) return load_model_parameters( filename=MODEL_FILE,