Skip to main content

Multithreading & processing worker and Sequencer

Project description

BotBoy

Multithreading & processing worker that executes functions and prints the result

Installation

pip install botboy

Usage

Instantiation

from botboy.core import BotBoy

name = 'Adder' # Name of thread/process
task = lambda x, y: x + y # Function to run on separate thread/process
params = [1, 2] # Task arguments
verbose = True # Logging

bot = BotBoy(name=name, task=task, params=params, verbose=verbose)

# You may also instantiate with the setup() method
name = 'Subtracter'
task = lambda x, y: x - y
params = [2, 3]

bot = BotBoy()
bot.setup(name=name, task=task, params=params)

# Print params
print(bot)

# Turn logging on
bot.verbose()

# Turn logging off
bot.silent()

Execute task

result = bot.execute()

# Wait for execution to finish
result = bot.execute(wait=True)

# Execute on separate process
result = bot.execute(is_process=True) # Wait does not work for process

Repeat Task

# Will repeat the assigned task amount of times with an interval inbetween
results = bot.repeat(amt=2, interval=2, wait=True, is_process=False)

Getters

print(bot.name())
print(bot.task())
print(bot.params())
print(bot.result()) # Result will be None unless task was executed

# Or print all params together
print(bot)

Store result in a file or provide a path

# Store result in a file at current directory
bot.save('test.txt')

# Store result at path
import os
bot.save(os.getcwd() + '/test2.txt')

Run multiple tasks with Sequencer

from botboy.core import BotBoy, Sequencer

tasks = [lambda x, y: x + y, lambda x, y: x - y, lambda x, y: x * y]
params = [[1, 2], [3, 4], [5, 6]]

# Create list of BotBoys
bots = Sequencer.pack(tasks=tasks, params=params, verbose=True)

# Instantiate
seq = Sequencer(bots)

# Retrieve results
# Default is false (runs tasks on threads)
# Set to true to run each task on process
results = seq(is_process=False)

Test

Runs the tests on the BotBoy Module

make test-init: Test Initialization
make test-wrapper: Test _wrapper method
make test-client: Test client methods
make test-sequencer: Test Sequencer

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

botboy-3.0.3.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

botboy-3.0.3-py2.py3-none-any.whl (5.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file botboy-3.0.3.tar.gz.

File metadata

  • Download URL: botboy-3.0.3.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.31.0

File hashes

Hashes for botboy-3.0.3.tar.gz
Algorithm Hash digest
SHA256 a82838afed50b88053961f54f6a2535b6efa98f47b283f786c89d52333180f48
MD5 7a9df9b9d4df5d9457f1cac41168d324
BLAKE2b-256 eaf7be3cbf061db3881357f453ffdb130e6e4d8756361ff80301d8e1489e624d

See more details on using hashes here.

File details

Details for the file botboy-3.0.3-py2.py3-none-any.whl.

File metadata

  • Download URL: botboy-3.0.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 5.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.31.0

File hashes

Hashes for botboy-3.0.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 441f34820fb7723ed93d18ed1200e9db441352d1ab410e6229e35ecf7f4f72a1
MD5 b2c683fbfba0fa965526e64042b363b5
BLAKE2b-256 9cd4c08a5c08579e0779a868ff2136f713101b055a7da5e817b2c34818954d40

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