A Command Queue for Python
Project description
A Command Queue for Python
Run commands (which can be regular functions) in a FIFO queue. Can be run in a background thread.
Usage examples
Simple filling and running of the queue
from command_queue import CommandQueue
from command_queue.commands import FunctionCommand
import functools
example_queue = CommandQueue()
# Add example commands
for i in range(100):
example_queue.add_command(
FunctionCommand(functools.partial(print, f"Running loop iteration {i}"))
)
# Attempt to run command queue at 60 commands per second
# Stop running once queue empties
example_queue.spin(60, until_empty=True)
Example of ParallelCommandGroups
from command_queue import CommandQueue
from command_queue.commands import FunctionCommand, ParallelCommandGroup
import functools
import time
def do_something():
print(f"Something happended on {time.time()}")
time.sleep(0.05)
def do_something_2():
print(f"Something_2 happended on {time.time()}")
time.sleep(0.05)
example_queue = CommandQueue()
# Add example non-parallel commands
# These commands will run sequentially
for i in range(2):
example_queue.add_command(FunctionCommand(functools.partial(do_something)))
# These commands will run at the same time using threads
# Add example parallel command
# These commands will run at the same time
example_queue.add_command(
ParallelCommandGroup(
FunctionCommand(functools.partial(do_something_2)),
FunctionCommand(functools.partial(do_something_2)),
FunctionCommand(functools.partial(do_something_2)),
FunctionCommand(functools.partial(do_something_2)),
FunctionCommand(functools.partial(do_something_2)),
FunctionCommand(functools.partial(do_something_2)),
)
)
# Attempt to run command queue at 10 commands per second
# Stop running once queue empties
example_queue.spin(10, until_empty=True)
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
command_queue-0.2.0.tar.gz
(16.5 kB
view details)
Built Distribution
File details
Details for the file command_queue-0.2.0.tar.gz
.
File metadata
- Download URL: command_queue-0.2.0.tar.gz
- Upload date:
- Size: 16.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a14c4466e72f1f58b27d40c80fd177432565ae7eb0913fc2d2c30ac2b145f6a |
|
MD5 | b34afa0c96ae6f299d7fcd36db345cb6 |
|
BLAKE2b-256 | 46d326ab06e02c9746983863abbd9ee624d0b839d706c12b8ed55dd3e56ea242 |
File details
Details for the file command_queue-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: command_queue-0.2.0-py3-none-any.whl
- Upload date:
- Size: 15.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb7e3ab177a0701dceca454f1a9f81d0fae2c8c3f7eb1170f4fd5f7ee68fea73 |
|
MD5 | f762da880deca78c961b1ac8f6194b40 |
|
BLAKE2b-256 | 51b9d45693d46723cb6d0e0bfdc75b0fb4cc75de69d36e45eecf692d0b4f7e55 |