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.0rc2

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.0rc2
File Size Uploaded
immlib-1.0.0rc2.tar.gz 285.7 kB Details

Built distribution (wheel)

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

Total release size: 586.7 kB

Release files / immlib-1.0.0rc2.tar.gz

Download URL immlib-1.0.0rc2.tar.gz
Size 285.7 kB
Tags Source
SHA-256 checksum
How to use checksums
afd2e1af5746e6464f00bdfbd3d7cc96198afe06efb1c7d5b8fd905a08b0e7cc
BLAKE2b-256 checksum
How to use checksums
d13aeb0d49bebacaffb26e237a500a8eacf866cfdd64983b44ad47c87ccb9366
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.0rc2-py3-none-any.whl

Download URL immlib-1.0.0rc2-py3-none-any.whl
Size 301.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2ed6cad0c9e73c4166ad978d839b542d30bb4545b2265a7563e92b6b448c8764
BLAKE2b-256 checksum
How to use checksums
598f75f037de852b1b903e21d3bb421d98b8fcbd3f0bdd214aa45c2bcd992790
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