Skip to main content
Pre-release

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

Joblib is a set of tools to provide lightweight pipelining in Python. In particular, joblib offers:

  1. transparent disk-caching of the output values and lazy re-evaluation (memoize pattern)

  2. easy simple parallel computing

  3. logging and tracing of the execution

Joblib is optimized to be fast and robust in particular on large data and has specific optimizations for numpy arrays. It is BSD-licensed.

User documentation:

http://packages.python.org/joblib

Download packages:

http://pypi.python.org/pypi/joblib#downloads

Source code:

http://github.com/joblib/joblib

Report issues:

http://github.com/joblib/joblib/issues

Vision

The vision is to provide tools to easily achieve better performance and reproducibility when working with long running jobs. In addition, Joblib can also be used to provide a light-weight make replacement or caching solution.

  • 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 aleviate 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. In addition, hand-written persistence does not link easily the file on disk to the execution context of the original Python object. As a result, it is challenging to resume a application status or computational job, eg after a crash.

It strives to address these problems while leaving your code and your flow control as unmodified as possible (no framework, no new paradigms).

Main features

  1. 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
    >>> mem = Memory(cachedir='/tmp/joblib')
    >>> import numpy as np
    >>> a = np.vander(np.arange(3))
    >>> square = mem.cache(np.square)
    >>> b = square(a)
    ________________________________________________________________________________
    [Memory] Calling square...
    square(array([[0, 0, 1],
           [1, 1, 1],
           [4, 2, 1]]))
    ___________________________________________________________square - 0.0s, 0.0min
    
    >>> c = square(a)
    >>> # The above call did not trigger an evaluation
  2. Embarrassingly parallel helper: to make is 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]
    
  3. Logging/tracing: The different functionalities will progressively acquire better logging mechanism to help track what has been ran, and capture I/O easily. In addition, Joblib will provide a few I/O primitives, to easily define define logging and display streams, and provide a way of compiling a report. We want to be able to quickly inspect what has been run.

Metadata

Release files for joblib 0.4.6.dev

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

Source distribution (sdist)

Source distribution for joblib 0.4.6.dev
File Size Uploaded Provenance Actions
joblib-0.4.6.dev.tar.gz 190.8 kB Without provenance Details for joblib-0.4.6.dev.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for joblib 0.4.6.dev
File Interpreter ABI Platform Actions
joblib-0.4.6.dev-py2.6.egg Legacy Egg format - - Details for joblib-0.4.6.dev-py2.6.egg

Total release size: 276.0 kB

Release files / joblib-0.4.6.dev.tar.gz

Download URL joblib-0.4.6.dev.tar.gz
Size 190.8 kB
Tags Source
SHA-256 checksum
How to use checksums
f743de563b7f83af6de9d0104393a23e3f86941e297c68de962a1cf0d4845ede
BLAKE2b-256 checksum
How to use checksums
8100c4f728e85a8e2de1f1400cec48651ad06351f2fd880d5f6316308527af31
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / joblib-0.4.6.dev-py2.6.egg

Download URL joblib-0.4.6.dev-py2.6.egg
Size 85.2 kB
Tags Egg
SHA-256 checksum
How to use checksums
66a3735ea4823c2cde3ff3f11d437dd776643e1c9aa7c9663e636519d15c7d2e
BLAKE2b-256 checksum
How to use checksums
974574be9dd2f61060bd215666e606174b2674ee0c7bb875fb7372e2b9f4fc19
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for joblib 0.4.6.dev

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1a

0.3.2f

0.3.2d

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