diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6e0461c3..6cb1cc72 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -41,6 +41,7 @@ jobs: strategy: matrix: include: + - {python: '3.13', os: ubuntu-22.04, tox: py313-full} - {python: '3.12', os: ubuntu-22.04, tox: py312-full} - {python: '3.11', os: ubuntu-22.04, tox: py311-full} - {python: '3.10', os: ubuntu-22.04, tox: py310-full} @@ -48,7 +49,7 @@ jobs: - {python: '3.10', os: windows-2022, tox: py310} steps: - run: sudo apt install --yes docker-compose - if: ${{ contains(matrix.variant.os, 'ubuntu') }} + if: ${{ contains(matrix.os, 'ubuntu') }} - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: diff --git a/.gitignore b/.gitignore index 23d5762a..a893d47c 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,7 @@ __pycache__/ # Environments Pipfile venv +.venv + +# We don't use uv for project management +uv.lock diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 729be7c9..5779efc3 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,8 +1,10 @@ repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.6.0 + rev: v5.0.0 hooks: - id: check-added-large-files + - id: check-case-conflict + - id: check-illegal-windows-names - id: check-json - id: check-merge-conflict - id: check-toml @@ -19,7 +21,7 @@ repos: args: ["--drop-empty-cells", "--extra-keys 'metadata.language_info.version cell.metadata.jp-MarkdownHeadingCollapsed cell.metadata.pycharm'"] - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.6.3 + rev: v0.6.9 hooks: - id: ruff-format types_or: [ python, pyi ] @@ -40,3 +42,7 @@ repos: - id: rst-directive-colons - id: rst-inline-touching-normal - id: text-unicode-replacement-char +- repo: https://github.com/rhysd/actionlint + rev: v1.7.3 + hooks: + - id: actionlint diff --git a/pyproject.toml b/pyproject.toml index ac01da25..34c8fca9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,6 +23,7 @@ classifiers = [ "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Topic :: Scientific/Engineering", "Typing :: Typed", ] diff --git a/requirements/base.txt b/requirements/base.txt index 9dbee749..d598a086 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -7,7 +7,7 @@ # annotated-types==0.7.0 # via pydantic -anyio==4.4.0 +anyio==4.6.0 # via httpx bcrypt==4.2.0 # via paramiko @@ -15,34 +15,36 @@ certifi==2024.8.30 # via # httpcore # httpx -cffi==1.17.0 +cffi==1.17.1 # via # cryptography # pynacl cryptography==43.0.1 # via paramiko -dnspython==2.6.1 +dnspython==2.7.0 # via email-validator email-validator==2.2.0 # via -r base.in +exceptiongroup==1.2.2 + # via anyio h11==0.14.0 # via httpcore -httpcore==1.0.5 +httpcore==1.0.6 # via httpx httpx==0.27.2 # via -r base.in -idna==3.8 +idna==3.10 # via # anyio # email-validator # httpx -paramiko==3.4.1 +paramiko==3.5.0 # via -r base.in pycparser==2.22 # via cffi -pydantic==2.8.2 +pydantic==2.9.2 # via -r base.in -pydantic-core==2.20.1 +pydantic-core==2.23.4 # via pydantic pynacl==1.5.0 # via paramiko @@ -56,5 +58,6 @@ sniffio==1.3.1 # httpx typing-extensions==4.12.2 # via + # anyio # pydantic # pydantic-core diff --git a/requirements/ci.txt b/requirements/ci.txt index 8540e673..313d6640 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -11,9 +11,9 @@ chardet==5.2.0 # via tox colorama==0.4.6 # via tox -distlib==0.3.8 +distlib==0.3.9 # via virtualenv -filelock==3.15.4 +filelock==3.16.1 # via # tox # virtualenv @@ -21,15 +21,21 @@ packaging==24.1 # via # pyproject-api # tox -platformdirs==4.2.2 +platformdirs==4.3.6 # via # tox # virtualenv pluggy==1.5.0 # via tox -pyproject-api==1.7.1 +pyproject-api==1.8.0 # via tox -tox==4.18.0 +tomli==2.0.2 + # via + # pyproject-api + # tox +tox==4.21.2 # via -r ci.in -virtualenv==20.26.3 +typing-extensions==4.12.2 + # via tox +virtualenv==20.26.6 # via tox diff --git a/requirements/dev.txt b/requirements/dev.txt index 3b9fe309..c97be5b3 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -61,7 +61,7 @@ pip-compile-multi==2.6.4 # via -r dev.in pip-tools==7.4.1 # via pip-compile-multi -prometheus-client==0.20.0 +prometheus-client==0.21.0 # via jupyter-server python-json-logger==2.0.7 # via jupyter-events @@ -73,7 +73,7 @@ rfc3986-validator==0.1.1 # via # jsonschema # jupyter-events -ruff==0.6.3 +ruff==0.6.9 # via -r dev.in send2trash==1.8.3 # via jupyter-server diff --git a/requirements/docs.txt b/requirements/docs.txt index ae28de35..8e8ff297 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -25,11 +25,11 @@ beautifulsoup4==4.12.3 # pydata-sphinx-theme bleach==6.1.0 # via nbconvert -charset-normalizer==3.3.2 +charset-normalizer==3.4.0 # via requests comm==0.2.2 # via ipykernel -debugpy==1.8.5 +debugpy==1.8.7 # via ipykernel decorator==5.1.1 # via ipython @@ -41,7 +41,7 @@ docutils==0.21.2 # nbsphinx # pydata-sphinx-theme # sphinx -executing==2.0.1 +executing==2.1.0 # via stack-data fastjsonschema==2.20.0 # via nbformat @@ -49,7 +49,7 @@ imagesize==1.4.1 # via sphinx ipykernel==6.29.5 # via -r docs.in -ipython==8.27.0 +ipython==8.28.0 # via # -r docs.in # ipykernel @@ -63,9 +63,9 @@ jinja2==3.1.4 # sphinx jsonschema==4.23.0 # via nbformat -jsonschema-specifications==2023.12.1 +jsonschema-specifications==2024.10.1 # via jsonschema -jupyter-client==8.6.2 +jupyter-client==8.6.3 # via # ipykernel # nbclient @@ -82,7 +82,7 @@ markdown-it-py==3.0.0 # via # mdit-py-plugins # myst-parser -markupsafe==2.1.5 +markupsafe==3.0.1 # via # jinja2 # nbconvert @@ -90,7 +90,7 @@ matplotlib-inline==0.1.7 # via # ipykernel # ipython -mdit-py-plugins==0.4.1 +mdit-py-plugins==0.4.2 # via myst-parser mdurl==0.1.2 # via markdown-it-py @@ -117,9 +117,9 @@ parso==0.8.4 # via jedi pexpect==4.9.0 # via ipython -platformdirs==4.2.2 +platformdirs==4.3.6 # via jupyter-core -prompt-toolkit==3.0.47 +prompt-toolkit==3.0.48 # via ipython psutil==6.0.0 # via ipykernel @@ -127,7 +127,7 @@ ptyprocess==0.7.0 # via pexpect pure-eval==0.2.3 # via stack-data -pydantic-settings==2.4.0 +pydantic-settings==2.5.2 # via autodoc-pydantic pydata-sphinx-theme==0.15.4 # via -r docs.in @@ -158,7 +158,7 @@ snowballstemmer==2.2.0 # via sphinx soupsieve==2.6 # via beautifulsoup4 -sphinx==8.0.2 +sphinx==8.1.0 # via # -r docs.in # autodoc-pydantic @@ -168,7 +168,7 @@ sphinx==8.0.2 # sphinx-autodoc-typehints # sphinx-copybutton # sphinx-design -sphinx-autodoc-typehints==2.3.0 +sphinx-autodoc-typehints==2.5.0 # via -r docs.in sphinx-copybutton==0.5.2 # via -r docs.in @@ -206,7 +206,7 @@ traitlets==5.14.3 # nbconvert # nbformat # nbsphinx -urllib3==2.2.2 +urllib3==2.2.3 # via requests wcwidth==0.2.13 # via prompt-toolkit diff --git a/requirements/mypy.txt b/requirements/mypy.txt index e5b4900e..88bcbee5 100644 --- a/requirements/mypy.txt +++ b/requirements/mypy.txt @@ -10,15 +10,15 @@ mypy==1.11.2 # via -r mypy.in mypy-extensions==1.0.0 # via mypy -types-docutils==0.21.0.20240724 +types-docutils==0.21.0.20241005 # via -r mypy.in -types-paramiko==3.4.0.20240423 +types-paramiko==3.5.0.20240928 # via -r mypy.in -types-python-dateutil==2.9.0.20240821 +types-python-dateutil==2.9.0.20241003 # via -r mypy.in -types-pyyaml==6.0.12.20240808 +types-pyyaml==6.0.12.20240917 # via -r mypy.in -types-requests==2.32.0.20240712 +types-requests==2.32.0.20240914 # via -r mypy.in -urllib3==2.2.2 +urllib3==2.2.3 # via types-requests diff --git a/requirements/static.txt b/requirements/static.txt index 85da246d..6d65fbd9 100644 --- a/requirements/static.txt +++ b/requirements/static.txt @@ -7,19 +7,19 @@ # cfgv==3.4.0 # via pre-commit -distlib==0.3.8 +distlib==0.3.9 # via virtualenv -filelock==3.15.4 +filelock==3.16.1 # via virtualenv -identify==2.6.0 +identify==2.6.1 # via pre-commit nodeenv==1.9.1 # via pre-commit -platformdirs==4.2.2 +platformdirs==4.3.6 # via virtualenv -pre-commit==3.8.0 +pre-commit==4.0.1 # via -r static.in pyyaml==6.0.2 # via pre-commit -virtualenv==20.26.3 +virtualenv==20.26.6 # via pre-commit diff --git a/requirements/test.txt b/requirements/test.txt index 7407c4fa..49b38c47 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -10,9 +10,9 @@ attrs==24.2.0 # via hypothesis execnet==2.1.1 # via pytest-xdist -filelock[typing]==3.15.4 +filelock[typing]==3.16.1 # via -r test.in -hypothesis==6.111.2 +hypothesis==6.114.1 # via -r test.in iniconfig==2.0.0 # via pytest @@ -20,9 +20,9 @@ packaging==24.1 # via pytest pluggy==1.5.0 # via pytest -pyfakefs==5.6.0 +pyfakefs==5.7.0 # via -r test.in -pytest==8.3.2 +pytest==8.3.3 # via # -r test.in # pytest-randomly @@ -38,3 +38,5 @@ pyyaml==6.0.2 # via -r test.in sortedcontainers==2.4.0 # via hypothesis +tomli==2.0.2 + # via pytest diff --git a/requirements/wheels.txt b/requirements/wheels.txt index 58e1bd40..d1c1063b 100644 --- a/requirements/wheels.txt +++ b/requirements/wheels.txt @@ -5,9 +5,11 @@ # # pip-compile-multi # -build==1.2.1 +build==1.2.2.post1 # via -r wheels.in packaging==24.1 # via build -pyproject-hooks==1.1.0 +pyproject-hooks==1.2.0 + # via build +tomli==2.0.2 # via build