[project] name = "rockbox-ffi" version = "0.7.0" description = "Python bindings for the Rockbox DSP / metadata / playback engine" readme = "README.md" requires-python = ">=3.9" license = { text = "GPL-2.0-or-later" } dependencies = ["cffi>=1.16"] [project.optional-dependencies] # Interactive console (console.py): `uv pip install -e '.[dev]'`. dev = ["ipython"] [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["src/rockbox_ffi"] # Bundle the CI-built native lib (staged in src/rockbox_ffi/_lib/) into the # wheel even though it is gitignored. hatch_build.py then tags the wheel # py3-none- whenever a lib is present — the binding loads the lib via # cffi/dlopen (ABI-independent) but the wheel is platform-specific. Without a # staged lib the wheel stays py3-none-any and must not be published. artifacts = ["src/rockbox_ffi/_lib/*"] [tool.hatch.build.targets.wheel.hooks.custom] path = "hatch_build.py" [tool.hatch.build.targets.sdist] # Ship the build hook so wheels built from the sdist are tagged correctly too. include = ["src", "examples", "console.py", "hatch_build.py", "README.md"] [dependency-groups] dev = [ "ipython>=8.18.1", ]