diff --git a/.constraints/py3.10.txt b/.constraints/py3.10.txt index d985bc27..86250b1e 100644 --- a/.constraints/py3.10.txt +++ b/.constraints/py3.10.txt @@ -9,7 +9,7 @@ anyio==3.6.2 aquirdturtle-collapsible-headings==3.1.0 argon2-cffi==21.3.0 argon2-cffi-bindings==21.2.0 -astroid==2.12.12 +astroid==2.12.13 asttokens==2.1.0 attrs==22.1.0 babel==2.11.0 @@ -31,52 +31,49 @@ dill==0.3.6 distlib==0.3.6 docutils==0.17.1 entrypoints==0.4 -exceptiongroup==1.0.0 +exceptiongroup==1.0.4 execnet==1.9.0 executing==1.2.0 fastjsonschema==2.16.2 filelock==3.8.0 -flake8==5.0.4 +flake8==6.0.0 flake8-blind-except==0.2.1 flake8-bugbear==22.10.27 flake8-builtins==2.0.1 flake8-comprehensions==3.10.1 +flake8-future-import==0.4.7 flake8-plugin-utils==1.3.2 flake8-pytest-style==1.6.0 -flake8-rst-docstrings==0.2.7 +flake8-rst-docstrings==0.3.0 flake8-type-ignore==0.1.0.post2 ; python_version >= "3.8.0" flake8-use-fstring==1.4 gprof2dot==2022.7.29 graphviz==0.20.1 -greenlet==2.0.0 +greenlet==2.0.1 hepunits==2.3.0 -identify==2.5.8 +identify==2.5.9 idna==3.4 imagesize==1.4.1 -importlib-metadata==5.0.0 +importlib-metadata==5.1.0 iniconfig==1.1.1 -ipykernel==6.17.0 +ipykernel==6.17.1 ipython==8.6.0 ipython-genutils==0.2.0 -ipywidgets==8.0.2 isort==5.10.1 -jedi==0.18.1 +jedi==0.18.2 jinja2==3.1.2 json5==0.9.10 -jsonschema==4.16.0 -jupyter==1.0.0 +jsonschema==4.17.1 jupyter-cache==0.5.0 -jupyter-client==7.4.4 -jupyter-console==6.4.4 -jupyter-core==4.11.2 -jupyter-server==1.21.0 +jupyter-client==7.4.7 +jupyter-core==5.0.0 +jupyter-server==1.23.3 jupyterlab==3.5.0 jupyterlab-code-formatter==1.5.3 jupyterlab-markup==1.1.0 jupyterlab-myst==0.1.6 ; python_version >= "3.7.0" jupyterlab-pygments==0.2.2 -jupyterlab-server==2.16.2 -jupyterlab-widgets==3.0.3 +jupyterlab-server==2.16.3 latexcodec==2.0.1 lazy-object-proxy==1.8.0 livereload==2.6.3 @@ -87,49 +84,49 @@ mccabe==0.7.0 mdit-py-plugins==0.3.1 mdurl==0.1.2 mistune==2.0.4 -mypy==0.982 +mypy==0.991 mypy-extensions==0.4.3 myst-nb==0.17.1 ; python_version >= "3.8.0" myst-parser==0.18.1 -nbclassic==0.4.7 +nbclassic==0.4.8 nbclient==0.5.13 -nbconvert==7.2.3 +nbconvert==7.2.5 nbformat==5.7.0 nbmake==1.3.0 nest-asyncio==1.5.6 nodeenv==1.7.0 notebook==6.5.2 -notebook-shim==0.2.0 +notebook-shim==0.2.2 packaging==21.3 pandocfilters==1.5.0 parso==0.8.3 -particle==0.20.1 -pathspec==0.10.1 +particle==0.21.0 +pathspec==0.10.2 pep8-naming==0.13.2 pexpect==4.8.0 pickleshare==0.7.5 -platformdirs==2.5.2 +platformdirs==2.5.4 pluggy==1.0.0 pre-commit==2.20.0 prometheus-client==0.15.0 -prompt-toolkit==3.0.31 -psutil==5.9.3 +prompt-toolkit==3.0.33 +psutil==5.9.4 ptyprocess==0.7.0 pure-eval==0.2.2 py==1.11.0 pybtex==0.24.0 pybtex-docutils==1.0.2 -pycodestyle==2.9.1 +pycodestyle==2.10.0 pycparser==2.21 pydantic==1.10.2 pydata-sphinx-theme==0.8.1 pydocstyle==6.1.1 pydot==1.4.2 -pyflakes==2.5.0 +pyflakes==3.0.1 pygments==2.13.0 -pylint==2.15.5 +pylint==2.15.6 pyparsing==3.0.9 -pyrsistent==0.19.1 +pyrsistent==0.19.2 pytest==7.2.0 pytest-cov==4.0.0 pytest-profiling==1.7.0 @@ -139,8 +136,6 @@ python-dateutil==2.8.2 pytz==2022.6 pyyaml==6.0 pyzmq==24.0.1 -qtconsole==5.3.2 -qtpy==2.2.1 requests==2.28.1 restructuredtext-lint==1.4.0 send2trash==1.8.0 @@ -151,9 +146,9 @@ soupsieve==2.3.2.post1 sphinx==4.5.0 sphinx-autobuild==2021.3.14 sphinx-book-theme==0.3.3 -sphinx-codeautolink==0.12.0 +sphinx-codeautolink==0.12.1 sphinx-comments==0.0.3 -sphinx-copybutton==0.5.0 +sphinx-copybutton==0.5.1 sphinx-design==0.3.0 sphinx-thebe==0.1.2 sphinx-togglebutton==0.3.2 @@ -165,9 +160,9 @@ sphinxcontrib-htmlhelp==2.0.0 sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==1.0.3 sphinxcontrib-serializinghtml==1.1.5 -sphobjinv==2.2.2 -sqlalchemy==1.4.42 -stack-data==0.6.0 +sphobjinv==2.3 +sqlalchemy==1.4.44 +stack-data==0.6.1 tabulate==0.9.0 terminado==0.17.0 tinycss2==1.2.1 @@ -175,23 +170,22 @@ toml==0.10.2 tomli==2.0.1 tomlkit==0.11.6 tornado==6.2 -tox==3.27.0 +tox==3.27.1 tqdm==4.64.1 traitlets==5.5.0 types-docutils==0.19.1.1 types-pkg-resources==0.1.3 -types-pyyaml==6.0.12.1 -types-requests==2.28.11.2 -types-setuptools==65.5.0.2 -types-urllib3==1.26.25.1 +types-pyyaml==6.0.12.2 +types-requests==2.28.11.5 +types-setuptools==65.6.0.1 +types-urllib3==1.26.25.4 typing-extensions==4.4.0 -urllib3==1.26.12 -virtualenv==20.16.6 +urllib3==1.26.13 +virtualenv==20.16.7 wcwidth==0.2.5 webencodings==0.5.1 -websocket-client==1.4.1 -wheel==0.37.1 -widgetsnbextension==4.0.3 +websocket-client==1.4.2 +wheel==0.38.4 wrapt==1.14.1 zipp==3.10.0 diff --git a/.constraints/py3.6.txt b/.constraints/py3.6.txt index f015559b..df63f79a 100644 --- a/.constraints/py3.6.txt +++ b/.constraints/py3.6.txt @@ -39,6 +39,7 @@ flake8-blind-except==0.2.1 flake8-bugbear==22.9.23 flake8-builtins==2.0.0 flake8-comprehensions==3.7.0 +flake8-future-import==0.4.7 flake8-plugin-utils==1.3.2 flake8-pytest-style==1.6.0 flake8-rst-docstrings==0.2.5 @@ -47,7 +48,7 @@ gitdb==4.0.9 gitpython==3.1.18 gprof2dot==2022.7.29 graphviz==0.19.1 -greenlet==2.0.0 +greenlet==2.0.1 hepunits==2.2.1 identify==2.4.4 idna==3.4 @@ -65,10 +66,8 @@ jedi==0.17.2 jinja2==3.0.3 json5==0.9.10 jsonschema==3.2.0 -jupyter==1.0.0 jupyter-cache==0.4.3 jupyter-client==7.1.2 -jupyter-console==6.4.3 jupyter-core==4.9.2 jupyter-server==1.13.1 jupyter-server-mathjax==0.2.3 @@ -111,7 +110,7 @@ platformdirs==2.4.0 pluggy==1.0.0 pre-commit==2.17.0 prometheus-client==0.15.0 -prompt-toolkit==3.0.31 +prompt-toolkit==3.0.33 ptyprocess==0.7.0 py==1.11.0 pybtex==0.24.0 @@ -136,8 +135,6 @@ python-dateutil==2.8.2 pytz==2022.6 pyyaml==6.0 pyzmq==24.0.1 -qtconsole==5.2.2 -qtpy==2.0.1 requests==2.27.1 restructuredtext-lint==1.4.0 send2trash==1.8.0 @@ -149,7 +146,7 @@ soupsieve==2.3.2.post1 sphinx==4.3.2 ; python_version < "3.8.0" sphinx-autobuild==2021.3.14 sphinx-book-theme==0.2.0 -sphinx-codeautolink==0.12.0 +sphinx-codeautolink==0.12.1 sphinx-comments==0.0.3 sphinx-copybutton==0.5.0 sphinx-design==0.0.13 @@ -163,25 +160,25 @@ sphinxcontrib-htmlhelp==2.0.0 sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==1.0.3 sphinxcontrib-serializinghtml==1.1.5 -sphobjinv==2.2.2 -sqlalchemy==1.4.42 +sphobjinv==2.3 +sqlalchemy==1.4.44 terminado==0.12.1 testpath==0.6.0 toml==0.10.2 tomli==1.2.3 tornado==6.1 -tox==3.27.0 +tox==3.27.1 tqdm==4.64.1 traitlets==4.3.3 typed-ast==1.5.4 types-docutils==0.19.1.1 types-pkg-resources==0.1.3 -types-pyyaml==6.0.12.1 -types-requests==2.28.11.2 -types-setuptools==65.5.0.2 -types-urllib3==1.26.25.1 +types-pyyaml==6.0.12.2 +types-requests==2.28.11.5 +types-setuptools==65.6.0.1 +types-urllib3==1.26.25.4 typing-extensions==4.1.1 ; python_version < "3.10.0" -urllib3==1.26.12 +urllib3==1.26.13 virtualenv==20.15.1 ; python_version < "3.8.0" wcwidth==0.2.5 webencodings==0.5.1 diff --git a/.constraints/py3.7.txt b/.constraints/py3.7.txt index 79c10a08..9e148e85 100644 --- a/.constraints/py3.7.txt +++ b/.constraints/py3.7.txt @@ -9,7 +9,7 @@ anyio==3.6.2 aquirdturtle-collapsible-headings==3.1.0 argon2-cffi==21.3.0 argon2-cffi-bindings==21.2.0 -astroid==2.12.12 +astroid==2.12.13 attrs==21.4.0 babel==2.11.0 backcall==0.2.0 @@ -30,7 +30,7 @@ dill==0.3.6 distlib==0.3.6 docutils==0.17.1 entrypoints==0.4 -exceptiongroup==1.0.0 +exceptiongroup==1.0.4 execnet==1.9.0 fastjsonschema==2.16.2 filelock==3.8.0 @@ -39,17 +39,18 @@ flake8-blind-except==0.2.1 flake8-bugbear==22.10.27 flake8-builtins==2.0.1 flake8-comprehensions==3.10.1 +flake8-future-import==0.4.7 flake8-plugin-utils==1.3.2 flake8-pytest-style==1.6.0 -flake8-rst-docstrings==0.2.7 +flake8-rst-docstrings==0.3.0 flake8-use-fstring==1.4 -gitdb==4.0.9 +gitdb==4.0.10 gitpython==3.1.29 gprof2dot==2022.7.29 graphviz==0.20.1 -greenlet==2.0.0 +greenlet==2.0.1 hepunits==2.3.0 -identify==2.5.8 +identify==2.5.9 idna==3.4 imagesize==1.4.1 importlib-metadata==4.2.0 ; python_version < "3.8.0" @@ -60,16 +61,14 @@ ipython==7.34.0 ipython-genutils==0.2.0 ipywidgets==7.7.2 isort==5.10.1 -jedi==0.18.1 +jedi==0.18.2 jinja2==3.1.2 json5==0.9.10 -jsonschema==4.16.0 -jupyter==1.0.0 +jsonschema==4.17.1 jupyter-cache==0.4.3 -jupyter-client==7.4.4 -jupyter-console==6.4.4 +jupyter-client==7.4.7 jupyter-core==4.11.2 -jupyter-server==1.21.0 +jupyter-server==1.23.3 jupyter-server-mathjax==0.2.6 jupyter-sphinx==0.3.2 jupyterlab==3.5.0 @@ -89,11 +88,11 @@ matplotlib-inline==0.1.6 mccabe==0.7.0 mdit-py-plugins==0.2.8 mistune==0.8.4 -mypy==0.982 +mypy==0.991 mypy-extensions==0.4.3 myst-nb==0.13.2 ; python_version < "3.8.0" myst-parser==0.15.2 -nbclassic==0.4.7 +nbclassic==0.4.8 nbclient==0.5.13 nbconvert==6.5.4 nbdime==3.1.1 @@ -102,22 +101,22 @@ nbmake==1.3.0 nest-asyncio==1.5.6 nodeenv==1.7.0 notebook==6.5.2 -notebook-shim==0.2.0 +notebook-shim==0.2.2 packaging==21.3 pandocfilters==1.5.0 parso==0.8.3 -particle==0.20.1 -pathspec==0.10.1 +particle==0.21.0 +pathspec==0.10.2 pep8-naming==0.13.2 pexpect==4.8.0 pickleshare==0.7.5 pkgutil-resolve-name==1.3.10 -platformdirs==2.5.2 +platformdirs==2.5.4 pluggy==1.0.0 pre-commit==2.20.0 prometheus-client==0.15.0 -prompt-toolkit==3.0.31 -psutil==5.9.3 +prompt-toolkit==3.0.33 +psutil==5.9.4 ptyprocess==0.7.0 py==1.11.0 pybtex==0.24.0 @@ -130,9 +129,9 @@ pydocstyle==6.1.1 pydot==1.4.2 pyflakes==2.5.0 pygments==2.13.0 -pylint==2.15.5 +pylint==2.15.6 pyparsing==3.0.9 -pyrsistent==0.19.1 +pyrsistent==0.19.2 pytest==7.2.0 pytest-cov==4.0.0 pytest-profiling==1.7.0 @@ -142,8 +141,6 @@ python-dateutil==2.8.2 pytz==2022.6 pyyaml==6.0 pyzmq==24.0.1 -qtconsole==5.3.2 -qtpy==2.2.1 requests==2.28.1 restructuredtext-lint==1.4.0 send2trash==1.8.0 @@ -155,9 +152,9 @@ soupsieve==2.3.2.post1 sphinx==4.3.2 ; python_version < "3.8.0" sphinx-autobuild==2021.3.14 sphinx-book-theme==0.3.3 -sphinx-codeautolink==0.12.0 +sphinx-codeautolink==0.12.1 sphinx-comments==0.0.3 -sphinx-copybutton==0.5.0 +sphinx-copybutton==0.5.1 sphinx-design==0.3.0 sphinx-thebe==0.1.2 sphinx-togglebutton==0.3.2 @@ -169,31 +166,31 @@ sphinxcontrib-htmlhelp==2.0.0 sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==1.0.3 sphinxcontrib-serializinghtml==1.1.5 -sphobjinv==2.2.2 -sqlalchemy==1.4.42 +sphobjinv==2.3 +sqlalchemy==1.4.44 terminado==0.17.0 tinycss2==1.2.1 toml==0.10.2 tomli==2.0.1 tomlkit==0.11.6 tornado==6.2 -tox==3.27.0 +tox==3.27.1 tqdm==4.64.1 traitlets==5.5.0 typed-ast==1.5.4 types-docutils==0.19.1.1 types-pkg-resources==0.1.3 -types-pyyaml==6.0.12.1 -types-requests==2.28.11.2 -types-setuptools==65.5.0.2 -types-urllib3==1.26.25.1 +types-pyyaml==6.0.12.2 +types-requests==2.28.11.5 +types-setuptools==65.6.0.1 +types-urllib3==1.26.25.4 typing-extensions==4.4.0 ; python_version < "3.10.0" -urllib3==1.26.12 +urllib3==1.26.13 virtualenv==20.15.1 ; python_version < "3.8.0" wcwidth==0.2.5 webencodings==0.5.1 -websocket-client==1.4.1 -wheel==0.37.1 +websocket-client==1.4.2 +wheel==0.38.4 widgetsnbextension==3.6.1 wrapt==1.14.1 zipp==3.10.0 diff --git a/.constraints/py3.8.txt b/.constraints/py3.8.txt index 09c3ab55..57f0f859 100644 --- a/.constraints/py3.8.txt +++ b/.constraints/py3.8.txt @@ -9,7 +9,7 @@ anyio==3.6.2 aquirdturtle-collapsible-headings==3.1.0 argon2-cffi==21.3.0 argon2-cffi-bindings==21.2.0 -astroid==2.12.12 +astroid==2.12.13 asttokens==2.1.0 attrs==22.1.0 babel==2.11.0 @@ -31,53 +31,50 @@ dill==0.3.6 distlib==0.3.6 docutils==0.17.1 entrypoints==0.4 -exceptiongroup==1.0.0 +exceptiongroup==1.0.4 execnet==1.9.0 executing==1.2.0 fastjsonschema==2.16.2 filelock==3.8.0 -flake8==5.0.4 +flake8==6.0.0 flake8-blind-except==0.2.1 flake8-bugbear==22.10.27 flake8-builtins==2.0.1 flake8-comprehensions==3.10.1 +flake8-future-import==0.4.7 flake8-plugin-utils==1.3.2 flake8-pytest-style==1.6.0 -flake8-rst-docstrings==0.2.7 +flake8-rst-docstrings==0.3.0 flake8-type-ignore==0.1.0.post2 ; python_version >= "3.8.0" flake8-use-fstring==1.4 gprof2dot==2022.7.29 graphviz==0.20.1 -greenlet==2.0.0 +greenlet==2.0.1 hepunits==2.3.0 -identify==2.5.8 +identify==2.5.9 idna==3.4 imagesize==1.4.1 -importlib-metadata==5.0.0 +importlib-metadata==5.1.0 importlib-resources==5.10.0 iniconfig==1.1.1 -ipykernel==6.17.0 +ipykernel==6.17.1 ipython==8.6.0 ipython-genutils==0.2.0 -ipywidgets==8.0.2 isort==5.10.1 -jedi==0.18.1 +jedi==0.18.2 jinja2==3.1.2 json5==0.9.10 -jsonschema==4.16.0 -jupyter==1.0.0 +jsonschema==4.17.1 jupyter-cache==0.5.0 -jupyter-client==7.4.4 -jupyter-console==6.4.4 -jupyter-core==4.11.2 -jupyter-server==1.21.0 +jupyter-client==7.4.7 +jupyter-core==5.0.0 +jupyter-server==1.23.3 jupyterlab==3.5.0 jupyterlab-code-formatter==1.5.3 jupyterlab-markup==1.1.0 jupyterlab-myst==0.1.6 ; python_version >= "3.7.0" jupyterlab-pygments==0.2.2 -jupyterlab-server==2.16.2 -jupyterlab-widgets==3.0.3 +jupyterlab-server==2.16.3 latexcodec==2.0.1 lazy-object-proxy==1.8.0 livereload==2.6.3 @@ -88,50 +85,50 @@ mccabe==0.7.0 mdit-py-plugins==0.3.1 mdurl==0.1.2 mistune==2.0.4 -mypy==0.982 +mypy==0.991 mypy-extensions==0.4.3 myst-nb==0.17.1 ; python_version >= "3.8.0" myst-parser==0.18.1 -nbclassic==0.4.7 +nbclassic==0.4.8 nbclient==0.5.13 -nbconvert==7.2.3 +nbconvert==7.2.5 nbformat==5.7.0 nbmake==1.3.0 nest-asyncio==1.5.6 nodeenv==1.7.0 notebook==6.5.2 -notebook-shim==0.2.0 +notebook-shim==0.2.2 packaging==21.3 pandocfilters==1.5.0 parso==0.8.3 -particle==0.20.1 -pathspec==0.10.1 +particle==0.21.0 +pathspec==0.10.2 pep8-naming==0.13.2 pexpect==4.8.0 pickleshare==0.7.5 pkgutil-resolve-name==1.3.10 -platformdirs==2.5.2 +platformdirs==2.5.4 pluggy==1.0.0 pre-commit==2.20.0 prometheus-client==0.15.0 -prompt-toolkit==3.0.31 -psutil==5.9.3 +prompt-toolkit==3.0.33 +psutil==5.9.4 ptyprocess==0.7.0 pure-eval==0.2.2 py==1.11.0 pybtex==0.24.0 pybtex-docutils==1.0.2 -pycodestyle==2.9.1 +pycodestyle==2.10.0 pycparser==2.21 pydantic==1.10.2 pydata-sphinx-theme==0.8.1 pydocstyle==6.1.1 pydot==1.4.2 -pyflakes==2.5.0 +pyflakes==3.0.1 pygments==2.13.0 -pylint==2.15.5 +pylint==2.15.6 pyparsing==3.0.9 -pyrsistent==0.19.1 +pyrsistent==0.19.2 pytest==7.2.0 pytest-cov==4.0.0 pytest-profiling==1.7.0 @@ -141,8 +138,6 @@ python-dateutil==2.8.2 pytz==2022.6 pyyaml==6.0 pyzmq==24.0.1 -qtconsole==5.3.2 -qtpy==2.2.1 requests==2.28.1 restructuredtext-lint==1.4.0 send2trash==1.8.0 @@ -153,9 +148,9 @@ soupsieve==2.3.2.post1 sphinx==4.5.0 sphinx-autobuild==2021.3.14 sphinx-book-theme==0.3.3 -sphinx-codeautolink==0.12.0 +sphinx-codeautolink==0.12.1 sphinx-comments==0.0.3 -sphinx-copybutton==0.5.0 +sphinx-copybutton==0.5.1 sphinx-design==0.3.0 sphinx-thebe==0.1.2 sphinx-togglebutton==0.3.2 @@ -167,9 +162,9 @@ sphinxcontrib-htmlhelp==2.0.0 sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==1.0.3 sphinxcontrib-serializinghtml==1.1.5 -sphobjinv==2.2.2 -sqlalchemy==1.4.42 -stack-data==0.6.0 +sphobjinv==2.3 +sqlalchemy==1.4.44 +stack-data==0.6.1 tabulate==0.9.0 terminado==0.17.0 tinycss2==1.2.1 @@ -177,23 +172,22 @@ toml==0.10.2 tomli==2.0.1 tomlkit==0.11.6 tornado==6.2 -tox==3.27.0 +tox==3.27.1 tqdm==4.64.1 traitlets==5.5.0 types-docutils==0.19.1.1 types-pkg-resources==0.1.3 -types-pyyaml==6.0.12.1 -types-requests==2.28.11.2 -types-setuptools==65.5.0.2 -types-urllib3==1.26.25.1 +types-pyyaml==6.0.12.2 +types-requests==2.28.11.5 +types-setuptools==65.6.0.1 +types-urllib3==1.26.25.4 typing-extensions==4.4.0 ; python_version < "3.10.0" -urllib3==1.26.12 -virtualenv==20.16.6 +urllib3==1.26.13 +virtualenv==20.16.7 wcwidth==0.2.5 webencodings==0.5.1 -websocket-client==1.4.1 -wheel==0.37.1 -widgetsnbextension==4.0.3 +websocket-client==1.4.2 +wheel==0.38.4 wrapt==1.14.1 zipp==3.10.0 diff --git a/.constraints/py3.9.txt b/.constraints/py3.9.txt index 41e14f1a..508c68ec 100644 --- a/.constraints/py3.9.txt +++ b/.constraints/py3.9.txt @@ -9,7 +9,7 @@ anyio==3.6.2 aquirdturtle-collapsible-headings==3.1.0 argon2-cffi==21.3.0 argon2-cffi-bindings==21.2.0 -astroid==2.12.12 +astroid==2.12.13 asttokens==2.1.0 attrs==22.1.0 babel==2.11.0 @@ -31,52 +31,49 @@ dill==0.3.6 distlib==0.3.6 docutils==0.17.1 entrypoints==0.4 -exceptiongroup==1.0.0 +exceptiongroup==1.0.4 execnet==1.9.0 executing==1.2.0 fastjsonschema==2.16.2 filelock==3.8.0 -flake8==5.0.4 +flake8==6.0.0 flake8-blind-except==0.2.1 flake8-bugbear==22.10.27 flake8-builtins==2.0.1 flake8-comprehensions==3.10.1 +flake8-future-import==0.4.7 flake8-plugin-utils==1.3.2 flake8-pytest-style==1.6.0 -flake8-rst-docstrings==0.2.7 +flake8-rst-docstrings==0.3.0 flake8-type-ignore==0.1.0.post2 ; python_version >= "3.8.0" flake8-use-fstring==1.4 gprof2dot==2022.7.29 graphviz==0.20.1 -greenlet==2.0.0 +greenlet==2.0.1 hepunits==2.3.0 -identify==2.5.8 +identify==2.5.9 idna==3.4 imagesize==1.4.1 -importlib-metadata==5.0.0 +importlib-metadata==5.1.0 iniconfig==1.1.1 -ipykernel==6.17.0 +ipykernel==6.17.1 ipython==8.6.0 ipython-genutils==0.2.0 -ipywidgets==8.0.2 isort==5.10.1 -jedi==0.18.1 +jedi==0.18.2 jinja2==3.1.2 json5==0.9.10 -jsonschema==4.16.0 -jupyter==1.0.0 +jsonschema==4.17.1 jupyter-cache==0.5.0 -jupyter-client==7.4.4 -jupyter-console==6.4.4 -jupyter-core==4.11.2 -jupyter-server==1.21.0 +jupyter-client==7.4.7 +jupyter-core==5.0.0 +jupyter-server==1.23.3 jupyterlab==3.5.0 jupyterlab-code-formatter==1.5.3 jupyterlab-markup==1.1.0 jupyterlab-myst==0.1.6 ; python_version >= "3.7.0" jupyterlab-pygments==0.2.2 -jupyterlab-server==2.16.2 -jupyterlab-widgets==3.0.3 +jupyterlab-server==2.16.3 latexcodec==2.0.1 lazy-object-proxy==1.8.0 livereload==2.6.3 @@ -87,49 +84,49 @@ mccabe==0.7.0 mdit-py-plugins==0.3.1 mdurl==0.1.2 mistune==2.0.4 -mypy==0.982 +mypy==0.991 mypy-extensions==0.4.3 myst-nb==0.17.1 ; python_version >= "3.8.0" myst-parser==0.18.1 -nbclassic==0.4.7 +nbclassic==0.4.8 nbclient==0.5.13 -nbconvert==7.2.3 +nbconvert==7.2.5 nbformat==5.7.0 nbmake==1.3.0 nest-asyncio==1.5.6 nodeenv==1.7.0 notebook==6.5.2 -notebook-shim==0.2.0 +notebook-shim==0.2.2 packaging==21.3 pandocfilters==1.5.0 parso==0.8.3 -particle==0.20.1 -pathspec==0.10.1 +particle==0.21.0 +pathspec==0.10.2 pep8-naming==0.13.2 pexpect==4.8.0 pickleshare==0.7.5 -platformdirs==2.5.2 +platformdirs==2.5.4 pluggy==1.0.0 pre-commit==2.20.0 prometheus-client==0.15.0 -prompt-toolkit==3.0.31 -psutil==5.9.3 +prompt-toolkit==3.0.33 +psutil==5.9.4 ptyprocess==0.7.0 pure-eval==0.2.2 py==1.11.0 pybtex==0.24.0 pybtex-docutils==1.0.2 -pycodestyle==2.9.1 +pycodestyle==2.10.0 pycparser==2.21 pydantic==1.10.2 pydata-sphinx-theme==0.8.1 pydocstyle==6.1.1 pydot==1.4.2 -pyflakes==2.5.0 +pyflakes==3.0.1 pygments==2.13.0 -pylint==2.15.5 +pylint==2.15.6 pyparsing==3.0.9 -pyrsistent==0.19.1 +pyrsistent==0.19.2 pytest==7.2.0 pytest-cov==4.0.0 pytest-profiling==1.7.0 @@ -139,8 +136,6 @@ python-dateutil==2.8.2 pytz==2022.6 pyyaml==6.0 pyzmq==24.0.1 -qtconsole==5.3.2 -qtpy==2.2.1 requests==2.28.1 restructuredtext-lint==1.4.0 send2trash==1.8.0 @@ -151,9 +146,9 @@ soupsieve==2.3.2.post1 sphinx==4.5.0 sphinx-autobuild==2021.3.14 sphinx-book-theme==0.3.3 -sphinx-codeautolink==0.12.0 +sphinx-codeautolink==0.12.1 sphinx-comments==0.0.3 -sphinx-copybutton==0.5.0 +sphinx-copybutton==0.5.1 sphinx-design==0.3.0 sphinx-thebe==0.1.2 sphinx-togglebutton==0.3.2 @@ -165,9 +160,9 @@ sphinxcontrib-htmlhelp==2.0.0 sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==1.0.3 sphinxcontrib-serializinghtml==1.1.5 -sphobjinv==2.2.2 -sqlalchemy==1.4.42 -stack-data==0.6.0 +sphobjinv==2.3 +sqlalchemy==1.4.44 +stack-data==0.6.1 tabulate==0.9.0 terminado==0.17.0 tinycss2==1.2.1 @@ -175,23 +170,22 @@ toml==0.10.2 tomli==2.0.1 tomlkit==0.11.6 tornado==6.2 -tox==3.27.0 +tox==3.27.1 tqdm==4.64.1 traitlets==5.5.0 types-docutils==0.19.1.1 types-pkg-resources==0.1.3 -types-pyyaml==6.0.12.1 -types-requests==2.28.11.2 -types-setuptools==65.5.0.2 -types-urllib3==1.26.25.1 +types-pyyaml==6.0.12.2 +types-requests==2.28.11.5 +types-setuptools==65.6.0.1 +types-urllib3==1.26.25.4 typing-extensions==4.4.0 ; python_version < "3.10.0" -urllib3==1.26.12 -virtualenv==20.16.6 +urllib3==1.26.13 +virtualenv==20.16.7 wcwidth==0.2.5 webencodings==0.5.1 -websocket-client==1.4.1 -wheel==0.37.1 -widgetsnbextension==4.0.3 +websocket-client==1.4.2 +wheel==0.38.4 wrapt==1.14.1 zipp==3.10.0 diff --git a/.cspell.json b/.cspell.json index e58f53f1..78d37256 100644 --- a/.cspell.json +++ b/.cspell.json @@ -1,228 +1,225 @@ { - "allowCompoundWords": true, - "enableFiletypes": [ - "git-commit", - "julia", - "jupyter" - ], - "flagWords": [ - "analyse", - "colour", - "comparision", - "favour", - "flavour", - "hte", - "optimise", - "paramater", - "parmater", - "transision", - "transisions" - ], - "ignorePaths": [ - "**/.cspell.json", - "*.bib", - "*.ico", - "*.root", - "*.rst_t", - "*.svg", - "*particle*.*ml", - ".constraints/*.txt", - ".flake8*", - ".gitignore", - ".gitpod.*", - ".mypy.ini", - ".pre-commit-config.yaml", - ".prettierignore", - ".pydocstyle*", - ".pylintrc", - ".readthedocs.yml", - ".vscode/*", - ".vscode/.gitignore", - ".zenodo.json", - "codecov.yml", - "Dockerfile", - "docs/_templates/*", - "docs/adr/*/*", - "docs/conf.py", - "labels.toml", - "Makefile", - "Manifest.toml", - "Project.toml", - "pyproject.toml", - "pyrightconfig.json", - "pytest.ini", - "requirements*.txt", - "setup.cfg", - "setup.py", - "tox.ini", - "typings" - ], - "ignoreWords": [ - "adrs", - "ampform", - "arange", - "asdict", - "asdot", - "astuple", - "autoupdate", - "bdist", - "bgcolor", - "cano", - "celltoolbar", - "codacy", - "codecov", - "codemirror", - "colab", - "commitlint", - "compwa", - "concat", - "conds", - "displaystyle", - "docnb", - "doctest", - "doctests", - "dotprint", - "dtype", - "einsum", - "epem", - "eqnarray", - "eval", - "evalf", - "expertsystem", - "figsize", - "flatte", - "fromdict", - "gellmann", - "genindex", - "getsource", - "gitpod", - "hankel", - "heli", - "heurisch", - "imag", - "ipykernel", - "isfunction", - "isinstance", - "jpsi", - "jupyterlab", - "kernelspec", - "linkcheck", - "macos", - "MAINT", - "markdownlint", - "mathrm", - "maxdepth", - "meijerg", - "mimetype", - "modindex", - "nbconvert", - "nbformat", - "nbody", - "nbsphinx", - "nbstripout", - "ndarray", - "noqa", - "noreply", - "nrows", - "nsimplify", - "pandoc", - "permalinks", - "phsp", - "pids", - "precommit", - "prefactor", - "preorder", - "prereleased", - "pygments", - "pylance", - "pylintrc", - "pypi", - "pyproject", - "pyright", - "pytestconfig", - "rightarrow", - "risch", - "rtfd", - "sdist", - "seealso", - "sharex", - "startswith", - "stm's", - "sympify", - "sympy", - "theano", - "ticklabels", - "tolist", - "tqdm", - "unparse", - "unsrt", - "untracked", - "virtualenv", - "virtualenvwrapper", - "xaxis", - "xlabel", - "xlim", - "yaxis", - "ylabel", - "ylim" - ], - "language": "en-US", - "version": "0.2", - "words": [ - "blatt", - "bosonic", - "bottomness", - "breit", - "charmness", - "clebsch", - "combi", - "conda", - "dalitz", - "deepcopy", - "determinator", - "determinators", - "docstrings", - "façade", - "fermionic", - "flatté", - "functors", - "gell", - "gordan", - "graphviz", - "hankel", - "hashable", - "helicities", - "helicity", - "htmlcov", - "imap", - "ipynb", - "ipython", - "isort", - "isospin", - "itertools", - "jsonschema", - "jupyter", - "lambdify", - "lineshape", - "lineshapes", - "mathbb", - "mypy", - "nishijima", - "pydocstyle", - "pydot", - "pylint", - "pyplot", - "pytest", - "qrules", - "setuptools", - "spflueger", - "struct", - "tensorflow", - "tensorwaves", - "toctree", - "topness", - "venv", - "weisskopf", - "Zenodo" - ] + "allowCompoundWords": true, + "enableFiletypes": ["git-commit", "julia", "jupyter"], + "flagWords": [ + "analyse", + "colour", + "comparision", + "favour", + "flavour", + "hte", + "optimise", + "paramater", + "parmater", + "transision", + "transisions" + ], + "ignorePaths": [ + "**/.cspell.json", + "*.bib", + "*.ico", + "*.root", + "*.rst_t", + "*.svg", + "*particle*.*ml", + ".constraints/*.txt", + ".editorconfig", + ".flake8*", + ".gitignore", + ".gitpod.*", + ".mypy.ini", + ".pre-commit-config.yaml", + ".prettierignore", + ".pydocstyle*", + ".pylintrc", + ".readthedocs.yml", + ".vscode/*", + ".vscode/.gitignore", + ".zenodo.json", + "codecov.yml", + "Dockerfile", + "docs/_templates/*", + "docs/adr/*/*", + "docs/conf.py", + "labels.toml", + "Makefile", + "Manifest.toml", + "Project.toml", + "pyproject.toml", + "pyrightconfig.json", + "pytest.ini", + "requirements*.txt", + "setup.cfg", + "setup.py", + "tox.ini", + "typings" + ], + "ignoreWords": [ + "MAINT", + "adrs", + "ampform", + "arange", + "asdict", + "asdot", + "astuple", + "autoupdate", + "bdist", + "bgcolor", + "cano", + "celltoolbar", + "codacy", + "codecov", + "codemirror", + "colab", + "commitlint", + "compwa", + "concat", + "conds", + "displaystyle", + "docnb", + "doctest", + "doctests", + "dotprint", + "dtype", + "einsum", + "epem", + "eqnarray", + "eval", + "evalf", + "expertsystem", + "figsize", + "flatte", + "fromdict", + "gellmann", + "genindex", + "getsource", + "gitpod", + "hankel", + "heli", + "heurisch", + "imag", + "ipykernel", + "isfunction", + "isinstance", + "jpsi", + "jupyterlab", + "kernelspec", + "linkcheck", + "macos", + "markdownlint", + "mathrm", + "maxdepth", + "meijerg", + "mimetype", + "modindex", + "nbconvert", + "nbformat", + "nbody", + "nbsphinx", + "nbstripout", + "ndarray", + "noqa", + "noreply", + "nrows", + "nsimplify", + "pandoc", + "permalinks", + "phsp", + "pids", + "precommit", + "prefactor", + "preorder", + "prereleased", + "pygments", + "pylance", + "pylintrc", + "pypi", + "pyproject", + "pyright", + "pytestconfig", + "rightarrow", + "risch", + "rtfd", + "sdist", + "seealso", + "sharex", + "startswith", + "stm's", + "sympify", + "sympy", + "theano", + "ticklabels", + "tolist", + "tqdm", + "unparse", + "unsrt", + "untracked", + "virtualenv", + "virtualenvwrapper", + "xaxis", + "xlabel", + "xlim", + "yaxis", + "ylabel", + "ylim" + ], + "language": "en-US", + "version": "0.2", + "words": [ + "blatt", + "bosonic", + "bottomness", + "breit", + "charmness", + "clebsch", + "combi", + "conda", + "dalitz", + "deepcopy", + "determinator", + "determinators", + "docstrings", + "façade", + "fermionic", + "flatté", + "functors", + "gell", + "gordan", + "graphviz", + "hankel", + "hashable", + "helicities", + "helicity", + "htmlcov", + "imap", + "ipynb", + "ipython", + "isort", + "isospin", + "itertools", + "jsonschema", + "jupyter", + "lambdify", + "lineshape", + "lineshapes", + "mathbb", + "mypy", + "nishijima", + "pydocstyle", + "pydot", + "pylint", + "pyplot", + "pytest", + "qrules", + "setuptools", + "spflueger", + "struct", + "tensorflow", + "tensorwaves", + "toctree", + "topness", + "venv", + "weisskopf", + "Zenodo" + ] } diff --git a/.editorconfig b/.editorconfig index c184b58e..dfbf43e6 100644 --- a/.editorconfig +++ b/.editorconfig @@ -8,14 +8,10 @@ insert_final_newline = true trim_trailing_whitespace = true [*.ipynb] -indent_size = 1 +indent_size = unset [*.{py,toml}] indent_size = 4 -# when adding words through vscode, this is the resulting output format -[.cspell.json] -indent_size = 4 - [setup.cfg] indent_size = 4 diff --git a/.flake8 b/.flake8 index 68479759..40c0eed9 100644 --- a/.flake8 +++ b/.flake8 @@ -1,55 +1,60 @@ [flake8] application-import-names = - qrules + qrules filename = - ./docs/*.py - ./src/*.py - ./tests/*.py + ./docs/*.py + ./src/*.py + ./tests/*.py exclude = - **/__pycache__ - **/_build - /typings/** + **/__pycache__ + **/_build + /typings/** ignore = - # False positive with attribute docstrings - B018 - # https://github.com/psf/black#slices - E203 - # allowed by black - E231 - # https://github.com/psf/black#line-length - E501 - # should be possible to use {} in latex strings - FS003 - # block quote ends without a blank line (black formatting) - RST201 - # missing pygments - RST299 - # unexpected indentation (related to google style docstring) - RST301 - # enforce type ignore with mypy error codes (combined --extend-select=TI100) - TI1 - # https://github.com/psf/black#line-breaks--binary-operators - W503 + # False positive with attribute docstrings + B018 + # https://github.com/psf/black#slices + E203 + # allowed by black + E231 + # already covered by black + E302 + # https://github.com/psf/black#line-length + E501 + # avoid any from __future__ import annotations, in combination with FI58 + FI + # should be possible to use {} in latex strings + FS003 + # block quote ends without a blank line (black formatting) + RST201 + # missing pygments + RST299 + # unexpected indentation (related to google style docstring) + RST301 + # enforce type ignore with mypy error codes (combined --extend-select=TI100) + TI1 + # https://github.com/psf/black#line-breaks--binary-operators + W503 extend-select = - TI100 + FI58 + TI100 per-file-ignores = - # casts with generics - src/qrules/topology.py:E731 + # casts with generics + src/qrules/topology.py:E731 rst-roles = - attr - cite - class - doc - download - file - func - meth - mod - ref + attr + cite + class + doc + download + file + func + meth + mod + ref rst-directives = - autolink-preface - automethod - deprecated - envvar - exception - seealso + autolink-preface + automethod + deprecated + envvar + exception + seealso diff --git a/.github/workflows/ci-docs.yml b/.github/workflows/ci-docs.yml index c44cce26..890a15c7 100644 --- a/.github/workflows/ci-docs.yml +++ b/.github/workflows/ci-docs.yml @@ -1,4 +1,6 @@ name: CI-docs +env: + PYTHONHASHSEED: "0" on: push: @@ -19,6 +21,14 @@ jobs: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v3 + - uses: actions/cache@v3 + with: + key: | + ${{ github.workflow }}-${{ github.job }}-${{ runner.os }}-${{ hashFiles('.constraints/py3.*.txt', 'setup.cfg', 'src/**') }} + path: | + ./docs/_build + ~/.cache/pip/ + ~/.sympy-cache*/ - uses: actions/setup-python@v4 with: python-version: "3.8" diff --git a/.github/workflows/ci-style.yml b/.github/workflows/ci-style.yml index 5265b078..da47a97d 100644 --- a/.github/workflows/ci-style.yml +++ b/.github/workflows/ci-style.yml @@ -5,10 +5,13 @@ on: branches: - main - epic/* + - "[0-9]+.[0-9]+.x" pull_request: branches: - main - epic/* + - "[0-9]+.[0-9]+.x" + workflow_dispatch: jobs: style: @@ -16,8 +19,15 @@ jobs: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v3 - - name: Set up Python 3.8 - uses: actions/setup-python@v4 + - uses: actions/cache@v3 + with: + key: | + ${{ github.workflow }}-${{ github.job }}-${{ runner.os }}-${{ hashFiles('.constraints/py3.*.txt', '.pre-commit-config.yaml') }} + path: | + .mypy_cache/ + ~/.cache/pip/ + ~/.cache/pre-commit/ + - uses: actions/setup-python@v4 with: python-version: "3.8" - name: Install dependencies @@ -25,12 +35,11 @@ jobs: python -m pip install --upgrade pip pip install -c .constraints/py3.8.txt -e .[sty] - name: Run non-local pre-commit hooks - run: | + run: |- pre-commit run flake8 -a --color always pre-commit run mypy -a --color always pre-commit run pylint -a --color always - name: Run pre-commit hooks that don't work on pre-commit.ci - # cspell:ignore editorconfig - run: | + run: |- pre-commit run editorconfig-checker -a --color always pre-commit run pyright -a --color always diff --git a/.github/workflows/ci-tests.yml b/.github/workflows/ci-tests.yml index 78fd6a3d..fe2da499 100644 --- a/.github/workflows/ci-tests.yml +++ b/.github/workflows/ci-tests.yml @@ -5,10 +5,13 @@ on: branches: - main - epic/* + - "[0-9]+.[0-9]+.x" pull_request: branches: - main - epic/* + - "[0-9]+.[0-9]+.x" + workflow_dispatch: jobs: codecov: @@ -16,12 +19,20 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-20.04] - python-version: ["3.7"] + os: + - ubuntu-20.04 + python-version: + - "3.7" steps: - - uses: actions/checkout@master - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + - uses: actions/checkout@v3 + - uses: actions/cache@v3 + with: + key: | + ${{ github.workflow }}-${{ github.job }}-${{ matrix.os }}-py${{ matrix.python-version }}-${{ hashFiles('.constraints/py3.*.txt', 'setup.cfg') }} + path: | + .pytest_cache + ~/.cache/pip/ + - uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install dependencies @@ -49,7 +60,6 @@ jobs: fail-fast: false matrix: os: - - macos-11 - ubuntu-20.04 python-version: - "3.6" @@ -58,20 +68,21 @@ jobs: - "3.9" - "3.10" exclude: - - os: macos-11 - python-version: "3.6" - - os: macos-11 - python-version: "3.8" - - os: macos-11 - python-version: "3.9" - - os: macos-11 - python-version: "3.10" - os: ubuntu-20.04 # coverage job python-version: "3.7" + include: + - os: macos-11 + python-version: "3.7" steps: - uses: actions/checkout@v3 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + - uses: actions/cache@v3 + with: + key: | + ${{ github.workflow }}-${{ github.job }}-${{ matrix.os }}-py${{ matrix.python-version }}-${{ hashFiles('.constraints/py3.*.txt', 'setup.cfg') }} + path: | + .pytest_cache + ~/.cache/pip/ + - uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install dependencies diff --git a/.github/workflows/linkcheck.yml b/.github/workflows/linkcheck.yml index 91673c89..0617a4e0 100644 --- a/.github/workflows/linkcheck.yml +++ b/.github/workflows/linkcheck.yml @@ -19,6 +19,12 @@ jobs: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v3 + - uses: actions/cache@v3 + with: + key: | + ${{ github.workflow }}-${{ github.job }}-${{ runner.os }}-${{ hashFiles('.constraints/py3.*.txt', 'setup.cfg') }} + path: | + ~/.cache/pip/ - uses: actions/setup-python@v4 with: python-version: "3.8" diff --git a/.github/workflows/pr-linting.yml b/.github/workflows/pr-linting.yml index bcc42de6..99c496f6 100644 --- a/.github/workflows/pr-linting.yml +++ b/.github/workflows/pr-linting.yml @@ -26,7 +26,7 @@ jobs: name: Check title runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v3 - name: Install Dependencies run: npm install @commitlint/config-conventional - uses: JulienKode/pull-request-name-linter-action@v0.5.0 diff --git a/.github/workflows/requirements-cron.yml b/.github/workflows/requirements-cron.yml index bf914193..b548e3ea 100644 --- a/.github/workflows/requirements-cron.yml +++ b/.github/workflows/requirements-cron.yml @@ -2,7 +2,7 @@ name: Requirements (scheduled) on: schedule: - - cron: "0 3 1 */1 *" + - cron: "0 3 7 */1 *" workflow_dispatch: jobs: diff --git a/.github/workflows/requirements-pr.yml b/.github/workflows/requirements-pr.yml index 16276ca8..09663b9a 100644 --- a/.github/workflows/requirements-pr.yml +++ b/.github/workflows/requirements-pr.yml @@ -18,8 +18,9 @@ jobs: fetch-depth: 0 - name: Determine dependency changes run: | - DIFF="$(git diff origin/main --color -- .constraints .pre-commit-config.yaml setup.cfg)" - echo ::set-output name=diff::"${DIFF}" + echo 'diff<> $GITHUB_OUTPUT + git diff origin/main --color -- .constraints .pre-commit-config.yaml setup.cfg >> $GITHUB_OUTPUT + echo 'EOF' >> $GITHUB_OUTPUT id: diff outputs: diff: ${{ steps.diff.outputs.diff }} diff --git a/.gitpod.yml b/.gitpod.yml index 12c9a00a..3531447a 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -23,6 +23,9 @@ vscode: - executablebookproject.myst-highlight - github.vscode-pull-request-github - joaompinto.vscode-graphviz + - ms-python.flake8 + - ms-python.isort + - ms-python.pylint - ms-python.python - ms-python.vscode-pylance - ms-vsliveshare.vsliveshare diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index fce1a314..7fb560cf 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,7 +17,7 @@ repos: - id: check-useless-excludes - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.3.0 + rev: v4.4.0 hooks: - id: check-ast - id: check-case-conflict @@ -31,8 +31,7 @@ repos: exclude: > (?x)^( .*\.bib| - .*\.svg| - \.cspell\.json + .*\.svg )$ - id: mixed-line-ending - id: name-tests-test @@ -41,7 +40,7 @@ repos: - id: trailing-whitespace - repo: https://github.com/ComPWA/repo-maintenance - rev: 0.0.149 + rev: 0.0.159 hooks: - id: check-dev-files args: @@ -65,7 +64,7 @@ repos: - id: blacken-docs - repo: https://github.com/streetsidesoftware/cspell-cli - rev: v6.13.0 + rev: v6.14.1 hooks: - id: cspell @@ -82,7 +81,7 @@ repos: rev: 2.6.1 hooks: - id: editorconfig-checker - name: editorconfig-checker + name: editorconfig exclude: > (?x)^( .*\.ipynb| @@ -153,6 +152,7 @@ repos: metadata.toc-showtags metadata.varInspector metadata.vscode + - repo: https://github.com/pre-commit/mirrors-prettier rev: v3.0.0-alpha.4 hooks: @@ -177,12 +177,12 @@ repos: - python - repo: https://github.com/ComPWA/mirrors-pyright - rev: v1.1.277 + rev: v1.1.281 hooks: - id: pyright - repo: https://github.com/asottile/pyupgrade - rev: v3.2.0 + rev: v3.2.2 hooks: - id: pyupgrade args: diff --git a/.prettierignore b/.prettierignore index 02c0530e..6b1d0bfa 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,2 +1 @@ -.cspell.json LICENSE diff --git a/.pydocstyle b/.pydocstyle index 285e8c55..3f5277ab 100644 --- a/.pydocstyle +++ b/.pydocstyle @@ -1,11 +1,11 @@ [pydocstyle] convention = google add_ignore = - D101, # class docstring - D102, # method docstring - D103, # function docstring - D105, # magic method docstring - D107, # init docstring - D203, # conflicts with D211 - D213, # multi-line docstring should start at the second line - D407, # missing dashed underline after section + D101, # class docstring + D102, # method docstring + D103, # function docstring + D105, # magic method docstring + D107, # init docstring + D203, # conflicts with D211 + D213, # multi-line docstring should start at the second line + D407, # missing dashed underline after section diff --git a/.vscode/extensions.json b/.vscode/extensions.json index a8980d6e..dafc8063 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -10,6 +10,9 @@ "executablebookproject.myst-highlight", "github.vscode-pull-request-github", "joaompinto.vscode-graphviz", + "ms-python.flake8", + "ms-python.isort", + "ms-python.pylint", "ms-python.python", "ms-python.vscode-pylance", "ms-vsliveshare.vsliveshare", diff --git a/.vscode/settings.json b/.vscode/settings.json index 9cddda3c..cd59aa82 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -36,12 +36,15 @@ "**/.git/**": true, "**/.tox/**": true }, + "flake8.importStrategy": "fromEnvironment", "git.rebaseWhenSync": true, "github-actions.workflows.pinned.workflows": [ ".github/workflows/linkcheck.yml", ".github/workflows/ci-tests.yml", ".github/workflows/ci-docs.yml" ], + "isort.check": true, + "isort.importStrategy": "fromEnvironment", "json.schemas": [ { "fileMatch": ["*particle*.json"], @@ -52,17 +55,18 @@ "url": "https://zenodo.org/schemas/deposits/records/legacyrecord.json" } ], + "pylint.importStrategy": "fromEnvironment", "python.analysis.autoImportCompletions": false, "python.analysis.diagnosticMode": "workspace", + "python.analysis.typeCheckingMode": "strict", "python.formatting.provider": "black", "python.linting.banditEnabled": false, "python.linting.enabled": true, - "python.linting.flake8Enabled": true, + "python.linting.flake8Enabled": false, "python.linting.mypyEnabled": true, "python.linting.pydocstyleEnabled": true, "python.linting.pylamaEnabled": false, - "python.linting.pylintCategorySeverity.refactor": "Information", - "python.linting.pylintEnabled": true, + "python.linting.pylintEnabled": false, "python.testing.pytestArgs": ["--color=no", "--no-cov"], "python.testing.pytestEnabled": true, "python.testing.unittestEnabled": false, diff --git a/docs/_extend_docstrings.py b/docs/_extend_docstrings.py index fc2d02e1..acda9afc 100644 --- a/docs/_extend_docstrings.py +++ b/docs/_extend_docstrings.py @@ -115,7 +115,7 @@ def _graphviz_to_image( # pylint: disable=too-many-arguments options = {} global _GRAPHVIZ_COUNTER # pylint: disable=global-statement output_file = f"graphviz_{_GRAPHVIZ_COUNTER}" - _GRAPHVIZ_COUNTER += 1 + _GRAPHVIZ_COUNTER += 1 # pyright: ignore[reportConstantRedefinition] graphviz.Source(dot).render(f"{_IMAGE_DIR}/{output_file}", format=format) restructuredtext = "\n" if label: diff --git a/docs/_relink_references.py b/docs/_relink_references.py index f10b2b21..fc7c1daa 100644 --- a/docs/_relink_references.py +++ b/docs/_relink_references.py @@ -58,7 +58,7 @@ def _new_type_to_xref( target: str, - env: "BuildEnvironment" = None, + env: "BuildEnvironment" = None, # type: ignore[assignment] suppress_prefix: bool = False, ) -> "pending_xref": import sphinx diff --git a/docs/conf.py b/docs/conf.py index 2c7da21e..d56b5248 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -46,11 +46,16 @@ author = "Common Partial Wave Analysis" # https://docs.readthedocs.io/en/stable/builds.html -BRANCH = os.environ.get("READTHEDOCS_VERSION", "stable") -if BRANCH == "latest": - BRANCH = "main" -if re.match(r"^\d+$", BRANCH): # PR preview - BRANCH = "stable" +def get_branch_name() -> str: + branch_name = os.environ.get("READTHEDOCS_VERSION", "stable") + if branch_name == "latest": + return "main" + if re.match(r"^\d+$", branch_name): # PR preview + return "stable" + return branch_name + + +BRANCH = get_branch_name() try: __VERSION = get_package_version(PACKAGE) @@ -402,7 +407,7 @@ def names(children, context, role, **kwargs): # type: ignore[no-untyped-def] return et_al(**kwargs)[formatted_names].format_data(context) -class MyStyle(UnsrtStyle): +class MyStyle(UnsrtStyle): # pyright: ignore[reportUntypedBaseClass] def __init__(self) -> None: super().__init__(abbreviate_names=True) diff --git a/pyrightconfig.json b/pyrightconfig.json index 4e24761a..8fca337b 100644 --- a/pyrightconfig.json +++ b/pyrightconfig.json @@ -1,11 +1,34 @@ { - "exclude": [".git", ".tox", "docs/_build"], - "include": ["docs", "src", "tests"], + "exclude": [ + "**/__pycache__", + "**/_build", + "**/.git", + "**/.ipynb_checkpoints", + "**/.mypy_cache", + "**/.pytest_cache", + "**/.tox" + ], "reportGeneralTypeIssues": false, + "reportIncompatibleMethodOverride": false, + "reportMissingParameterType": false, + "reportMissingTypeArgument": false, + "reportMissingTypeStubs": false, + "reportOverlappingOverload": false, "reportPrivateImportUsage": false, + "reportPrivateUsage": false, "reportUnboundVariable": false, + "reportUnknownArgumentType": false, + "reportUnknownLambdaType": false, + "reportUnknownMemberType": false, + "reportUnknownParameterType": false, + "reportUnknownVariableType": false, + "reportUnnecessaryComparison": false, + "reportUnnecessaryContains": false, + "reportUnnecessaryIsInstance": false, + "reportUntypedFunctionDecorator": false, "reportUnusedClass": true, "reportUnusedFunction": true, "reportUnusedImport": true, - "reportUnusedVariable": true + "reportUnusedVariable": true, + "typeCheckingMode": "strict" } diff --git a/setup.cfg b/setup.cfg index daa56586..380c52ac 100644 --- a/setup.cfg +++ b/setup.cfg @@ -61,7 +61,6 @@ all = %(viz)s doc = %(viz)s - jupyter importlib-metadata; python_version <"3.8.0" myst-nb >=0.14; python_version >="3.8.0" # nb_ configuration prefixes myst-nb <0.14; python_version <"3.8.0" @@ -95,6 +94,7 @@ flake8 = flake8-bugbear flake8-builtins flake8-comprehensions + flake8-future-import flake8-pytest-style flake8-rst-docstrings flake8-type-ignore; python_version >="3.8.0" @@ -117,16 +117,18 @@ sty = %(lint)s %(test)s # for pytest type hints pre-commit >=1.4.0 -dev = - %(all)s - %(doc)s - %(sty)s - %(test)s +jupyter = aquirdturtle-collapsible-headings jupyterlab jupyterlab-code-formatter jupyterlab-myst; python_version >="3.7.0" jupyterlab-server <2.16; python_version <"3.8.0" # https://github.com/ComPWA/tensorwaves/actions/runs/3366807875/jobs/5583673530#step:3:74 +dev = + %(all)s + %(doc)s + %(jupyter)s + %(sty)s + %(test)s sphinx-autobuild tox >=1.9 # for skip_install, use_develop virtualenv <20.16; python_version <"3.8.0" # https://github.com/ComPWA/qrules/runs/7718388093?check_suite_focus=true#step:3:86 diff --git a/src/qrules/_system_control.py b/src/qrules/_system_control.py index ebd3c580..77d52ac2 100644 --- a/src/qrules/_system_control.py +++ b/src/qrules/_system_control.py @@ -112,7 +112,7 @@ def create_interaction_properties( converted_solution = {k.__name__: v for k, v in qn_solution.items()} kw_args = { x.name: converted_solution[x.name] - for x in attrs.fields(InteractionProperties) + for x in attrs.fields(InteractionProperties) # type: ignore[arg-type] if x.name in converted_solution } diff --git a/src/qrules/conservation_rules.py b/src/qrules/conservation_rules.py index bea36910..50cb1366 100644 --- a/src/qrules/conservation_rules.py +++ b/src/qrules/conservation_rules.py @@ -695,8 +695,8 @@ def spin_conservation( # otherwise don't use S and L and just check magnitude # are integral or non integral on both sides return ( - sum(float(x.spin_magnitude) for x in ingoing_spins).is_integer() - == sum(float(x.spin_magnitude) for x in outgoing_spins).is_integer() + sum(float(x.spin_magnitude) for x in ingoing_spins).is_integer() # type: ignore[union-attr] + == sum(float(x.spin_magnitude) for x in outgoing_spins).is_integer() # type: ignore[union-attr] ) @@ -732,8 +732,8 @@ def spin_magnitude_conservation( # otherwise don't use S and L and just check magnitude # are integral or non integral on both sides return ( - sum(float(x.spin_magnitude) for x in ingoing_spins).is_integer() - == sum(float(x.spin_magnitude) for x in outgoing_spins).is_integer() + sum(float(x.spin_magnitude) for x in ingoing_spins).is_integer() # type: ignore[union-attr] + == sum(float(x.spin_magnitude) for x in outgoing_spins).is_integer() # type: ignore[union-attr] ) diff --git a/src/qrules/solving.py b/src/qrules/solving.py index bfb27493..b0f24678 100644 --- a/src/qrules/solving.py +++ b/src/qrules/solving.py @@ -825,7 +825,9 @@ def rule_passes(self) -> Dict[Tuple[int, Rule], int]: ) -class _GraphElementConstraint(Generic[_QNType], Constraint): +class _GraphElementConstraint( + Generic[_QNType], Constraint # pyright: ignore[reportUntypedBaseClass] +): """Wrapper class of the python-constraint Constraint class. This allows a customized definition of conservation rules, and hence a cleaner user @@ -944,7 +946,9 @@ def __update_variable_lists( ) -class _ConservationRuleConstraintWrapper(Constraint): +class _ConservationRuleConstraintWrapper( + Constraint # pyright: ignore[reportUntypedBaseClass] +): """Wrapper class of the python-constraint Constraint class. This allows a customized definition of conservation rules, and hence a cleaner user diff --git a/src/qrules/transition.py b/src/qrules/transition.py index ef892821..2d2e7823 100644 --- a/src/qrules/transition.py +++ b/src/qrules/transition.py @@ -229,7 +229,7 @@ def __init__( # pylint: disable=too-many-arguments, too-many-branches, too-many allowed_intermediate_particles: Optional[List[str]] = None, interaction_type_settings: Dict[ InteractionType, Tuple[EdgeSettings, NodeSettings] - ] = None, + ] = None, # type: ignore[assignment] formalism: str = "helicity", topology_building: str = "isobar", solving_mode: SolvingMode = SolvingMode.FAST, diff --git a/tests/unit/test_particle.py b/tests/unit/test_particle.py index e505b235..02ef44c7 100644 --- a/tests/unit/test_particle.py +++ b/tests/unit/test_particle.py @@ -1,6 +1,7 @@ # pylint: disable=eval-used redefined-outer-name # pyright: reportUnusedImport=false import logging +import sys from copy import deepcopy import pytest @@ -253,7 +254,9 @@ def test_find(self, particle_database: ParticleCollection): ("gama", "'gamma', 'Sigma0', 'Sigma-', 'Sigma+', 'Lambda'"), ( "omega", - "'omega(782)', 'omega(1420)', 'omega(3)(1670)', 'omega(1650)'", + "'omega(782)', 'omega(1420)', 'omega(3)(1670)', 'omega(1650)'" + if sys.version_info < (3, 7) + else "'omega(782)', 'omega(3)(1670)', 'omega(1650)'", ), ("p~~", "'p~'"), ("~", "'p~', 'n~'"), diff --git a/tests/unit/test_pdg.py b/tests/unit/test_pdg.py index bcf3e59f..a6d93b34 100644 --- a/tests/unit/test_pdg.py +++ b/tests/unit/test_pdg.py @@ -34,8 +34,9 @@ def test_maybe_qq(): def test_pdg_size(pdg: ParticleCollection): assert len(pdg) in { 512, # particle==0.13 - 519, # particle==0.14, 0.15 - 531, # particle==0.16 + 519, # particle==0.14-0.15 + 531, # particle==0.16-0.20 + 530, # particle==0.21 } assert len(pdg.filter(lambda p: "~" in p.name)) in { 165, # particle==0.13 diff --git a/tests/unit/test_system_control.py b/tests/unit/test_system_control.py index 87292191..15be8d5c 100644 --- a/tests/unit/test_system_control.py +++ b/tests/unit/test_system_control.py @@ -1,4 +1,5 @@ # pylint: disable=protected-access +import sys from copy import deepcopy from typing import Dict, List @@ -148,7 +149,9 @@ def test_external_edge_initialization( { EdgeQuantumNumbers.pid: 411, EdgeQuantumNumbers.mass: 1.86966, - EdgeQuantumNumbers.width: 6.33e-13, + EdgeQuantumNumbers.width: 6.33e-13 + if sys.version_info < (3, 7) + else 6.37e-13, EdgeQuantumNumbers.spin_magnitude: 0.0, EdgeQuantumNumbers.spin_projection: 0, EdgeQuantumNumbers.charge: 1,