diff --git a/.appveyor.yml b/.appveyor.yml index 702baba..badf8ff 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -5,7 +5,7 @@ environment: RANDOM_SEED: 0 matrix: - PYTHON_MAJOR: 3 - PYTHON_MINOR: 9 + PYTHON_MINOR: 10 cache: - .venv -> poetry.lock diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9281afe..77471a3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -8,7 +8,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - uses: actions/checkout@v4 diff --git a/.tool-versions b/.tool-versions index 2e35220..55d9624 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,3 +1,3 @@ -python 3.9.18 -poetry 2.2.1 +python 3.12.12 +poetry 2.3.0 nodejs 20.11.0 diff --git a/CHANGELOG.md b/CHANGELOG.md index f96b523..c0b3113 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 3.8 (unreleased) + +- Dropped support for Python 3.9 and added support for Python 3.14. + # 3.7 (2025-10-18) - Added support for applying post-checkout Git patches. (@C0DE-X) diff --git a/docs/requirements.txt b/docs/requirements.txt index e9afaf9..3f804ea 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,87 +1,83 @@ -altgraph==0.17.2 ; python_version >= "3.9" and python_version < "3.15" -astroid==3.3.11 ; python_version >= "3.9" and python_version < "3.15" -black==25.9.0 ; python_version >= "3.9" and python_version < "3.15" -cached-property==1.5.2 ; python_version >= "3.9" and python_version < "3.15" -certifi==2024.7.4 ; python_version >= "3.9" and python_version < "3.15" -charset-normalizer==2.1.1 ; python_version >= "3.9" and python_version < "3.15" -classproperties==0.2.0 ; python_version >= "3.9" and python_version < "3.15" -click==8.1.3 ; python_version >= "3.9" and python_version < "3.15" -colorama==0.4.5 ; python_version >= "3.9" and python_version < "3.15" -coverage==7.10.6 ; python_version >= "3.9" and python_version < "3.15" -coveragespace==6.1 ; python_version >= "3.9" and python_version < "3.15" -datafiles==2.3.4 ; python_version >= "3.9" and python_version < "3.15" -dill==0.3.8 ; python_version >= "3.9" and python_version < "3.15" -docopt==0.6.2 ; python_version >= "3.9" and python_version < "3.15" -exceptiongroup==1.1.1 ; python_version >= "3.9" and python_version < "3.11" -freezegun==1.5.5 ; python_version >= "3.9" and python_version < "3.15" -future==0.18.3 ; python_version >= "3.9" and python_version < "3.15" and sys_platform == "win32" -ghp-import==2.1.0 ; python_version >= "3.9" and python_version < "3.15" -griffe==1.14.0 ; python_version >= "3.9" and python_version < "3.11" -griffe==1.15.0 ; python_version >= "3.11" and python_version < "3.15" -idna==3.7 ; python_version >= "3.9" and python_version < "3.15" -importlib-metadata==4.12.0 ; python_version == "3.9" -iniconfig==1.1.1 ; python_version >= "3.9" and python_version < "3.15" -isort==6.1.0 ; python_version >= "3.9" and python_version < "3.15" -jinja2==3.1.6 ; python_version >= "3.9" and python_version < "3.15" -json-five==1.1.2 ; python_version >= "3.9" and python_version < "3.15" -librt==0.6.3 ; python_version >= "3.9" and python_version < "3.15" and platform_python_implementation != "PyPy" -macfsevents==0.8.4 ; python_version >= "3.9" and python_version < "3.15" and sys_platform == "darwin" -macholib==1.16 ; python_version >= "3.9" and python_version < "3.15" and sys_platform == "darwin" -markdown==3.9 ; python_version >= "3.9" and python_version < "3.15" -markupsafe==2.1.1 ; python_version >= "3.9" and python_version < "3.15" -mccabe==0.6.1 ; python_version >= "3.9" and python_version < "3.15" -mergedeep==1.3.4 ; python_version >= "3.9" and python_version < "3.15" -minilog==2.3.1 ; python_version >= "3.9" and python_version < "3.15" -mkdocs-autorefs==1.4.3 ; python_version >= "3.9" and python_version < "3.15" -mkdocs-get-deps==0.2.0 ; python_version >= "3.9" and python_version < "3.15" -mkdocs==1.6.1 ; python_version >= "3.9" and python_version < "3.15" -mkdocstrings-python==1.18.2 ; python_version >= "3.9" and python_version < "3.11" -mkdocstrings-python==2.0.1 ; python_version >= "3.11" and python_version < "3.15" -mkdocstrings==0.30.1 ; python_version >= "3.9" and python_version < "3.15" -mypy-extensions==1.0.0 ; python_version >= "3.9" and python_version < "3.15" -mypy==1.19.1 ; python_version >= "3.9" and python_version < "3.15" -nose==1.3.7 ; python_version >= "3.9" and python_version < "3.15" -packaging==24.1 ; python_version >= "3.9" and python_version < "3.15" -parse==1.19.0 ; python_version >= "3.9" and python_version < "3.15" -pathspec==0.12.1 ; python_version >= "3.9" and python_version < "3.15" -pefile==2022.5.30 ; python_version >= "3.9" and python_version < "3.15" and sys_platform == "win32" -platformdirs==2.5.2 ; python_version >= "3.9" and python_version < "3.15" -pluggy==1.5.0 ; python_version >= "3.9" and python_version < "3.15" -pydocstyle==6.3.0 ; python_version >= "3.9" and python_version < "3.15" -pygments==2.19.2 ; python_version >= "3.9" and python_version < "3.15" -pyinstaller-hooks-contrib==2025.10 ; python_version >= "3.9" and python_version < "3.15" -pyinstaller==6.17.0 ; python_version >= "3.9" and python_version < "3.15" -pylint==3.3.9 ; python_version >= "3.9" and python_version < "3.15" -pymdown-extensions==10.16.1 ; python_version >= "3.9" and python_version < "3.15" -pync==2.0.3 ; python_version >= "3.9" and python_version < "3.15" and sys_platform == "darwin" -pytest-cov==7.0.0 ; python_version >= "3.9" and python_version < "3.15" -pytest-describe==3.1.0 ; python_version >= "3.9" and python_version < "3.15" -pytest-expecter==3.0 ; python_version >= "3.9" and python_version < "3.15" -pytest-random==0.02 ; python_version >= "3.9" and python_version < "3.15" -pytest==8.4.2 ; python_version >= "3.9" and python_version < "3.15" -python-dateutil==2.8.2 ; python_version >= "3.9" and python_version < "3.15" -python-termstyle==0.1.10 ; python_version >= "3.9" and python_version < "3.15" -pytokens==0.1.10 ; python_version >= "3.9" and python_version < "3.15" -pytoolconfig==1.3.0 ; python_version >= "3.9" and python_version < "3.15" -pywin32-ctypes==0.2.3 ; python_version >= "3.9" and python_version < "3.15" and sys_platform == "win32" -pyyaml-env-tag==0.1 ; python_version >= "3.9" and python_version < "3.15" -pyyaml==6.0.1 ; python_version >= "3.9" and python_version < "3.15" -regex==2025.9.1 ; python_version >= "3.9" and python_version < "3.15" -requests==2.32.5 ; python_version >= "3.9" and python_version < "3.15" -rope==1.14.0 ; python_version >= "3.9" and python_version < "3.15" -ruamel-yaml-clib==0.2.14 ; python_version >= "3.9" and python_version < "3.14" and platform_python_implementation == "CPython" -ruamel-yaml==0.18.15 ; python_version >= "3.9" and python_version < "3.15" -setuptools==80.9.0 ; python_version >= "3.9" and python_version < "3.15" -six==1.16.0 ; python_version >= "3.9" and python_version < "3.15" -sly==0.5 ; python_version >= "3.9" and python_version < "3.15" -sniffer==0.4.1 ; python_version >= "3.9" and python_version < "3.15" -snowballstemmer==2.2.0 ; python_version >= "3.9" and python_version < "3.15" -tomli==2.0.1 ; python_version >= "3.9" and python_version < "3.11" -tomlkit==0.10.2 ; python_version >= "3.9" and python_version < "3.15" -types-freezegun==1.1.10 ; python_version >= "3.9" and python_version < "3.15" -types-setuptools==80.9.0.20251223 ; python_version >= "3.9" and python_version < "3.15" -typing-extensions==4.15.0 ; python_version >= "3.9" and python_version < "3.15" -universal-startfile==0.4 ; python_version >= "3.9" and python_version < "3.15" -urllib3==2.6.3 ; python_version >= "3.9" and python_version < "3.15" -watchdog==2.1.9 ; python_version >= "3.9" and python_version < "3.15" -zipp==3.19.1 ; python_version == "3.9" +altgraph==0.17.2 ; python_version >= "3.10" and python_version < "3.15" +astroid==3.3.11 ; python_version >= "3.10" and python_version < "3.15" +black==25.12.0 ; python_version >= "3.10" and python_version < "3.15" +cached-property==1.5.2 ; python_version >= "3.10" and python_version < "3.15" +certifi==2024.7.4 ; python_version >= "3.10" and python_version < "3.15" +charset-normalizer==2.1.1 ; python_version >= "3.10" and python_version < "3.15" +classproperties==0.2.0 ; python_version >= "3.10" and python_version < "3.15" +click==8.1.3 ; python_version >= "3.10" and python_version < "3.15" +colorama==0.4.5 ; python_version >= "3.10" and python_version < "3.15" +coverage==7.10.6 ; python_version >= "3.10" and python_version < "3.15" +coveragespace==6.1 ; python_version >= "3.10" and python_version < "3.15" +datafiles==2.3.4 ; python_version >= "3.10" and python_version < "3.15" +dill==0.3.8 ; python_version >= "3.10" and python_version < "3.15" +docopt==0.6.2 ; python_version >= "3.10" and python_version < "3.15" +exceptiongroup==1.1.1 ; python_version == "3.10" +freezegun==1.5.5 ; python_version >= "3.10" and python_version < "3.15" +future==0.18.3 ; python_version >= "3.10" and python_version < "3.15" and sys_platform == "win32" +ghp-import==2.1.0 ; python_version >= "3.10" and python_version < "3.15" +griffe==1.15.0 ; python_version >= "3.10" and python_version < "3.15" +idna==3.3 ; python_version >= "3.10" and python_version < "3.15" +iniconfig==1.1.1 ; python_version >= "3.10" and python_version < "3.15" +isort==6.1.0 ; python_version >= "3.10" and python_version < "3.15" +jinja2==3.1.6 ; python_version >= "3.10" and python_version < "3.15" +json-five==1.1.2 ; python_version >= "3.10" and python_version < "3.15" +librt==0.6.3 ; python_version >= "3.10" and python_version < "3.15" and platform_python_implementation != "PyPy" +macfsevents==0.8.4 ; python_version >= "3.10" and python_version <= "3.12" and sys_platform == "darwin" +macholib==1.16 ; python_version >= "3.10" and python_version < "3.15" and sys_platform == "darwin" +markdown==3.9 ; python_version >= "3.10" and python_version < "3.15" +markupsafe==2.1.1 ; python_version >= "3.10" and python_version < "3.15" +mccabe==0.6.1 ; python_version >= "3.10" and python_version < "3.15" +mergedeep==1.3.4 ; python_version >= "3.10" and python_version < "3.15" +minilog==2.3.1 ; python_version >= "3.10" and python_version < "3.15" +mkdocs-autorefs==1.4.3 ; python_version >= "3.10" and python_version < "3.15" +mkdocs-get-deps==0.2.0 ; python_version >= "3.10" and python_version < "3.15" +mkdocs==1.6.1 ; python_version >= "3.10" and python_version < "3.15" +mkdocstrings-python==2.0.1 ; python_version >= "3.10" and python_version < "3.15" +mkdocstrings==0.30.1 ; python_version >= "3.10" and python_version < "3.15" +mypy-extensions==1.0.0 ; python_version >= "3.10" and python_version < "3.15" +mypy==1.19.1 ; python_version >= "3.10" and python_version < "3.15" +nose==1.3.7 ; python_version >= "3.10" and python_version < "3.15" +packaging==24.1 ; python_version >= "3.10" and python_version < "3.15" +parse==1.19.0 ; python_version >= "3.10" and python_version < "3.15" +pathspec==0.12.1 ; python_version >= "3.10" and python_version < "3.15" +pefile==2022.5.30 ; python_version >= "3.10" and python_version < "3.15" and sys_platform == "win32" +platformdirs==2.5.2 ; python_version >= "3.10" and python_version < "3.15" +pluggy==1.5.0 ; python_version >= "3.10" and python_version < "3.15" +pydocstyle==6.3.0 ; python_version >= "3.10" and python_version < "3.15" +pygments==2.19.2 ; python_version >= "3.10" and python_version < "3.15" +pyinstaller-hooks-contrib==2025.10 ; python_version >= "3.10" and python_version < "3.15" +pyinstaller==6.17.0 ; python_version >= "3.10" and python_version < "3.15" +pylint==3.3.9 ; python_version >= "3.10" and python_version < "3.15" +pymdown-extensions==10.16.1 ; python_version >= "3.10" and python_version < "3.15" +pync==2.0.3 ; python_version >= "3.10" and python_version < "3.15" and sys_platform == "darwin" +pytest-cov==7.0.0 ; python_version >= "3.10" and python_version < "3.15" +pytest-describe==3.1.0 ; python_version >= "3.10" and python_version < "3.15" +pytest-expecter==3.0 ; python_version >= "3.10" and python_version < "3.15" +pytest-random==0.2 ; python_version >= "3.10" and python_version < "3.15" +pytest==8.4.2 ; python_version >= "3.10" and python_version < "3.15" +python-dateutil==2.8.2 ; python_version >= "3.10" and python_version < "3.15" +python-termstyle==0.1.10 ; python_version >= "3.10" and python_version < "3.15" +pytokens==0.3.0 ; python_version >= "3.10" and python_version < "3.15" +pytoolconfig==1.3.0 ; python_version >= "3.10" and python_version < "3.15" +pywin32-ctypes==0.2.3 ; python_version >= "3.10" and python_version < "3.15" and sys_platform == "win32" +pyyaml-env-tag==0.1 ; python_version >= "3.10" and python_version < "3.15" +pyyaml==6.0.1 ; python_version >= "3.10" and python_version < "3.15" +regex==2025.9.1 ; python_version >= "3.10" and python_version < "3.15" +requests==2.32.5 ; python_version >= "3.10" and python_version < "3.15" +rope==1.14.0 ; python_version >= "3.10" and python_version < "3.15" +ruamel-yaml-clib==0.2.14 ; python_version >= "3.10" and python_version < "3.14" and platform_python_implementation == "CPython" +ruamel-yaml==0.18.15 ; python_version >= "3.10" and python_version < "3.15" +setuptools==80.9.0 ; python_version >= "3.10" and python_version < "3.15" +six==1.16.0 ; python_version >= "3.10" and python_version < "3.15" +sly==0.5 ; python_version >= "3.10" and python_version < "3.15" +sniffer==0.4.1 ; python_version >= "3.10" and python_version < "3.15" +snowballstemmer==2.2.0 ; python_version >= "3.10" and python_version < "3.15" +tomli==2.0.1 ; python_version == "3.10" +tomlkit==0.10.2 ; python_version >= "3.10" and python_version < "3.15" +types-freezegun==1.1.10 ; python_version >= "3.10" and python_version < "3.15" +types-setuptools==80.9.0.20251223 ; python_version >= "3.10" and python_version < "3.15" +typing-extensions==4.15.0 ; python_version >= "3.10" and python_version < "3.15" +universal-startfile==0.4 ; python_version >= "3.10" and python_version < "3.15" +urllib3==2.6.3 ; python_version >= "3.10" and python_version < "3.15" +watchdog==2.1.9 ; python_version >= "3.10" and python_version < "3.15" diff --git a/poetry.lock b/poetry.lock index a9aa5cf..901083c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.2.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.3.0 and should not be changed by hand. [[package]] name = "altgraph" @@ -27,59 +27,6 @@ files = [ [package.dependencies] typing-extensions = {version = ">=4", markers = "python_version < \"3.11\""} -[[package]] -name = "black" -version = "25.11.0" -description = "The uncompromising code formatter." -optional = false -python-versions = ">=3.9" -groups = ["dev"] -markers = "python_version < \"3.11\"" -files = [ - {file = "black-25.11.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ec311e22458eec32a807f029b2646f661e6859c3f61bc6d9ffb67958779f392e"}, - {file = "black-25.11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1032639c90208c15711334d681de2e24821af0575573db2810b0763bcd62e0f0"}, - {file = "black-25.11.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0c0f7c461df55cf32929b002335883946a4893d759f2df343389c4396f3b6b37"}, - {file = "black-25.11.0-cp310-cp310-win_amd64.whl", hash = "sha256:f9786c24d8e9bd5f20dc7a7f0cdd742644656987f6ea6947629306f937726c03"}, - {file = "black-25.11.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:895571922a35434a9d8ca67ef926da6bc9ad464522a5fe0db99b394ef1c0675a"}, - {file = "black-25.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cb4f4b65d717062191bdec8e4a442539a8ea065e6af1c4f4d36f0cdb5f71e170"}, - {file = "black-25.11.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d81a44cbc7e4f73a9d6ae449ec2317ad81512d1e7dce7d57f6333fd6259737bc"}, - {file = "black-25.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:7eebd4744dfe92ef1ee349dc532defbf012a88b087bb7ddd688ff59a447b080e"}, - {file = "black-25.11.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:80e7486ad3535636657aa180ad32a7d67d7c273a80e12f1b4bfa0823d54e8fac"}, - {file = "black-25.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6cced12b747c4c76bc09b4db057c319d8545307266f41aaee665540bc0e04e96"}, - {file = "black-25.11.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6cb2d54a39e0ef021d6c5eef442e10fd71fcb491be6413d083a320ee768329dd"}, - {file = "black-25.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:ae263af2f496940438e5be1a0c1020e13b09154f3af4df0835ea7f9fe7bfa409"}, - {file = "black-25.11.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0a1d40348b6621cc20d3d7530a5b8d67e9714906dfd7346338249ad9c6cedf2b"}, - {file = "black-25.11.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:51c65d7d60bb25429ea2bf0731c32b2a2442eb4bd3b2afcb47830f0b13e58bfd"}, - {file = "black-25.11.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:936c4dd07669269f40b497440159a221ee435e3fddcf668e0c05244a9be71993"}, - {file = "black-25.11.0-cp313-cp313-win_amd64.whl", hash = "sha256:f42c0ea7f59994490f4dccd64e6b2dd49ac57c7c84f38b8faab50f8759db245c"}, - {file = "black-25.11.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:35690a383f22dd3e468c85dc4b915217f87667ad9cce781d7b42678ce63c4170"}, - {file = "black-25.11.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:dae49ef7369c6caa1a1833fd5efb7c3024bb7e4499bf64833f65ad27791b1545"}, - {file = "black-25.11.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5bd4a22a0b37401c8e492e994bce79e614f91b14d9ea911f44f36e262195fdda"}, - {file = "black-25.11.0-cp314-cp314-win_amd64.whl", hash = "sha256:aa211411e94fdf86519996b7f5f05e71ba34835d8f0c0f03c00a26271da02664"}, - {file = "black-25.11.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a3bb5ce32daa9ff0605d73b6f19da0b0e6c1f8f2d75594db539fdfed722f2b06"}, - {file = "black-25.11.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9815ccee1e55717fe9a4b924cae1646ef7f54e0f990da39a34fc7b264fcf80a2"}, - {file = "black-25.11.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:92285c37b93a1698dcbc34581867b480f1ba3a7b92acf1fe0467b04d7a4da0dc"}, - {file = "black-25.11.0-cp39-cp39-win_amd64.whl", hash = "sha256:43945853a31099c7c0ff8dface53b4de56c41294fa6783c0441a8b1d9bf668bc"}, - {file = "black-25.11.0-py3-none-any.whl", hash = "sha256:e3f562da087791e96cefcd9dda058380a442ab322a02e222add53736451f604b"}, - {file = "black-25.11.0.tar.gz", hash = "sha256:9a323ac32f5dc75ce7470501b887250be5005a01602e931a15e45593f70f6e08"}, -] - -[package.dependencies] -click = ">=8.0.0" -mypy-extensions = ">=0.4.3" -packaging = ">=22.0" -pathspec = ">=0.9.0" -platformdirs = ">=2" -pytokens = ">=0.3.0" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} - -[package.extras] -colorama = ["colorama (>=0.4.3)"] -d = ["aiohttp (>=3.10)"] -jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] -uvloop = ["uvloop (>=0.15.2)"] - [[package]] name = "black" version = "25.12.0" @@ -87,7 +34,6 @@ description = "The uncompromising code formatter." optional = false python-versions = ">=3.10" groups = ["dev"] -markers = "python_version >= \"3.11\"" files = [ {file = "black-25.12.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f85ba1ad15d446756b4ab5f3044731bf68b777f8f9ac9cdabd2425b97cd9c4e8"}, {file = "black-25.12.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:546eecfe9a3a6b46f9d69d8a642585a6eaf348bcbbc4d87a19635570e02d9f4a"}, @@ -125,6 +71,8 @@ packaging = ">=22.0" pathspec = ">=0.9.0" platformdirs = ">=2" pytokens = ">=0.3.0" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} [package.extras] colorama = ["colorama (>=0.4.3)"] @@ -387,7 +335,7 @@ description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" groups = ["dev"] -markers = "python_version < \"3.11\"" +markers = "python_version == \"3.10\"" files = [ {file = "exceptiongroup-1.1.1-py3-none-any.whl", hash = "sha256:232c37c63e4f682982c8b6459f33a8981039e5fb8756b2074364e5055c498c9e"}, {file = "exceptiongroup-1.1.1.tar.gz", hash = "sha256:d484c3090ba2889ae2928419117447a14daf3c1231d5e30d0aae34f354f01785"}, @@ -441,22 +389,6 @@ python-dateutil = ">=2.8.1" [package.extras] dev = ["flake8", "markdown", "twine", "wheel"] -[[package]] -name = "griffe" -version = "1.14.0" -description = "Signatures for entire Python programs. Extract the structure, the frame, the skeleton of your project, to generate API documentation or find breaking changes in your API." -optional = false -python-versions = ">=3.9" -groups = ["dev"] -markers = "python_version < \"3.11\"" -files = [ - {file = "griffe-1.14.0-py3-none-any.whl", hash = "sha256:0e9d52832cccf0f7188cfe585ba962d2674b241c01916d780925df34873bceb0"}, - {file = "griffe-1.14.0.tar.gz", hash = "sha256:9d2a15c1eca966d68e00517de5d69dd1bc5c9f2335ef6c1775362ba5b8651a13"}, -] - -[package.dependencies] -colorama = ">=0.4" - [[package]] name = "griffe" version = "1.15.0" @@ -464,7 +396,6 @@ description = "Signatures for entire Python programs. Extract the structure, the optional = false python-versions = ">=3.10" groups = ["dev"] -markers = "python_version >= \"3.11\"" files = [ {file = "griffe-1.15.0-py3-none-any.whl", hash = "sha256:6f6762661949411031f5fcda9593f586e6ce8340f0ba88921a0f2ef7a81eb9a3"}, {file = "griffe-1.15.0.tar.gz", hash = "sha256:7726e3afd6f298fbc3696e67958803e7ac843c1cfe59734b6251a40cdbfb5eea"}, @@ -488,27 +419,6 @@ files = [ {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, ] -[[package]] -name = "importlib-metadata" -version = "4.12.0" -description = "Read metadata from Python packages" -optional = false -python-versions = ">=3.7" -groups = ["dev"] -markers = "python_version == \"3.9\"" -files = [ - {file = "importlib_metadata-4.12.0-py3-none-any.whl", hash = "sha256:7401a975809ea1fdc658c3aa4f78cc2195a0e019c5cbc4c06122884e9ae80c23"}, - {file = "importlib_metadata-4.12.0.tar.gz", hash = "sha256:637245b8bab2b6502fcbc752cc4b7a6f6243bb02b31c5c26156ad103d3d45670"}, -] - -[package.dependencies] -zipp = ">=0.5" - -[package.extras] -docs = ["jaraco.packaging (>=9)", "rst.linker (>=1.9)", "sphinx"] -perf = ["ipython"] -testing = ["flufl.flake8", "importlib-resources (>=1.3) ; python_version < \"3.9\"", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7) ; platform_python_implementation != \"PyPy\"", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1) ; platform_python_implementation != \"PyPy\"", "pytest-perf (>=0.9.2)"] - [[package]] name = "iniconfig" version = "1.1.1" @@ -533,9 +443,6 @@ files = [ {file = "isort-6.1.0.tar.gz", hash = "sha256:9b8f96a14cfee0677e78e941ff62f03769a06d412aabb9e2a90487b3b7e8d481"}, ] -[package.dependencies] -importlib-metadata = {version = ">=4.6.0", markers = "python_version < \"3.10\""} - [package.extras] colors = ["colorama"] plugins = ["setuptools"] @@ -668,7 +575,7 @@ description = "Thread-based interface to file system observation primitives." optional = false python-versions = "*" groups = ["dev"] -markers = "sys_platform == \"darwin\"" +markers = "python_version <= \"3.12\" and sys_platform == \"darwin\"" files = [ {file = "MacFSEvents-0.8.4.tar.gz", hash = "sha256:bf7283f1d517764ccdc8195b21631dbbac1c506b920bf9a8ea2956b3127651cb"}, ] @@ -701,9 +608,6 @@ files = [ {file = "markdown-3.9.tar.gz", hash = "sha256:d2900fe1782bd33bdbbd56859defef70c2e78fc46668f8eb9df3128138f2cb6a"}, ] -[package.dependencies] -importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""} - [package.extras] docs = ["mdx_gh_links (>=0.2)", "mkdocs (>=1.6)", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-nature (>=0.6)", "mkdocs-section-index", "mkdocstrings[python]"] testing = ["coverage", "pyyaml"] @@ -810,7 +714,6 @@ files = [ click = ">=7.0" colorama = {version = ">=0.4", markers = "platform_system == \"Windows\""} ghp-import = ">=1.0" -importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""} jinja2 = ">=2.11.1" markdown = ">=3.3.6" markupsafe = ">=2.0.1" @@ -856,7 +759,6 @@ files = [ ] [package.dependencies] -importlib-metadata = {version = ">=4.3", markers = "python_version < \"3.10\""} mergedeep = ">=1.3.4" platformdirs = ">=2.2.0" pyyaml = ">=5.1" @@ -874,7 +776,6 @@ files = [ ] [package.dependencies] -importlib-metadata = {version = ">=4.6", markers = "python_version < \"3.10\""} Jinja2 = ">=2.11.1" Markdown = ">=3.6" MarkupSafe = ">=1.1" @@ -887,25 +788,6 @@ crystal = ["mkdocstrings-crystal (>=0.3.4)"] python = ["mkdocstrings-python (>=1.16.2)"] python-legacy = ["mkdocstrings-python-legacy (>=0.2.1)"] -[[package]] -name = "mkdocstrings-python" -version = "1.18.2" -description = "A Python handler for mkdocstrings." -optional = false -python-versions = ">=3.9" -groups = ["dev"] -markers = "python_version < \"3.11\"" -files = [ - {file = "mkdocstrings_python-1.18.2-py3-none-any.whl", hash = "sha256:944fe6deb8f08f33fa936d538233c4036e9f53e840994f6146e8e94eb71b600d"}, - {file = "mkdocstrings_python-1.18.2.tar.gz", hash = "sha256:4ad536920a07b6336f50d4c6d5603316fafb1172c5c882370cbbc954770ad323"}, -] - -[package.dependencies] -griffe = ">=1.13" -mkdocs-autorefs = ">=1.4" -mkdocstrings = ">=0.30" -typing-extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} - [[package]] name = "mkdocstrings-python" version = "2.0.1" @@ -913,7 +795,6 @@ description = "A Python handler for mkdocstrings." optional = false python-versions = ">=3.10" groups = ["dev"] -markers = "python_version >= \"3.11\"" files = [ {file = "mkdocstrings_python-2.0.1-py3-none-any.whl", hash = "sha256:66ecff45c5f8b71bf174e11d49afc845c2dfc7fc0ab17a86b6b337e0f24d8d90"}, {file = "mkdocstrings_python-2.0.1.tar.gz", hash = "sha256:843a562221e6a471fefdd4b45cc6c22d2607ccbad632879234fa9692e9cf7732"}, @@ -923,6 +804,7 @@ files = [ griffe = ">=1.13" mkdocs-autorefs = ">=1.4" mkdocstrings = ">=0.30" +typing-extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} [[package]] name = "mypy" @@ -1151,7 +1033,6 @@ files = [ [package.dependencies] altgraph = "*" -importlib-metadata = {version = ">=4.6", markers = "python_version < \"3.10\""} macholib = {version = ">=1.8", markers = "sys_platform == \"darwin\""} packaging = ">=22.0" pefile = {version = ">=2022.5.30", markers = "sys_platform == \"win32\""} @@ -1176,7 +1057,6 @@ files = [ ] [package.dependencies] -importlib_metadata = {version = ">=4.6", markers = "python_version < \"3.10\""} packaging = ">=22.0" setuptools = ">=42.0.0" @@ -1205,7 +1085,6 @@ mccabe = ">=0.6,<0.8" platformdirs = ">=2.2" tomli = {version = ">=1.1", markers = "python_version < \"3.11\""} tomlkit = ">=0.10.1" -typing-extensions = {version = ">=3.10", markers = "python_version < \"3.10\""} [package.extras] spelling = ["pyenchant (>=3.2,<4.0)"] @@ -1318,7 +1197,7 @@ files = [ [[package]] name = "pytest-random" -version = "0.02" +version = "0.2" description = "py.test plugin to randomize tests" optional = false python-versions = "*" @@ -1652,7 +1531,7 @@ description = "C version of reader, parser and emitter for ruamel.yaml derived f optional = false python-versions = ">=3.9" groups = ["main"] -markers = "platform_python_implementation == \"CPython\" and python_version < \"3.14\"" +markers = "python_version < \"3.14\" and platform_python_implementation == \"CPython\"" files = [ {file = "ruamel.yaml.clib-0.2.14-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f8b2acb0ffdd2ce8208accbec2dca4a06937d556fdcaefd6473ba1b5daa7e3c4"}, {file = "ruamel.yaml.clib-0.2.14-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:aef953f3b8bd0b50bd52a2e52fb54a6a2171a1889d8dea4a5959d46c6624c451"}, @@ -1800,7 +1679,7 @@ description = "A lil' TOML parser" optional = false python-versions = ">=3.7" groups = ["dev"] -markers = "python_version < \"3.11\"" +markers = "python_version == \"3.10\"" files = [ {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, @@ -1922,24 +1801,7 @@ files = [ [package.extras] watchmedo = ["PyYAML (>=3.10)"] -[[package]] -name = "zipp" -version = "3.19.1" -description = "Backport of pathlib-compatible object wrapper for zip files" -optional = false -python-versions = ">=3.8" -groups = ["dev"] -markers = "python_version == \"3.9\"" -files = [ - {file = "zipp-3.19.1-py3-none-any.whl", hash = "sha256:2828e64edb5386ea6a52e7ba7cdb17bb30a73a858f5eb6eb93d8d36f5ea26091"}, - {file = "zipp-3.19.1.tar.gz", hash = "sha256:35427f6d5594f4acf82d25541438348c26736fa9b3afa2754bcd63cdb99d8e8f"}, -] - -[package.extras] -doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] - [metadata] lock-version = "2.1" -python-versions = "^3.9,<3.15" -content-hash = "2c65f3927ccc461ec9e27e5c94c0bfa36e7b6a599b7c0913fb6160dafead2aef" +python-versions = "^3.10,<3.15" +content-hash = "76595346b459e14db025cbbcf15dba66be4704a0f77d546b1dd72830763ed9d2" diff --git a/pyproject.toml b/pyproject.toml index 0c2a7c6..8922c90 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,6 +35,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Topic :: Software Development", "Topic :: Software Development :: Build Tools", "Topic :: Software Development :: Version Control", @@ -43,7 +44,7 @@ classifiers = [ [tool.poetry.dependencies] -python = "^3.9,<3.15" +python = "^3.10,<3.15" datafiles = "^2.3.1" minilog = "^2.3.1" @@ -83,7 +84,7 @@ jinja2 = "~3.1.6" # Tooling pyinstaller = "^6.15" sniffer = "*" -macfsevents = { version = "*", platform = "darwin" } +macfsevents = { version = "*", platform = "darwin", python = "<3.13" } pync = { version = "*", platform = "darwin" } rope = ">=0.14,<1.15"