# Buildsheet autogenerated by ravenadm tool -- Do not edit. NAMEBASE= python-spin VERSION= 0.9 KEYWORDS= python VARIANTS= v11 v12 SDESC[v11]= Developer tool for scientific libraries (3.11) SDESC[v12]= Developer tool for scientific libraries (3.12) HOMEPAGE= https://github.com/scientific-python/spin CONTACT= Python_Automaton[python@ironwolf.systems] DOWNLOAD_GROUPS= main SITES[main]= PYPIWHL/8b/0b/062b036df2c1f8f098f7fa04352ead215c659637de02e591e31956da4909 DISTFILE[1]= spin-0.9-py3-none-any.whl:main DF_INDEX= 1 SPKGS[v11]= single SPKGS[v12]= single OPTIONS_AVAILABLE= PY311 PY312 OPTIONS_STANDARD= none VOPTS[v11]= PY311=ON PY312=OFF VOPTS[v12]= PY311=OFF PY312=ON DISTNAME= spin-0.9.dist-info GENERATED= yes [PY311].RUN_DEPENDS_ON= python-click:single:v11 python-importlib-metadata:single:v11 [PY311].USES_ON= python:v11,wheel [PY312].RUN_DEPENDS_ON= python-click:single:v12 python-importlib-metadata:single:v12 [PY312].USES_ON= python:v12,wheel [FILE:2278:descriptions/desc.single] # 💫 Scientific Python INcantations (`spin`) ## A developer tool for scientific Python libraries Developers need to memorize a whole bunch of magic command-line incantations. These incantations may also change over time. Often, Makefiles are used to provide aliases, but Makefiles can be convoluted, are not written in Python, and are hard to extend. The goal of `spin` is therefore to provide a simple, user-friendly, extendable interface for common development tasks. It comes with a few common build commands out the box, but can easily be customized per project. As a curiosity: the impetus behind developing the tool was the mass migration of scientific Python libraries (SciPy, scikit-image, and NumPy, etc.) to Meson, after distutils was deprecated. When many of the build and installation commands changed, it made sense to abstract away the nuisance of having to re-learn them. _Note:_ We now have experimental builds for editable installs. Most of the Meson commands listed below should work "out of the box" for those. ## Installation ` pip install spin ` ## Configuration Settings are stored in `.spin.toml`, `spin.toml`, or your project's `pyproject.toml`. As an example, see the `[tool.spin]` section of [an example `pyproject.toml`]. The `[project]` section should contain `name`. The `[tool.spin]` section should contain: ``` package = "pkg_importname" # name of your package commands = [ "spin.cmds.meson.build", "spin.cmds.meson.test" ] ``` See [the command selection] below. ### Command sections Once you have several commands, it may be useful to organize them into sections. In `pyproject.toml`, instead of specifying the commands as a list, use the following structure: ```toml [tool.spin.commands] "Build" = [ "spin.cmds.meson.build", "spin.cmds.meson.test" ] "Environments" = [ "spin.cmds.meson.ipython", "spin.cmds.meson.run" ] ``` These commands will then be rendered as: ``` Build: build 🔧 Build package with Meson/ninja and install test 🔧 Run tests Environments: ipython 💻 Launch IPython shell with PYTHONPATH set run 🏁 Run a shell command with PYTHONPATH set ``` ## Running ` spin ` or ``` python -m spin ``` ## Built-in commands ### [Meson] Available as `spin.cmds.meson.*`. ``` [FILE:104:distinfo] 20f34fa2749ed14bbb05547748506c6ccdb80bef074b00b563964af4a3e0cc73 24707 spin-0.9-py3-none-any.whl