unifi_access/pyproject.toml

97 lines
1.7 KiB
TOML
Raw Normal View History

[build-system]
build-backend = "hatchling.build"
requires = [ "hatchling" ]
[project]
name = "unifi-access"
version = "0.1.0"
description = "Typed wrapper for the Unifi Access Public API"
readme = "README.md"
license = { text = "ISC" }
authors = [
{ name = "Adam Goldsmith", email = "contact@adamgoldsmith.name" },
]
requires-python = ">=3.11"
classifiers = [
"License :: OSI Approved :: ISC License (ISCL)",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
]
dependencies = [
2024-11-22 10:36:17 -05:00
"pydantic>=2.10.1",
"requests>=2.32.3",
]
[dependency-groups]
dev = [
"mypy>=1.13",
"pytest>=8.3.3",
"responses>=0.25.3",
"ruff>=0.7.1",
"types-requests>=2.32.0.20241016",
]
docs = [
"mkdocs-material>=9.5.42",
"mkdocstrings[python]>=0.26.2",
]
[tool.ruff]
line-length = 88
lint.select = [
"A",
"B",
"C4",
"E4",
"E7",
"E9",
"F",
"FIX003",
"FURB",
"I",
"INP",
"ISC",
"LOG",
"PERF",
"PIE",
"PL",
"PT",
"PTH",
"Q",
"RSE",
"RUF",
"SIM",
"T20",
"TCH",
"UP",
]
lint.ignore = [ "ISC001" ]
[tool.pyproject-fmt]
indent = 4
[tool.pytest.ini_options]
filterwarnings = [ "ignore::urllib3.exceptions.InsecureRequestWarning" ]
[tool.mypy]
plugins = [ "pydantic.mypy" ]
follow_imports = "silent"
warn_redundant_casts = true
warn_unused_ignores = true
disallow_any_generics = true
check_untyped_defs = true
no_implicit_reexport = true
disallow_untyped_defs = true
[tool.pydantic-mypy]
init_forbid_extra = true
init_typed = true
warn_required_dynamic_aliases = true
[tool.uv]
default-groups = [ "dev", "docs" ]