Joblib is a set of tools to provide lightweight pipelining in Python. In particular:
transparent disk-caching of functions and lazy re-evaluation (memoize pattern)
easy simple parallel computing
Joblib is optimized to be fast and robust in particular on large data and has specific optimizations for numpy arrays. It is BSD-licensed.
Documentation:
Download:
Source code:
Report issues:
Vision
The vision is to provide tools to easily achieve better performance and reproducibility when working with long running jobs.
Avoid computing twice the same thing: code is rerun over an over, for instance when prototyping computational-heavy jobs (as in scientific development), but hand-crafted solution to alleviate this issue is error-prone and often leads to unreproducible results
Persist to disk transparently: persisting in an efficient way arbitrary objects containing large data is hard. Using joblib’s caching mechanism avoids hand-written persistence and implicitly links the file on disk to the execution context of the original Python object. As a result, joblib’s persistence is good for resuming an application status or computational job, eg after a crash.
Joblib addresses these problems while leaving your code and your flow control as unmodified as possible (no framework, no new paradigms).
Main features
Transparent and fast disk-caching of output value: a memoize or make-like functionality for Python functions that works well for arbitrary Python objects, including very large numpy arrays. Separate persistence and flow-execution logic from domain logic or algorithmic code by writing the operations as a set of steps with well-defined inputs and outputs: Python functions. Joblib can save their computation to disk and rerun it only if necessary:
>>> from joblib import Memory >>> cachedir = 'your_cache_dir_goes_here' >>> mem = Memory(cachedir) >>> import numpy as np >>> a = np.vander(np.arange(3)).astype(np.float) >>> square = mem.cache(np.square) >>> b = square(a) # doctest: +ELLIPSIS ________________________________________________________________________________ [Memory] Calling square... square(array([[0., 0., 1.], [1., 1., 1.], [4., 2., 1.]])) ___________________________________________________________square - 0...s, 0.0min >>> c = square(a) >>> # The above call did not trigger an evaluationEmbarrassingly parallel helper: to make it easy to write readable parallel code and debug it quickly:
>>> from joblib import Parallel, delayed >>> from math import sqrt >>> Parallel(n_jobs=1)(delayed(sqrt)(i**2) for i in range(10)) [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]
Fast compressed Persistence: a replacement for pickle to work efficiently on Python objects containing large data ( joblib.dump & joblib.load ).
Metadata
Release files for joblib 0.13.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| joblib-0.13.1.tar.gz | 286.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| joblib-0.13.1-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 565.0 kB
Release files / joblib-0.13.1.tar.gz
| Download URL | joblib-0.13.1.tar.gz |
|---|---|
| Size | 286.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4deed0d8d3368aa0353f9a3cb22582c7100ce9db2c4b489c838957982b3a5d2b
|
|
BLAKE2b-256 checksum How to use checksums |
7a7355417b6ba2d99c65ef583d47e7132f1503f4e402082f13f0c4bb2a9d9663
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.7.0
|
Release files / joblib-0.13.1-py2.py3-none-any.whl
| Download URL | joblib-0.13.1-py2.py3-none-any.whl |
|---|---|
| Size | 278.1 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
e03840163390c19d139381a2545e413b192d9253ea41286085e30ceaeadbfec4
|
|
BLAKE2b-256 checksum How to use checksums |
49d94ea194a4c1d0148f9446054b9135f47218c23ccc6f649aeb09fab4c0925c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.7.0
|