Joblib

Latest version: v1.4.2

Safety actively analyzes 638452 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 5 of 11

0.12

------------

Thomas Moreau

Implement the ``'loky'`` backend with ogrisel. This backend relies on
a robust implementation of ``concurrent.futures.ProcessPoolExecutor``
with spawned processes that can be reused across the ``Parallel``
calls. This fixes the bad integration with third paty libraries relying on
thread pools, described in https://pythonhosted.org/joblib/parallel.html#bad-interaction-of-multiprocessing-and-third-party-libraries

Limit the number of threads used in worker processes by C-libraries that
relies on threadpools. This functionality works for MKL, OpenBLAS, OpenMP
and Accelerated.

Elizabeth Sander

Prevent numpy arrays with the same shape and data from hashing to
the same memmap, to prevent jobs with preallocated arrays from
writing over each other.

Olivier Grisel

Reduce overhead of automatic memmap by removing the need to hash the
array.

Make ``Memory.cache`` robust to ``PermissionError (errno 13)`` under
Windows when run in combination with ``Parallel``.

The automatic array memory mapping feature of ``Parallel`` does no longer
use ``/dev/shm`` if it is too small (less than 2 GB). In particular in
docker containers ``/dev/shm`` is only 64 MB by default which would cause
frequent failures when running joblib in Docker containers.

Make it possible to hint for thread-based parallelism with
``prefer='threads'`` or enforce shared-memory semantics with
``require='sharedmem'``.

Rely on the built-in exception nesting system of Python 3 to preserve
traceback information when an exception is raised on a remote worker
process. This avoid verbose and redundant exception reports under
Python 3.

Preserve exception type information when doing nested Parallel calls
instead of mapping the exception to the generic ``JoblibException`` type.


Alexandre Abadie

Introduce the concept of 'store' and refactor the ``Memory`` internal
storage implementation to make it accept extra store backends for caching
results. ``backend`` and ``backend_options`` are the new options added to
``Memory`` to specify and configure a store backend.

Add the ``register_store_backend`` function to extend the store backend
used by default with Memory. This default store backend is named 'local'
and corresponds to the local filesystem.

The store backend API is experimental and thus is subject to change in the
future without deprecation.

The ``cachedir`` parameter of ``Memory`` is now marked as deprecated, use
``location`` instead.

Add support for LZ4 compression if ``lz4`` package is installed.

Add ``register_compressor`` function for extending available compressors.

Allow passing a string to ``compress`` parameter in ``dump`` function. This
string should correspond to the compressor used (e.g. zlib, gzip, lz4,
etc). The default compression level is used in this case.

Matthew Rocklin

Allow ``parallel_backend`` to be used globally instead of only as a context
manager.
Support lazy registration of external parallel backends

0.11

Not secure
------------

Alexandre Abadie

Remove support for python 2.6

Alexandre Abadie

Remove deprecated `format_signature`, `format_call` and `load_output`
functions from Memory API.

Loïc Estève

Add initial implementation of LRU cache cleaning. You can specify
the size limit of a ``Memory`` object via the ``bytes_limit``
parameter and then need to clean explicitly the cache via the
``Memory.reduce_size`` method.

Olivier Grisel

Make the multiprocessing backend work even when the name of the main
thread is not the Python default. Thanks to Roman Yurchak for the
suggestion.

Karan Desai

pytest is used to run the tests instead of nosetests.
``python setup.py test`` or ``python setup.py nosetests`` do not work
anymore, run ``pytest joblib`` instead.

Loïc Estève

An instance of ``joblib.ParallelBackendBase`` can be passed into
the ``parallel`` argument in ``joblib.Parallel``.


Loïc Estève

Fix handling of memmap objects with offsets greater than
mmap.ALLOCATIONGRANULARITY in ``joblib.Parallel``. See
https://github.com/joblib/joblib/issues/451 for more details.

Loïc Estève

Fix performance regression in ``joblib.Parallel`` with
n_jobs=1. See https://github.com/joblib/joblib/issues/483 for more
details.

Loïc Estève

Fix race condition when a function cached with
``joblib.Memory.cache`` was used inside a ``joblib.Parallel``. See
https://github.com/joblib/joblib/issues/490 for more details.

0.10.3

Not secure
--------------

Loïc Estève

Fix tests when multiprocessing is disabled via the
JOBLIB_MULTIPROCESSING environment variable.

harishmk

Remove warnings in nested Parallel objects when the inner Parallel
has n_jobs=1. See https://github.com/joblib/joblib/pull/406 for
more details.

0.10.2

Not secure
--------------

Loïc Estève

FIX a bug in stack formatting when the error happens in a compiled
extension. See https://github.com/joblib/joblib/pull/382 for more
details.

Vincent Latrouite

FIX a bug in the constructor of BinaryZlibFile that would throw an
exception when passing unicode filename (Python 2 only).
See https://github.com/joblib/joblib/pull/384 for more details.

Olivier Grisel

Expose :class:`joblib.parallel.ParallelBackendBase` and
:class:`joblib.parallel.AutoBatchingMixin` in the public API to
make them officially re-usable by backend implementers.

0.10.0

Not secure
--------------

Alexandre Abadie

ENH: joblib.dump/load now accept file-like objects besides filenames.
https://github.com/joblib/joblib/pull/351 for more details.

Niels Zeilemaker and Olivier Grisel

Refactored joblib.Parallel to enable the registration of custom
computational backends.
https://github.com/joblib/joblib/pull/306
Note the API to register custom backends is considered experimental
and subject to change without deprecation.

Alexandre Abadie

Joblib pickle format change: joblib.dump always create a single pickle file
and joblib.dump/joblib.save never do any memory copy when writing/reading
pickle files. Reading pickle files generated with joblib versions prior
to 0.10 will be supported for a limited amount of time, we advise to
regenerate them from scratch when convenient.
joblib.dump and joblib.load also support pickle files compressed using
various strategies: zlib, gzip, bz2, lzma and xz. Note that lzma and xz are
only available with python >= 3.3.
https://github.com/joblib/joblib/pull/260 for more details.

Antony Lee

ENH: joblib.dump/load now accept pathlib.Path objects as filenames.
https://github.com/joblib/joblib/pull/316 for more details.

Olivier Grisel

Workaround for "WindowsError: [Error 5] Access is denied" when trying to
terminate a multiprocessing pool under Windows:
https://github.com/joblib/joblib/issues/354

0.9.4

Not secure
-------------

Olivier Grisel

FIX a race condition that could cause a joblib.Parallel to hang
when collecting the result of a job that triggers an exception.
https://github.com/joblib/joblib/pull/296

Olivier Grisel

FIX a bug that caused joblib.Parallel to wrongly reuse previously
memmapped arrays instead of creating new temporary files.
https://github.com/joblib/joblib/pull/294 for more details.

Loïc Estève

FIX for raising non inheritable exceptions in a Parallel call. See
https://github.com/joblib/joblib/issues/269 for more details.

Alexandre Abadie

FIX joblib.hash error with mixed types sets and dicts containing mixed
types keys when using Python 3.
see https://github.com/joblib/joblib/issues/254

Loïc Estève

FIX joblib.dump/load for big numpy arrays with dtype=object. See
https://github.com/joblib/joblib/issues/220 for more details.

Loïc Estève

FIX joblib.Parallel hanging when used with an exhausted
iterator. See https://github.com/joblib/joblib/issues/292 for more
details.

Page 5 of 11

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.