diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 16fdfd8..6e7c9f9 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -17,7 +17,7 @@ jobs: strategy: max-parallel: 4 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: - name: Cloning repo diff --git a/renovate.json5 b/renovate.json5 index a22606f..64cbff6 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -8,6 +8,12 @@ // `fix`/`chore`; ignore it so we keep `deps:` as the commit prefix. ignorePresets: [':semanticPrefixFixDepsChoreOthers'], semanticCommitType: 'deps', + // `constraintsFiltering: strict` filters out releases whose + // `requires-python` excludes `constraints.python`. + constraints: { + python: '>=3.10', + }, + constraintsFiltering: 'strict', 'git-submodules': { enabled: true, }, diff --git a/requirements-dev.txt b/requirements-dev.txt index ab2cc1e..1286505 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,5 +1,5 @@ # This file was autogenerated by uv via the following command: -# uv pip compile requirements-dev.in --constraints requirements.txt -o requirements-dev.txt --python-version 3.9 +# uv pip compile requirements-dev.in --constraints requirements.txt -o requirements-dev.txt --python-version 3.10 absolufy-imports==0.3.1 # via -r requirements-dev.in annotated-types==0.7.0 @@ -18,14 +18,18 @@ click==8.1.8 # via # black # pip-tools -coverage[toml]==7.10.4 +coverage==7.10.4 # via pytest-cov datamodel-code-generator==0.33.0 # via -r requirements-dev.in +exceptiongroup==1.3.1 + # via pytest flake8==7.3.0 # via -r requirements-dev.in genson==1.3.0 # via datamodel-code-generator +importlib-metadata==9.0.0 + # via build inflect==7.5.0 # via datamodel-code-generator iniconfig==2.1.0 @@ -63,6 +67,8 @@ pathspec==0.12.1 # via # black # mypy +pip==26.1.2 + # via pip-tools pip-tools==7.5.0 # via -r requirements-dev.in platformdirs==4.3.8 @@ -75,9 +81,9 @@ pycodestyle==2.14.0 # via flake8 pycparser==2.22 # via cffi -pydantic==2.11.7 +pydantic==2.13.4 # via datamodel-code-generator -pydantic-core==2.33.2 +pydantic-core==2.46.4 # via pydantic pyflakes==3.4.0 # via flake8 @@ -110,18 +116,34 @@ pyyaml==6.0.2 # via datamodel-code-generator rich==14.1.0 # via pytest-codspeed +setuptools==82.0.1 + # via pip-tools +tomli==2.4.1 + # via + # black + # build + # coverage + # datamodel-code-generator + # mypy + # pip-tools + # pytest typeguard==4.4.4 # via inflect types-setuptools==80.9.0.20250809 # via -r requirements-dev.in typing-extensions==4.14.1 # via + # -c requirements.txt + # black + # exceptiongroup # mypy # pydantic # pydantic-core # typeguard # typing-inspection -typing-inspection==0.4.1 +typing-inspection==0.4.2 # via pydantic wheel==0.46.2 # via pip-tools +zipp==4.1.0 + # via importlib-metadata diff --git a/requirements.txt b/requirements.txt index ebe0176..1d5949d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,12 +1,22 @@ # This file was autogenerated by uv via the following command: -# uv pip compile requirements.in --constraints requirements.txt --python-version 3.9 +# uv pip compile requirements.in --constraints requirements.txt --python-version 3.10 -o requirements.txt iregexp-check==0.1.4 - # via jsonpath-rfc9535 + # via + # -c requirements.txt + # jsonpath-rfc9535 jsonpath-rfc9535==0.1.6 - # via -r requirements.in + # via + # -c requirements.txt + # -r requirements.in regex==2025.7.34 - # via jsonpath-rfc9535 + # via + # -c requirements.txt + # jsonpath-rfc9535 semver==3.0.4 - # via -r requirements.in + # via + # -c requirements.txt + # -r requirements.in typing-extensions==4.14.1 - # via -r requirements.in + # via + # -c requirements.txt + # -r requirements.in diff --git a/setup.py b/setup.py index 88a86ac..d4e766a 100644 --- a/setup.py +++ b/setup.py @@ -12,6 +12,7 @@ description="Flag engine for the Flagsmith API.", long_description=open("README.md").read(), long_description_content_type="text/markdown", + python_requires=">=3.10", install_requires=[ "jsonpath-rfc9535>=0.1.5,<1", "semver>=3.0.4,<4", @@ -20,10 +21,10 @@ classifiers=[ "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ], )