forked from pool/python-joblib
Accepting request 1287196 from home:mcalabkova:branches:devel:languages:python
- Update to 1.5.1 * Vendor loky3.5.5 fixing the resource_tracker clean up with earlier Python versions * Enforce age_limit is a positive timedelta for Memory.reduce_size, to avoid silently ignoring it * Remove deprecated bytes_limit argument for Memory, which should be passed directly to Memory.reduce_size * Drop support for Python 3.8 * Support for Python 3.13 free-threaded has been added * Fix a regression in 1.3 and 1.4 that caused large big endian arrays to trigger a serialization error * Fix support for python 3.14 in hashing, with the addition of an extra argument in Pickler._batch_setitems * Use pickle protocol 5 for pickling numpy arrays with object type - Drop merged numpy22.patch and loky_resource_tracker.patch - BuildRequire python-pytest-asyncio to fix tests with pytest 8.4 OBS-URL: https://build.opensuse.org/request/show/1287196 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-joblib?expand=0&rev=71
This commit is contained in:
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.osc
|
16
also-filter-new-fork-warning.patch
Normal file
16
also-filter-new-fork-warning.patch
Normal file
@@ -0,0 +1,16 @@
|
||||
Index: joblib-1.5.1/joblib/test/test_parallel.py
|
||||
===================================================================
|
||||
--- joblib-1.5.1.orig/joblib/test/test_parallel.py
|
||||
+++ joblib-1.5.1/joblib/test/test_parallel.py
|
||||
@@ -249,6 +249,11 @@ def test_main_thread_renamed_no_warning(
|
||||
message_part = "multi-threaded, use of fork() may lead to deadlocks"
|
||||
warninfo = [w for w in warninfo if message_part not in str(w.message)]
|
||||
|
||||
+ # There's a new warning in Python 3.12 about multiprocessing and forking
|
||||
+ # that we filter out
|
||||
+ warninfo = [w for w in warninfo
|
||||
+ if "is multi-threaded, use of fork" not in str(w.message)]
|
||||
+
|
||||
# The multiprocessing backend will raise a warning when detecting that is
|
||||
# started from the non-main thread. Let's check that there is no false
|
||||
# positive because of the name change.
|
3
joblib-1.4.2.tar.gz
Normal file
3
joblib-1.4.2.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e
|
||||
size 2116621
|
BIN
joblib-1.5.1.tar.gz
(Stored with Git LFS)
Normal file
BIN
joblib-1.5.1.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
82
loky_resource_tracker.patch
Normal file
82
loky_resource_tracker.patch
Normal file
@@ -0,0 +1,82 @@
|
||||
From 85c9aa634bbfb08d3ea692ff1cef5f5e25a0d71e Mon Sep 17 00:00:00 2001
|
||||
From: tommoral <thomas.moreau.2010@gmail.com>
|
||||
Date: Tue, 15 Apr 2025 02:31:05 +0200
|
||||
Subject: [PATCH 1/6] FIX remove link to pid in child resource_tracker
|
||||
|
||||
---
|
||||
joblib/externals/loky/backend/popen_loky_posix.py | 2 +-
|
||||
joblib/externals/loky/backend/spawn.py | 22 ++++++++--------------
|
||||
2 files changed, 9 insertions(+), 15 deletions(-)
|
||||
|
||||
Index: joblib-1.4.2/joblib/externals/loky/backend/popen_loky_posix.py
|
||||
===================================================================
|
||||
--- joblib-1.4.2.orig/joblib/externals/loky/backend/popen_loky_posix.py
|
||||
+++ joblib-1.4.2/joblib/externals/loky/backend/popen_loky_posix.py
|
||||
@@ -120,7 +120,7 @@ class Popen:
|
||||
reduction._mk_inheritable(tracker_fd)
|
||||
self._fds += [child_r, child_w, tracker_fd]
|
||||
if sys.version_info >= (3, 8) and os.name == "posix":
|
||||
- mp_tracker_fd = prep_data["mp_tracker_args"]["fd"]
|
||||
+ mp_tracker_fd = prep_data["mp_tracker_fd"]
|
||||
self.duplicate_for_child(mp_tracker_fd)
|
||||
|
||||
from .fork_exec import fork_exec
|
||||
Index: joblib-1.4.2/joblib/externals/loky/backend/spawn.py
|
||||
===================================================================
|
||||
--- joblib-1.4.2.orig/joblib/externals/loky/backend/spawn.py
|
||||
+++ joblib-1.4.2/joblib/externals/loky/backend/spawn.py
|
||||
@@ -82,11 +82,10 @@ def get_preparation_data(name, init_main
|
||||
from .resource_tracker import _resource_tracker
|
||||
|
||||
_resource_tracker.ensure_running()
|
||||
- d["tracker_args"] = {"pid": _resource_tracker._pid}
|
||||
if sys.platform == "win32":
|
||||
- d["tracker_args"]["fh"] = msvcrt.get_osfhandle(_resource_tracker._fd)
|
||||
+ d["tracker_fd"] = msvcrt.get_osfhandle(_resource_tracker._fd)
|
||||
else:
|
||||
- d["tracker_args"]["fd"] = _resource_tracker._fd
|
||||
+ d["tracker_fd"] = _resource_tracker._fd
|
||||
|
||||
if sys.version_info >= (3, 8) and os.name == "posix":
|
||||
# joblib/loky#242: allow loky processes to retrieve the resource
|
||||
@@ -105,10 +104,7 @@ def get_preparation_data(name, init_main
|
||||
# process is created (othewise the child won't be able to use it if it
|
||||
# is created later on)
|
||||
mp_resource_tracker.ensure_running()
|
||||
- d["mp_tracker_args"] = {
|
||||
- "fd": mp_resource_tracker._fd,
|
||||
- "pid": mp_resource_tracker._pid,
|
||||
- }
|
||||
+ d["mp_tracker_fd"] = mp_resource_tracker._fd
|
||||
|
||||
# Figure out whether to initialise main in the subprocess as a module
|
||||
# or through direct execution (or to leave it alone entirely)
|
||||
@@ -172,23 +168,21 @@ def prepare(data, parent_sentinel=None):
|
||||
if "orig_dir" in data:
|
||||
process.ORIGINAL_DIR = data["orig_dir"]
|
||||
|
||||
- if "mp_tracker_args" in data:
|
||||
+ if "mp_tracker_fd" in data:
|
||||
from multiprocessing.resource_tracker import (
|
||||
_resource_tracker as mp_resource_tracker,
|
||||
)
|
||||
|
||||
- mp_resource_tracker._fd = data["mp_tracker_args"]["fd"]
|
||||
- mp_resource_tracker._pid = data["mp_tracker_args"]["pid"]
|
||||
- if "tracker_args" in data:
|
||||
+ mp_resource_tracker._fd = data["mp_tracker_fd"]
|
||||
+ if "tracker_fd" in data:
|
||||
from .resource_tracker import _resource_tracker
|
||||
|
||||
- _resource_tracker._pid = data["tracker_args"]["pid"]
|
||||
if sys.platform == "win32":
|
||||
- handle = data["tracker_args"]["fh"]
|
||||
+ handle = data["tracker_fd"]
|
||||
handle = duplicate(handle, source_process=parent_sentinel)
|
||||
_resource_tracker._fd = msvcrt.open_osfhandle(handle, os.O_RDONLY)
|
||||
else:
|
||||
- _resource_tracker._fd = data["tracker_args"]["fd"]
|
||||
+ _resource_tracker._fd = data["tracker_fd"]
|
||||
|
||||
if "init_main_from_name" in data:
|
||||
_fixup_main_from_name(data["init_main_from_name"])
|
22
numpy22.patch
Normal file
22
numpy22.patch
Normal file
@@ -0,0 +1,22 @@
|
||||
From 1d9b65db31bfe79c42801d795ea9ebfec1123c44 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Lo=C3=AFc=20Est=C3=A8ve?= <loic.esteve@ymail.com>
|
||||
Date: Mon, 9 Dec 2024 17:16:23 +0100
|
||||
Subject: [PATCH] DOC Make doctest compatible with numpy 2.2 (#1632)
|
||||
|
||||
---
|
||||
joblib/__init__.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/joblib/__init__.py b/joblib/__init__.py
|
||||
index 54f6c8fb4..e9d4c6870 100644
|
||||
--- a/joblib/__init__.py
|
||||
+++ b/joblib/__init__.py
|
||||
@@ -63,7 +63,7 @@
|
||||
>>> square = mem.cache(np.square)
|
||||
>>> b = square(a) # doctest: +ELLIPSIS
|
||||
______________________________________________________________________...
|
||||
- [Memory] Calling square...
|
||||
+ [Memory] Calling ...square...
|
||||
square(array([[0., 0., 1.],
|
||||
[1., 1., 1.],
|
||||
[4., 2., 1.]]))
|
567
python-joblib.changes
Normal file
567
python-joblib.changes
Normal file
@@ -0,0 +1,567 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Jun 20 11:06:38 UTC 2025 - Markéta Machová <mmachova@suse.com>
|
||||
|
||||
- Update to 1.5.1
|
||||
* Vendor loky3.5.5 fixing the resource_tracker clean up with earlier
|
||||
Python versions
|
||||
* Enforce age_limit is a positive timedelta for Memory.reduce_size,
|
||||
to avoid silently ignoring it
|
||||
* Remove deprecated bytes_limit argument for Memory, which should be
|
||||
passed directly to Memory.reduce_size
|
||||
* Drop support for Python 3.8
|
||||
* Support for Python 3.13 free-threaded has been added
|
||||
* Fix a regression in 1.3 and 1.4 that caused large big endian arrays
|
||||
to trigger a serialization error
|
||||
* Fix support for python 3.14 in hashing, with the addition of an
|
||||
extra argument in Pickler._batch_setitems
|
||||
* Use pickle protocol 5 for pickling numpy arrays with object type
|
||||
- Drop merged numpy22.patch and loky_resource_tracker.patch
|
||||
- BuildRequire python-pytest-asyncio to fix tests with pytest 8.4
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 17 10:59:17 UTC 2025 - Markéta Machová <mmachova@suse.com>
|
||||
|
||||
- Add upstream loky_resource_tracker.patch to fix failure with
|
||||
recent CPython 3.12 and 3.13 bugfix releases
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 18 16:23:55 UTC 2025 - Markéta Machová <mmachova@suse.com>
|
||||
|
||||
- Add numpy22.patch to fix doctests with numpy 2.2
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 9 08:36:55 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 1.4.2:
|
||||
* Due to maintenance issues, 1.4.1 was not valid and we bumped
|
||||
the version to 1.4.2
|
||||
* Fix a backward incompatible change in MemorizedFunc.call
|
||||
which needs to return the metadata. Also make sure that
|
||||
NotMemorizedFunc.call return an empty dict for metadata for
|
||||
consistency. https://github.com/joblib/joblib/pull/1576
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Apr 20 21:06:55 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 1.4.0:
|
||||
* Allow caching co-routines with Memory.cache.
|
||||
* Try to cast n_jobs to int in parallel and raise an error if
|
||||
it fails. This means that n_jobs=2.3 will now result in
|
||||
effective_n_jobs=2 instead of failing.
|
||||
* Ensure that errors in the task generator given to Parallel's
|
||||
call are raised in the results consumming thread.
|
||||
* Adjust codebase to NumPy 2.0 by changing np.NaN to np.nan and
|
||||
importing byte_bounds from np.lib.array_utils.
|
||||
* The parameter return_as in joblib.Parallel can now be set to
|
||||
generator_unordered. In this case the results will be
|
||||
returned in the order of task completion rather than the
|
||||
order of submission.
|
||||
* dask backend now supports return_as=generator and
|
||||
return_as=generator_unordered.
|
||||
* Vendor cloudpickle 3.0.0 and end support for Python 3.7 which
|
||||
has reached end of life.
|
||||
- drop avoid-deprecated-ast.patch (upstream)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 28 03:55:52 UTC 2023 - Steve Kowalik <steven.kowalik@suse.com>
|
||||
|
||||
- Add patch avoid-deprecated-ast.patch:
|
||||
* Avoid deprecated ast classes.
|
||||
- Add patch also-filter-new-fork-warning.patch:
|
||||
* Filter DeprecationWarning due to calling fork() with multiprocessing.
|
||||
- Switch to pyproject macros.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Nov 25 20:14:35 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 1.3.2:
|
||||
* FIX treat n_jobs=None as if left to its default value
|
||||
* FIX Init logger parent class in Parallel
|
||||
* MNT remove unnecessary .bck file
|
||||
* MTN adjust test regex for Python 3.12 improved error message
|
||||
* DOC add public documentation for parallel_backend
|
||||
* FIX flake8 new E721: type comparison
|
||||
* Ensure native byte order for memmap.
|
||||
* Drop runtime dependency on `distutils`
|
||||
* Add environment variable to change default parallel backend
|
||||
* Fix memmapping_reducer when 'os' has no attribute 'statvfs'
|
||||
* Move the metadata into `pyproject.toml`
|
||||
* TST Close client in test_pickle_in_socket
|
||||
* Do not swallow PicklingError
|
||||
* FIX Avoid collisions when caching nested functions
|
||||
* FIX heisenfailure in doc/memory.rst
|
||||
* MAINT Explicit support for Python 3.11
|
||||
* MNT Use faulthandler rather than custom autokill logic
|
||||
* BENCH add benchmark script for n_jobs=1
|
||||
* TST Fix test_nested_parallel_warnings_parent_backend for
|
||||
Python nogil
|
||||
* TST Fix test_memmapping for Python nogil
|
||||
* MAINT Clean deprecations
|
||||
* ENH make temp resource cleanup safer
|
||||
* MAINT Simplify warning in `_persist_input`
|
||||
* MNT Use full flake8 rather than flake8_diff.sh
|
||||
* Update Dask backend
|
||||
* FIX upload to codecov
|
||||
* MTN vendor loky 3.4.0
|
||||
* MTN skip thread_bomb mitigation test on PyPy for now
|
||||
* High verbosity mode that prints arguments, hash and store
|
||||
location.
|
||||
* DBG try to debug the thread_bomb_mitigation test
|
||||
* FEA return generator, #588 stripped of unrelated changes for
|
||||
minimal diff review
|
||||
* BENCH scaling of a GridSearch with n_jobs
|
||||
* CLN make generator exit thread safe
|
||||
* FEA parallel_config context manager to allow more fine-
|
||||
grained control
|
||||
* MAINT: Be nitpicky about docs
|
||||
* CLN tidy logger
|
||||
* Give Memory.reduce_size() `items_limit` and `age_limit`
|
||||
options
|
||||
* CLN deprecate bytes_limit from Memory
|
||||
* FIX doc building failing download
|
||||
* Document parallel_config
|
||||
* ENH add cache_validation_callback in Memory
|
||||
* DOC example data DL from GH
|
||||
* merge all configs in pyproject.toml
|
||||
* fix double repeated word typos
|
||||
* DOC reference parallel_config instead of parallel_backend
|
||||
* `return_generator={True,False}` ->
|
||||
`return_as={'list','generator'}`
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Jun 10 17:42:25 UTC 2023 - ecsos <ecsos@opensuse.org>
|
||||
|
||||
- Add %{?sle15_python_module_pythons}
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 11 13:20:33 UTC 2022 - Ben Greiner <code@bnavigator.de>
|
||||
|
||||
- Update to 1.2.0 (CVE-2022-21797, bsc#1204232)
|
||||
* Fix a security issue where eval(pre_dispatch) could potentially
|
||||
run arbitrary code. Now only basic numerics are supported.
|
||||
#1327
|
||||
* Make sure that joblib works even when multiprocessing is not
|
||||
available, for instance with Pyodide #1256
|
||||
* Avoid unnecessary warnings when workers and main process delete
|
||||
the temporary memmap folder contents concurrently. #1263
|
||||
* Vendor loky 3.1.0 with several fixes to more robustly forcibly
|
||||
terminate worker processes in case of a crash. #1269
|
||||
* Fix memory alignment bug for pickles containing numpy arrays.
|
||||
This is especially important when loading the pickle with
|
||||
mmap_mode != None as the resulting numpy.memmap object would
|
||||
not be able to correct the misalignment without performing a
|
||||
memory copy. This bug would cause invalid computation and
|
||||
segmentation faults with native code that would directly access
|
||||
the underlying data buffer of a numpy array, for instance
|
||||
C/C++/Cython code compiled with older GCC versions or some old
|
||||
OpenBLAS written in platform specific assembly. #1254
|
||||
* Vendor cloudpickle 2.2.0 which adds support for PyPy 3.8+.
|
||||
* Vendor loky 3.3.0 which fixes a bug with leaking processes in
|
||||
case of nested loky parallel calls and more reliability spawn
|
||||
the correct number of reusable workers.
|
||||
- Drop support-setuptools-62.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jul 20 11:00:18 UTC 2022 - Steve Kowalik <steven.kowalik@suse.com>
|
||||
|
||||
- Add patch support-setuptools-62.patch:
|
||||
* Support setuptools >= 62 by handling more than one warning in a test
|
||||
case.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Oct 16 21:31:20 UTC 2021 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 1.1.0:
|
||||
* Fix byte order inconsistency issue during deserialization using joblib.load
|
||||
in cross-endian environment: the numpy arrays are now always loaded to use
|
||||
the system byte order, independently of the byte order of the system that
|
||||
serialized the pickle.
|
||||
* Fix joblib.Memory bug with the ignore parameter when the cached function is a
|
||||
decorated function.
|
||||
* Fix joblib.Memory to properly handle caching for functions defined
|
||||
interactively in a IPython session or in Jupyter notebook cell.
|
||||
* Update vendored loky (from version 2.9 to 3.0) and cloudpickle (from
|
||||
version 1.6 to 2.0)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 15 23:26:21 UTC 2021 - Ben Greiner <code@bnavigator.de>
|
||||
|
||||
- Update to 1.0.1
|
||||
* dask: avoid redundant scattering of large arguments to make a
|
||||
more efficient use of the network resources and avoid crashing
|
||||
dask with "OSError: [Errno 55] No buffer space available" or
|
||||
"ConnectionResetError: [Errno 104] connection reset by
|
||||
peer".
|
||||
- Changees in 1.0.0
|
||||
* Make joblib.hash and joblib.Memory caching system compatible
|
||||
with numpy >= 1.20.0. Also make it explicit in the
|
||||
documentation that users should now expect to have their joblib.
|
||||
Memory cache invalidated when either joblib or a third party
|
||||
library involved in the cached values definition is upgraded.
|
||||
In particular, users updating joblib to a release that includes
|
||||
this fix will see their previous cache invalidated if they
|
||||
contained reference to numpy objects.
|
||||
* Remove deprecated check_pickle argument in delayed.
|
||||
- Changes in 0.17.0
|
||||
* Fix a spurious invalidation of Memory.cache'd functions called
|
||||
with Parallel under Jupyter or IPython.
|
||||
* Bump vendored loky to 2.9.0 and cloudpickle to 1.6.0. In
|
||||
particular this fixes a problem to add compat for Python 3.9.
|
||||
- Don't require optional NumPy for python36 tests in TW, because
|
||||
NumPy 1.20 dropped support for Python 3.6 (NEP 29)
|
||||
- Drop joblib-disable-unrelialble-tests.patch, they are already
|
||||
used in pytest deselection parameter.
|
||||
* Do the same for disable_test_on_big_endian.patch.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Dec 6 21:37:54 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
|
||||
|
||||
- BuildRequire threadpoolctl for all python3 flavors
|
||||
gh#openSUSE/python-rpm-macros#66
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 30 08:23:38 UTC 2020 - pgajdos@suse.com
|
||||
|
||||
- disable test_hash_numpy_noncontiguous,
|
||||
test_hashes_are_different_between_c_and_fortran_contiguous_arrays,
|
||||
test_hashes_stay_the_same_with_numpy_objects,
|
||||
test_non_contiguous_array_pickling [bsc#1177209]
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 27 12:01:23 UTC 2020 - pgajdos@suse.com
|
||||
|
||||
- disable test_nested_loop_error_in_grandchild_resource_tracker_silent
|
||||
[bsc#1177209]
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 5 14:18:31 UTC 2020 - pgajdos@suse.com
|
||||
|
||||
- disable yet another tests [bsc#1177209]
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 8 08:26:41 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||
|
||||
- Disable tests failing often in OBS:
|
||||
* joblib-disable-unrelialble-tests.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Aug 21 08:40:04 UTC 2020 - Michel Normand <normand@linux.vnet.ibm.com>
|
||||
|
||||
- New disable_test_on_big_endian.patch as per upstream issue
|
||||
https://github.com/joblib/joblib/issues/279
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Jul 18 09:12:26 UTC 2020 - Dirk Mueller <dmueller@suse.com>
|
||||
|
||||
- update to 0.16.0
|
||||
- Fix a problem in the constructors of of Parallel backends classes that
|
||||
inherit from the `AutoBatchingMixin` that prevented the dask backend to
|
||||
properly batch short tasks.
|
||||
https://github.com/joblib/joblib/pull/1062
|
||||
- Fix a problem in the way the joblib dask backend batches calls that would
|
||||
badly interact with the dask callable pickling cache and lead to wrong
|
||||
results or errors.
|
||||
https://github.com/joblib/joblib/pull/1055
|
||||
- Prevent a dask.distributed bug from surfacing in joblib's dask backend
|
||||
during nested Parallel calls (due to joblib's auto-scattering feature)
|
||||
https://github.com/joblib/joblib/pull/1061
|
||||
- Workaround for a race condition after Parallel calls with the dask backend
|
||||
that would cause low level warnings from asyncio coroutines:
|
||||
https://github.com/joblib/joblib/pull/1078
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jun 2 16:24:43 UTC 2020 - Dirk Mueller <dmueller@suse.com>
|
||||
|
||||
- update to 0.15.1:
|
||||
- Make joblib work on Python 3 installation that do not ship with the lzma
|
||||
package in their standard library.
|
||||
- Drop support for Python 2 and Python 3.5. All objects in
|
||||
``joblib.my_exceptions`` and ``joblib.format_stack`` are now deprecated and
|
||||
will be removed in joblib 0.16. Note that no deprecation warning will be
|
||||
raised for these objects Python < 3.7.
|
||||
https://github.com/joblib/joblib/pull/1018
|
||||
- Fix many bugs related to the temporary files and folder generated when
|
||||
automatically memory mapping large numpy arrays for efficient inter-process
|
||||
communication. In particular, this would cause `PermissionError` exceptions
|
||||
to be raised under Windows and large leaked files in `/dev/shm` under Linux
|
||||
in case of crash.
|
||||
https://github.com/joblib/joblib/pull/966
|
||||
- Make the dask backend collect results as soon as they complete
|
||||
leading to a performance improvement:
|
||||
https://github.com/joblib/joblib/pull/1025
|
||||
- Fix the number of jobs reported by ``effective_n_jobs`` when ``n_jobs=None``
|
||||
called in a parallel backend context.
|
||||
https://github.com/joblib/joblib/pull/985
|
||||
- Upgraded vendored cloupickle to 1.4.1 and loky to 2.8.0. This allows for
|
||||
Parallel calls of dynamically defined functions with type annotations
|
||||
in particular.
|
||||
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 5 13:33:14 UTC 2020 - pgajdos@suse.com
|
||||
|
||||
- version update to 0.14.1
|
||||
- Configure the loky workers' environment to mitigate oversubsription with
|
||||
nested multi-threaded code in the following case:
|
||||
- allow for a suitable number of threads for numba (``NUMBA_NUM_THREADS``);
|
||||
- enable Interprocess Communication for scheduler coordination when the
|
||||
nested code uses Threading Building Blocks (TBB) (``ENABLE_IPC=1``)
|
||||
https://github.com/joblib/joblib/pull/951
|
||||
- Fix a regression where the loky backend was not reusing previously
|
||||
spawned workers.
|
||||
https://github.com/joblib/joblib/pull/968
|
||||
- Revert https://github.com/joblib/joblib/pull/847 to avoid using
|
||||
`pkg_resources` that introduced a performance regression under Windows:
|
||||
https://github.com/joblib/joblib/issues/965
|
||||
- Improved the load balancing between workers to avoid stranglers caused by an
|
||||
excessively large batch size when the task duration is varying significantly
|
||||
(because of the combined use of ``joblib.Parallel`` and ``joblib.Memory``
|
||||
with a partially warmed cache for instance).
|
||||
https://github.com/joblib/joblib/pull/899
|
||||
- Add official support for Python 3.8: fixed protocol number in `Hasher`
|
||||
and updated tests.
|
||||
- Fix a deadlock when using the dask backend (when scattering large numpy
|
||||
arrays).
|
||||
https://github.com/joblib/joblib/pull/914
|
||||
- Warn users that they should never use `joblib.load` with files from
|
||||
untrusted sources. Fix security related API change introduced in numpy
|
||||
1.6.3 that would prevent using joblib with recent numpy versions.
|
||||
https://github.com/joblib/joblib/pull/879
|
||||
- Upgrade to cloudpickle 1.1.1 that add supports for the upcoming
|
||||
Python 3.8 release among other things.
|
||||
https://github.com/joblib/joblib/pull/878
|
||||
- Fix semaphore availability checker to avoid spawning resource trackers
|
||||
on module import.
|
||||
https://github.com/joblib/joblib/pull/893
|
||||
- Fix the oversubscription protection to only protect against nested
|
||||
`Parallel` calls. This allows `joblib` to be run in background threads.
|
||||
https://github.com/joblib/joblib/pull/934
|
||||
- Fix `ValueError` (negative dimensions) when pickling large numpy arrays on
|
||||
Windows.
|
||||
https://github.com/joblib/joblib/pull/920
|
||||
- Upgrade to loky 2.6.0 that add supports for the setting environment variables
|
||||
in child before loading any module.
|
||||
https://github.com/joblib/joblib/pull/940
|
||||
- Fix the oversubscription protection for native libraries using threadpools
|
||||
(OpenBLAS, MKL, Blis and OpenMP runtimes).
|
||||
The maximal number of threads is can now be set in children using the
|
||||
``inner_max_num_threads`` in ``parallel_backend``. It defaults to
|
||||
``cpu_count() // n_jobs``.
|
||||
https://github.com/joblib/joblib/pull/940
|
||||
- deleted patches
|
||||
- numpy16.patch (upstreamed)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue May 28 10:34:57 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
|
||||
|
||||
- Switch to %pytest
|
||||
- Add patch to work well with new numpy:
|
||||
* numpy16.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 26 14:45:24 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
|
||||
|
||||
- Update to 0.13.2:
|
||||
* Upgrade to cloudpickle 0.8.0
|
||||
* Add a non-regression test related to joblib issues #836 and #833, reporting that cloudpickle versions between 0.5.4 and 0.7 introduced a bug where global variables changes in a parent process between two calls to joblib.Parallel would not be propagated into the workers
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 7 15:57:20 UTC 2019 - John Vandenberg <jayvdb@gmail.com>
|
||||
|
||||
- Remove no longer necessary pytest argument
|
||||
-k 'not test_no_blas_crash_or_freeze_with_subprocesses'
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 29 16:41:57 CET 2019 - mcepl@suse.com
|
||||
|
||||
- Update to Release 0.13.1:
|
||||
* Memory now accepts pathlib.Path objects as ``location``
|
||||
parameter. Also, a warning is raised if the returned backend
|
||||
is None while ``location`` is not None.
|
||||
* Make ``Parallel`` raise an informative ``RuntimeError`` when
|
||||
the active parallel backend has zero worker.
|
||||
* Make the ``DaskDistributedBackend`` wait for workers before
|
||||
trying to schedule work. This is useful in particular when
|
||||
the workers are provisionned dynamically but provisionning is
|
||||
not immediate (for instance using Kubernetes, Yarn or an HPC
|
||||
job queue).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 7 19:39:00 UTC 2019 - Todd R <toddrme2178@gmail.com>
|
||||
|
||||
- update to Release 0.13.0
|
||||
* Include loky 2.4.2 with default serialization with ``cloudpickle``.
|
||||
This can be tweaked with the environment variable ``LOKY_PICKLER``.
|
||||
* Fix nested backend in SequentialBackend to avoid changing the default
|
||||
backend to Sequential. (#792)
|
||||
* Fix nested_backend behavior to avoid setting the default number of
|
||||
workers to -1 when the backend is not dask. (#784)
|
||||
- Update to Release 0.12.5
|
||||
* Include loky 2.3.1 with better error reporting when a worker is
|
||||
abruptly terminated. Also fixes spurious debug output.
|
||||
* Include cloudpickle 0.5.6. Fix a bug with the handling of global
|
||||
variables by locally defined functions.
|
||||
- Update to Release 0.12.4
|
||||
* Include loky 2.3.0 with many bugfixes, notably w.r.t. when setting
|
||||
non-default multiprocessing contexts. Also include improvement on
|
||||
memory management of long running worker processes and fixed issues
|
||||
when using the loky backend under PyPy.
|
||||
* Raises a more explicit exception when a corrupted MemorizedResult is loaded.
|
||||
* Loading a corrupted cached file with mmap mode enabled would
|
||||
recompute the results and return them without memmory mapping.
|
||||
- Update to Release 0.12.3
|
||||
* Fix joblib import setting the global start_method for multiprocessing.
|
||||
* Fix MemorizedResult not picklable (#747).
|
||||
* Fix Memory, MemorizedFunc and MemorizedResult round-trip pickling +
|
||||
unpickling (#746).
|
||||
* Fixed a regression in Memory when positional arguments are called as
|
||||
kwargs several times with different values (#751).
|
||||
* Integration of loky 2.2.2 that fixes issues with the selection of the
|
||||
default start method and improve the reporting when calling functions
|
||||
with arguments that raise an exception when unpickling.
|
||||
* Prevent MemorizedFunc.call_and_shelve from loading cached results to
|
||||
RAM when not necessary. Results in big performance improvements
|
||||
- Update to Release 0.12.2
|
||||
* Integrate loky 2.2.0 to fix regression with unpicklable arguments and
|
||||
functions reported by users (#723, #643).
|
||||
* Loky 2.2.0 also provides a protection against memory leaks long running
|
||||
applications when psutil is installed (reported as #721).
|
||||
* Joblib now includes the code for the dask backend which has been updated
|
||||
to properly handle nested parallelism and data scattering at the same
|
||||
time (#722).
|
||||
* Restored some private API attribute and arguments
|
||||
(`MemorizedResult.argument_hash` and `BatchedCalls.__init__`'s
|
||||
`pickle_cache`) for backward compat. (#716, #732).
|
||||
* Fix a deprecation warning message (for `Memory`'s `cachedir`) (#720).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 3 07:07:28 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
|
||||
|
||||
- Disable blas test as it is very flaky outside of x86_64
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jul 27 06:35:25 UTC 2018 - jengelh@inai.de
|
||||
|
||||
- Use noun phrase in summary.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jul 20 11:48:47 UTC 2018 - tchvatal@suse.com
|
||||
|
||||
- Enable tests
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jul 18 03:03:33 UTC 2018 - arun@gmx.de
|
||||
|
||||
- specfile:
|
||||
* remove devel requirement
|
||||
|
||||
- update to version 0.12.1:
|
||||
* Make sure that any exception triggered when serializing jobs in
|
||||
the queue will be wrapped as a PicklingError as in past versions
|
||||
of joblib.
|
||||
* Fix kwonlydefaults key error in filter_args (#715)
|
||||
|
||||
- changes from version 0.12:
|
||||
* Implement the 'loky' backend with @ogrisel. This backend relies on
|
||||
a robust implementation of concurrent.futures.ProcessPoolExecutor
|
||||
with spawned processes that can be reused accross the Parallel
|
||||
calls. This fixes the bad interation 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.
|
||||
* 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.
|
||||
* 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.
|
||||
* 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 funtion. This
|
||||
string should correspond to the compressor used (e.g. zlib, gzip,
|
||||
lz4, etc). The default compression level is used in this case.
|
||||
* Allow parallel_backend to be used globally instead of only as a
|
||||
context manager. Support lazy registration of external parallel
|
||||
backends
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 11 22:12:57 UTC 2018 - jengelh@inai.de
|
||||
|
||||
- Ensure neutrality of description.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 22 16:35:59 UTC 2017 - toddrme2178@gmail.com
|
||||
|
||||
- Implement single-spec version.
|
||||
- Run tests.
|
||||
- Fix source URL.
|
||||
- Update to version 0.11.
|
||||
* For a full changelog please see:
|
||||
https://github.com/joblib/joblib/blob/0.11/CHANGES.rst
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun May 24 13:14:03 UTC 2015 - toddrme2178@gmail.com
|
||||
|
||||
- Disable non-functional documentation
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Dec 8 19:47:59 UTC 2013 - p.drouand@gmail.com
|
||||
|
||||
- Update to version 0.7.1
|
||||
+ MISC: capture meaningless argument (n_jobs=0) in Parallel
|
||||
+ ENH Handles tuples, sets and Python 3's dict_keys type the same as
|
||||
lists. in pre_dispatch
|
||||
+ ENH: fix function caching for IPython
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Oct 24 11:07:22 UTC 2013 - speilicke@suse.com
|
||||
|
||||
- Require python-setuptools instead of distribute (upstreams merged)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Feb 9 15:54:15 UTC 2013 - p.drouand@gmail.com
|
||||
|
||||
- Update to version 0.7.0d
|
||||
* No changelog available
|
||||
- Clean the specfile and remove .buildinfo file
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 10 20:59:57 UTC 2012 - scorot@free.fr
|
||||
|
||||
- Add Group field in doc package for SLE 11
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 5 17:10:35 UTC 2012 - toddrme2178@gmail.com
|
||||
|
||||
- Initial version
|
||||
|
122
python-joblib.spec
Normal file
122
python-joblib.spec
Normal file
@@ -0,0 +1,122 @@
|
||||
#
|
||||
# spec file for package python-joblib
|
||||
#
|
||||
# Copyright (c) 2025 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
%{?sle15_python_module_pythons}
|
||||
Name: python-joblib
|
||||
Version: 1.5.1
|
||||
Release: 0
|
||||
Summary: Module for using Python functions as pipeline jobs
|
||||
License: BSD-3-Clause
|
||||
URL: https://github.com/joblib/joblib
|
||||
Source: https://files.pythonhosted.org/packages/source/j/joblib/joblib-%{version}.tar.gz
|
||||
# PATCH-FIX-OPENSUSE Also avoid a DeprecationWarning when using fork() under
|
||||
# multiprocessing
|
||||
Patch1: also-filter-new-fork-warning.patch
|
||||
BuildRequires: %{python_module base >= 3.7}
|
||||
BuildRequires: %{python_module lz4}
|
||||
BuildRequires: %{python_module numpy}
|
||||
BuildRequires: %{python_module pip}
|
||||
BuildRequires: %{python_module psutil}
|
||||
BuildRequires: %{python_module pytest-asyncio}
|
||||
BuildRequires: %{python_module pytest}
|
||||
BuildRequires: %{python_module setuptools}
|
||||
BuildRequires: %{python_module threadpoolctl}
|
||||
BuildRequires: %{python_module wheel}
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: python-rpm-macros
|
||||
Recommends: python-lz4
|
||||
Recommends: python-numpy
|
||||
Recommends: python-psutil
|
||||
Suggests: python-dask-distributed
|
||||
BuildArch: noarch
|
||||
%python_subpackages
|
||||
|
||||
%description
|
||||
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. parallel computing
|
||||
|
||||
3. logging and tracing of the execution
|
||||
|
||||
Joblib can handle large data and has specific optimizations for `numpy` arrays.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n joblib-%{version}
|
||||
|
||||
%build
|
||||
%pyproject_wheel
|
||||
|
||||
%install
|
||||
%pyproject_install
|
||||
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
||||
|
||||
%check
|
||||
export LANG=en_US.UTF-8
|
||||
# turn off unreliable tests across architectures
|
||||
# https://bugzilla.suse.com/show_bug.cgi?id=1177209
|
||||
# they have been seen failing for the first time on following
|
||||
# architectures:
|
||||
# s390x:
|
||||
# test_hash_numpy_noncontiguous
|
||||
# test_hashes_are_different_between_c_and_fortran_contiguous_arrays
|
||||
# test_hashes_stay_the_same_with_numpy_objects
|
||||
# test_non_contiguous_array_pickling
|
||||
# x86_64:
|
||||
# test_multithreaded_parallel_termination_resource_tracker_silent
|
||||
# aarch64:
|
||||
# test_resource_tracker_silent_when_reference_cycles
|
||||
# test_child_raises_parent_exits_cleanly
|
||||
# i586:
|
||||
# test_nested_loop_error_in_grandchild_resource_tracker_silent
|
||||
# s390x:
|
||||
# test_hash_numpy_noncontiguous
|
||||
# test_hashes_are_different_between_c_and_fortran_contiguous_arrays
|
||||
# test_hashes_stay_the_same_with_numpy_objects
|
||||
# test_non_contiguous_array_pickling
|
||||
#
|
||||
# always fails:
|
||||
# test_parallel_call_cached_function_defined_in_jupyter
|
||||
DISABLED_TESTS="test_hash_numpy_noncontiguous or \
|
||||
test_hashes_are_different_between_c_and_fortran_contiguous_arrays or \
|
||||
test_hashes_stay_the_same_with_numpy_objects or \
|
||||
test_non_contiguous_array_pickling or \
|
||||
test_multithreaded_parallel_termination_resource_tracker_silent or \
|
||||
test_resource_tracker_silent_when_reference_cycles or \
|
||||
test_child_raises_parent_exits_cleanly or \
|
||||
test_nested_loop_error_in_grandchild_resource_tracker_silent or \
|
||||
test_hash_numpy_noncontiguous or \
|
||||
test_hashes_are_different_between_c_and_fortran_contiguous_arrays or \
|
||||
test_hashes_stay_the_same_with_numpy_objects or \
|
||||
test_non_contiguous_array_pickling or \
|
||||
test_parallel_call_cached_function_defined_in_jupyter"
|
||||
if [ $(python3 -c 'import sys; print(sys.byteorder)') != "little" ]; then
|
||||
DISABLED_TESTS+=" or test_joblib_pickle_across_python_versions"
|
||||
fi
|
||||
%pytest -k "not ($DISABLED_TESTS)"
|
||||
|
||||
%files %{python_files}
|
||||
%license LICENSE.txt
|
||||
%doc README.rst
|
||||
%{python_sitelib}/joblib-%{version}.dist-info
|
||||
%{python_sitelib}/joblib/
|
||||
|
||||
%changelog
|
Reference in New Issue
Block a user