Simple polling-style loop running in separate thread
Project description
Quick Looper
A simple polling style loop, run in a separate thread.
Installation
Install from PyPI:
pip install quicklooper
How to use
Make a class that inherits from the Looper class, and override the main method with code to be run each loop. The loop period may be set by assigning a float value to the class variable _interval or by passing the interval keyword arg to the Looper.__init__ method.
Override the on_start_up and on_shut_down methods to add any code to be run before the first loop, and after the final loop when stop is called.
Example of a basic app which polls the /printfiles directory for new files to print:
from quicklooper import Looper
class PrintMonitor(Looper):
_interval = 10.0
def __init__(self, directory: str):
self.directory: str = directory
self._printed_files: Set[str] = set()
def on_start_up():
self._printed_files = {file for file in os.listdir(self.directory)}
def main():
for file in os.listdir(self.directory):
send_to_printer(file) # implementation not shown
self._printed_files.add(file)
if __name__ == '__main__':
print_monitor = PrintMonitor('/printfiles')
print_monitor.start()
When print_montitor.start() is called, the app runs on_start_up method, and then calls main every
ten seconds to scan for new files to print.
Call stop to exit the loop immediately.
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 Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file quicklooper-1.0.0.tar.gz.
File metadata
- Download URL: quicklooper-1.0.0.tar.gz
- Upload date:
- Size: 3.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.26.0 requests-toolbelt/0.9.1 urllib3/1.26.7 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d8259bff7af8603d7b47343a3f204650bf9c60e67420a8f371013cb9f5aa4096
|
|
| MD5 |
0f313760581adeb6be2bc85aac7bec0d
|
|
| BLAKE2b-256 |
87f5c70966faba51cf98aa89b0a48bb34c58e90498997dba29d14d9dcc2b8fbc
|
File details
Details for the file quicklooper-1.0.0-py3-none-any.whl.
File metadata
- Download URL: quicklooper-1.0.0-py3-none-any.whl
- Upload date:
- Size: 4.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.26.0 requests-toolbelt/0.9.1 urllib3/1.26.7 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2e71faddaffa09b66e78402b382b8193de7c8c3823335da407a0c5eaaa46c17
|
|
| MD5 |
79870149e108b5641d6c64c752432bdf
|
|
| BLAKE2b-256 |
2d62239fce41b06534bfdfc95aa4144fdcb16e92af5865ef7e6d01902216b04c
|