Skip to main content

Image Analysis Fundamentals (iaf)

License Version Supported platforms Documentation Status

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)

Source distribution for iaf 1.5.3
File Size Uploaded Provenance
iaf-1.5.3.tar.gz 40.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for iaf 1.5.3
File Interpreter ABI Platform
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.

Release history Release notifications | RSS feed

This release

1.5.3 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page