mirror of
https://github.com/LLVMParty/llvm-nanobind
synced 2026-06-21 13:43:38 +00:00
111 lines
2.3 KiB
TOML
111 lines
2.3 KiB
TOML
[build-system]
|
|
requires = ["scikit-build-core >=0.11.6", "nanobind >=2.12.0"]
|
|
build-backend = "scikit_build_core.build"
|
|
|
|
[project]
|
|
name = "llvm-nanobind"
|
|
version = "21.1.6.3"
|
|
description = "LLVM-C Python bindings with nanobind."
|
|
readme = "README.md"
|
|
requires-python = ">=3.12"
|
|
dependencies = []
|
|
|
|
[project.urls]
|
|
Homepage = "https://github.com/LLVMParty/llvm-nanobind"
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"auto-faulthandler>=1.0.0",
|
|
"coverage>=7.11.3",
|
|
"lit>=18.1.8",
|
|
"nanobind>=2.12.0",
|
|
"pytest",
|
|
"scikit-build-core>=0.11.6",
|
|
]
|
|
|
|
[tool.scikit-build]
|
|
# Protect the configuration against future changes in scikit-build-core
|
|
minimum-version = "build-system.requires"
|
|
|
|
# Setuptools-style build caching in a local directory
|
|
build-dir = "build/{wheel_tag}"
|
|
|
|
# Package builds only need the extension and generated stubs.
|
|
build.targets = ["llvm_stub"]
|
|
|
|
# Build stable ABI wheels for CPython 3.12+
|
|
wheel.py-api = "cp312"
|
|
|
|
# This setup only works properly in redirect mode
|
|
editable.mode = "redirect"
|
|
|
|
# Do not auto-copy Python packages into wheels; the extension module is installed by CMake.
|
|
wheel.packages = []
|
|
|
|
[tool.uv]
|
|
cache-keys = [
|
|
{ file = "CMakeLists.txt" },
|
|
{ file = "cmake/*.cmake" },
|
|
{ file = "src/**/*.cpp" },
|
|
{ file = "src/**/*.h" },
|
|
]
|
|
|
|
[tool.ty.src]
|
|
exclude = [
|
|
".llvm",
|
|
".llvm-cache",
|
|
".venv",
|
|
"build",
|
|
"dist",
|
|
"htmlcov",
|
|
"wheelhouse",
|
|
]
|
|
|
|
[tool.ty.environment]
|
|
# Don't include src/ in first-party search path so ty finds the installed
|
|
# package (with .pyi stubs) in .venv/lib/python3.12/site-packages/ instead
|
|
root = ["."]
|
|
|
|
[tool.pyright]
|
|
include = ["tests"]
|
|
exclude = [
|
|
"build/**",
|
|
".venv/**",
|
|
"**/__pycache__",
|
|
"**/node_modules",
|
|
"**/.*",
|
|
]
|
|
extraPaths = []
|
|
venvPath = "."
|
|
venv = ".venv"
|
|
|
|
[tool.mypy]
|
|
exclude = [
|
|
"^build/",
|
|
]
|
|
|
|
[tool.coverage.run]
|
|
source = ["llvm_c_test", "."]
|
|
omit = [
|
|
"tests/*",
|
|
"build/*",
|
|
".venv/*",
|
|
"llvm-c/*",
|
|
]
|
|
|
|
[tool.coverage.report]
|
|
exclude_lines = [
|
|
"pragma: no cover",
|
|
"def __repr__",
|
|
"raise AssertionError",
|
|
"raise NotImplementedError",
|
|
"if __name__ == .__main__.:",
|
|
"if TYPE_CHECKING:",
|
|
"class .*\\bProtocol\\):",
|
|
"@(abc\\.)?abstractmethod",
|
|
]
|
|
|
|
[tool.pytest.ini_options]
|
|
addopts = "--deselect tests/regressions/test_symbol_size_crash.py"
|
|
pythonpath = ["."]
|