-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathpyproject.toml
More file actions
112 lines (101 loc) · 4.15 KB
/
Copy pathpyproject.toml
File metadata and controls
112 lines (101 loc) · 4.15 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
[build-system]
requires = ["scikit-build-core>=1.0"]
build-backend = "scikit_build_core.build"
[project]
name = "cppjit"
dynamic = ["version"]
description = "CppJIT: fast and automatic Python-C++ interoperability"
readme = "README.md"
license = "BSD-3-Clause-LBNL"
requires-python = ">=3.12"
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"Programming Language :: C++",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: Implementation :: CPython",
"Operating System :: POSIX :: Linux",
"Operating System :: MacOS",
"Topic :: Scientific/Engineering",
"Topic :: Software Development :: Compilers",
"Topic :: Software Development :: Interpreters",
"Topic :: Software Development :: Libraries :: Python Modules",
]
authors = [
{name = "Wim Lavrijsen"},
{name = "Vassil Vassilev"},
{name = "Aaron Jomy"},
{name = "Vipul Cariappa"},
{name = "Jonas Rembser"},
{name = "Baidyanath Kundu"}
]
maintainers = [
{name = "Aaron Jomy", email = "aaronjomyjoseph@gmail.com"},
{name = "Jonas Rembser", email = "jonas.rembser@cern.ch"},
{name = "Vassil Vassilev", email = "v.g.vassilev@gmail.com"},
{name = "Vipul Cariappa", email = "vipulcariappa@gmail.com"}
]
[project.urls]
Homepage = "https://github.com/compiler-research/cppjit"
Issues = "https://github.com/compiler-research/cppjit/issues"
Changelog = "https://github.com/compiler-research/cppjit/releases"
[tool.scikit-build]
minimum-version = "build-system.requires"
wheel.install-dir = "."
wheel.packages = ["python/cppjit"]
cmake.build-type = "Release"
sdist.exclude = [".github", ".gitignore", ".clang-format"]
[[tool.dynamic-metadata]]
provider = "scikit_build_core.metadata.regex"
field = "version"
input = "python/cppjit/_version.py"
[tool.cibuildwheel]
# cp314t needs a free-threading audit first; cp315 joins at its release.
build = ["cp312-*", "cp313-*", "cp314-*"]
skip = ["*-musllinux*"]
# one native runner per matrix row; no emulation
archs = ["auto64"]
build-verbosity = 1
audit-requires = ["twine"]
audit-command = "twine check {wheel}"
test-sources = ["test", "requirements.txt", ".github/wheel_smoke.py", ".github/wheel_test.sh"]
# smoke + full suite; the script is shared with the relocation and sdist jobs
test-command = "bash .github/wheel_test.sh"
# imports must resolve from the installed wheel, not the checkout
test-environment = { PYTHONSAFEPATH = "1" }
[tool.cibuildwheel.linux]
manylinux-x86_64-image = "manylinux_2_28"
manylinux-aarch64-image = "manylinux_2_28"
before-test = "python -m pip install -r {project}/requirements.txt"
# /opt/llvm is staged on the runner by wheels.yml.
container-engine = { name = "docker", create-args = ["--volume=/opt/llvm:/opt/llvm"], disable-host-mount = true }
environment = { CMAKE_ARGS = "-DLLVM_DIR=/opt/llvm/lib/cmake/llvm -DClang_DIR=/opt/llvm/lib/cmake/clang" }
[tool.cibuildwheel.macos]
before-test = "brew install eigen boost && python -m pip install -r {project}/requirements.txt"
environment = { CMAKE_ARGS = "-DLLVM_DIR=/opt/llvm/lib/cmake/llvm -DClang_DIR=/opt/llvm/lib/cmake/clang", MACOSX_DEPLOYMENT_TARGET = "14.0" }
[tool.pytest.ini_options]
testpaths = ["test"]
pythonpath = ["test"]
xfail_strict = true
[tool.ruff]
show-fixes = true
[tool.ruff.lint]
# pyflakes/pycodestyle errors plus import sorting; wider rule sets are a
# post-squash cleanup
select = ["E4", "E7", "E9", "F", "I"]
ignore = [
"E722", # bare excepts deliberately swallow C++-originated exceptions
]
[tool.ruff.lint.per-file-ignores]
# the star import is load-bearing: it pulls the merged extension's names into
# the package namespace, and everything below it depends on them
"python/cppjit/__init__.py" = ["F403", "F405"]
"test/assert_interactive.py" = ["F403", "F405"]
# binding-test idioms: == True/False and type(x) == y assert proxy comparison
# semantics, fixtures use short upstream names, and unused locals hold
# references to control C++ object lifetimes
"test/**" = ["E712", "E721", "E741", "E742", "F841"]