[build-system]
requires = [
    "scikit-build-core>=0.11.1",
    "pybind11>=2.13.6",
]
build-backend = "scikit_build_core.build"

[project]
name = "voxis"
version = "0.0.4"
description = "Voxis is a hybrid Python + C++ audio DSP library for fast, modular effect pipelines."
readme = "README.md"
requires-python = ">=3.10"
license = { text = "MIT" }

authors = [
    { name = "SpiralRbx" },
]

classifiers = [
    "Programming Language :: Python :: 3",
    "Programming Language :: C++",
    "Operating System :: OS Independent",
]

dependencies = [
    "numpy>=2.0",
    "imageio-ffmpeg>=0.6.0",
]

[project.urls]
Homepage = "https://github.com/spiralRbx/voxis"
Repository = "https://github.com/spiralRbx/voxis"
Documentation = "https://spiralRbx.github.io/voxis/page/voxis/"

[project.optional-dependencies]
dev = [
    "build>=1.2.2",
    "pytest>=8.4",
    "twine>=5.1",
]
web = [
    "flask>=3.1",
]

[tool.scikit-build]
wheel.packages = ["src/voxis"]
build-dir = "build/{wheel_tag}"
cmake.args = ["-GNinja"]
sdist.exclude = [
    ".github/**",
    ".pytest_cache/**",
    ".vscode/**",
    "build/**",
    "dist/**",
    "docs/PYPI_RELEASE.md",
    "PKG-INFO",
    "effects-time.txt",
    "promtp.txt",
    "public.md",
    "web-test/outputs/**",
    "web-test/uploads/**",
]

[tool.cibuildwheel]
build = "cp310-* cp311-* cp312-* cp313-* cp314-*"
skip = "*-win32 *-manylinux_i686 *-musllinux*"
environment = { CMAKE_GENERATOR = "Ninja" }
test-requires = ["pytest>=8.4"]
test-command = "pytest {project}/tests/test_pipeline.py -q"

[tool.pytest.ini_options]
testpaths = ["tests"]
pythonpath = ["src"]
