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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iaf-1.5.3.tar.gz (40.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iaf-1.5.3-py3-none-any.whl (60.6 kB view details)

Uploaded Python 3

File details

Details for the file iaf-1.5.3.tar.gz.

File metadata

  • Download URL: iaf-1.5.3.tar.gz
  • Upload date:
  • Size: 40.5 kB
  • Tags: Source
  • Uploaded using 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}

File hashes

Hashes for iaf-1.5.3.tar.gz
Algorithm Hash digest
SHA256 3af16436677094ecaac06e1795c0c9bee5f6094195e7001d25c6e2485d18acff
MD5 01b327914599ddf3874b1aeb80fa81c9
BLAKE2b-256 65cbce3dcb2ce01827e5b3798977af0852675ffd5078891174234e7a1cb0431c

See more details on using hashes here.

File details

Details for the file iaf-1.5.3-py3-none-any.whl.

File metadata

  • Download URL: iaf-1.5.3-py3-none-any.whl
  • Upload date:
  • Size: 60.6 kB
  • Tags: Python 3
  • Uploaded using 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}

File hashes

Hashes for iaf-1.5.3-py3-none-any.whl
Algorithm Hash digest
SHA256 37d00e8b19e64ba66aa813b216f2d99a7a8d4f38c93516199cfa3e437c878676
MD5 ba853655cf6899f207dac04d178d53c6
BLAKE2b-256 1aa44abff98ef81080ebecabe47d913413799a10afc3b3c1de2a8e91a3ebdf6a

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.5.3 This release

2 files

1.5.2

1 file

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