Skip to main content

No project description provided

Project description

Computer Vision Design Patterns

Copier uv Ruff

GitHub Release Coverage Status

Tecnology stack

  • uv for python and project manager
  • pre-commit with ruff to mantain code consistency and pre-commit checks
  • GitHub Actions to create release and publish package (also on a private registry)

Installation

Note: You need uv (and uv only) installed on your machine.

To install the package:

uv sync

Usage

Events

TimeEvent

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

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

Key Differences

  1. TimeEvent:

    • Activates immediately upon trigger and can be triggered multiple times
    • Automatically deactivates after the duration has elapsed
    • Can be reset by triggering again
  2. CountdownEvent:

    • Starts inactive
    • Can be triggered multiple times
    • Activates only after countdown completes
    • Stays active until manually reset

Examples

Check the dev folder for comprehensive examples of both event types.

Counters

ManualCounter

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)

Examples

Check the dev/ folder for comprehensive examples of counter usage.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file computer_vision_design_patterns-2.0.11-py3-none-any.whl.

File metadata

File hashes

Hashes for computer_vision_design_patterns-2.0.11-py3-none-any.whl
Algorithm Hash digest
SHA256 9467b028501ebd4e9edb1769dfa4bf374e1c9d81b724d7c27b2f11b7cfbd8d0d
MD5 e2e532f474f93eaf81996cec48d75c98
BLAKE2b-256 92f4baea278839d71cf126ab2005c03727a1d352168a419564d5ee61be8f1f36

See more details on using hashes here.

Provenance

The following attestation bundles were made for computer_vision_design_patterns-2.0.11-py3-none-any.whl:

Publisher: release.yml on lanzani/computer-vision-design-patterns

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page