-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
63 lines (53 loc) · 1.36 KB
/
pyproject.toml
File metadata and controls
63 lines (53 loc) · 1.36 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
[build-system]
requires = ["setuptools>=80.9.0", "wheel", "build"]
build-backend = "setuptools.build_meta"
[project]
name = "my-app"
version = "0.1.0"
description = "A production-ready Python project blueprint"
requires-python = ">=3.10"
dependencies = [
"httpx>=0.28.1",
"fastapi>=0.133.1",
"uvicorn[standard]>=0.41.0"
]
[project.optional-dependencies]
dev = [
"pip-tools>=7.5.3",
"build>=1.4.0",
"twine>=6.2.0",
"pytest>=9.0.2",
"pytest-cov>=7.0.0",
"pytest-mock>=3.15.1",
"ruff>=0.15.4",
"cyclonedx-bom>=7.2.2",
"pip-audit>=2.10.0",
"pdoc>=16.0.0",
"bandit>=1.9.4",
"pre-commit>=4.5.1",
"pip-check-updates>=0.28.0",
]
# --- Tool Configurations ---
[tool.setuptools.package-data]
# Syntax: "package_name" = ["pattern"]
"my_app" = ["resources/*.json", "resources/*.yaml"]
[tool.pytest.ini_options]
pythonpath = ["src"]
testpaths = ["tests"]
# Fail build if coverage is below 80%
addopts = "--cov=my_app --cov-report=term-missing --cov-fail-under=80"
[tool.coverage.run]
omit = [
"src/my_app/config/project_properties.py"
]
[tool.ruff]
line-length = 120
target-version = "py310"
src = ["src", "tests"]
[tool.ruff.lint]
select = ["E", "F", "I"] # E=Error, F=Pyflakes, I=Isort (Import sorting)
[tool.bandit]
exclude_dirs = ["test", ".venv"]
targets = ["src"]
[tool.bandit.assert_used]
skips = ["*_test.py", "test_*.py"]