Skip to main content

Thread Decorator

Simple parallel processing interface for python

Why?

Python's built in parallel processing and threading library is pretty simple to implement but sometimes you just want to chuck data at a function and make it run faster

Requirements

Python 3+

Installation

$ pip install thread_decorator

Quickstart

Use the threaded decorator to turn a method into a threaded method.

@threaded()
def my_func():
    '''Your Code'''

Alternatively, use run_threaded function

run_threaded(my_func)

Both the threaded decorator and run_threaded method will return an instance of ResultThread. This allow you to optionally wait for the function to finish executing and get the return value. To get the return value, use .await_output()

result = threaded_print()
result.await_output()  # this will return 1

If you have a function that needs to execute on a large list of data, use run_chunked

def update_items(items):
    ...

items = [...]
run_chunked(update_items, items)

.await_output() also work with run_chunked but will return a list of return values instead

Run the tests

Run tests with

python tests.py

Todo

  • threaded function decorator
  • run something in a separate thread function
  • split data into chunk and run in separate threads
  • add way for errors to fail loudly
  • auto spawn to run fx on a set of data
  • explore multi processing?

Metadata

Release files for thread-decorator 0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for thread-decorator 0.2
File Size Uploaded
thread_decorator-0.2.tar.gz 4.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for thread-decorator 0.2
File Interpreter ABI Platform
thread_decorator-0.2-py3-none-any.whl Python 3 none any Details

Total release size: 8.7 kB

Release files / thread_decorator-0.2.tar.gz

Download URL thread_decorator-0.2.tar.gz
Size 4.2 kB
Tags Source
SHA-256 checksum
How to use checksums
39990f58eb025fabaeadd884411abd52e95a61bb78c23ea1a85b4b1ebbf356d2
BLAKE2b-256 checksum
How to use checksums
71883a7c98dc0b29f3e46d62af7a17738b1f01276ec640c84bbaf66c5852f286
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.2

Release files / thread_decorator-0.2-py3-none-any.whl

Download URL thread_decorator-0.2-py3-none-any.whl
Size 4.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7356416719b69e3bf664da6b49dc9f4b83ffcceee513dc256e24b2da3b456304
BLAKE2b-256 checksum
How to use checksums
d361fd6e1bdb7ee461eff249ba8b176c44572f0d7de0e1c0b2968fe10ffdcbd0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.2

Release history Release notifications | RSS feed

This release

0.2 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page