# anvil-python-numpy -- numpy for the printer's CPython, into its # site-packages. # # THIS IS NOT AN OPTIONAL SCIENTIFIC EXTRA. It is the package klippy cannot # start without. extras/stepper_resonance_tester.py opens with a bare # `import numpy as np`; klippy.py:122 walks EVERY config section through a # load_object that does not catch ImportError; and printer.base.cfg includes # FlashForge's printer.vibration.cfg, which declares [stepper_resonance_tester]. # So on a numpy-less install klippy never reaches ready -- it does not merely # lose a feature. anvil-klipper names this package in its Depends for that # reason. docs/notes/44-vfa-calibration.md has the whole chain. # # WHAT IT BUYS BACK, beyond the boot: the VFA (motor torque-ripple) calibration # behind STEPPER_RESONANCE_FACTORY_CALIBRATE, and SHAPER_CALIBRATE / # TEST_RESONANCES, which have been dead for exactly the same reason since # klippy moved to our own CPython 3.13. PKG_NAME=anvil-python-numpy # ARCHITECTURE IS THE DEFAULT, mipsel_xburst2, and it is not a formality here # any more than it is for anvil-klipper: this package is mostly compiled code. # An `all` would let it install on a machine whose kernel refuses every .so in # it, and the failure would arrive as an ImportError halfway through a boot. PKG_VERSION="$(pypkg_version numpy)" PKG_RELEASE=1 PKG_SECTION=python PKG_EXCLUDE=".version" PKG_DEPENDS="anvil-python" # python ALONE, and no BLAS: -Dallow-noblas=true below picks numpy's bundled # lapack_lite instead. That is not a corner cut for size -- there is no BLAS in # this feed to link against, and lapack_lite is enough for the one linalg call # the calibration makes (np.linalg.lstsq, in _r2_sinusoidal_fit). PKG_BUILD_DEPENDS="python" PKG_DESCRIPTION="numpy for klippy -- the FFT, least-squares and polynomial fitting that extras/stepper_resonance_tester.py and shaper_calibrate.py are written against. Built with meson-python against a cross file, without BLAS."