126 lines
2.4 KiB
TOML
126 lines
2.4 KiB
TOML
# 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" |