diff --git a/.constraints/py3.10.txt b/.constraints/py3.10.txt index 4a43d36..ce11638 100644 --- a/.constraints/py3.10.txt +++ b/.constraints/py3.10.txt @@ -2,160 +2,143 @@ # This file is autogenerated by pip-compile with Python 3.10 # by the following command: # -# pip-compile --extra=dev --no-annotate --output-file=.constraints/py3.10.txt --strip-extras setup.py +# pip-compile --extra=dev --no-annotate --output-file=.constraints/py3.10.txt --resolver=backtracking --strip-extras # accessible-pygments==0.0.4 aiofiles==22.1.0 aiosqlite==0.19.0 alabaster==0.7.13 -anyio==3.6.2 +anyio==3.7.1 aquirdturtle-collapsible-headings==3.1.0 argon2-cffi==21.3.0 argon2-cffi-bindings==21.2.0 arrow==1.2.3 -astroid==2.15.4 asttokens==2.2.1 attrs==23.1.0 -awkward==2.2.0 -awkward-cpp==15 +awkward==2.3.1 +awkward-cpp==21 babel==2.12.1 backcall==0.2.0 beautifulsoup4==4.12.2 black==23.3.0 bleach==6.0.0 -cachetools==5.3.0 +cachetools==5.3.1 certifi==2023.5.7 cffi==1.15.1 cfgv==3.3.1 chardet==5.1.0 -charset-normalizer==3.1.0 -click==8.1.3 +charset-normalizer==3.2.0 +click==8.1.4 colorama==0.4.6 comm==0.1.3 -contourpy==1.0.7 -coverage==7.2.5 +contourpy==1.1.0 +coverage==7.2.7 cycler==0.11.0 debugpy==1.6.7 decorator==5.1.1 defusedxml==0.7.1 -dill==0.3.6 distlib==0.3.6 docutils==0.19 -exceptiongroup==1.1.1 -execnet==1.9.0 +exceptiongroup==1.1.2 +execnet==2.0.2 executing==1.2.0 -fastjsonschema==2.16.3 -filelock==3.12.0 -flake8==6.0.0 ; python_version >= "3.8.0" -flake8-blind-except==0.2.1 ; python_version >= "3.8.0" -flake8-bugbear==23.5.9 ; python_version >= "3.8.0" -flake8-builtins==2.1.0 ; python_version >= "3.8.0" -flake8-comprehensions==3.12.0 ; python_version >= "3.8.0" -flake8-plugin-utils==1.3.2 -flake8-pytest-style==1.7.2 ; python_version >= "3.8.0" -flake8-rst-docstrings==0.3.0 ; python_version >= "3.8.0" -flake8-type-ignore==0.1.0.post2 ; python_version >= "3.8.0" -flake8-use-fstring==1.4 ; python_version >= "3.8.0" -fonttools==4.39.4 +fastjsonschema==2.17.1 +filelock==3.12.2 +fonttools==4.40.0 fqdn==1.5.1 gprof2dot==2022.7.29 greenlet==2.0.2 identify==2.5.24 idna==3.4 imagesize==1.4.1 -importlib-metadata==6.6.0 +importlib-metadata==6.8.0 iniconfig==2.0.0 -ipykernel==6.23.0 -ipython==8.13.2 +ipykernel==6.24.0 +ipython==8.14.0 ipython-genutils==0.2.0 -ipywidgets==8.0.6 +ipywidgets==8.0.7 isoduration==20.11.0 -isort==5.12.0 jedi==0.18.2 jinja2==3.1.2 -json5==0.9.11 -jsonpointer==2.3 -jsonschema==4.17.3 +json5==0.9.14 +jsonpointer==2.4 +jsonschema==4.18.0 +jsonschema-specifications==2023.6.1 jupyter-cache==0.6.1 -jupyter-client==8.2.0 -jupyter-core==5.3.0 +jupyter-client==8.3.0 +jupyter-core==5.3.1 jupyter-events==0.6.3 -jupyter-server==2.5.0 +jupyter-server==2.7.0 jupyter-server-fileid==0.9.0 jupyter-server-terminals==0.4.4 jupyter-server-ydoc==0.8.0 jupyter-ydoc==0.2.4 -jupyterlab==3.6.3 -jupyterlab-code-formatter==2.0.0 -jupyterlab-myst==1.1.3 ; python_version >= "3.7.0" +jupyterlab==3.6.5 +jupyterlab-code-formatter==2.2.1 +jupyterlab-myst==2.0.1 ; python_version >= "3.7.0" jupyterlab-pygments==0.2.2 -jupyterlab-server==2.22.1 -jupyterlab-widgets==3.0.7 +jupyterlab-server==2.23.0 +jupyterlab-widgets==3.0.8 kiwisolver==1.4.4 -lazy-object-proxy==1.9.0 livereload==2.6.3 markdown-it-py==2.2.0 -markupsafe==2.1.2 -matplotlib==3.7.1 +markupsafe==2.1.3 +matplotlib==3.7.2 matplotlib-inline==0.1.6 -mccabe==0.7.0 mdit-py-plugins==0.3.5 mdurl==0.1.2 -mistune==2.0.5 -mypy==1.3.0 +mistune==3.0.1 +mypy==1.4.1 mypy-extensions==1.0.0 myst-nb==0.17.2 myst-parser==0.18.1 nbclassic==1.0.0 nbclient==0.7.4 -nbconvert==7.4.0 -nbformat==5.8.0 +nbconvert==7.6.0 +nbformat==5.9.1 nest-asyncio==1.5.6 nodeenv==1.8.0 notebook==6.5.4 notebook-shim==0.2.3 -numpy==1.24.3 +numpy==1.25.1 +overrides==7.3.1 packaging==23.1 -pandas==2.0.1 +pandas==2.0.3 pandocfilters==1.5.0 parso==0.8.3 pathspec==0.11.1 -pep8-naming==0.13.3 ; python_version >= "3.8.0" pexpect==4.8.0 pickleshare==0.7.5 -pillow==9.5.0 -platformdirs==3.5.1 -pluggy==1.0.0 -pre-commit==3.3.1 -prometheus-client==0.16.0 -prompt-toolkit==3.0.38 +pillow==10.0.0 +platformdirs==3.8.1 +pluggy==1.2.0 +pre-commit==3.3.3 +prometheus-client==0.17.0 +prompt-toolkit==3.0.39 psutil==5.9.5 ptyprocess==0.7.0 pure-eval==0.2.2 -pycodestyle==2.10.0 pycparser==2.21 pydata-sphinx-theme==0.13.3 -pydeps==1.12.3 -pydocstyle==6.3.0 -pyflakes==3.0.1 +pydeps==1.12.8 pygments==2.15.1 -pylint==2.17.4 pyparsing==3.0.9 -pyproject-api==1.5.1 -pyrsistent==0.19.3 -pytest==7.3.1 -pytest-cov==4.0.0 +pyproject-api==1.5.3 +pytest==7.4.0 +pytest-cov==4.1.0 pytest-profiling==1.7.0 -pytest-xdist==3.3.0 +pytest-xdist==3.3.1 python-dateutil==2.8.2 python-json-logger==2.0.7 pytz==2023.3 pyyaml==6.0 -pyzmq==25.0.2 -requests==2.30.0 -restructuredtext-lint==1.4.0 +pyzmq==25.1.0 +referencing==0.29.1 +requests==2.31.0 rfc3339-validator==0.1.4 rfc3986-validator==0.1.1 +rpds-py==0.8.10 +ruff==0.0.277 ; python_version >= "3.7.0" send2trash==1.8.2 six==1.16.0 sniffio==1.3.0 @@ -174,34 +157,32 @@ sphinxcontrib-htmlhelp==2.0.1 sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==1.0.3 sphinxcontrib-serializinghtml==1.1.5 -sqlalchemy==2.0.13 +sqlalchemy==2.0.18 stack-data==0.6.2 -stdlib-list==0.8.0 +stdlib-list==0.9.0 tabulate==0.9.0 terminado==0.17.1 tinycss2==1.2.1 tomli==2.0.1 -tomlkit==0.11.8 -tornado==6.3.1 -tox==4.5.1 +tornado==6.3.2 +tox==4.6.4 traitlets==5.9.0 -types-setuptools==67.7.0.2 -typing-extensions==4.5.0 +types-setuptools==68.0.0.1 +typing-extensions==4.7.1 tzdata==2023.3 -uproot==5.0.7 -uri-template==1.2.0 -urllib3==2.0.2 -virtualenv==20.23.0 +uproot==5.0.10 +uri-template==1.3.0 +urllib3==2.0.3 +virtualenv==20.23.1 wcwidth==0.2.6 webcolors==1.13 webencodings==0.5.1 -websocket-client==1.5.1 +websocket-client==1.6.1 wheel==0.40.0 -widgetsnbextension==4.0.7 -wrapt==1.15.0 +widgetsnbextension==4.0.8 y-py==0.5.9 ypy-websocket==0.8.2 ; python_version >= "3.7.0" -zipp==3.15.0 +zipp==3.16.0 # The following packages are considered to be unsafe in a requirements file: # setuptools diff --git a/.constraints/py3.11.txt b/.constraints/py3.11.txt index 7e740f7..ddd1cd4 100644 --- a/.constraints/py3.11.txt +++ b/.constraints/py3.11.txt @@ -2,159 +2,142 @@ # This file is autogenerated by pip-compile with Python 3.11 # by the following command: # -# pip-compile --extra=dev --no-annotate --output-file=.constraints/py3.11.txt --strip-extras setup.py +# pip-compile --extra=dev --no-annotate --output-file=.constraints/py3.11.txt --resolver=backtracking --strip-extras # accessible-pygments==0.0.4 aiofiles==22.1.0 aiosqlite==0.19.0 alabaster==0.7.13 -anyio==3.6.2 +anyio==3.7.1 aquirdturtle-collapsible-headings==3.1.0 argon2-cffi==21.3.0 argon2-cffi-bindings==21.2.0 arrow==1.2.3 -astroid==2.15.4 asttokens==2.2.1 attrs==23.1.0 -awkward==2.2.0 -awkward-cpp==15 +awkward==2.3.1 +awkward-cpp==21 babel==2.12.1 backcall==0.2.0 beautifulsoup4==4.12.2 black==23.3.0 bleach==6.0.0 -cachetools==5.3.0 +cachetools==5.3.1 certifi==2023.5.7 cffi==1.15.1 cfgv==3.3.1 chardet==5.1.0 -charset-normalizer==3.1.0 -click==8.1.3 +charset-normalizer==3.2.0 +click==8.1.4 colorama==0.4.6 comm==0.1.3 -contourpy==1.0.7 -coverage==7.2.5 +contourpy==1.1.0 +coverage==7.2.7 cycler==0.11.0 debugpy==1.6.7 decorator==5.1.1 defusedxml==0.7.1 -dill==0.3.6 distlib==0.3.6 docutils==0.19 -execnet==1.9.0 +execnet==2.0.2 executing==1.2.0 -fastjsonschema==2.16.3 -filelock==3.12.0 -flake8==6.0.0 ; python_version >= "3.8.0" -flake8-blind-except==0.2.1 ; python_version >= "3.8.0" -flake8-bugbear==23.5.9 ; python_version >= "3.8.0" -flake8-builtins==2.1.0 ; python_version >= "3.8.0" -flake8-comprehensions==3.12.0 ; python_version >= "3.8.0" -flake8-plugin-utils==1.3.2 -flake8-pytest-style==1.7.2 ; python_version >= "3.8.0" -flake8-rst-docstrings==0.3.0 ; python_version >= "3.8.0" -flake8-type-ignore==0.1.0.post2 ; python_version >= "3.8.0" -flake8-use-fstring==1.4 ; python_version >= "3.8.0" -fonttools==4.39.4 +fastjsonschema==2.17.1 +filelock==3.12.2 +fonttools==4.40.0 fqdn==1.5.1 gprof2dot==2022.7.29 greenlet==2.0.2 identify==2.5.24 idna==3.4 imagesize==1.4.1 -importlib-metadata==6.6.0 +importlib-metadata==6.8.0 iniconfig==2.0.0 -ipykernel==6.23.0 -ipython==8.13.2 +ipykernel==6.24.0 +ipython==8.14.0 ipython-genutils==0.2.0 -ipywidgets==8.0.6 +ipywidgets==8.0.7 isoduration==20.11.0 -isort==5.12.0 jedi==0.18.2 jinja2==3.1.2 -json5==0.9.11 -jsonpointer==2.3 -jsonschema==4.17.3 +json5==0.9.14 +jsonpointer==2.4 +jsonschema==4.18.0 +jsonschema-specifications==2023.6.1 jupyter-cache==0.6.1 -jupyter-client==8.2.0 -jupyter-core==5.3.0 +jupyter-client==8.3.0 +jupyter-core==5.3.1 jupyter-events==0.6.3 -jupyter-server==2.5.0 +jupyter-server==2.7.0 jupyter-server-fileid==0.9.0 jupyter-server-terminals==0.4.4 jupyter-server-ydoc==0.8.0 jupyter-ydoc==0.2.4 -jupyterlab==3.6.3 -jupyterlab-code-formatter==2.0.0 -jupyterlab-myst==1.1.3 ; python_version >= "3.7.0" +jupyterlab==3.6.5 +jupyterlab-code-formatter==2.2.1 +jupyterlab-myst==2.0.1 ; python_version >= "3.7.0" jupyterlab-pygments==0.2.2 -jupyterlab-server==2.22.1 -jupyterlab-widgets==3.0.7 +jupyterlab-server==2.23.0 +jupyterlab-widgets==3.0.8 kiwisolver==1.4.4 -lazy-object-proxy==1.9.0 livereload==2.6.3 markdown-it-py==2.2.0 -markupsafe==2.1.2 -matplotlib==3.7.1 +markupsafe==2.1.3 +matplotlib==3.7.2 matplotlib-inline==0.1.6 -mccabe==0.7.0 mdit-py-plugins==0.3.5 mdurl==0.1.2 -mistune==2.0.5 -mypy==1.3.0 +mistune==3.0.1 +mypy==1.4.1 mypy-extensions==1.0.0 myst-nb==0.17.2 myst-parser==0.18.1 nbclassic==1.0.0 nbclient==0.7.4 -nbconvert==7.4.0 -nbformat==5.8.0 +nbconvert==7.6.0 +nbformat==5.9.1 nest-asyncio==1.5.6 nodeenv==1.8.0 notebook==6.5.4 notebook-shim==0.2.3 -numpy==1.24.3 +numpy==1.25.1 +overrides==7.3.1 packaging==23.1 -pandas==2.0.1 +pandas==2.0.3 pandocfilters==1.5.0 parso==0.8.3 pathspec==0.11.1 -pep8-naming==0.13.3 ; python_version >= "3.8.0" pexpect==4.8.0 pickleshare==0.7.5 -pillow==9.5.0 -platformdirs==3.5.1 -pluggy==1.0.0 -pre-commit==3.3.1 -prometheus-client==0.16.0 -prompt-toolkit==3.0.38 +pillow==10.0.0 +platformdirs==3.8.1 +pluggy==1.2.0 +pre-commit==3.3.3 +prometheus-client==0.17.0 +prompt-toolkit==3.0.39 psutil==5.9.5 ptyprocess==0.7.0 pure-eval==0.2.2 -pycodestyle==2.10.0 pycparser==2.21 pydata-sphinx-theme==0.13.3 -pydeps==1.12.3 -pydocstyle==6.3.0 -pyflakes==3.0.1 +pydeps==1.12.8 pygments==2.15.1 -pylint==2.17.4 pyparsing==3.0.9 -pyproject-api==1.5.1 -pyrsistent==0.19.3 -pytest==7.3.1 -pytest-cov==4.0.0 +pyproject-api==1.5.3 +pytest==7.4.0 +pytest-cov==4.1.0 pytest-profiling==1.7.0 -pytest-xdist==3.3.0 +pytest-xdist==3.3.1 python-dateutil==2.8.2 python-json-logger==2.0.7 pytz==2023.3 pyyaml==6.0 -pyzmq==25.0.2 -requests==2.30.0 -restructuredtext-lint==1.4.0 +pyzmq==25.1.0 +referencing==0.29.1 +requests==2.31.0 rfc3339-validator==0.1.4 rfc3986-validator==0.1.1 +rpds-py==0.8.10 +ruff==0.0.277 ; python_version >= "3.7.0" send2trash==1.8.2 six==1.16.0 sniffio==1.3.0 @@ -173,33 +156,31 @@ sphinxcontrib-htmlhelp==2.0.1 sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==1.0.3 sphinxcontrib-serializinghtml==1.1.5 -sqlalchemy==2.0.13 +sqlalchemy==2.0.18 stack-data==0.6.2 -stdlib-list==0.8.0 +stdlib-list==0.9.0 tabulate==0.9.0 terminado==0.17.1 tinycss2==1.2.1 -tomlkit==0.11.8 -tornado==6.3.1 -tox==4.5.1 +tornado==6.3.2 +tox==4.6.4 traitlets==5.9.0 -types-setuptools==67.7.0.2 -typing-extensions==4.5.0 +types-setuptools==68.0.0.1 +typing-extensions==4.7.1 tzdata==2023.3 -uproot==5.0.7 -uri-template==1.2.0 -urllib3==2.0.2 -virtualenv==20.23.0 +uproot==5.0.10 +uri-template==1.3.0 +urllib3==2.0.3 +virtualenv==20.23.1 wcwidth==0.2.6 webcolors==1.13 webencodings==0.5.1 -websocket-client==1.5.1 +websocket-client==1.6.1 wheel==0.40.0 -widgetsnbextension==4.0.7 -wrapt==1.15.0 +widgetsnbextension==4.0.8 y-py==0.5.9 ypy-websocket==0.8.2 ; python_version >= "3.7.0" -zipp==3.15.0 +zipp==3.16.0 # The following packages are considered to be unsafe in a requirements file: # setuptools diff --git a/.constraints/py3.6.txt b/.constraints/py3.6.txt index fecf9db..e974c4e 100644 --- a/.constraints/py3.6.txt +++ b/.constraints/py3.6.txt @@ -2,14 +2,13 @@ # This file is autogenerated by pip-compile with python 3.6 # To update, run: # -# pip-compile --extra=dev --no-annotate --output-file=.constraints/py3.6.txt --strip-extras setup.py +# pip-compile --extra=dev --no-annotate --output-file=.constraints/py3.6.txt --strip-extras # alabaster==0.7.13 anyio==3.6.2 aquirdturtle-collapsible-headings==3.1.0 argon2-cffi==21.3.0 argon2-cffi-bindings==21.2.0 -astroid==2.11.7 async-generator==1.10 attrs==21.4.0 awkward==1.9.0 @@ -30,7 +29,6 @@ cycler==0.11.0 dataclasses==0.8 decorator==5.1.1 defusedxml==0.7.1 -dill==0.3.4 distlib==0.3.6 docutils==0.16 entrypoints==0.4 @@ -51,10 +49,9 @@ ipykernel==5.5.6 ipython==7.16.3 ipython-genutils==0.2.0 ipywidgets==7.7.5 -isort==5.10.1 jedi==0.17.2 jinja2==3.0.3 -json5==0.9.11 +json5==0.9.14 jsonschema==3.2.0 jupyter-cache==0.4.3 jupyter-client==7.1.2 @@ -68,12 +65,10 @@ jupyterlab-pygments==0.1.2 jupyterlab-server==2.10.3 jupyterlab-widgets==1.1.4 kiwisolver==1.3.1 -lazy-object-proxy==1.7.1 livereload==2.6.3 markdown-it-py==1.1.0 markupsafe==2.0.1 matplotlib==3.3.4 -mccabe==0.7.0 mdit-py-plugins==0.2.8 mistune==0.8.4 mypy==0.971 @@ -100,17 +95,15 @@ pillow==8.4.0 platformdirs==2.4.0 pluggy==1.0.0 pre-commit==2.17.0 -prometheus-client==0.16.0 +prometheus-client==0.17.0 prompt-toolkit==3.0.36 ptyprocess==0.7.0 py==1.11.0 pycparser==2.21 pydata-sphinx-theme==0.7.2 -pydeps==1.12.3 -pydocstyle==6.3.0 +pydeps==1.12.8 pygments==2.14.0 -pylint==2.13.9 -pyparsing==3.0.9 +pyparsing==3.1.0 pyrsistent==0.18.0 pytest==7.0.1 pytest-cov==4.0.0 @@ -119,7 +112,7 @@ pytest-xdist==3.0.2 python-dateutil==2.8.2 pytz==2023.3 pyyaml==6.0 -pyzmq==25.0.2 +pyzmq==25.1.0 requests==2.27.1 send2trash==1.8.2 six==1.16.0 @@ -140,7 +133,7 @@ sphinxcontrib-htmlhelp==2.0.0 sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==1.0.3 sphinxcontrib-serializinghtml==1.1.5 -sqlalchemy==1.4.48 +sqlalchemy==1.4.49 stdlib-list==0.8.0 terminado==0.12.1 testpath==0.6.0 @@ -149,18 +142,17 @@ tomli==1.2.3 tornado==6.1 tox==3.28.0 ; python_version < "3.8.0" traitlets==4.3.3 -typed-ast==1.5.4 -types-setuptools==67.7.0.2 +typed-ast==1.5.5 +types-setuptools==68.0.0.1 typing-extensions==4.1.1 uproot==4.3.7 -urllib3==1.26.15 +urllib3==1.26.16 virtualenv==20.15.1 ; python_version < "3.8.0" wcwidth==0.2.6 webencodings==0.5.1 websocket-client==1.3.1 wheel==0.37.1 widgetsnbextension==3.6.4 -wrapt==1.15.0 zipp==3.6.0 # The following packages are considered to be unsafe in a requirements file: diff --git a/.constraints/py3.7.txt b/.constraints/py3.7.txt index 0471d28..d36346b 100644 --- a/.constraints/py3.7.txt +++ b/.constraints/py3.7.txt @@ -2,21 +2,20 @@ # This file is autogenerated by pip-compile with Python 3.7 # by the following command: # -# pip-compile --extra=dev --no-annotate --output-file=.constraints/py3.7.txt --strip-extras setup.py +# pip-compile --extra=dev --no-annotate --output-file=.constraints/py3.7.txt --resolver=backtracking --strip-extras # accessible-pygments==0.0.4 aiofiles==22.1.0 aiosqlite==0.19.0 alabaster==0.7.13 -anyio==3.6.2 +anyio==3.7.1 aquirdturtle-collapsible-headings==3.1.0 argon2-cffi==21.3.0 argon2-cffi-bindings==21.2.0 arrow==1.2.3 -astroid==2.15.4 attrs==23.1.0 -awkward==2.2.0 -awkward-cpp==15 +awkward==2.2.4 +awkward-cpp==17 babel==2.12.1 backcall==0.2.0 beautifulsoup4==4.12.2 @@ -26,22 +25,21 @@ cached-property==1.5.2 certifi==2023.5.7 cffi==1.15.1 cfgv==3.3.1 -charset-normalizer==3.1.0 -click==8.1.3 +charset-normalizer==3.2.0 +click==8.1.4 colorama==0.4.6 -coverage==7.2.5 +coverage==7.2.7 cycler==0.11.0 debugpy==1.6.7 decorator==5.1.1 defusedxml==0.7.1 -dill==0.3.6 distlib==0.3.6 docutils==0.17.1 entrypoints==0.4 -exceptiongroup==1.1.1 -execnet==1.9.0 -fastjsonschema==2.16.3 -filelock==3.12.0 +exceptiongroup==1.1.2 +execnet==2.0.2 +fastjsonschema==2.17.1 +filelock==3.12.2 fonttools==4.38.0 fqdn==1.5.1 gprof2dot==2022.7.29 @@ -49,19 +47,18 @@ greenlet==2.0.2 identify==2.5.24 idna==3.4 imagesize==1.4.1 -importlib-metadata==4.13.0 ; python_version < "3.8.0" +importlib-metadata==6.7.0 ; python_version < "3.8.0" importlib-resources==5.12.0 iniconfig==2.0.0 ipykernel==6.16.2 ipython==7.34.0 ipython-genutils==0.2.0 -ipywidgets==8.0.6 +ipywidgets==8.0.7 isoduration==20.11.0 -isort==5.11.5 jedi==0.18.2 jinja2==3.1.2 -json5==0.9.11 -jsonpointer==2.3 +json5==0.9.14 +jsonpointer==2.4 jsonschema==4.17.3 jupyter-cache==0.5.0 jupyter-client==7.4.9 @@ -71,30 +68,28 @@ jupyter-server==1.24.0 jupyter-server-fileid==0.9.0 jupyter-server-ydoc==0.8.0 jupyter-ydoc==0.2.4 -jupyterlab==3.6.3 -jupyterlab-code-formatter==2.0.0 -jupyterlab-myst==1.1.3 ; python_version >= "3.7.0" +jupyterlab==3.6.5 +jupyterlab-code-formatter==2.2.1 +jupyterlab-myst==1.2.0 ; python_version >= "3.7.0" jupyterlab-pygments==0.2.2 -jupyterlab-server==2.22.1 -jupyterlab-widgets==3.0.7 +jupyterlab-server==2.23.0 +jupyterlab-widgets==3.0.8 kiwisolver==1.4.4 -lazy-object-proxy==1.9.0 livereload==2.6.3 markdown-it-py==2.2.0 -markupsafe==2.1.2 +markupsafe==2.1.3 matplotlib==3.5.3 matplotlib-inline==0.1.6 -mccabe==0.7.0 mdit-py-plugins==0.3.5 mdurl==0.1.2 -mistune==2.0.5 -mypy==1.3.0 +mistune==3.0.1 +mypy==1.4.1 mypy-extensions==1.0.0 myst-nb==0.17.2 myst-parser==0.18.1 nbclassic==1.0.0 nbclient==0.5.13 -nbconvert==7.4.0 +nbconvert==7.6.0 nbformat==5.8.0 nest-asyncio==1.5.6 nodeenv==1.8.0 @@ -110,34 +105,33 @@ pexpect==4.8.0 pickleshare==0.7.5 pillow==9.5.0 pkgutil-resolve-name==1.3.10 -platformdirs==3.5.1 -pluggy==1.0.0 +platformdirs==3.8.1 +pluggy==1.2.0 pre-commit==2.21.0 -prometheus-client==0.16.0 -prompt-toolkit==3.0.38 +prometheus-client==0.17.0 +prompt-toolkit==3.0.39 psutil==5.9.5 ptyprocess==0.7.0 py==1.11.0 pycparser==2.21 pydata-sphinx-theme==0.13.3 -pydeps==1.12.3 -pydocstyle==6.3.0 +pydeps==1.12.8 pygments==2.15.1 -pylint==2.17.4 -pyparsing==3.0.9 +pyparsing==3.1.0 pyrsistent==0.19.3 -pytest==7.3.1 -pytest-cov==4.0.0 +pytest==7.4.0 +pytest-cov==4.1.0 pytest-profiling==1.7.0 -pytest-xdist==3.3.0 +pytest-xdist==3.3.1 python-dateutil==2.8.2 python-json-logger==2.0.7 pytz==2023.3 pyyaml==6.0 -pyzmq==25.0.2 -requests==2.30.0 +pyzmq==25.1.0 +requests==2.31.0 rfc3339-validator==0.1.4 rfc3986-validator==0.1.1 +ruff==0.0.277 ; python_version >= "3.7.0" send2trash==1.8.2 six==1.16.0 sniffio==1.3.0 @@ -156,30 +150,28 @@ sphinxcontrib-htmlhelp==2.0.0 sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==1.0.3 sphinxcontrib-serializinghtml==1.1.5 -sqlalchemy==1.4.48 -stdlib-list==0.8.0 +sqlalchemy==1.4.49 +stdlib-list==0.9.0 tabulate==0.9.0 terminado==0.17.1 tinycss2==1.2.1 tomli==2.0.1 -tomlkit==0.11.8 tornado==6.2 tox==3.28.0 ; python_version < "3.8.0" traitlets==5.9.0 -typed-ast==1.5.4 -types-setuptools==67.7.0.2 -typing-extensions==4.5.0 -uproot==5.0.7 -uri-template==1.2.0 -urllib3==2.0.2 +typed-ast==1.5.5 +types-setuptools==68.0.0.1 +typing-extensions==4.7.1 +uproot==5.0.10 +uri-template==1.3.0 +urllib3==2.0.3 virtualenv==20.21.1 ; python_version < "3.8.0" wcwidth==0.2.6 webcolors==1.13 webencodings==0.5.1 -websocket-client==1.5.1 +websocket-client==1.6.1 wheel==0.40.0 -widgetsnbextension==4.0.7 -wrapt==1.15.0 +widgetsnbextension==4.0.8 y-py==0.5.9 ypy-websocket==0.8.2 ; python_version >= "3.7.0" zipp==3.15.0 diff --git a/.constraints/py3.8.txt b/.constraints/py3.8.txt index 4e03056..262ec7d 100644 --- a/.constraints/py3.8.txt +++ b/.constraints/py3.8.txt @@ -2,162 +2,145 @@ # This file is autogenerated by pip-compile with Python 3.8 # by the following command: # -# pip-compile --extra=dev --no-annotate --output-file=.constraints/py3.8.txt --strip-extras setup.py +# pip-compile --extra=dev --no-annotate --output-file=.constraints/py3.8.txt --resolver=backtracking --strip-extras # accessible-pygments==0.0.4 aiofiles==22.1.0 aiosqlite==0.19.0 alabaster==0.7.13 -anyio==3.6.2 +anyio==3.7.1 aquirdturtle-collapsible-headings==3.1.0 argon2-cffi==21.3.0 argon2-cffi-bindings==21.2.0 arrow==1.2.3 -astroid==2.15.4 asttokens==2.2.1 attrs==23.1.0 -awkward==2.2.0 -awkward-cpp==15 +awkward==2.3.1 +awkward-cpp==21 babel==2.12.1 backcall==0.2.0 beautifulsoup4==4.12.2 black==23.3.0 bleach==6.0.0 -cachetools==5.3.0 +cachetools==5.3.1 certifi==2023.5.7 cffi==1.15.1 cfgv==3.3.1 chardet==5.1.0 -charset-normalizer==3.1.0 -click==8.1.3 +charset-normalizer==3.2.0 +click==8.1.4 colorama==0.4.6 comm==0.1.3 -contourpy==1.0.7 -coverage==7.2.5 +contourpy==1.1.0 +coverage==7.2.7 cycler==0.11.0 debugpy==1.6.7 decorator==5.1.1 defusedxml==0.7.1 -dill==0.3.6 distlib==0.3.6 docutils==0.19 -exceptiongroup==1.1.1 -execnet==1.9.0 +exceptiongroup==1.1.2 +execnet==2.0.2 executing==1.2.0 -fastjsonschema==2.16.3 -filelock==3.12.0 -flake8==6.0.0 ; python_version >= "3.8.0" -flake8-blind-except==0.2.1 ; python_version >= "3.8.0" -flake8-bugbear==23.5.9 ; python_version >= "3.8.0" -flake8-builtins==2.1.0 ; python_version >= "3.8.0" -flake8-comprehensions==3.12.0 ; python_version >= "3.8.0" -flake8-plugin-utils==1.3.2 -flake8-pytest-style==1.7.2 ; python_version >= "3.8.0" -flake8-rst-docstrings==0.3.0 ; python_version >= "3.8.0" -flake8-type-ignore==0.1.0.post2 ; python_version >= "3.8.0" -flake8-use-fstring==1.4 ; python_version >= "3.8.0" -fonttools==4.39.4 +fastjsonschema==2.17.1 +filelock==3.12.2 +fonttools==4.40.0 fqdn==1.5.1 gprof2dot==2022.7.29 greenlet==2.0.2 identify==2.5.24 idna==3.4 imagesize==1.4.1 -importlib-metadata==6.6.0 -importlib-resources==5.12.0 +importlib-metadata==6.8.0 +importlib-resources==6.0.0 iniconfig==2.0.0 -ipykernel==6.23.0 +ipykernel==6.24.0 ipython==8.12.2 ipython-genutils==0.2.0 -ipywidgets==8.0.6 +ipywidgets==8.0.7 isoduration==20.11.0 -isort==5.12.0 jedi==0.18.2 jinja2==3.1.2 -json5==0.9.11 -jsonpointer==2.3 -jsonschema==4.17.3 +json5==0.9.14 +jsonpointer==2.4 +jsonschema==4.18.0 +jsonschema-specifications==2023.6.1 jupyter-cache==0.6.1 -jupyter-client==8.2.0 -jupyter-core==5.3.0 +jupyter-client==8.3.0 +jupyter-core==5.3.1 jupyter-events==0.6.3 -jupyter-server==2.5.0 +jupyter-server==2.7.0 jupyter-server-fileid==0.9.0 jupyter-server-terminals==0.4.4 jupyter-server-ydoc==0.8.0 jupyter-ydoc==0.2.4 -jupyterlab==3.6.3 -jupyterlab-code-formatter==2.0.0 -jupyterlab-myst==1.1.3 ; python_version >= "3.7.0" +jupyterlab==3.6.5 +jupyterlab-code-formatter==2.2.1 +jupyterlab-myst==2.0.1 ; python_version >= "3.7.0" jupyterlab-pygments==0.2.2 -jupyterlab-server==2.22.1 -jupyterlab-widgets==3.0.7 +jupyterlab-server==2.23.0 +jupyterlab-widgets==3.0.8 kiwisolver==1.4.4 -lazy-object-proxy==1.9.0 livereload==2.6.3 markdown-it-py==2.2.0 -markupsafe==2.1.2 -matplotlib==3.7.1 +markupsafe==2.1.3 +matplotlib==3.7.2 matplotlib-inline==0.1.6 -mccabe==0.7.0 mdit-py-plugins==0.3.5 mdurl==0.1.2 -mistune==2.0.5 -mypy==1.3.0 +mistune==3.0.1 +mypy==1.4.1 mypy-extensions==1.0.0 myst-nb==0.17.2 myst-parser==0.18.1 nbclassic==1.0.0 nbclient==0.7.4 -nbconvert==7.4.0 -nbformat==5.8.0 +nbconvert==7.6.0 +nbformat==5.9.1 nest-asyncio==1.5.6 nodeenv==1.8.0 notebook==6.5.4 notebook-shim==0.2.3 -numpy==1.24.3 +numpy==1.24.4 +overrides==7.3.1 packaging==23.1 -pandas==2.0.1 +pandas==2.0.3 pandocfilters==1.5.0 parso==0.8.3 pathspec==0.11.1 -pep8-naming==0.13.3 ; python_version >= "3.8.0" pexpect==4.8.0 pickleshare==0.7.5 -pillow==9.5.0 +pillow==10.0.0 pkgutil-resolve-name==1.3.10 -platformdirs==3.5.1 -pluggy==1.0.0 -pre-commit==3.3.1 -prometheus-client==0.16.0 -prompt-toolkit==3.0.38 +platformdirs==3.8.1 +pluggy==1.2.0 +pre-commit==3.3.3 +prometheus-client==0.17.0 +prompt-toolkit==3.0.39 psutil==5.9.5 ptyprocess==0.7.0 pure-eval==0.2.2 -pycodestyle==2.10.0 pycparser==2.21 pydata-sphinx-theme==0.13.3 -pydeps==1.12.3 -pydocstyle==6.3.0 -pyflakes==3.0.1 +pydeps==1.12.8 pygments==2.15.1 -pylint==2.17.4 pyparsing==3.0.9 -pyproject-api==1.5.1 -pyrsistent==0.19.3 -pytest==7.3.1 -pytest-cov==4.0.0 +pyproject-api==1.5.3 +pytest==7.4.0 +pytest-cov==4.1.0 pytest-profiling==1.7.0 -pytest-xdist==3.3.0 +pytest-xdist==3.3.1 python-dateutil==2.8.2 python-json-logger==2.0.7 pytz==2023.3 pyyaml==6.0 -pyzmq==25.0.2 -requests==2.30.0 -restructuredtext-lint==1.4.0 +pyzmq==25.1.0 +referencing==0.29.1 +requests==2.31.0 rfc3339-validator==0.1.4 rfc3986-validator==0.1.1 +rpds-py==0.8.10 +ruff==0.0.277 ; python_version >= "3.7.0" send2trash==1.8.2 six==1.16.0 sniffio==1.3.0 @@ -176,34 +159,32 @@ sphinxcontrib-htmlhelp==2.0.1 sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==1.0.3 sphinxcontrib-serializinghtml==1.1.5 -sqlalchemy==2.0.13 +sqlalchemy==2.0.18 stack-data==0.6.2 -stdlib-list==0.8.0 +stdlib-list==0.9.0 tabulate==0.9.0 terminado==0.17.1 tinycss2==1.2.1 tomli==2.0.1 -tomlkit==0.11.8 -tornado==6.3.1 -tox==4.5.1 +tornado==6.3.2 +tox==4.6.4 traitlets==5.9.0 -types-setuptools==67.7.0.2 -typing-extensions==4.5.0 +types-setuptools==68.0.0.1 +typing-extensions==4.7.1 tzdata==2023.3 -uproot==5.0.7 -uri-template==1.2.0 -urllib3==2.0.2 -virtualenv==20.23.0 +uproot==5.0.10 +uri-template==1.3.0 +urllib3==2.0.3 +virtualenv==20.23.1 wcwidth==0.2.6 webcolors==1.13 webencodings==0.5.1 -websocket-client==1.5.1 +websocket-client==1.6.1 wheel==0.40.0 -widgetsnbextension==4.0.7 -wrapt==1.15.0 +widgetsnbextension==4.0.8 y-py==0.5.9 ypy-websocket==0.8.2 ; python_version >= "3.7.0" -zipp==3.15.0 +zipp==3.16.0 # The following packages are considered to be unsafe in a requirements file: # setuptools diff --git a/.constraints/py3.9.txt b/.constraints/py3.9.txt index ba46169..90d75ac 100644 --- a/.constraints/py3.9.txt +++ b/.constraints/py3.9.txt @@ -2,161 +2,144 @@ # This file is autogenerated by pip-compile with Python 3.9 # by the following command: # -# pip-compile --extra=dev --no-annotate --output-file=.constraints/py3.9.txt --strip-extras setup.py +# pip-compile --extra=dev --no-annotate --output-file=.constraints/py3.9.txt --resolver=backtracking --strip-extras # accessible-pygments==0.0.4 aiofiles==22.1.0 aiosqlite==0.19.0 alabaster==0.7.13 -anyio==3.6.2 +anyio==3.7.1 aquirdturtle-collapsible-headings==3.1.0 argon2-cffi==21.3.0 argon2-cffi-bindings==21.2.0 arrow==1.2.3 -astroid==2.15.4 asttokens==2.2.1 attrs==23.1.0 -awkward==2.2.0 -awkward-cpp==15 +awkward==2.3.1 +awkward-cpp==21 babel==2.12.1 backcall==0.2.0 beautifulsoup4==4.12.2 black==23.3.0 bleach==6.0.0 -cachetools==5.3.0 +cachetools==5.3.1 certifi==2023.5.7 cffi==1.15.1 cfgv==3.3.1 chardet==5.1.0 -charset-normalizer==3.1.0 -click==8.1.3 +charset-normalizer==3.2.0 +click==8.1.4 colorama==0.4.6 comm==0.1.3 -contourpy==1.0.7 -coverage==7.2.5 +contourpy==1.1.0 +coverage==7.2.7 cycler==0.11.0 debugpy==1.6.7 decorator==5.1.1 defusedxml==0.7.1 -dill==0.3.6 distlib==0.3.6 docutils==0.19 -exceptiongroup==1.1.1 -execnet==1.9.0 +exceptiongroup==1.1.2 +execnet==2.0.2 executing==1.2.0 -fastjsonschema==2.16.3 -filelock==3.12.0 -flake8==6.0.0 ; python_version >= "3.8.0" -flake8-blind-except==0.2.1 ; python_version >= "3.8.0" -flake8-bugbear==23.5.9 ; python_version >= "3.8.0" -flake8-builtins==2.1.0 ; python_version >= "3.8.0" -flake8-comprehensions==3.12.0 ; python_version >= "3.8.0" -flake8-plugin-utils==1.3.2 -flake8-pytest-style==1.7.2 ; python_version >= "3.8.0" -flake8-rst-docstrings==0.3.0 ; python_version >= "3.8.0" -flake8-type-ignore==0.1.0.post2 ; python_version >= "3.8.0" -flake8-use-fstring==1.4 ; python_version >= "3.8.0" -fonttools==4.39.4 +fastjsonschema==2.17.1 +filelock==3.12.2 +fonttools==4.40.0 fqdn==1.5.1 gprof2dot==2022.7.29 greenlet==2.0.2 identify==2.5.24 idna==3.4 imagesize==1.4.1 -importlib-metadata==6.6.0 -importlib-resources==5.12.0 +importlib-metadata==6.8.0 +importlib-resources==6.0.0 iniconfig==2.0.0 -ipykernel==6.23.0 -ipython==8.13.2 +ipykernel==6.24.0 +ipython==8.14.0 ipython-genutils==0.2.0 -ipywidgets==8.0.6 +ipywidgets==8.0.7 isoduration==20.11.0 -isort==5.12.0 jedi==0.18.2 jinja2==3.1.2 -json5==0.9.11 -jsonpointer==2.3 -jsonschema==4.17.3 +json5==0.9.14 +jsonpointer==2.4 +jsonschema==4.18.0 +jsonschema-specifications==2023.6.1 jupyter-cache==0.6.1 -jupyter-client==8.2.0 -jupyter-core==5.3.0 +jupyter-client==8.3.0 +jupyter-core==5.3.1 jupyter-events==0.6.3 -jupyter-server==2.5.0 +jupyter-server==2.7.0 jupyter-server-fileid==0.9.0 jupyter-server-terminals==0.4.4 jupyter-server-ydoc==0.8.0 jupyter-ydoc==0.2.4 -jupyterlab==3.6.3 -jupyterlab-code-formatter==2.0.0 -jupyterlab-myst==1.1.3 ; python_version >= "3.7.0" +jupyterlab==3.6.5 +jupyterlab-code-formatter==2.2.1 +jupyterlab-myst==2.0.1 ; python_version >= "3.7.0" jupyterlab-pygments==0.2.2 -jupyterlab-server==2.22.1 -jupyterlab-widgets==3.0.7 +jupyterlab-server==2.23.0 +jupyterlab-widgets==3.0.8 kiwisolver==1.4.4 -lazy-object-proxy==1.9.0 livereload==2.6.3 markdown-it-py==2.2.0 -markupsafe==2.1.2 -matplotlib==3.7.1 +markupsafe==2.1.3 +matplotlib==3.7.2 matplotlib-inline==0.1.6 -mccabe==0.7.0 mdit-py-plugins==0.3.5 mdurl==0.1.2 -mistune==2.0.5 -mypy==1.3.0 +mistune==3.0.1 +mypy==1.4.1 mypy-extensions==1.0.0 myst-nb==0.17.2 myst-parser==0.18.1 nbclassic==1.0.0 nbclient==0.7.4 -nbconvert==7.4.0 -nbformat==5.8.0 +nbconvert==7.6.0 +nbformat==5.9.1 nest-asyncio==1.5.6 nodeenv==1.8.0 notebook==6.5.4 notebook-shim==0.2.3 -numpy==1.24.3 +numpy==1.25.1 +overrides==7.3.1 packaging==23.1 -pandas==2.0.1 +pandas==2.0.3 pandocfilters==1.5.0 parso==0.8.3 pathspec==0.11.1 -pep8-naming==0.13.3 ; python_version >= "3.8.0" pexpect==4.8.0 pickleshare==0.7.5 -pillow==9.5.0 -platformdirs==3.5.1 -pluggy==1.0.0 -pre-commit==3.3.1 -prometheus-client==0.16.0 -prompt-toolkit==3.0.38 +pillow==10.0.0 +platformdirs==3.8.1 +pluggy==1.2.0 +pre-commit==3.3.3 +prometheus-client==0.17.0 +prompt-toolkit==3.0.39 psutil==5.9.5 ptyprocess==0.7.0 pure-eval==0.2.2 -pycodestyle==2.10.0 pycparser==2.21 pydata-sphinx-theme==0.13.3 -pydeps==1.12.3 -pydocstyle==6.3.0 -pyflakes==3.0.1 +pydeps==1.12.8 pygments==2.15.1 -pylint==2.17.4 pyparsing==3.0.9 -pyproject-api==1.5.1 -pyrsistent==0.19.3 -pytest==7.3.1 -pytest-cov==4.0.0 +pyproject-api==1.5.3 +pytest==7.4.0 +pytest-cov==4.1.0 pytest-profiling==1.7.0 -pytest-xdist==3.3.0 +pytest-xdist==3.3.1 python-dateutil==2.8.2 python-json-logger==2.0.7 pytz==2023.3 pyyaml==6.0 -pyzmq==25.0.2 -requests==2.30.0 -restructuredtext-lint==1.4.0 +pyzmq==25.1.0 +referencing==0.29.1 +requests==2.31.0 rfc3339-validator==0.1.4 rfc3986-validator==0.1.1 +rpds-py==0.8.10 +ruff==0.0.277 ; python_version >= "3.7.0" send2trash==1.8.2 six==1.16.0 sniffio==1.3.0 @@ -175,34 +158,32 @@ sphinxcontrib-htmlhelp==2.0.1 sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==1.0.3 sphinxcontrib-serializinghtml==1.1.5 -sqlalchemy==2.0.13 +sqlalchemy==2.0.18 stack-data==0.6.2 -stdlib-list==0.8.0 +stdlib-list==0.9.0 tabulate==0.9.0 terminado==0.17.1 tinycss2==1.2.1 tomli==2.0.1 -tomlkit==0.11.8 -tornado==6.3.1 -tox==4.5.1 +tornado==6.3.2 +tox==4.6.4 traitlets==5.9.0 -types-setuptools==67.7.0.2 -typing-extensions==4.5.0 +types-setuptools==68.0.0.1 +typing-extensions==4.7.1 tzdata==2023.3 -uproot==5.0.7 -uri-template==1.2.0 -urllib3==2.0.2 -virtualenv==20.23.0 +uproot==5.0.10 +uri-template==1.3.0 +urllib3==2.0.3 +virtualenv==20.23.1 wcwidth==0.2.6 webcolors==1.13 webencodings==0.5.1 -websocket-client==1.5.1 +websocket-client==1.6.1 wheel==0.40.0 -widgetsnbextension==4.0.7 -wrapt==1.15.0 +widgetsnbextension==4.0.8 y-py==0.5.9 ypy-websocket==0.8.2 ; python_version >= "3.7.0" -zipp==3.15.0 +zipp==3.16.0 # The following packages are considered to be unsafe in a requirements file: # setuptools diff --git a/.cspell.json b/.cspell.json index a5d3186..0fec695 100644 --- a/.cspell.json +++ b/.cspell.json @@ -22,14 +22,11 @@ "*particle*.*ml", ".constraints/*.txt", ".editorconfig", - ".flake8*", ".gitignore", ".gitpod.*", ".mypy.ini", ".pre-commit-config.yaml", ".prettierignore", - ".pydocstyle*", - ".pylintrc", ".readthedocs.yml", ".vscode/*", ".vscode/.gitignore", @@ -136,7 +133,6 @@ "numpy", "pawian", "pydocstyle", - "pylint", "pypi", "pytest", "PYTHONHASHSEED", diff --git a/.flake8 b/.flake8 deleted file mode 100644 index edcc5ee..0000000 --- a/.flake8 +++ /dev/null @@ -1,42 +0,0 @@ -[flake8] -application-import-names = - boostcfg - pawian -filename = - ./src/*.py - ./tests/*.py -exclude = - __pycache__ - docs/conf.py -ignore = - # https://github.com/psf/black#slices - E203 - # allowed by black - E231 - # https://github.com/psf/black#line-length - E501 - # block quote ends without a blank line (black formatting) - RST201 - # 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 -rst-roles = - attr, - class, - doc, - download, - file, - func, - meth, - mod, - ref, -rst-directives = - deprecated, - envvar, - exception, - seealso, diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e28b8b6..24fea69 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,6 +28,9 @@ on: jobs: doc: uses: ComPWA/actions/.github/workflows/ci-docs.yml@v1 + permissions: + pages: write + id-token: write with: gh-pages: true specific-pip-packages: ${{ inputs.specific-pip-packages }} @@ -35,7 +38,7 @@ jobs: uses: ComPWA/actions/.github/workflows/pytest.yml@v1 with: coverage-target: pawian - macos-python-version: "3.7" + macos-python-version: "3.9" specific-pip-packages: ${{ inputs.specific-pip-packages }} style: if: inputs.specific-pip-packages == '' diff --git a/.gitpod.yml b/.gitpod.yml index e7acf15..ebd2be8 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -13,17 +13,17 @@ github: vscode: extensions: + - charliermarsh.ruff - christian-kohler.path-intellisense - davidanson.vscode-markdownlint - eamodio.gitlens - editorconfig.editorconfig - esbenp.prettier-vscode - executablebookproject.myst-highlight + - garaioag.garaio-vscode-unwanted-recommendations - github.vscode-github-actions - github.vscode-pull-request-github - - ms-python.flake8 - - ms-python.isort - - ms-python.pylint + - ms-python.mypy-type-checker - ms-python.python - ms-python.vscode-pylance - ms-vscode-remote.remote-ssh diff --git a/.mypy.ini b/.mypy.ini deleted file mode 100644 index 28be418..0000000 --- a/.mypy.ini +++ /dev/null @@ -1,21 +0,0 @@ -[mypy] -disallow_incomplete_defs = True -disallow_untyped_defs = True -exclude = _build -show_error_codes = True -warn_unused_configs = True - -[mypy-tests.*] -check_untyped_defs = True -disallow_incomplete_defs = False -disallow_untyped_defs = False - -; External packages that miss stubs or type hints -[mypy-awkward.*] -ignore_missing_imports = True -[mypy-matplotlib.*] -ignore_missing_imports = True -[mypy-pandas.*] -ignore_missing_imports = True -[mypy-uproot.*] -ignore_missing_imports = True diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 4d2ff1a..30a6141 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -2,9 +2,7 @@ ci: autoupdate_commit_msg: "MAINT: update pip constraints and pre-commit" autoupdate_schedule: quarterly skip: - - flake8 - mypy - - pylint - pyright - taplo @@ -33,7 +31,7 @@ repos: - id: trailing-whitespace - repo: https://github.com/ComPWA/repo-maintenance - rev: 0.0.179 + rev: 0.0.192 hooks: - id: check-dev-files args: @@ -53,7 +51,7 @@ repos: - id: cspell - repo: https://github.com/editorconfig-checker/editorconfig-checker.python - rev: 2.7.1 + rev: 2.7.2 hooks: - id: editorconfig-checker name: editorconfig @@ -63,22 +61,8 @@ repos: .*\.py )$ - - repo: local - hooks: - - id: flake8 - name: flake8 - entry: flake8 - language: system - types: - - python - - - repo: https://github.com/pycqa/isort - rev: 5.12.0 - hooks: - - id: isort - - repo: https://github.com/igorshubovych/markdownlint-cli - rev: v0.34.0 + rev: v0.35.0 hooks: - id: markdownlint @@ -99,6 +83,7 @@ repos: args: - --extra-keys - | + cell.attachments cell.metadata.code_folding cell.metadata.id cell.metadata.user_expressions @@ -116,40 +101,29 @@ repos: metadata.vscode - repo: https://github.com/pre-commit/mirrors-prettier - rev: v3.0.0-alpha.9-for-vscode + rev: v3.0.0 hooks: - id: prettier - - repo: https://github.com/pycqa/pydocstyle - rev: 6.3.0 - hooks: - - id: pydocstyle - - - repo: local - hooks: - - id: pylint - name: pylint - entry: pylint - args: - - --rcfile=.pylintrc - - --score=no - language: system - require_serial: true - types: - - python - - repo: https://github.com/ComPWA/mirrors-pyright - rev: v1.1.308 + rev: v1.1.316 hooks: - id: pyright - repo: https://github.com/asottile/pyupgrade - rev: v3.4.0 + rev: v3.9.0 hooks: - id: pyupgrade args: - --py36-plus + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.0.277 + hooks: + - id: ruff + args: + - --fix + - repo: https://github.com/ComPWA/mirrors-taplo rev: v0.8.0 hooks: diff --git a/.pydocstyle b/.pydocstyle deleted file mode 100644 index 1ffd131..0000000 --- a/.pydocstyle +++ /dev/null @@ -1,11 +0,0 @@ -[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 diff --git a/.pylintrc b/.pylintrc deleted file mode 100644 index 0e5c52d..0000000 --- a/.pylintrc +++ /dev/null @@ -1,32 +0,0 @@ -# To see other available options: -# pylint --generate-rcfile > .pylintrc_new -# and compare the output - -[BASIC] -good-names-rgxs= - ^[p]$, - -[VARIABLES] -init-import=yes - -[MESSAGES CONTROL] -disable= - C0114, # done by pydocstyle - C0115, # done by pydocstyle - C0116, # done by pydocstyle - line-too-long, # automatically fixed with black - logging-fstring-interpolation, - unspecified-encoding, # http://pylint.pycqa.org/en/latest/whatsnew/2.10.html - unused-import, # https://www.flake8rules.com/rules/F401 - -[MASTER] -ignore=conf.py - -[DESIGN] -# Minimum number of public methods for a class (see R0903). Default is 2. -# We decrease this to 0, since some rules are "empty" but get decorated. -# Note that some interface classes also just have a single method -min-public-methods=0 - -[SIMILARITIES] -ignore-imports=yes # https://stackoverflow.com/a/30007053 diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 0725605..cd674ed 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,16 +1,16 @@ { "recommendations": [ + "charliermarsh.ruff", "christian-kohler.path-intellisense", "davidanson.vscode-markdownlint", "eamodio.gitlens", "editorconfig.editorconfig", "esbenp.prettier-vscode", "executablebookproject.myst-highlight", + "garaioag.garaio-vscode-unwanted-recommendations", "github.vscode-github-actions", "github.vscode-pull-request-github", - "ms-python.flake8", - "ms-python.isort", - "ms-python.pylint", + "ms-python.mypy-type-checker", "ms-python.python", "ms-python.vscode-pylance", "ms-vscode-remote.remote-ssh", @@ -24,5 +24,12 @@ "trentrand.git-commit-helper-vscode", "tyriar.sort-lines", "yzhang.markdown-all-in-one" + ], + "unwantedRecommendations": [ + "bungcip.better-toml", + "ms-python.flake8", + "ms-python.isort", + "ms-python.pylint", + "travisillig.vscode-json-stable-stringify" ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index aad2582..b9966bc 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -23,24 +23,20 @@ "[yaml]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, - "cSpell.enabled": true, "coverage-gutters.coverageFileNames": ["coverage.xml"], "coverage-gutters.coverageReportFileName": "**/htmlcov/index.html", "coverage-gutters.showGutterCoverage": false, "coverage-gutters.showLineCoverage": true, + "cSpell.enabled": true, "editor.formatOnSave": true, "editor.rulers": [88], - "flake8.importStrategy": "fromEnvironment", "git.rebaseWhenSync": true, "github-actions.workflows.pinned.workflows": [".github/workflows/ci.yml"], - "githubPullRequests.telemetry.enabled": false, "gitlens.telemetry.enabled": false, - "isort.check": true, - "isort.importStrategy": "fromEnvironment", "livePreview.defaultPreviewPath": "docs/_build/html", - "pylint.importStrategy": "fromEnvironment", + "mypy-type-checker.args": ["--config-file", "pyproject.toml"], + "mypy-type-checker.importStrategy": "fromEnvironment", "python.analysis.autoImportCompletions": false, - "python.analysis.diagnosticMode": "workspace", "python.analysis.inlayHints.pytestParameters": true, "python.analysis.typeCheckingMode": "strict", "python.formatting.provider": "black", @@ -48,14 +44,16 @@ "python.linting.banditEnabled": false, "python.linting.enabled": true, "python.linting.flake8Enabled": false, - "python.linting.mypyEnabled": true, - "python.linting.pydocstyleEnabled": true, + "python.linting.mypyEnabled": false, + "python.linting.pydocstyleEnabled": false, "python.linting.pylamaEnabled": false, "python.linting.pylintEnabled": false, "python.testing.pytestArgs": ["--color=no", "--no-cov"], "python.testing.pytestEnabled": true, "python.testing.unittestEnabled": false, "rewrap.wrappingColumn": 88, + "ruff.enable": true, + "ruff.organizeImports": true, "search.exclude": { "*/.pydocstyle": true, ".constraints/*.txt": true, diff --git a/README.md b/README.md index 12a73a4..ea19100 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen)](https://github.com/pre-commit/pre-commit) [![Prettier](https://camo.githubusercontent.com/687a8ae8d15f9409617d2cc5a30292a884f6813a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f64655f7374796c652d70726574746965722d6666363962342e7376673f7374796c653d666c61742d737175617265)](https://prettier.io/) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) -[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort) +[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) Go to [redeboer.github.io/PawianTools](https://redeboer.github.io/PawianTools) to view the documentation! diff --git a/docs/conf.py b/docs/conf.py index 07a61df..29c2081 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -37,7 +37,7 @@ " ".join( [ "sphinx-apidoc", - f"../src/", + "../src/", "-o api/", "--force", "--no-toc", @@ -45,7 +45,7 @@ "--separate", ] ), - shell=True, + shell=True, # noqa: S602 ) # -- General configuration --------------------------------------------------- @@ -168,7 +168,7 @@ def get_version(package_name: str) -> str: if not line: continue line_segments = tuple(line.split("==")) - if len(line_segments) != 2: + if len(line_segments) != 2: # noqa: PLR2004 continue _, installed_version, *_ = line_segments installed_version = installed_version.strip() @@ -187,9 +187,8 @@ def get_minor_version(package_name: str) -> str: return installed_version matches = re.match(r"^([0-9]+\.[0-9]+).*$", installed_version) if matches is None: - raise ValueError( - f"Could not find documentation for {package_name} v{installed_version}" - ) + msg = f"Could not find documentation for {package_name} v{installed_version}" + raise ValueError(msg) return matches[1] @@ -263,7 +262,7 @@ def get_nb_execution_mode() -> str: "--noshow", ] ), - shell=True, + shell=True, # noqa: S602 ) if os.path.exists("module_structure.svg"): with open(f"api/{PACKAGE}.rst", "a") as stream: diff --git a/pyproject.toml b/pyproject.toml index 38d4192..98339c8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,17 +33,170 @@ target-version = [ "py39", ] -[tool.isort] -profile = "black" -src_paths = [ +[tool.coverage.run] +branch = true +source = ["src"] + +[tool.nbqa.addopts] +black = ["--line-length=85"] + +[tool.mypy] +disallow_incomplete_defs = true +disallow_untyped_defs = true +exclude = "_build" +show_error_codes = true +warn_unused_configs = true + +[[tool.mypy.overrides]] +check_untyped_defs = true +disallow_incomplete_defs = false +disallow_untyped_defs = false +module = ["tests.*"] + +[[tool.mypy.overrides]] +ignore_missing_imports = true +module = ["awkward.*"] + +[[tool.mypy.overrides]] +ignore_missing_imports = true +module = ["matplotlib.*"] + +[[tool.mypy.overrides]] +ignore_missing_imports = true +module = ["pandas.*"] + +[[tool.mypy.overrides]] +ignore_missing_imports = true +module = ["uproot.*"] + +[tool.pyright] +exclude = [ + "**/.git", + "**/.ipynb_checkpoints", + "**/.mypy_cache", + "**/.pytest_cache", + "**/.tox", + "**/__pycache__", + "**/_build", +] +reportGeneralTypeIssues = false +reportMissingParameterType = false +reportMissingTypeArgument = false +reportMissingTypeStubs = false +reportUnknownArgumentType = false +reportUnknownLambdaType = false +reportUnknownMemberType = false +reportUnknownParameterType = false +reportUnknownVariableType = false +reportUnnecessaryComparison = true +reportUnnecessaryIsInstance = false +reportUnusedClass = true +reportUnusedFunction = true +reportUnusedImport = true +reportUnusedVariable = true +typeCheckingMode = "strict" + +[tool.pytest.ini_options] +addopts = ''' +--color=yes +--doctest-continue-on-failure +--doctest-modules +--durations=3 +--ignore=docs/conf.py +-m "not slow"''' +filterwarnings = [ + "error", + "ignore:.*Consider switching from .* to .*:DeprecationWarning", + "ignore:Using the level keyword in DataFrame and Series aggregations is deprecated.*:FutureWarning", + "ignore:the imp module is deprecated in favour of importlib.*:DeprecationWarning", +] +markers = [ + "serial", + "slow: marks tests as slow (select with '-m slow')", +] +norecursedirs = [ + ".ipynb_checkpoints", + "_build", +] +testpaths = [ "src", "tests", ] -[tool.nbqa.addopts] -black = [ - "--line-length=85", +[tool.ruff] +extend-select = [ + "A", + "B", + "BLE", + "C4", + "C90", + "D", + "EM", + "ERA", + "I", + "ICN", + "INP", + "ISC", + "N", + "NPY", + "PGH", + "PIE", + "PL", + "Q", + "RET", + "RSE", + "RUF", + "S", + "SIM", + "T20", + "TCH", + "TID", + "TRY", + "UP", + "YTT", ] -flake8 = [ - "--extend-ignore=E402,F821", +ignore = [ + "D101", + "D102", + "D103", + "D105", + "D107", + "D203", + "D213", + "D407", + "D416", + "E501", + "SIM108", +] +show-fixes = true +src = [ + "src", + "tests", ] +target-version = "py37" +task-tags = ["cspell"] + +[tool.ruff.per-file-ignores] +"docs/*" = [ + "E402", + "INP001", + "S101", + "S113", + "T201", +] +"docs/conf.py" = [ + "A001", + "PLW2901", +] +"setup.py" = ["D100"] +"tests/*" = [ + "D", + "INP001", + "PGH001", + "PLR0913", + "PLR2004", + "S101", +] + +[tool.ruff.pydocstyle] +convention = "google" diff --git a/pyrightconfig.json b/pyrightconfig.json deleted file mode 100644 index e847154..0000000 --- a/pyrightconfig.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "exclude": [ - "**/__pycache__", - "**/_build", - "**/.git", - "**/.ipynb_checkpoints", - "**/.mypy_cache", - "**/.pytest_cache", - "**/.tox" - ], - "reportGeneralTypeIssues": false, - "reportMissingParameterType": false, - "reportMissingTypeArgument": false, - "reportMissingTypeStubs": false, - "reportUnknownArgumentType": false, - "reportUnknownLambdaType": false, - "reportUnknownMemberType": false, - "reportUnknownParameterType": false, - "reportUnknownVariableType": false, - "reportUnnecessaryComparison": true, - "reportUnnecessaryIsInstance": false, - "reportUnusedClass": true, - "reportUnusedFunction": true, - "reportUnusedImport": true, - "reportUnusedVariable": true, - "typeCheckingMode": "strict" -} diff --git a/pytest.ini b/pytest.ini deleted file mode 100644 index 5b4801f..0000000 --- a/pytest.ini +++ /dev/null @@ -1,26 +0,0 @@ -[coverage:run] -branch = True -source = src - -[pytest] -addopts = - --color=yes - --doctest-continue-on-failure - --doctest-modules - --durations=3 - --ignore=docs/conf.py - -m "not slow" -filterwarnings = - error - ignore:.*Consider switching from .* to .*:DeprecationWarning - ignore:Using the level keyword in DataFrame and Series aggregations is deprecated.*:FutureWarning - ignore:the imp module is deprecated in favour of importlib.*:DeprecationWarning -norecursedirs = - .ipynb_checkpoints - _build -markers = - serial - slow: marks tests as slow (select with '-m slow') -testpaths = - src - tests diff --git a/setup.cfg b/setup.cfg index 37a2846..0071ef4 100644 --- a/setup.cfg +++ b/setup.cfg @@ -74,26 +74,12 @@ doc = sphinx-togglebutton format = black - isort -flake8 = - flake8 >=4; python_version >="3.8.0" # extend-select - flake8-blind-except; python_version >="3.8.0" - flake8-bugbear; python_version >="3.8.0" - flake8-builtins; python_version >="3.8.0" - flake8-comprehensions; python_version >="3.8.0" - flake8-pytest-style; python_version >="3.8.0" - flake8-rst-docstrings; python_version >="3.8.0" - flake8-type-ignore; python_version >="3.8.0" - flake8-use-fstring; python_version >="3.8.0" - pep8-naming; python_version >="3.8.0" mypy = mypy >=0.730 # error code support types-setuptools lint = - %(flake8)s %(mypy)s - pydocstyle - pylint >=2.5 # good-names-rgxs + ruff; python_version >="3.7.0" test = pytest pytest-cov diff --git a/setup.py b/setup.py index 2e57703..9329697 100644 --- a/setup.py +++ b/setup.py @@ -1,4 +1,3 @@ -# noqa: D100 from setuptools import setup setup( diff --git a/src/boostcfg/lineparser.py b/src/boostcfg/lineparser.py index a4855e8..2676b99 100644 --- a/src/boostcfg/lineparser.py +++ b/src/boostcfg/lineparser.py @@ -22,7 +22,8 @@ def get_key_value_pair(line: str) -> Tuple[str, str]: new_line = strip_comment(line) matches = re.search(r"^\s*([^\s]+?)\s*=\s*([^\s]+.*?)\s*$", strip_comment(new_line)) if matches is None: - raise SyntaxError(f'Line "{new_line}" is not a key, value pair!') + msg = f'Line "{new_line}" is not a key, value pair!' + raise SyntaxError(msg) return matches[1], matches[2] @@ -40,7 +41,8 @@ def strip_comment(line: str) -> str: """Remove everything before a comment sign (:code:`#`).""" matches = re.search(r"^[^#]*", line) if matches is None: - raise ValueError(f"Line {line} is not valid") + msg = f"Line {line} is not valid" + raise ValueError(msg) return matches[0] diff --git a/src/pawian/data.py b/src/pawian/data.py index 9a4e048..c6a0721 100644 --- a/src/pawian/data.py +++ b/src/pawian/data.py @@ -68,18 +68,19 @@ def _validate(obj: PandasObject) -> None: if isinstance(columns, pd.MultiIndex): # if multicolumn, test if 2 levels columns = columns.levels - if len(obj.columns.levels) != 2: - raise AttributeError( - "Not a Pawian data object!\n" - "pandas.DataFrame must have multi-columns of 2 levels:\n" - " - 1st level are particles\n" - f" - 2nd level are define the 4-momentum: {_MOMENTUM_LABELS}" + if len(obj.columns.levels) != 2: # noqa: PLR2004 + msg = ( + "Not a Pawian data object!\npandas.DataFrame must have" + " multi-columns of 2 levels:\n - 1st level are particles\n - 2nd" + f" level are define the 4-momentum: {_MOMENTUM_LABELS}" ) + raise AttributeError(msg) # then select 2nd columns only columns = columns[1] # Check if (sub)column names are same as momentum labels if not set(_MOMENTUM_LABELS) <= set(columns): - raise AttributeError(f"Columns must be {_MOMENTUM_LABELS}") + msg = f"Columns must be {_MOMENTUM_LABELS}" + raise AttributeError(msg) @property def has_weights(self) -> bool: @@ -95,7 +96,8 @@ def has_particles(self) -> bool: def weights(self) -> pd.Series: """Get list of weights, if available.""" if not self.has_weights: - raise ValueError("Dataframe doesn't contain weights") + msg = "Dataframe doesn't contain weights" + raise ValueError(msg) return self._obj[_WEIGHT_LABEL] @property @@ -107,9 +109,8 @@ def intensities(self) -> pd.Series: def particles(self) -> List[str]: """Get list of particles contained in the data frame.""" if not self.has_particles: - raise ValueError( - "This dataframe is single-level and does not contain particles" - ) + msg = "This dataframe is single-level and does not contain particles" + raise ValueError(msg) particles = self._obj.columns.droplevel(1).unique() if self.has_weights: particles = particles.drop(_WEIGHT_LABEL) @@ -202,7 +203,7 @@ def create_skeleton_frame( return pd.DataFrame(index=index, columns=multi_column) -def read_ascii( +def read_ascii( # noqa: C901 filename: str, particles: Optional[Union[List[str], int]] = None, **kwargs: Any, @@ -231,10 +232,11 @@ def read_ascii( if isinstance(particles, int): particles = [f"Particle {i}" for i in range(1, particles + 1)] elif particles is None or not isinstance(particles, list): - raise DataParserError( - f'Cannot determine number of particles in file"{filename}"\n' - "--> Please provide an array of particles for interpretation" + msg = ( + f'Cannot determine number of particles in file"{filename}"\n--> Please' + " provide an array of particles for interpretation" ) + raise DataParserError(msg) # Try to determine number of particles from file if has_weights: @@ -244,10 +246,11 @@ def read_ascii( if isinstance(particles, int): particles = [str(i) for i in range(1, particles + 1)] if len(particles) != file_n_particles: - raise DataParserError( - f'File "{filename}" contains {file_n_particles}, but you said there ' - f"were {len(particles)} ({particles})" + msg = ( + f'File "{filename}" contains {file_n_particles}, but you said there' + f" were {len(particles)} ({particles})" ) + raise DataParserError(msg) # Prepare splitting into particle columns first_momentum_row = 0 @@ -291,7 +294,8 @@ def read_pawian_hists( elif "fit" in type_name.lower(): type_name = "fitted" else: - raise ValueError('Wrong type_name: should be either "data" or "fitted"') + msg = 'Wrong type_name: should be either "data" or "fitted"' + raise ValueError(msg) tree_name = f"_{type_name}Fourvecs" # Get particle names diff --git a/src/pawian/qa.py b/src/pawian/qa.py index 7cfdb34..31964cc 100644 --- a/src/pawian/qa.py +++ b/src/pawian/qa.py @@ -7,7 +7,7 @@ import logging import re # regex from math import ceil, sqrt -from typing import Any, Dict, List, Optional, Tuple, Union +from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union import matplotlib.pyplot as plt import numpy as np @@ -16,15 +16,17 @@ from matplotlib.axes import Axes from matplotlib.container import BarContainer from matplotlib.figure import Figure -from uproot.behaviors.TAxis import TAxis from uproot.behaviors.TH1 import TH1 from uproot.behaviors.TH2 import TH2 from uproot.behaviors.TH3 import TH3 -from uproot.reading import ReadOnlyDirectory from pawian.data import read_pawian_hists from pawian.latex import convert +if TYPE_CHECKING: + from uproot.behaviors.TAxis import TAxis + from uproot.reading import ReadOnlyDirectory + class PawianHists: """Data container for a :file:`pawianHists.root` file. @@ -92,16 +94,18 @@ def draw_histogram( kwargs: See `matplotlib.pyplot.hist` arguments """ if name not in self.histogram_names: - raise KeyError(f'Histogram "{name}" does not exist') + msg = f'Histogram "{name}" does not exist' + raise KeyError(msg) hist_content = self.get_histogram_content(name) if hist_content is None: - raise KeyError(f'Could not get histogram "{name}"') + msg = f'Could not get histogram "{name}"' + raise KeyError(msg) edges, values = hist_content if plot_on is None: plot_on = plt # type: ignore[assignment] return plot_on.hist(edges, weights=values, bins=len(values), **kwargs) # type: ignore[call-arg,return-value,union-attr] - def draw_combined_histogram( # pylint: disable=invalid-name,too-many-arguments,too-many-locals + def draw_combined_histogram( # noqa: PLR0913 self, name: str, plot_on: Optional[Axes] = None, @@ -125,7 +129,8 @@ def draw_combined_histogram( # pylint: disable=invalid-name,too-many-arguments, kwargs: Arguments that are passed to :func:`draw_histogram`. """ if name not in self.unique_histogram_names: - raise KeyError(f'Histogram of type "{name}" does not exist') + msg = f'Histogram of type "{name}" does not exist' + raise KeyError(msg) # Construct regular expression re_match_list = [] if data: @@ -164,7 +169,7 @@ def draw_all_histograms( plot_on = plt.figure() grid = plot_on.add_gridspec(n_x, n_y) # type: ignore[union-attr] for idx, name in enumerate(names): - assert plot_on is not None + assert plot_on is not None # noqa: S101 sub = plot_on.add_subplot(grid[idx % n_x, idx // n_x]) self.draw_combined_histogram(name, sub, **kwargs) sub.set_title(f"${convert(name)}$") @@ -175,7 +180,7 @@ def draw_all_histograms( def histogram_names(self) -> List[str]: """Get a list of all histogram names in a :file:`pawianHists.root` file.""" names = [] - for name in self.__file.keys(): + for name in self.__file: obj = self.__file[name] if isinstance(obj, TH1): names.append(obj.name) @@ -189,7 +194,7 @@ def unique_histogram_names(self) -> List[str]: keywords :code:`Data`, :code:`MC`, or :code:`Fit` have been removed. """ names = [] - for name in self.__file.keys(): + for name in self.__file: obj = self.__file[name] if isinstance(obj, TH1): hist_name = obj.name diff --git a/tests/.pydocstyle b/tests/.pydocstyle deleted file mode 100644 index 26d0703..0000000 --- a/tests/.pydocstyle +++ /dev/null @@ -1,4 +0,0 @@ -; ignore all pydocstyle errors in this folder - -[pydocstyle] -add_ignore = D diff --git a/tests/pawian/data/test_pandas_accessor.py b/tests/pawian/data/test_pandas_accessor.py index 26d502f..d52df11 100644 --- a/tests/pawian/data/test_pandas_accessor.py +++ b/tests/pawian/data/test_pandas_accessor.py @@ -16,7 +16,6 @@ ("particles", "number_of_rows"), [ (["pi+", "D0", "D-"], 100), - # (['gamma', 'pi+', 'pi-'], None), (None, 50), ], ) @@ -61,7 +60,7 @@ def test_raise_validate(columns, names): multi_index = pd.MultiIndex.from_tuples(columns, names=names) frame = pd.DataFrame(columns=multi_index) with pytest.raises(AttributeError): - print(frame.pwa) + print(frame.pwa) # noqa: T201 def test_properties_multicolumn(): diff --git a/tests/pawian/test_qa.py b/tests/pawian/test_qa.py index 589323c..6595257 100644 --- a/tests/pawian/test_qa.py +++ b/tests/pawian/test_qa.py @@ -64,7 +64,7 @@ def test_faulty_import(): ), ], ) -def test_data_model( # pylint: disable=too-many-arguments +def test_data_model( filename, hist_value, particles, n_data, n_fit, hist_names, unique_names ): """Test whether properties are correct."""