Parallism made easy (and safe) with futures API
Project description
ezFutures is a Python parallel computation tool that provides the user API similar to that of concurrent futures, with various parallelism backends.
Install
pip install ezFutures
Getting started
First, we need to import the class:
from ezFutures import ezFutures
In order to start working with ezFutures, you must instantiate the class object. The most important parameter to set is the n_procs parameter which defines the number of processes to run in parallel.
ez = ezFutures(n_procs=19)
From there, you can submit jobs in a sequential manner, just as you do with concurrent futures. However, because ezFutures default parallelism backend is not concurrent futures, merely submitting a task will not start the job. You have the option of using concurrent futures process pool as the parallelism backend (we will update documentation in the future to describe this)
def some_task(elem):
return(elem)
for i in range(10):
ez.submit(some_task, i)
You can start the jobs by invoking results method, just as you would with the concurrent futures API.
ez.results()
# Progress: |██████████████████████████████████████████████████| 100.0%
# [1, 2, 7, 0, 8, 3, 5, 4, 9, 6]
The 10 tasks submitted are done in parallel asynchronously, which is why the returned results order is jumbled.
In case there are errors, you can retrieve the stacktrace by invoking errors method.
ez.errors()
The default parallelism backend will try the tasks 3 times (configurable using n_retries parameter when initializing ezFutures) before marking the task as a “failed” task.
Project details
Release history Release notifications | RSS feed
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 ezFutures-0.0b21.tar.gz
.
File metadata
- Download URL: ezFutures-0.0b21.tar.gz
- Upload date:
- Size: 6.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b2af00c507264ff356516edde727798e7457bd60c224b667ef78ed7b997147f |
|
MD5 | 049e25d59e2355a71040c6eac71e9601 |
|
BLAKE2b-256 | ae74f383439d35b5aa1995593d363ff5a6a4327f8a39746a644f29849788674c |
File details
Details for the file ezFutures-0.0b21-py3-none-any.whl
.
File metadata
- Download URL: ezFutures-0.0b21-py3-none-any.whl
- Upload date:
- Size: 8.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4eb7b817b2150167a6d83fed9e65a752604bec72142b97540819dcac972cdf3d |
|
MD5 | 2bdb3c5e3fe40e9a25c6f34be319e37e |
|
BLAKE2b-256 | 666012481fdd8a3388873bc91f6e63bafb8cba08cf6c073eda1e56b9a79f93a5 |