[build-system]
requires = [
"scikit-build-core>=0.12.1",
"pybind11>=3.0.0",
"numpy>=2.0",
"setuptools-scm==9.2.2",
"towncrier>=24",
]
build-backend = "scikit_build_core.build"
[project]
name = "asnumpy"
dynamic = ["version"]
description = "A NumPy-like library accelerated by Ascend NPU"
readme = "README.md"
authors = [{ name = "神里绫华的狗", email = "wuzhenqing@stu.hit.edu.cn" }]
license = { text = "Apache-2.0" }
classifiers = [
"Programming Language :: Python :: 3",
"Programming Language :: C++",
"Intended Audience :: Developers",
"Operating System :: POSIX :: Linux"
]
requires-python = ">=3.10"
dependencies = [
"numpy>=2.0",
"loguru>=0.7.0"
]
[project.optional-dependencies]
dev = [
"ruff>=0.15.0",
"mypy>=1.19.0",
"pre-commit>=4.0.0",
]
test = [
"pytest>=9.0.0",
"pytest-cov>=7.1.0",
"pytest-xdist>=3.8.0",
]
[project.urls]
Homepage = "https://gitcode.com/cann/asnumpy"
Repository = "https://gitcode.com/cann/asnumpy"
[tool.scikit-build.wheel]
packages = ["src/asnumpy"]
exclude = ["**/*.pyc", "**/__pycache__", "**/test", "**/tests"]
[tool.scikit-build.install]
components = ["python"]
[tool.scikit-build.cmake]
version = ">=3.22"
build-type = "Release"
[tool.scikit-build.cmake.define]
CMAKE_EXPORT_COMPILE_COMMANDS = "ON"
[tool.scikit-build.ninja]
make-fallback = true
[tool.scikit-build.editable]
mode = "redirect"
verbose = true
[tool.scikit-build]
metadata.version.provider = "scikit_build_core.metadata.setuptools_scm"
sdist.include = ["src/asnumpy/_version.py"]
[tool.setuptools_scm]
write_to = "src/asnumpy/_version.py"
tag_regex = '^v?(?P<version>[0-9]+\.[0-9]+\.[0-9]+)$'
[tool.towncrier]
directory = "changes"
filename = "CHANGELOG.md"
package = "asnumpy"
package_dir = "src"
[tool.pytest.ini_options]
testpaths = ["tests"]
addopts = [
"--import-mode=importlib",
"-v",
"--strict-markers",
"--strict-config",
]
[tool.coverage.run]
source = ["src/asnumpy"]
[tool.coverage.report]
exclude_lines = [
"pragma: no cover",
"raise NotImplementedError",
"if TYPE_CHECKING:",
]
[tool.ruff]
target-version = "py310"
line-length = 100
src = ["src", "tests"]
[tool.ruff.lint]
select = [
"E",
"W",
"F",
"I",
"UP",
"B",
"C4",
]
ignore = [
"E501",
"B008",
"B017",
"UP038",
]
[tool.ruff.lint.per-file-ignores]
"__init__.py" = ["F401"]
[tool.ruff.lint.isort]
[tool.mypy]
python_version = "3.10"
warn_return_any = true
warn_unused_configs = true
ignore_missing_imports = true
exclude = [
"build/",
"dist/",
"tests/",
]