Image Analysis Fundamentals (iaf)
The iaf library is a helper library that adds user-friendly functionality to scikit-image,
scipy, matplotlib and other libraries for the purpose of teaching the
fundamentals of image analysis.
Installation
The iaf package installs all necessary dependencies. It is recommended to create a dedicated (conda or venv)
environment for installation.
$ conda create -n iaf-env python=3.11 # Optional
$ conda activate iaf-env # Optional
$ pip install iaf
Currently, iaf is compatible with python 3.10, 3.11, 2.12, and 3.13.
Development
The project uses uv for dependency management and hatchling as the build backend. After installing uv:
uv sync --group dev
uv python install 3.10 3.11 3.12 3.13
uv run tox
uv sync creates .venv/ and resolves dependencies from pyproject.toml.
Prefix commands with uv run to execute them inside that environment. The
generated uv.lock is intentionally not committed. Tox runs the same pytest
command used in CI against Python 3.10 through 3.13. Pass pytest arguments after
--, for example uv run tox -e py313 -- test/test_stats.py.
For a quick run on only the current interpreter, use uv run tox -e py.
To add or change a dependency, edit pyproject.toml and run uv sync.
Documentation
The official documentation is hosted on https://iaf.readthedocs.org.
To generate the documentation locally run:
uv run --group docs python -m sphinx -b html docs docs/_build/html
Build and publish
From your project root, run:
uv build
This creates artifacts in dist/ such as a wheel and a source tarball.
Upload to PyPi
Release artifacts are built automatically by GitLab CI. Bump __version__ in
iaf/init.py (it is the single source of truth for the
package version), commit, then push a matching tag:
git tag v1.5.2
git push origin v1.5.2
The tag pipeline builds the package and verifies that the tag matches
__version__. Uploads are always started manually from the tag pipeline in
GitLab: run publish:testpypi for an optional TestPyPI dry run, then run
publish:pypi when the artifacts are ready for the production release. See
.gitlab-ci.yml for the required CI/CD variables.
To publish manually instead:
uv publish --token <your-pypi-token>
License
Apache License 2.0. See LICENSE.
Copyright © 2026 ETH Zurich
Creators: Aaron Ponti (original creator), Marvin Albert, Andreas P. Cuny
The morph module contains reimplementations, in pure
Python/numpy/scipy, of equivalent functions in the centrosome library (https://github.com/CellProfiler/centrosome)
licensed under BSD 3-Clause License, and we hereby wish to credit the algorithmic source per the
terms of centrosome's own license.
We further would like to acknowledge the anonymous contributors of the test images used in the test suite of this package.
Metadata
Release files for iaf 1.5.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| iaf-1.5.3.tar.gz | 40.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iaf-1.5.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 101.0 kB
Release files / iaf-1.5.3.tar.gz
| Download URL | iaf-1.5.3.tar.gz |
|---|---|
| Size | 40.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3af16436677094ecaac06e1795c0c9bee5f6094195e7001d25c6e2485d18acff
|
|
BLAKE2b-256 checksum How to use checksums |
65cbce3dcb2ce01827e5b3798977af0852675ffd5078891174234e7a1cb0431c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / iaf-1.5.3-py3-none-any.whl
| Download URL | iaf-1.5.3-py3-none-any.whl |
|---|---|
| Size | 60.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
37d00e8b19e64ba66aa813b216f2d99a7a8d4f38c93516199cfa3e437c878676
|
|
BLAKE2b-256 checksum How to use checksums |
1aa44abff98ef81080ebecabe47d913413799a10afc3b3c1de2a8e91a3ebdf6a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for iaf 1.5.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.