-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpyproject.toml
156 lines (133 loc) · 3.34 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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
[build-system]
requires = ["hatchling", "hatch-vcs", "hatch-fancy-pypi-readme"]
build-backend = "hatchling.build"
[project]
name = "ossuary"
dynamic = ["version", "readme"]
description = "dice analysis toolkit"
authors = [
{name = "Bradd Szonye", email = "[email protected]"},
]
license = {text = "MIT"}
keywords = ["dice", "probability"]
classifiers = [
# "Development Status :: 2 - Pre-Alpha",
"Development Status :: 3 - Alpha",
# "Development Status :: 4 - Beta",
# "Development Status :: 5 - Production/Stable",
"Programming Language :: Python",
"Programming Language :: Python :: 3.11",
]
requires-python = ">=3.11.0rc2"
dependencies = [
]
[project.optional-dependencies]
plot = [
"matplotlib",
]
gtkplot = [
"ossuary[plot]",
"PyGObject",
]
[project.scripts]
ossuary = "ossuary.__main__:main"
[project.urls]
Homepage = "https://github.com/bszonye/ossuary"
Repository = "https://github.com/bszonye/ossuary"
Documentation = "https://github.com/bszonye/ossuary"
# Changelog = "https://github.com/bszonye/ossuary/TODO"
[tool.hatch.metadata.hooks.fancy-pypi-readme]
content-type = "text/markdown"
fragments = [
{ path = "README.md", end-before = "<!-- head -->" },
{ path = "README.md", start-after = "<!-- cut -->", end-before = "<!-- cut -->" },
]
[tool.hatch.build]
only-packages = true
[tool.hatch.build.hooks.vcs]
version-file = "ossuary/_version.py"
[tool.hatch.version]
source = "vcs"
fallback-version = "0.0.0"
[tool.hatch.envs.default]
python = "python3.11"
dependencies = [
"pytest",
"pytest-cov",
]
[tool.hatch.envs.default.scripts]
cov = "pytest {args}"
no-cov = "cov --no-cov {args}"
[[tool.hatch.envs.test.matrix]]
python = ["311"]
extras = ["core", "plot", "gtkplot"]
[tool.hatch.envs.test.overrides]
matrix.extras.features = [
{ value = "plot", if = ["plot"] },
{ value = "gtkplot", if = ["gtkplot"] },
]
[tool.pdm.build]
includes = ["ossuary"]
[tool.pdm.dev-dependencies]
# The project also uses several tools that don't depend on installation
# into the project environment (use pipx instead):
# pipx install black
# pipx install flake8
# pipx inject flake8 flake8-bugbear flake8-pyi
# pipx install isort
# pipx install pre-commit
# pipx install pydocstyle
dev = [
"pip",
]
test = [
"pytest",
"pytest-cov",
]
[tool.black]
line-length = 86
[tool.coverage.report]
exclude_lines = [
'pragma: no cover',
'@overload',
'if TYPE_CHECKING:',
'if __name__ == .__main__.:',
'raise NotImplementedError',
'return \.\.\. # type: ignore',
]
[tool.coverage.run]
branch = true
parallel = true
omit = [
"ossuary/_version.py",
]
[tool.isort]
profile = "black"
line_length = 86
combine_as_imports = true
order_by_type = false
skip_gitignore = true
[tool.mypy]
mypy_path = "stubs"
files = "."
strict = true
warn_no_return = true
warn_unreachable = true
python_executable = ".venv/bin/python"
[tool.pyright]
typeCheckingMode = "strict"
include = ["ossuary", "tests"]
exclude = ["**/node_modules", "**/__pycache__", "**/.*"]
stubPath = "stubs"
pythonVersion = "3.11"
pythonPlatform = "All"
venvPath = "."
venv = ".venv"
[tool.pytest.ini_options]
addopts = "--cov=ossuary --cov-report=term-missing:skip-covered --cov-report=html"
filterwarnings = [
'error',
# 'ignore::UserWarning',
'ignore:DynamicImporter:ImportWarning',
'ignore:Gtk\.Window\.set_wmclass:DeprecationWarning',
]