Skip to main content

Stopwatch class for timing portions of python code

Project description

https://img.shields.io/pypi/v/py-stopwatch?color=success Documentation Status Python Version Support GitHub Issues GitHub Followers Twitter Followers

Stopwatch class for timing portions of python code.

Features

  • Tick-based stopwatch

  • Support for Pause/Resume

  • Support for multiple named-ticks

  • Utility functions for time between different ticks

  • No third party requirements.

Usage

from stopwatch import Stopwatch
t = Stopwatch()
t.start()
print("Started ..")
time.sleep(0.24)
print(f"t.tick(): {t.tick():.4f} seconds")
time.sleep(0.48)
print(f"t.tick(): {t.tick():.4f} seconds")
time.sleep(0.16)
print(f"t.tick('Named Tick-1'): {t.tick('Named Tick-1'):.4f} seconds")
t.pause()
print("Paused ..")
time.sleep(0.12)
t.resume()
print("Resumed ..")
print(f"t.last(): {t.last():.4f} seconds")
time.sleep(0.12)
print(f"t.tick(): {t.tick():.4f} seconds")
time.sleep(0.12)
print(f"t.tick('Named Tick-2'): {t.tick('Named Tick-2'):.4f} seconds")
t.stop()
print("Timer stopped.")
print("---")
print(f"Total pause: {t.time_paused:.2f} seconds.")
print(f"Total runtime: {t.time_active:.2f} seconds.")
print(f"Total time: {t.time_total:.2f} seconds.")
tij = t.get_time_elapsed(start_key='Named Tick-1', end_key='Named Tick-2')
print(f"Time between 'Named Tick-1' and 'Named Tick-2': {tij:.4f}")

History

1.0.1 (2025-12-11)

  • Improve CI matrix and drop failing Python 3.7 job.

  • Fix Sphinx configuration and RTD build (language and theme deps).

  • Tidy stopwatch implementation for style (flake8) and clarity.

1.0.0 (2025-12-10)

  • First stable release.

  • Add unit tests, CI configuration, and timing bugfixes.

0.2.2 (2024-11-27)

  • Fix precision setting not taking effect in some cases.

  • Packaging and configuration updates.

0.2.1 (2024-11-27)

  • Fix search behaviour when using string keys (strings being iterable).

0.2.0 (2024-11-27)

  • Add a precision setting for timestamps.

  • Add Stopwatch.get_ticks(...) helper to search ticks.

  • Documentation updates and minor internal cleanups.

0.1.1 (2022-02-10)

  • Fix PyPI upload issue due to history formatting.

0.1.0 (2022-02-10)

  • Internal refactors and documentation improvements.

0.0.3 (2022-01-24)

  • Replace namedtuple with dataclasses for ticks.

  • Use time.perf_counter for timing.

  • Miscellaneous bug fixes and improvements.

0.0.2 (2021-04-12)

  • Minor fixes and documentation updates.

0.0.1 (2021-04-13)

  • First release on PyPI.

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

py_stopwatch-1.0.1.tar.gz (13.7 kB view details)

Uploaded Source

Built Distribution

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

py_stopwatch-1.0.1-py2.py3-none-any.whl (6.9 kB view details)

Uploaded Python 2Python 3

File details

Details for the file py_stopwatch-1.0.1.tar.gz.

File metadata

  • Download URL: py_stopwatch-1.0.1.tar.gz
  • Upload date:
  • Size: 13.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.5

File hashes

Hashes for py_stopwatch-1.0.1.tar.gz
Algorithm Hash digest
SHA256 a44e1a59db0220fbb13eb2e23058d3e43b8fc1204bef115dd5c9c2a541adddfa
MD5 5fe4271755af6dda304edc8363420d85
BLAKE2b-256 618f4e631b96d0f157689f5bd3dc41586798736101ddbb2ab7ac0322c32b1d66

See more details on using hashes here.

File details

Details for the file py_stopwatch-1.0.1-py2.py3-none-any.whl.

File metadata

  • Download URL: py_stopwatch-1.0.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 6.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.5

File hashes

Hashes for py_stopwatch-1.0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e85f18ea23f1ffd99d81af7fe6115579c76d7d1f727f0e666168a910a94021a7
MD5 81b60b4272df752f988170ae5a8dc1e0
BLAKE2b-256 93fb373a6cd333d64da3364afc91b002fdc859ba122c7e06823edce3001fbf79

See more details on using hashes here.

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