Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
261 changes: 3 additions & 258 deletions api/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ dev = [
"responses>=0.22.0,<0.23.0",
"pre-commit>=4.0.1,<5.0.0",
"pytest-mock>=3.10.0,<3.11.0",
# TODO: drop with #7759 — pytest-lazy-fixture is unmaintained and incompatible with pytest 8+
"pytest-lazy-fixture>=0.6.3,<0.7.0",
"moto>=4.1.3,<4.2.0",
# TODO: move to https://github.com/adamchainz/time-machine
Expand All @@ -103,7 +104,8 @@ dev = [
"pylint>=2.16.2,<2.17.0",
"pep8>=1.7.1,<1.8.0",
"autopep8>=2.0.1,<2.1.0",
"pytest>=9.0.3,<9.1.0",
# TODO: lift the <8 cap with #7759 — pinned to pytest 7 while pytest-lazy-fixture is in use
"pytest>=7.2.2,<8.0.0",
"pytest-django>=4.8.0,<5.0.0",
"pytest-cov>=4.1.0,<4.2.0",
"datamodel-code-generator>=0.25,<0.26.0",
Expand Down Expand Up @@ -159,263 +161,6 @@ clickhouse-driver = { git = "https://github.com/Flagsmith/clickhouse-driver", br

[tool.uv]
required-version = ">=0.11.18" # Ensure this matches the version in .pre-commit-config.yaml
# Pin every resolved package to the exact version that api/poetry.lock used on
# main before this migration, so the poetry -> uv switch is dependency-neutral.
# Keep this list in sync with poetry.lock until the lockfile churn settles.
override-dependencies = [
"annotated-types==0.6.0",
"anyio==4.12.1",
"appdirs==1.4.4",
"argcomplete==3.1.2",
"asgiref==3.8.1",
"astroid==2.15.8",
"asttokens==3.0.1",
"async-timeout==4.0.3",
"attrs==23.1.0",
"autopep8==2.0.4",
"backoff==2.2.1",
"black==26.3.1",
"boto3==1.35.95",
"boto3-stubs==1.36.20",
"botocore==1.35.95",
"botocore-stubs==1.36.20",
"cachetools==5.3.1",
"certifi==2024.7.4",
"cffi==2.0.0",
"cfgv==3.4.0",
"chardet==5.2.0",
"chargebee==3.18.2",
"charset-normalizer==3.2.0",
"click==8.1.6",
"colorama==0.4.6",
"coreapi==2.3.3",
"coreschema==0.0.4",
"coverage==7.10.6",
"cryptography==46.0.7",
"datamodel-code-generator==0.25.8",
"decorator==5.2.1",
"defusedxml==0.7.1",
"deprecation==2.0.7",
"diff-cover==10.1.0",
"dill==0.3.8",
"distlib==0.3.9",
"dj-database-url==3.0.1",
"django-admin-sso==5.2.0",
"django-axes==8.1.0",
"django-cockroachdb==4.2",
"django-cors-headers==3.5.0",
"django-debug-toolbar==6.2.0",
"django-environ==0.4.5",
"django-extensions==3.2.3",
"django-filter==2.4.0",
"django-health-check==3.18.2",
"django-lifecycle==1.2.4",
"django-multiselectfield==1.0.1",
"django-oauth-toolkit==3.1.0",
"django-ordered-model==3.4.3",
"django-python3-ldap==0.16.1",
"django-redis==5.4.0",
"django-ses==3.5.0",
"django-simple-history==2.12.0",
"django-softdelete==0.11.5",
"django-storages==1.10.1",
"django-stubs==5.2.8",
"django-stubs-ext==5.2.8",
"django-test-migrations==1.5.0",
"djangorestframework==3.15.2",
"djangorestframework-api-key==2.2.0",
"djangorestframework-dataclasses==1.3.1",
"djangorestframework-recursive==0.1.2",
"djangorestframework-simplejwt==5.5.1",
"djangorestframework-stubs==3.15.2",
"djoser==2.3.3",
"dnspython==2.6.1",
"drf-nested-routers==0.92.5",
"drf-spectacular==0.28.0",
"drf-writable-nested==0.6.4",
"elementpath==4.1.5",
"email-validator==2.0.0.post2",
"execnet==2.1.1",
"executing==2.2.1",
"fancycompleter==0.9.1",
"filelock==3.20.3",
"flagsmith==5.3.0",
# flagsmith-common version is set via the [project] dependency spec which
# also carries the extras; an override here would strip the extras.
"flagsmith-flag-engine==10.1.0",
"freezegun==1.5.5",
"genson==1.2.2",
"google-api-core==2.29.0",
"google-api-python-client==1.12.11",
"google-auth==2.38.0",
"google-auth-httplib2==0.1.0",
"google-re2==1.1.20251105",
"googleapis-common-protos==1.72.0",
"gunicorn==23.0.0",
"h11==0.16.0",
"httpcore==1.0.9",
"httplib2==0.22.0",
"httpx==0.28.1",
"hubspot-api-client==12.0.0",
"identify==2.6.3",
"importlib-metadata==8.7.1",
"inflect==5.6.2",
"inflection==0.5.1",
"influxdb-client==1.50.0",
"iniconfig==2.0.0",
"ipython==9.10.0",
"ipython-pygments-lexers==1.1.1",
"iregexp-check==0.1.4",
"isort==5.12.0",
"itypes==1.2.0",
"jedi==0.19.2",
"jinja2==3.1.6",
"jmespath==1.0.1",
"jsonpath-rfc9535==0.2.0",
"jsonschema==4.25.1",
"jsonschema-specifications==2025.9.1",
"jwcrypto==1.5.6",
"lazy-object-proxy==1.10.0",
"ldap3==2.9.1",
"markupsafe==2.1.3",
"marshmallow==3.26.2",
"matplotlib-inline==0.2.1",
"mccabe==0.7.0",
"monotonic==1.6",
"moto==4.1.14",
"mypy==1.15.0",
"mypy-boto3-dynamodb==1.33.0",
"mypy-extensions==1.0.0",
"nodeenv==1.9.1",
"oauth2client==4.1.3",
"oauthlib==3.2.2",
"openfeature-provider-flagsmith==0.2.0",
"openfeature-sdk==0.9.0",
"opentelemetry-api==1.40.0",
"opentelemetry-exporter-otlp-proto-common==1.40.0",
"opentelemetry-exporter-otlp-proto-http==1.40.0",
"opentelemetry-instrumentation==0.61b0",
"opentelemetry-instrumentation-dbapi==0.61b0",
"opentelemetry-instrumentation-django==0.61b0",
"opentelemetry-instrumentation-psycopg2==0.61b0",
"opentelemetry-instrumentation-redis==0.61b0",
"opentelemetry-instrumentation-wsgi==0.61b0",
"opentelemetry-proto==1.40.0",
"opentelemetry-sdk==1.40.0",
"opentelemetry-semantic-conventions==0.61b0",
"opentelemetry-util-http==0.61b0",
"packaging==25.0",
"parso==0.8.5",
"pathspec==1.0.4",
"pdbpp==0.10.3",
"pep8==1.7.1",
"pexpect==4.9.0",
"platformdirs==3.10.0",
"pluggy==1.2.0",
"pre-commit==4.0.1",
"prometheus-client==0.21.1",
"prompt-toolkit==3.0.52",
"proto-plus==1.27.1",
"protobuf==6.33.5",
"psycopg2-binary==2.9.11",
"ptyprocess==0.7.0",
"pure-eval==0.2.3",
"pyasn1==0.6.3",
"pyasn1-modules==0.4.2",
"pycodestyle==2.12.0",
"pycparser==2.21",
"pydantic==2.12.5",
"pydantic-collections==0.6.0",
"pydantic-core==2.41.5",
"pyfakefs==5.7.4",
"pygithub==2.8.1",
"pygments==2.19.2",
"pylint==2.16.4",
"pymemcache==4.0.0",
"pynacl==1.6.2",
"pyngo==2.4.1",
"pyopenssl==26.0.0",
"pyotp==2.9.0",
"pyparsing==2.4.7",
"pyreadline==2.1",
"pyrepl==0.9.0",
"pysaml2==7.4.2",
"pytest==7.2.2",
"pytest-cov==4.1.0",
"pytest-django==4.8.0",
"pytest-freezegun==0.4.2",
"pytest-lazy-fixture==0.6.3",
"pytest-mock==3.10.0",
"pytest-responses==0.5.1",
"pytest-structlog==1.1",
"pytest-xdist==3.6.1",
"python-dateutil==2.8.2",
"python-gnupg==0.5.1",
"python-http-client==3.3.7",
"python3-openid==3.2.0",
"pytokens==0.4.1",
"pytz==2023.4",
"pyyaml==6.0.1",
"reactivex==4.1.0",
"redis==5.0.1",
"referencing==0.37.0",
"regex==2026.2.19",
"requests==2.33.0",
"requests-futures==1.0.1",
"requests-mock==1.11.0",
"requests-oauthlib==1.3.1",
"responses==0.22.0",
"rpds-py==0.30.0",
"rsa==4.9",
"ruff==0.9.7",
"s3transfer==0.10.4",
"segment-analytics-python==2.2.3",
"semver==3.0.4",
"sendgrid==3.6.5",
"sendgrid-django==4.2.0",
"sentry-sdk==2.53.0",
"setuptools==80.10.2",
"shortuuid==1.0.11",
"simplejson==3.19.1",
"six==1.16.0",
"slack-sdk==3.9.1",
"social-auth-app-django==5.6.0",
"social-auth-core==4.4.2",
"sqlparse==0.5.4",
"sseclient-py==1.8.0",
"stack-data==0.6.3",
"structlog==24.4.0",
"toml==0.10.2",
"tomlkit==0.13.0",
"traitlets==5.14.3",
"types-awscrt==0.23.10",
"types-docutils==0.21.0.20241128",
"types-influxdb-client==1.45.0.20241221",
"types-markdown==3.7.0.20241204",
"types-psycopg2==2.9.21.20250121",
"types-pygments==2.19.0.20250107",
"types-python-dateutil==2.9.0.20241206",
"types-pytz==2025.1.0.20250204",
"types-pyyaml==6.0.12.20241230",
"types-requests==2.32.0.20241016",
"types-s3transfer==0.11.2",
"types-setuptools==75.8.0.20250210",
"types-toml==0.10.8.7",
"typing-extensions==4.15.0",
"typing-inspection==0.4.2",
"tzdata==2024.1",
"uritemplate==3.0.1",
"urllib3==2.7.0",
"virtualenv==20.36.1",
"wcwidth==0.5.3",
"werkzeug==3.1.6",
"whitenoise==6.0.0",
"wmctrl==0.5",
"wrapt==1.15.0",
"xmlschema==2.4.0",
"xmltodict==0.13.0",
"zipp==3.23.0",
]

[tool.ruff]
line-length = 88
Expand Down
2 changes: 1 addition & 1 deletion api/tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ def pytest_addoption(parser: pytest.Parser) -> None:
)


@pytest.hookimpl(trylast=True) # type: ignore[misc]
@pytest.hookimpl(trylast=True)
def pytest_configure(config: pytest.Config) -> None:
if (
config.option.ci
Expand Down
Loading
Loading