-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpyproject.toml
107 lines (91 loc) · 2.21 KB
/
pyproject.toml
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
[project]
name = "pyscaffold"
authors = [{name = "My pyscaffold", email = "[email protected]"}]
dynamic = ["version", "description"]
readme = "README.md"
requires-python = ">=3.12"
license = { file="LICENSE" }
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: MIT License",
"Natural Language :: English",
"Programming Language :: Python :: 3.12",
"Private :: Do Not Upload",
]
dependencies = [
"typer",
]
[project.optional-dependencies]
dev = [
"flit~=3.10.1",
"coverage~=7.6.10",
"pytest~=8.3.4",
"ruff~=0.9.2",
"poethepoet~=0.32.1",
]
[project.urls]
"Source Code" = "https://github.com/shapiromatron/pyscaffold"
"Changelog" = "https://github.com/shapiromatron/pyscaffold/blob/main/HISTORY.md"
"Issue Tracker" = "https://github.com/shapiromatron/pyscaffold/issues"
[project.scripts]
pyscaffold = "pyscaffold.cli:app"
[build-system]
requires = ["flit_core >=3.10,<4"]
build-backend = "flit_core.buildapi"
[tool.ruff]
line-length = 100
target-version = "py312"
[tool.ruff.lint]
select = ["F", "E", "W", "I", "UP", "S", "B", "T20", "RUF"]
ignore = ["E501", "B904", "B007", "S308", "S113", "S314"]
unfixable = ["F401", "F841"]
isort.known-first-party = ["pyscaffold"]
[tool.ruff.lint.per-file-ignores]
"test_*.py" = ["S101", "S106"]
[tool.pytest.ini_options]
pythonpath = ["src"]
testpaths = "tests"
[tool.coverage.run]
omit = [
"./build/",
"./tests/*",
"./venv/*"
]
[tool.coverage.report]
fail_under=99
precision=1
[tool.poe.tasks.lint]
help = "Check formatting issues"
sequence = [
{cmd = "ruff format . --check"},
{cmd = "ruff check ."},
]
[tool.poe.tasks.format]
help = "Fix formatting issues (where possible)"
sequence = [
{cmd = "ruff format ."},
{cmd = "ruff check . --fix --show-fixes"},
]
[tool.poe.tasks.test]
help = "Run tests"
cmd = "pytest"
[tool.poe.tasks.coverage]
help = "Generate test coverage report"
sequence = [
{cmd = "coverage run -m pytest"},
{cmd = "coverage html"},
]
[tool.poe.tasks.loc]
help = "Lines of Code Report"
cmd = """
cloc
--exclude-dir=venv,build,dist
--exclude-ext=json,yaml,svg,toml,ini
--vcs=git \
--md \
.
"""
[tool.poe.tasks.build]
help = "Build wheel package"
cmd = "uv build"