An pqdm-compatible (almost) extension that supports stateful worker pools with both sized and unsized iterables.
Project description
MultiTASKLite: A lightweight library for Python multitasking
The mtasklite
library provides enjoyable parallelization of iterating through an iterable with or without a progress bar. It is inspired by the simplicity of the great pqdm
library, but it improves upon pqdm
in several ways, in particular, by supporting object-based (stateful) workers, truly "lazy" iteration, and context managers (i.e., a support for with-statement
). Stateful workers are implemented using the cool concept of delayed initialization, which is effortlessly enabled by adding @delayed_init
decorator to a worker class definition.
Supporting object-based workers enables:
- Using different GPUs, models, or network connections in different workers.
- Efficient initialization of workers: If the worker needs to load a model (which often takes quite a bit of time), it will be done once (per process/thread) before processing input items.(examples/mtasklite_pqdm_spacy_tokenization_demo.ipynb) for an example.
- Logging and bookkeeping: Each worker is represented by an object that "lives" as long as we have items to process (data can be stored in the object attributes).
The mtasklite
package provides pqdm-compatibility wrappers, which can be used as a (nearly) drop-in replacement of pqdm
. For an overview of differences, and a list of features, please, refer to the documentation in the GitHub repository.
This library is replacing py_stateful_map
. The objective of this replacement to provide a more convenient and user-friendly interface as well as to fix several issues.
Credits
A huge shoutout to the creators for the multiprocess library, which is a drop-in replacement of the standard Python multiprocessing
library, which resolves various pickling issues that arise on non-Unix platforms (when a standard multiprocessing library is used). Thanks to their effort, mtasklite
works across Linux, Windows, and MacOS.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file mtasklite-0.3.3.tar.gz
.
File metadata
- Download URL: mtasklite-0.3.3.tar.gz
- Upload date:
- Size: 19.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f7e472ba22c8308c564e2e393954c4c356e6f47334bcfa613ab6b930039df30f |
|
MD5 | c9755a5284653ca6d7ba9a4b01afb79b |
|
BLAKE2b-256 | 4ee8de706bcd5829f581d8f0b43f700d531aeab1f7904624b74b59285286ef71 |
File details
Details for the file mtasklite-0.3.3-py3-none-any.whl
.
File metadata
- Download URL: mtasklite-0.3.3-py3-none-any.whl
- Upload date:
- Size: 20.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e0e229490c13cc2a6e3b64956e3ecdfbe35d42a9d4524b3a745e48b2b738adf |
|
MD5 | 040d1b55bd5790ed604faa7cb8714c3a |
|
BLAKE2b-256 | 4ae0e7210dbb5961d471db8a0946a279664d8088350df54154e0ec0e133b7f49 |