Skip to main content

Timer Event Package

This package provides two classes for working with events:

1. EventThread: A class for creating and managing events with callback routines.
This class can be used independently of TimerEvent for handling general event-driven scenarios without any time-based requirements.

2. TimerEvent: A class that extends EventThread to create timer-based events.
This class is specifically designed for scenarios where events are triggered after a certain period of time or at specific intervals.
Note: Since this class extends the EventThread class it uses most all methods defined and documented in EvenThread class.

EventThread:

The EventThread class creates an event that can be subscribed to and triggered with a payload. The class uses its own thread to broadcast events to subscribers. The callback function is called when the event is triggered with a payload.

The packet dictionary is passed to the callback.
The packet dictionary includes:

All parameters passed in during instantiation of the EventThread.
Minimum items included: ..
"event" = The event name
"dest" = The subscriber name provided when subscribing
"payload" = The object included in the post
"cookie" = The cookie if included when subscribing, otherwise None

The EventThread class has the following methods::

subscribe(name: str, on_event: callable): Subscribes to the event with a callback function.
unsubscribe(name: str): Unsubscribes from the event.
post(payload, **kwargs): Posts an event with a payload to the subscribers.
pause(): Pauses broadcasting events
unpause(): Unpauses the event to continue broadcasting events
stop(): Stops the event processing thread, clears the subscribers list.
        Note:   This can not be used as pause.  Once the EventThread instance is stopped it can not be restarted.
                A new instance must be created after calling stop to continue eventing, but the subscribers list will be lost.

TimerEvent:

The TimerEvent class creates a timed event that triggers at a specified interval. The class uses a Timer object to initiate the timed event. The TimerEvent class can be subscribed to using the subscribe method, which takes a name and a callback function as arguments. The callback function is executed when the timed event is triggered.

The TimerEvent class has the following methods::

subscribe(name: str, on_event: callable): Subscribes to the timed event with a callback function.
unsubscribe(name: str): Unsubscribes from the timed event.
stop(): Stops the timed event.

Example Usage::

from timer_event import TimerEvent, EventThread
import time

 # Create a TimerEvent that triggers every 5 seconds
te = TimerEvent(interval=5.0)

# Subscribe to the TimerEvent
def te_on_event(packet):
    print("TimerEvent triggered")

te.subscribe(name="test_subscriber", on_event=te_on_event)

# Start the TimerEvent
te.start()

# Create an Event
event = EventThread("test_event")

# Subscribe to the Event
def ev_on_event(payload):
    print(f"Event triggered with payload: {payload}")

event.subscribe(name="test_subscriber", on_event=ev_on_event)

# Post an event with a payload
event.post("test_payload")

# Sleep to allow for timer events
time.sleep(10)

# Stop the TimerEvent and Event
te.stop()
event.stop()

Metadata

Release files for timer-event 0.9.1

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

Source distribution (sdist)

Source distribution for timer-event 0.9.1
File Size Uploaded
timer_event-0.9.1.tar.gz 9.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for timer-event 0.9.1
File Interpreter ABI Platform
timer_event-0.9.1-py3-none-any.whl Python 3 none any Details

Total release size: 19.7 kB

Release files / timer_event-0.9.1.tar.gz

Download URL timer_event-0.9.1.tar.gz
Size 9.8 kB
Tags Source
SHA-256 checksum
How to use checksums
8de4bf43a78c7f35ae3a897566df43ce19c0f49895085f363e8f39404e9d111d
BLAKE2b-256 checksum
How to use checksums
3616c4746ab83746952f6fc2233c8a44fd016f0aab9877c4e2ee6e61dd766f2a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.7

Release files / timer_event-0.9.1-py3-none-any.whl

Download URL timer_event-0.9.1-py3-none-any.whl
Size 10.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e6e4db06431cdde4b2bb4817dcaaaa88180b63d35748255baa2839b14e126669
BLAKE2b-256 checksum
How to use checksums
17de020b2c2cf995fd9e4c29e5b4fc95eb962630f0b7053a903a8824db392e0d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.7

Release history Release notifications | RSS feed

This release

0.9.1 This release

2 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.7.3

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