# pyproject.toml [build-system] requires = ["uv_build~=0.8.0"] build-backend = "uv_build" [project] name = "openfeature_sdk" version = "0.8.2" description = "Standardizing Feature Flagging for Everyone" readme = "README.md" authors = [{ name = "OpenFeature", email = "openfeature-core@groups.io" }] license = { file = "LICENSE" } classifiers = [ "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", ] keywords = [ "openfeature", "feature", "flags", "toggles", ] dependencies = [] requires-python = ">=3.9" [project.urls] Homepage = "https://github.com/open-feature/python-sdk" [dependency-groups] dev = [ "behave", "coverage[toml]>=6.5", "pytest", "pytest-asyncio", "pre-commit" ] [tool.uv] required-version = "~=0.8.0" [tool.uv.build-backend] module-name = "openfeature" module-root = "" namespace = true [tool.mypy] files = "openfeature" python_version = "3.9" # should be identical to the minimum supported version namespace_packages = true explicit_package_bases = true local_partial_types = true # will become the new default from version 2 pretty = true strict = true disallow_any_generics = false [tool.pytest.ini_options] asyncio_default_fixture_loop_scope = "function" [tool.coverage.report] exclude_also = [ "if TYPE_CHECKING:", "if typing.TYPE_CHECKING:", ] [tool.ruff] exclude = [ ".git", ".venv", "__pycache__", "venv", ] target-version = "py39" [tool.ruff.lint] select = [ "A", "B", "C4", "C90", "E", "F", "FLY", "FURB", "I", "LOG", "N", "PERF", "PGH", "PLC", "PLR0913", "PLR0915", "RUF", "S", "SIM", "T10", "T20", "UP", "W", "YTT", ] ignore = [ "E501", # the formatter will handle any too long line ] [tool.ruff.lint.per-file-ignores] "tests/**/*" = ["PLR0913", "S101"] [tool.ruff.lint.pylint] max-args = 6 max-statements = 30 [tool.ruff.lint.pyupgrade] # Preserve types, even if a file imports `from __future__ import annotations`. keep-runtime-typing = true [project.scripts] # workaround while UV doesn't support scripts directly in the pyproject.toml # see: https://github.com/astral-sh/uv/issues/5903 test = "scripts.scripts:test" test-cov = "scripts.scripts:test_cov" cov-report = "scripts.scripts:cov_report" cov = "scripts.scripts:cov" e2e = "scripts.scripts:e2e" precommit = "scripts.scripts:precommit"