-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
154 lines (137 loc) · 5.11 KB
/
Copy pathpyproject.toml
File metadata and controls
154 lines (137 loc) · 5.11 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
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
[build-system]
requires = [ "setuptools>=83.0.0", "wheel" ]
build-backend = "setuptools.build_meta"
[project]
name = "la-stack-scripts"
version = "0.4.4"
description = "Python utility scripts for the la-stack Rust library"
readme = "README.md"
requires-python = ">=3.14"
license = { text = "BSD-3-Clause" }
authors = [
{ name = "Adam Getchell", email = "adam@adamgetchell.org" },
]
keywords = [ "linear-algebra", "benchmarking", "utilities", "la-stack" ]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.14",
"Topic :: Scientific/Engineering :: Mathematics",
"Topic :: System :: Benchmarking",
]
# No runtime dependencies currently; scripts rely on the standard library.
dependencies = [ ]
[project.urls]
"Homepage" = "https://github.com/acgetchell/la-stack"
"Documentation" = "https://docs.rs/la-stack"
"Repository" = "https://github.com/acgetchell/la-stack"
"Bug Tracker" = "https://github.com/acgetchell/la-stack/issues"
[project.scripts]
archive-changelog = "archive_changelog:main"
archive-performance = "archive_performance:main"
bench-compare = "bench_compare:main"
criterion-dim-plot = "criterion_dim_plot:main"
postprocess-changelog = "postprocess_changelog:main"
tag-release = "tag_release:main"
check-docs-version-sync = "check_docs_version_sync:main"
# Configure setuptools to find modules in scripts/ directory.
[tool.setuptools]
package-dir = { "" = "scripts" }
py-modules = [ "archive_changelog", "archive_performance", "bench_compare", "check_docs_version_sync", "check_semgrep_fixtures", "criterion_dim_plot", "postprocess_changelog", "subprocess_utils", "tag_release" ]
[tool.ruff]
line-length = 160
src = [ "scripts" ]
[tool.ruff.lint]
select = [ "E", "F", "W", "ANN201", "ANN202", "ANN204", "C90", "I", "N", "UP", "YTT", "ASYNC", "S", "BLE", "FBT", "B", "A", "COM", "C4", "DTZ", "FA", "T10", "EM", "EXE", "FIX", "FLY", "FURB", "ISC", "ICN", "LOG", "G", "INP", "PERF", "PIE", "T20", "PYI", "PT", "Q", "RSE", "RET", "SLF", "SIM", "SLOT", "TC", "TID", "TD", "ARG", "PTH", "ERA", "PD", "PGH", "PL", "TRY", "NPY", "RUF", "D100", "D101", "D102", "D103", "D104", "D105", "D106", "D107" ]
fixable = [ "ALL" ]
unfixable = [ ]
ignore = [
# Formatter conflicts
"COM812", # Trailing comma missing (conflicts with formatter)
"ISC001", # Implicitly concatenated string literals (conflicts with formatter)
# CLI script patterns
"PLR2004", # Magic value used in comparison - OK for CLI constants and thresholds
"FBT001", # Boolean-typed positional argument - OK for CLI flags
"FBT002", # Boolean default positional argument - OK for CLI flags
"T201", # print found - OK for CLI output
"TRY300", # Consider moving statement to else block - OK for CLI control flow
"TRY301", # Abstract raise to inner function - OK for straightforward CLI error handling
"ARG001", # Unused function argument - common in callbacks
"ERA001", # Found commented-out code - OK for explanatory comments
"EXE001", # Shebang present but file not executable - handled by packaging
"PTH123", # open() should be replaced by Path.open() - OK for some call sites
"EM102", # Exception must not use f-string - OK for CLI error messages
"TRY003", # Avoid specifying long messages outside exception class - OK for CLI reporting
"N806", # Uppercase local names are acceptable for constants and ANSI color codes
"F841", # Color constants may be assigned conditionally for CLI output
"PLW2901", # Loop-variable replacement is acceptable for line-processing transforms
]
[tool.ruff.lint.per-file-ignores]
"**/tests/test_*.py" = [ "S101", "SLF001", "D101", "D102", "D103" ]
[tool.ruff.lint.mccabe]
max-complexity = 10
[tool.ruff.lint.isort]
known-first-party = [
"archive_changelog",
"archive_performance",
"bench_compare",
"check_semgrep_fixtures",
"criterion_dim_plot",
"postprocess_changelog",
"subprocess_utils",
"tag_release",
]
force-single-line = false
split-on-trailing-comma = true
combine-as-imports = true
order-by-type = true
section-order = [
"future",
"standard-library",
"third-party",
"first-party",
"local-folder",
]
[tool.ruff.format]
quote-style = "double"
indent-style = "space"
skip-magic-trailing-comma = false
line-ending = "auto"
[tool.pytest.ini_options]
minversion = "9.0"
addopts = [ "-ra", "--strict-markers", "--strict-config", "--color=yes" ]
testpaths = [ "scripts/tests" ]
python_files = [ "test_*.py", "*_test.py" ]
python_classes = [ "Test*" ]
python_functions = [ "test_*" ]
[tool.rumdl]
line-length = 160
disable = [
"MD018",
"MD024",
"MD029",
"MD033",
"MD037",
"MD038",
"MD041",
"MD060",
]
[tool.rumdl.MD013]
line-length = 160
[tool.uv]
package = true
[dependency-groups]
dev = [
"actionlint-py==1.7.12.24",
"pytest==9.1.1",
"ruff==0.15.21",
"semgrep==1.169.0",
"shellcheck-py==0.11.0.1",
"shfmt-py==4.0.0",
"ty==0.0.58",
"yamllint==1.38.0",
]