Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

immlib

Build Status codecov PyPI version


Author: Noah C. Benson <nben@uw.edu>
License: MIT
Documentation


immlib is a lightweight Python library that simplifies the design of application programming interfaces (APIs) for scientific libraries. The name immlib comes from the library’s philosophy of using immutable data to simplify scientific workflows.

What's in it

  • immlib.workflow — immutable workflows built from calc units that are assembled into plan DAGs. Inputs and outputs are tracked and wired up automatically, results are computed lazily, and calculations can be cached in memory or on disk.
  • immlib.pathlib / immlib.iolib — a single path function that resolves local and remote paths (S3, Google Storage, Azure, and OSF), downloads remote data into a local cache, and save/load functions that read and write a range of file formats.
  • quantities and units — immlib.Quantity (a pint.Quantity that also supports having no units at all) and immlib.math, a small common namespace that operates on quantities, NumPy arrays, and PyTorch tensors alike, so the two backends are interchangeable and units are tracked through the arithmetic.

Alongside these are a set of utilities for testing and coercing types, handling persistent and lazy collections, and working with numerical arguments.

Requirements

immlib supports Python 3.10 through 3.14, including the free-threaded (no-GIL) builds, and depends on NumPy, SciPy, Pint, pcollections, docshare, joblib, cloudpathlib, and PyYAML.

PyTorch and pandas are optional. immlib never imports PyTorch at import time, so it can be used without it (only operations that actually need a tensor raise); pandas is needed only by the csv/tsv save/load formats. See the "Stability and Compatibility" page of the documentation for the supported version ranges of each dependency and what the library promises across releases.

immlib is heavily based on the library pimms, which effectively served as a prototype for immlib. Both libraries were motivated by a number of observations about the design of scientific software and are an attempt to make some of these problems easier to manage.

For more information, see the documentation.

Metadata

Release files for immlib 1.0.0rc1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for immlib 1.0.0rc1
File Size Uploaded
immlib-1.0.0rc1.tar.gz 271.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for immlib 1.0.0rc1
File Interpreter ABI Platform
immlib-1.0.0rc1-py3-none-any.whl Python 3 none any Details

Total release size: 558.3 kB

Release files / immlib-1.0.0rc1.tar.gz

Download URL immlib-1.0.0rc1.tar.gz
Size 271.4 kB
Tags Source
SHA-256 checksum
How to use checksums
bdbeb6f76cec9ebd69a17a2fb3b471e3898eaa7f529a626734930d03e3982e78
BLAKE2b-256 checksum
How to use checksums
473798c50a385005ff18cd7629e1167fe541cb5751740a65a7f7aba8deb2aef6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.16

Release files / immlib-1.0.0rc1-py3-none-any.whl

Download URL immlib-1.0.0rc1-py3-none-any.whl
Size 286.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
aa02235ac5ffa0e0b94f5bd64f529a1b6dc4816407d0bdbe26665a9146dfc623
BLAKE2b-256 checksum
How to use checksums
1c1be01ae327d54abf6486513ee1715d1745ccbcc42253b65e795ac2a8fd2360
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.16
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