-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
75 lines (64 loc) · 1.86 KB
/
Copy pathpyproject.toml
File metadata and controls
75 lines (64 loc) · 1.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
[project]
name = "labops"
dynamic = ["version"]
description = "YAML Based homeLAB"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
"ansible-core>=2.20.4",
"ansible-runner>=2.4.3",
"jinja2>=3.1.0",
"paramiko>=4.0.0",
"pydantic>=2.13.0",
"pydantic-extra-types>=2.11.1",
"pyyaml>=6.0.3",
"typer>=0.24.1",
]
[project.urls]
Documentation = "https://freezemanny.github.io/labops/"
Source = "https://github.com/FreezeManny/labops"
Changelog = "https://github.com/FreezeManny/labops/blob/main/CHANGELOG.md"
Issues = "https://github.com/FreezeManny/labops/issues"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
# The version lives in src/__about__.py so that release bumps never touch
# uv.lock; see the comment there.
[tool.hatch.version]
path = "src/__about__.py"
[tool.hatch.build.targets.wheel]
packages = ["src", "models", "labops_cli.py"]
[tool.hatch.build.targets.wheel.force-include]
"ansible" = "ansible"
[project.scripts]
labops = "labops_cli:main"
[dependency-groups]
dev = [
"ruff>=0.15.11",
"ty>=0.0.31",
]
test = [
"pytest>=8",
]
docs = [
"mkdocs-material>=9.5",
"mkdocs-include-markdown-plugin>=7",
]
# Install the test group by default so `uv run pytest` / `uv sync` pick it up.
# `docs` is deliberately left out: day-to-day work does not need the site
# toolchain, and `just docs-*` pulls it in on demand.
[tool.uv]
default-groups = ["dev", "test"]
[tool.pytest.ini_options]
testpaths = ["tests"]
# Import `src.*` / `models.*` as namespace packages from the repo root,
# mirroring how labops_cli.py runs (there is no installed `labops` package).
pythonpath = ["."]
[tool.ruff.lint]
select = ["ANN"] # requires type annotations on all functions
[tool.ty.environment]
python = ".venv"
[tool.ty.rules]
unresolved-reference = "error"
invalid-assignment = "error"
call-non-callable = "error"