python-spin
Port variant v12
Summary Developer tool for scientific libraries (3.12)
Package version 0.8
Homepage https://github.com/scientific-python/spin
Keywords python
Maintainer Python Automaton
License Not yet specified
Other variants v11
Ravenports Buildsheet | History
Ravensource Port Directory | History
Last modified 17 NOV 2023, 00:46:25 UTC
Port created 09 OCT 2023, 04:40:21 UTC
Subpackage Descriptions
single # 💫 Scientific Python INcantations (`spin`) ## A developer tool for scientific Python libraries Developers need to memorize a whole bunch of magic command-line incantations. And these incantations change from time to time! Typically, their lives are made simpler by a Makefile, but Makefiles can be convoluted, are not written in Python, and are hard to extend. The rationale behind `spin` is therefore to provide a simple 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. ## 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.*`. ``` build 🔧 Build package with Meson/ninja and install to `build-install` ipython 💻 Launch IPython shell with PYTHONPATH set python 🐍 Launch Python shell with PYTHONPATH set
Configuration Switches (platform-specific settings discarded)
PY311 OFF Build using Python 3.11 PY312 ON Build using Python 3.12
Package Dependencies by Type
Build (only) python312:dev:standard
python-pip:single:v12
autoselect-python:single:standard
Build and Runtime python312:primary:standard
Runtime (only) python-click:single:v12
Download groups
main mirror://PYPIWHL/c9/ec/e7d790f26097ddfd441af8a2ab26bfd2ca9609ded7e571b982661771ff9f
Distribution File Information
ef413eff59c94383ab8cbfa5d4d29d64cb978b761268b49e29404d91d1f73904 19164 spin-0.8-py3-none-any.whl
Ports that require python-spin:v12
python-numpy:v12 Array computing for Python (3.12)