To install the package, you can use either pip:
pip install computer-vision-design-patterns
or poetry:
poetry add computer-vision-design-patterns
You can also install the package from the source code by cloning the repository and running:
poetry install
TimeEvent activates immediately when triggered and automatically deactivates after a specified duration.
from computer_vision_design_patterns.event import TimeEvent
import time
# Create an event that stays active for 2 seconds
event = TimeEvent(2)
# Trigger the event
event.trigger()
print(event.is_active()) # True
# After 2 seconds
time.sleep(2)
print(event.is_active()) # False
# Retriggering resets the timer
event.trigger()
print(event.is_active()) # True again
CountdownEvent starts inactive, counts down for a specified duration, and then activates.
from computer_vision_design_patterns.event import CountdownEvent
import time
# Create a countdown event for 3 seconds
event = CountdownEvent(3)
# Start the countdown
event.trigger()
print(event.is_active()) # False (still counting down)
# After 3 seconds
time.sleep(3)
print(event.is_active()) # True (countdown completed)
# Reset the event
event.reset()
print(event.is_active()) # False
-
TimeEvent:
- Activates immediately upon trigger and can be triggered multiple times
- Automatically deactivates after the duration has elapsed
- Can be reset by triggering again
-
CountdownEvent:
- Starts inactive
- Can be triggered multiple times
- Activates only after countdown completes
- Stays active until manually reset
Check the dev
folder for comprehensive examples of both event types.
ManualCounter is a simple counter that activates when it reaches a specified threshold value. It requires manual updates and can be reset to start counting again.
from computer_vision_design_patterns.counter import ManualCounter
import time
# Create a counter that activates after 3 counts
counter = ManualCounter(3)
# Update the counter
counter.update()
print(counter.is_active()) # False (count = 1)
counter.update()
print(counter.is_active()) # False (count = 2)
counter.update()
print(counter.is_active()) # True (count = 3)
# Reset the counter
counter.reset()
print(counter.is_active()) # False (count = 0)
Check the dev/
folder for comprehensive examples of counter usage.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.