Skip to main content

An pqdm-compatible (almost) extension that supports stateful worker pools with both sized and unsized iterables.

Project description

PyPI version Downloads Downloads

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:

  1. Using different GPUs, models, or network connections in different workers.
  2. 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.
  3. 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

mtasklite-0.3.5.tar.gz (20.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mtasklite-0.3.5-py2.py3-none-any.whl (21.4 kB view details)

Uploaded Python 2Python 3

File details

Details for the file mtasklite-0.3.5.tar.gz.

File metadata

  • Download URL: mtasklite-0.3.5.tar.gz
  • Upload date:
  • Size: 20.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.23

File hashes

Hashes for mtasklite-0.3.5.tar.gz
Algorithm Hash digest
SHA256 48d23e70a3f4e0956ac1afc3191e557b12f83cbe9e8c7a9b505f05f1b40f093d
MD5 05c67971b44780f55ed02dba1d895792
BLAKE2b-256 237857d27e5dc79051074d691e47efeb48d602a7ea8034915db098cc21f9122e

See more details on using hashes here.

File details

Details for the file mtasklite-0.3.5-py2.py3-none-any.whl.

File metadata

  • Download URL: mtasklite-0.3.5-py2.py3-none-any.whl
  • Upload date:
  • Size: 21.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.23

File hashes

Hashes for mtasklite-0.3.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 0fcc7aae03c8a6969ef21d8fa1cb753a1731a7a1411e58b484dcd6a8b22bc360
MD5 09874430ff5d0b3b95e1ffe998b77267
BLAKE2b-256 86214fefa2872eda4b63349f8673bea564cbe67914239f066208eecde7a15bc7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page