-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpyproject.toml
More file actions
117 lines (107 loc) · 3.01 KB
/
pyproject.toml
File metadata and controls
117 lines (107 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
[build-system]
requires = [
"setuptools>=77.0.3",
"packaging>=24.2",
"torch",
"psutil",
"nvidia-cutlass @ git+https://github.com/NVIDIA/cutlass", # needed for build -- this downloads headers
"ninja",
"pybind11",
"cmake>=3.26.1",
"matplotlib>=3.5.0",
]
build-backend = "setuptools.build_meta"
# If you want setup.py to handle something, do not add it here
# **only** what is in `dynamic` will be dealt with by `setup.py`
[project]
name = "spear-python"
description = "SPEAR: Structured Primitives for Efficient Architecture Research"
readme = "README.md"
license = "Apache-2.0"
license-files = ["LICENSE"]
authors = [
{name = "Radical Numerics Inc."},
]
dynamic = ["version", "dependencies"]
requires-python = ">=3.10"
keywords = ["cuda", "kernels", "linear-algebra", "machine-learning", "pytorch"]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
]
[project.optional-dependencies]
dev = [
"ruff>=0.13.2",
"jupyterlab>=3.0",
"pre-commit>=4.0.0",
"pytest>=8.4.2",
"pytest-cov>=7.0.0",
]
docs = [
"mkdocs",
"mkdocs-material",
"mkdocstrings-python",
"mike",
"mkdocs-jupyter",
"mkdocs-redirects",
"mkdocs-autolinks-plugin",
"griffe-typingdoc",
"griffe-inherited-docstrings",
"griffe",
"black",
"mkdocs-same-dir",
"mdx-breakless-lists",
"mdx-truly-sane-lists",
"markdown-gfm-admonition",
]
# This is necessary because nvidia-cutlass installed like this will download the headers too
# -> Much more convenient than having submodules
[tool.uv.sources]
nvidia-cutlass = { git = "https://github.com/nvidia/cutlass"}
[tool.uv]
no-build-isolation-package = ["torch"]
[tool.ruff]
line-length = 120
target-version = "py311"
show-fixes = false
extend-exclude = ["*.ipynb"]
[tool.ruff.lint]
select = ["F", "E", "W", "I001", "UP"]
ignore = ["E501"] # never enforce `E501` (line length violations), handled by Black
task-tags = ["TODO", "FIXME"]
[tool.ruff.lint.per-file-ignores]
"__init__.py" = ["E402", "F401"]
[tool.ruff.lint.isort]
known-first-party = []
known-third-party = []
section-order = [
"future",
"standard-library",
"third-party",
"first-party",
"local-folder",
]
combine-as-imports = true
split-on-trailing-comma = false
lines-between-types = 1
[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = ["test_*.py"]
addopts = [
"-v",
"--strict-markers",
# Allow our specific known issue warnings to show, but suppress other warnings
"-W", "default::UserWarning",
"-W", "ignore::DeprecationWarning",
"-W", "ignore::PendingDeprecationWarning",
# Coverage reporting
"--cov=spear",
"--cov-report=term-missing",
]