Skip to main content

A Python package for Multithread processing

Project description

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?

Project details


Release history Release notifications | RSS feed

This version

0.2

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

thread_decorator-0.2.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

thread_decorator-0.2-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

File details

Details for the file thread_decorator-0.2.tar.gz.

File metadata

  • Download URL: thread_decorator-0.2.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for thread_decorator-0.2.tar.gz
Algorithm Hash digest
SHA256 39990f58eb025fabaeadd884411abd52e95a61bb78c23ea1a85b4b1ebbf356d2
MD5 dd98b99fd6c78863661f27fe6710bf60
BLAKE2b-256 71883a7c98dc0b29f3e46d62af7a17738b1f01276ec640c84bbaf66c5852f286

See more details on using hashes here.

File details

Details for the file thread_decorator-0.2-py3-none-any.whl.

File metadata

  • Download URL: thread_decorator-0.2-py3-none-any.whl
  • Upload date:
  • Size: 4.6 kB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for thread_decorator-0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7356416719b69e3bf664da6b49dc9f4b83ffcceee513dc256e24b2da3b456304
MD5 b51827730f477c6fb4fa574fb961cccd
BLAKE2b-256 d361fd6e1bdb7ee461eff249ba8b176c44572f0d7de0e1c0b2968fe10ffdcbd0

See more details on using hashes here.

Supported by

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