-
Notifications
You must be signed in to change notification settings - Fork 2
/
pyproject.toml
124 lines (112 loc) · 2.37 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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
[project]
name = "pytoolconfig"
dynamic = ["version"]
description = 'Python tool configuration'
license = { text = 'LGPL-3.0-or-later' }
dependencies = ["tomli>=2.0.1; python_version < \"3.11\"", "packaging>=23.2"]
requires-python = '>=3.8'
readme = "README.md"
[[project.authors]]
name = 'bageljr'
email = '[email protected]'
[project.urls]
Homepage = 'https://github.com/bageljrkhanofemus/pytoolconfig'
[project.optional-dependencies]
validation = ["pydantic>=2.5.3"]
global = ["platformdirs>=3.11.0"]
doc = ["tabulate>=0.9.0", "sphinx>=7.1.2"]
gendocs = [
"sphinx>=7.1.2",
"sphinx-autodoc-typehints>=1.25.2",
"sphinx-rtd-theme>=2.0.0",
"pytoolconfig[doc]",
]
[tool.pdm]
version = { source = "scm" }
[tool.pdm.dev-dependencies]
test = [
"pytest>=7.4.4",
"tox>=4.11.4",
"tox-pdm>=0.7.2",
"tox-gh>=1.3.1",
"pytest-emoji>=0.2.0",
"pytest-md>=0.2.0",
]
typing = [
"mypy>=1.8.0",
"types-tabulate>=0.9.0.20240106",
"types-docutils>=0.20.0.20240106",
"pydantic>=2.5.3",
]
[tool.pytoolconfig]
formatter = 'black'
[tool.pytest.ini_options]
testpaths = ['tests']
[tool.isort]
profile = 'black'
[tool.ruff]
lint.select = ["ALL"]
lint.ignore = [
"FBT",
"D211",
"ANN101",
"ANN102",
"ANN401",
"S101",
"D212",
"D213",
"TCH001",
"TCH002",
"TCH003",
"SLF001",
"FA100",
"COM812",
"ISC001",
]
# Always generate Python 3.8-compatible code.
target-version = "py38"
force-exclude = true
[tool.ruff.format]
docstring-code-format = true
[tool.ruff.lint.per-file-ignores]
"tests/**" = ["D", "ANN201", "ANN001"]
"docs/conf.py" = ["INP001"]
[tool.ruff.lint.pydocstyle]
convention = "google" # Accepts: "google", "numpy", or "pep257".
[tool.ruff.lint.flake8-bugbear]
extend-immutable-calls = ["pytoolconfig.field"]
[tool.tox]
legacy_tox_ini = '''
[tox]
min_version = 4.0
envlist = py38, py39, py310, py311, py312, type
isolated_build = True
[gh-actions]
python =
3.8: py38
3.9: py39
3.10: py310
3.11: py311
3.12: py312
[testenv]
groups = test, doc, global
commands = pytest
[testenv:type]
description = type check ourselves
passenv =
TERM
MYPY_FORCE_COLOR
MYPY_FORCE_TERMINAL_WIDTH
groups = doc, global, typing
commands =
python -m mypy .
'''
[tool.pylint.format]
max-line-length = "88"
[tool.mypy]
plugins = 'pydantic.mypy'
exclude = ['docs']
# strict = true
[build-system]
requires = ['pdm-backend>=2.3.0']
build-backend = 'pdm.backend'