Streamlined multi-threaded process acceleration
Project description
warpcore
Streamlined multi-threaded process acceleration
When working with software that needs to be performant, it’s challenging to deal with all the pitfalls of multi-threading while balancing code stability.
Smoothing out the bumps in the road to multi-threading is the primary goal of the project. It’s just that simple.
Installation
OS X, Linux & Windows:
pip install warpcore
Usage Examples
List Operations
- Build a list of arguments that will be passed to a designated function.
jobs = []
jobs.append("Picard")
jobs.append("Janeway")
jobs.append("Kirk")
jobs.append("Sisko")
jobs.append("Archer")
- Create a function that will iterate over the list:
def do_the_thing(name):
print(f"Star Fleet Captain {name}")
- Create a single-threaded version to test:
for name in jobs:
do_the_thing(name)
- Once that works, convert the for-loop into a warpcore call
warpcore.list_engage(jobs, do_the_thing)
Full example:
from warpcore.engineering import WarpCore
def do_the_thing(name):
print(f"Star Fleet Captain {name}")
jobs = []
jobs.append("Picard")
jobs.append("Janeway")
jobs.append("Kirk")
jobs.append("Sisko")
jobs.append("Archer")
# Single-threaded operation (for testing/debug)
# for name in jobs:
# do_the_thing(name)
# Multi-threaded operation (for normal operation)
warpcore = WarpCore()
warpcore.list_engage(jobs, do_the_thing)
Please refer to example0.py and example1.py for basic and more advanced usage examples respectively.
Dictionary Operations
- Build a dict of arguments that will be passed to a designated function.
database = {
"Picard": "USS Enterprise-D",
"Janeway": "USS Voyager",
"Kirk": "USS Enterprise-A",
"Sisko": "Deep Space 9",
"Archer": "Enterprise NX-01"
}
- Create a function that will iterate over the dictionary:
*Note when using dicts, make sure your worker function accepts the key
and value
as arguments. (See below)
def do_the_thing(key, value):
print(f"Star Fleet Captain {key} is/was in command of {value}")
- Create a single-threaded version to test:
for key, value in database.items():
do_the_thing(key, value)
- Once that works, convert the for-loop into a warpcore call
warpcore.dict_engage(database, do_the_thing)
Full example:
from warpcore.engineering import WarpCore
def do_the_thing(key, value):
print(f"Star Fleet Captain {key} is/was in command of {value}")
database = {
"Picard": "USS Enterprise-D",
"Janeway": "USS Voyager",
"Kirk": "USS Enterprise-A",
"Sisko": "Deep Space 9",
"Archer": "Enterprise NX-01"
}
# Single-threaded operation (for testing/debug)
# for key, value in database.items():
# do_the_thing(key, value)
# Multi-threaded operation (for normal operation)
warpcore = WarpCore()
warpcore.dict_engage(jobs, do_the_thing)
Meta
Brandon Blackburn – PGP Encrypted Chat @ Keybase
Distributed under the Apache 2.0 license. See LICENSE
for more information.
TL;DR: For a human-readable & fast explanation of the Apache 2.0 license visit: http://www.tldrlegal.com/l/apache2
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 Distributions
Built Distribution
File details
Details for the file warpcore-1.0.6-py3-none-any.whl
.
File metadata
- Download URL: warpcore-1.0.6-py3-none-any.whl
- Upload date:
- Size: 8.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0.post20200210 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30169d7fc0f9bfdda6613ea2de74988b7cefdca4d1ca0127ef6e11fd8b34b0d1 |
|
MD5 | e3306c64db57275ffb3233e6f1fa2d32 |
|
BLAKE2b-256 | c26d0b23d268c9ff8fae2c59f36685abe2ec8b5365bb5f6f728110756b33e3e2 |