# pyproject.toml [build-system] requires = ["setuptools>=61.0.0", "wheel"] build-backend = "setuptools.build_meta" [project] name = "openfeature_sdk" version = "0.6.1" 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.8" [project.optional-dependencies] dev = ["pip-tools", "pytest", "pre-commit"] [project.urls] Homepage = "https://github.com/open-feature/python-sdk" [tool.mypy] files = "openfeature" 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.ruff] exclude = [ ".git", ".venv", "__pycache__", "venv", ] target-version = "py38" [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 [tool.setuptools.package-data] openfeature = ["py.typed"]