This release is a pre-release and may not be stable for production use.
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 fromcalcunits that are assembled intoplanDAGs. 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 singlepathfunction that resolves local and remote paths (S3, Google Storage, Azure, and OSF), downloads remote data into a local cache, andsave/loadfunctions that read and write a range of file formats.- quantities and units —
immlib.Quantity(apint.Quantitythat also supports having no units at all) andimmlib.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)
| File | Size | Uploaded | |
|---|---|---|---|
| immlib-1.0.0rc1.tar.gz | 271.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|