python-sdk-contrib/pyproject.toml

95 lines
1.7 KiB
TOML

[project]
name = "openfeature-python-contrib"
version = "0.0.0" # not used
requires-python = ">=3.9"
dependencies = [
# hooks
"openfeature-hooks-opentelemetry",
# providers
"openfeature-provider-env-var",
"openfeature-provider-flagd",
"openfeature-provider-flipt",
"openfeature-provider-ofrep",
]
[dependency-groups]
dev = [
"coverage[toml]>=7.10.0,<8.0.0",
"mypy[faster-cache]>=1.17.0,<2.0.0",
"pytest>=8.4.0,<9.0.0",
]
[tool.uv]
required-version = "~=0.8.0"
package = false
[tool.uv.sources]
# hooks
openfeature-hooks-opentelemetry = { workspace = true }
# providers
openfeature-provider-env-var = { workspace = true }
openfeature-provider-flagd = { workspace = true }
openfeature-provider-flipt = { workspace = true }
openfeature-provider-ofrep = { workspace = true }
[tool.uv.workspace]
members = [
"hooks/*",
"providers/*",
]
[tool.ruff]
target-version = "py39"
exclude = [
".git",
".venv",
"__pycache__",
"venv",
"providers/openfeature-provider-flagd/src/openfeature/schemas/**"
]
[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/**/*" = ["S101"]
[tool.ruff.lint.isort]
known-first-party = ["openfeature"]
[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