Skip to main content

Wrapper for threading.Timer to allow resetting

Project description

resettabletimer

CI Release

Wrapper for threading.Timer to provide a resettable Timer implementation. Also provides fake timer for testing.

Usage

ResettableTimer

from resettabletimer import ResettableTimer

delay = 5 # seconds
function = print

# Create resettable timer
t = ResettableTimer(delay, function, ["Hello"], {"end":" timer!\n"})

# Starting and canceling work similarly than with threading.Timer
t.start()

# Wait 1-5 seconds

# Reset the timer
t.reset()

# Hello should be printed after five seconds

FakeTimer

from resettabletimer import FakeTimer

t = FakeTimer(2, print, ["Hello"], {"end":" timer!\n"})

# Starting and canceling work similarly than with threading.Timer
t.start()

# Wait >2 seconds
# Nothing happens

# Time passage is controlled with pass_time
t.pass_time(2)

# Hello should be printed

Testing

Check and automatically fix formatting with:

pycodestyle resettabletimer
autopep8 -aaar --in-place resettabletimer

Run static analysis with:

pylint -E --enable=invalid-name,unused-import,useless-object-inheritance resettabletimer

Run unit tests:

# Run unit tests
python3 -m unittest discover -s tst/

# Run unit tests with coverage analysis
coverage run \
    --branch \
    --source resettabletimer/ \
    -m unittest discover -s tst/
coverage report -m

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

resettabletimer-1.0.0.tar.gz (3.0 kB view details)

Uploaded Source

Built Distribution

resettabletimer-1.0.0-py3-none-any.whl (4.0 kB view details)

Uploaded Python 3

File details

Details for the file resettabletimer-1.0.0.tar.gz.

File metadata

  • Download URL: resettabletimer-1.0.0.tar.gz
  • Upload date:
  • Size: 3.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for resettabletimer-1.0.0.tar.gz
Algorithm Hash digest
SHA256 a2ca68f40b8743f825118fec9a5a769a78790ce2351bacf8f79e6c3eb9ca7a22
MD5 541ee88be619e91959b2c08a9da6aec3
BLAKE2b-256 875f7c7dc782c934d1a6c8af64b2b9a37541b995da02ec238f06a9b088df41e8

See more details on using hashes here.

File details

Details for the file resettabletimer-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: resettabletimer-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 4.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for resettabletimer-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 37409ccb6899dc997d96e8692741af091880e172ac62724cf289e406d6d622d1
MD5 7137cc1cb678e7283cb251678e04c64a
BLAKE2b-256 3cb2226feccd7832500924a1d378840c59d50d5b03bbe08869176e0158662750

See more details on using hashes here.

Supported by

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