-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
128 lines (107 loc) · 2.83 KB
/
Copy pathpyproject.toml
File metadata and controls
128 lines (107 loc) · 2.83 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
123
124
125
126
127
128
[project]
name = "notebook"
version = "0.0.0"
description = "Python code corresponding to my math notebook"
license = "Unlicense"
license-files = ["LICENSES/Unlicense.txt"]
readme = "README.md"
requires-python = ">=3.15"
authors = [
{ name = "Ianis Vasilev", email = "ianis@ivasilev.net" }
]
classifiers = [
"Private :: Do Not Upload",
]
[project.urls]
Repository = "https://github.com/v--/notebook.git"
[project.optional-dependencies]
commands = [
"click (>=8.5)",
"colorlog (>=6.12)",
]
watcher = [
"asyncinotify (>=4.4.4)",
"notebook[commands] >= 0.0.0",
"texoutparse @ git+https://github.com/v--/texoutparse.git"
]
bibtools = [
"beautifulsoup4 (>=4.15)",
"iso639-lang (>=2.6.3)",
"msgspec (>=0.21.1)",
"nameparser (>=2.2)",
"notebook[commands] >= 0.0.0",
"python-stdnum (>=2.2)",
"stop-words (>=2025.11.4)",
"titlecase (>=2.4.1)",
"transliterate (>=1.10.2)",
"xsdata (>=26.2)",
]
figures = [
"numpy (>=2.5.2)",
"pillow (>=12.3.0)",
]
all = [
"notebook[commands, watcher, bibtools, figures]"
]
[project.scripts]
nb-bibtools = "notebook.commands.bibtools:bibtools"
nb-coderefs = "notebook.commands.coderefs:coderefs"
nb-find-obsolete-figures = "notebook.commands.find_obsolete_figures:find_obsolete_figures"
nb-format-matrices = "notebook.commands.format_matrices:format_matrices"
nb-watcher = "notebook.commands.watcher:watch"
[dependency-groups]
dev = [
"coverage (>=7.16.0)",
"mypy (>=2.3.1)",
"notebook[all] (>=0.0.0)",
"poethepoet (>=0.42)",
"pytest (>=9.1.1)",
"pytest-benchmark (>=5.3.0)",
"pytest-xdist (>=3.8.0)",
"ruff (>=0.16)",
"ruff-config-ivasilev @ git+https://github.com/v--/ruff-config-ivasilev.git@v0.16.post1",
"types-titlecase (>=2.4.0.20260827)"
]
[build-system]
# uv build complains if no upper bound is set, but it updates its minor versions often, so we put a major version just to shut it up
requires = ["uv_build (>=0.10, <1)"]
build-backend = "uv_build"
[tool.uv]
resolution = "lowest-direct"
[tool.uv.build-backend]
source-include = ["REUSE.toml"]
# coverage
[tool.coverage.run]
omit = ["test_*", "conftest.py", "__init__.py", "exceptions.py"]
command_line = "-m pytest"
# ruff
[tool.ruff]
extend = ".venv/share/ruff/ruff.ivasilev.toml"
preview = true
[tool.ruff.lint]
ignore = [
# undocumented-*
"D1",
# We prefer lazy imports to `if TYPE_CHECKING` blocks.
"typing-only-first-party-import",
"typing-only-third-party-import",
"typing-only-standard-library-import",
]
[tool.ruff.lint.extend-per-file-ignores]
"test_*.py" = [
# We use table-like formatting in tests.
"multiple-spaces-after-comma",
# Default arguments are convenient.
"pytest-parameter-with-default-argument",
]
# mypy
[tool.mypy]
packages = ["notebook"]
[[tool.mypy.overrides]]
module = [
"pytest_benchmark.*",
"stop_words.*",
"texoutparse.*",
"transliterate.*"
]
ignore_missing_imports = true