-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathpyproject.toml
More file actions
122 lines (100 loc) · 3.01 KB
/
Copy pathpyproject.toml
File metadata and controls
122 lines (100 loc) · 3.01 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
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
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
# Declared explicitly (rather than inferred) so the distributed contents are a
# stated fact. `artifacts` guarantees the PEP 561 marker ships even if a future
# ignore rule would otherwise exclude it -- without `dol/py.typed` in the wheel,
# every downstream `from dol import ...` is type-checked as `Any`.
packages = ["dol"]
artifacts = ["dol/py.typed"]
[tool.hatch.build.targets.sdist]
artifacts = ["dol/py.typed"]
[project]
name = "dol"
version = "0.3.58"
description = "Base builtin tools make and transform data object layers (dols)."
readme = "README.md"
requires-python = ">=3.10"
keywords = ["storage", "interface"]
authors = []
dependencies = []
[project.license]
text = "MIT"
[project.urls]
Homepage = "https://github.com/i2mint/dol"
[project.optional-dependencies]
testing = []
[tool.ruff]
line-length = 88
target-version = "py310"
exclude = [
"**/*.ipynb",
".git",
".venv",
"build",
"dist",
"tests",
"examples",
"scrap",
]
[tool.ruff.lint]
select = ["D100"]
ignore = ["D203", "E501", "B905"]
[tool.ruff.lint.pydocstyle]
convention = "google"
[tool.ruff.lint.per-file-ignores]
"**/tests/*" = ["D"]
"**/examples/*" = ["D"]
"**/scrap/*" = ["D"]
[tool.pytest.ini_options]
minversion = "6.0"
# The package dir IS the test root: unit tests live in dol/tests and doctests
# live in the modules themselves. (There is no top-level `tests` dir; naming one
# made pytest silently fall back to recursive discovery and skip all doctests.)
testpaths = ["dol"]
# addopts is the single source of truth for what gets collected, so a bare local
# `pytest` collects exactly what CI collects. Hence `exclude_paths = []` below.
addopts = "--doctest-modules --ignore=dol/scrap"
# Must match the flags the wads `run-tests-uv` action passes via `-o` (which
# override this ini value). Notably CI does NOT pass NORMALIZE_WHITESPACE, so
# configuring it here would let whitespace-fragile doctests pass locally and
# fail in CI.
doctest_optionflags = ["ELLIPSIS", "IGNORE_EXCEPTION_DETAIL"]
[tool.wads.ci]
project_name = ""
[tool.wads.ci.commands]
pre_test = []
test = []
post_test = []
lint = []
format = []
[tool.wads.ci.env]
required = []
[tool.wads.ci.env.defaults]
[tool.wads.ci.quality.ruff]
enabled = true
[tool.wads.ci.quality.black]
enabled = false
[tool.wads.ci.quality.mypy]
enabled = false
[tool.wads.ci.testing]
python_versions = ["3.10", "3.12"]
pytest_args = ["-v", "--tb=short"]
coverage_enabled = true
coverage_threshold = 0
coverage_report_format = ["term", "xml"]
# Empty on purpose: exclusions are declared once, in pytest's `addopts` above,
# so local and CI runs collect the same set. (The old ["examples", "scrap"] was
# resolved against the repo root and therefore matched nothing.)
exclude_paths = []
test_on_windows = true
[tool.wads.ci.build]
sdist = true
wheel = true
[tool.wads.ci.publish]
enabled = true
[tool.wads.ci.docs]
enabled = true
builder = "epythet"
ignore_paths = ["tests/", "scrap/", "examples/"]