Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

dgtimer

dgtimer — простой и расширяемый Python-таймер с поддержкой измерения времени выполнения кода, декораторов, форматированного вывода, работы с разными логгерами (logging и dglog), а также автоименованием и несколькими таймерами в одном экземпляре.


Особенности

  • Несколько параллельных таймеров по имени (Timer.start(name=...), Timer.stop(name=...))
  • Дружественный и лаконичный формат времени (секунды, минуты, часы, "HH:MM:SS", "mm:ss")
  • Можно просто print, можно логировать через ваш logger (logging или dglog — опционально)
  • Декоратор @exec_time для обёртывания функций/методов — мгновенное логирование времени исполения
  • Необязательный импорт dglog (не установлен — всё равно работает с logging)
  • Чистый код и пример main на практике

Установка

Сам пакет можно просто скопировать в свой проект как файл dgtimer.py.
Из зависимостей нужен только стандартный Python 3.8+ и PyPI-пакет dglog (не обязательно).


Минимальный пример использования

from dgtimer import Timer

t = Timer()
t.start(name="train")
# ... algo ...
t.stop(name="train", format_="hh:mm:ss")  # -> [desc] 00:02:05

# алиасы: 's' (сек), 'm' (мин), 'h' (часы), 'hh:mm:ss', 'mm:ss'
t.start("foo")
t.stop("foo", format_="m")

Декоратор exec_time

from dgtimer import exec_time

@exec_time
def foo():
    pass

@exec_time(format_='hh:mm:ss', print_=True, desc='My process')
def long_process():
    ...

Аргументы и форматы

  • format_ — формат вывода (None/'s': секунды, 'm': минуты, 'h': часы, 'hh:mm:ss'/'mm:ss': форматированная строка)
  • print_ — печатает (True) или пишет в лог (False, через logger)
  • desc — комментарий/отметка перед выводом
  • Для декоратора: @exec_time(format_='m', desc='step1')

Пример–main

if __name__ == '__main__':
    t = Timer(desc="main")
    t.start("test_run")
    # ... вычисления ...
    t.stop("test_run", format_='m')

Подключение dglog

Если установлен пакет dglog, логирование будет идти через него, иначе всегда через logging.


Лицензия

MIT. Используйте в своих сервисах или пайплайнах без ограничений!


Metadata

Release files for dgtimer 0.1.0a1

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

Source distribution (sdist)

Source distribution for dgtimer 0.1.0a1
File Size Uploaded Provenance Actions
dgtimer-0.1.0a1.tar.gz 5.5 kB Without provenance Details for dgtimer-0.1.0a1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for dgtimer 0.1.0a1
File Interpreter ABI Platform Actions
dgtimer-0.1.0a1-py3-none-any.whl Python 3 none any Details for dgtimer-0.1.0a1-py3-none-any.whl

Total release size: 11.6 kB

Release files / dgtimer-0.1.0a1.tar.gz

Download URL dgtimer-0.1.0a1.tar.gz
Size 5.5 kB
Tags Source
SHA-256 checksum
How to use checksums
e46339cf97922138f30b560baf30a5680effffaf76960dfaecee9abef07313d7
BLAKE2b-256 checksum
How to use checksums
7cd4da8fc547426b92632ab6253afbd2d58b3b6359e5a7594c0bde55e2c44e3a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / dgtimer-0.1.0a1-py3-none-any.whl

Download URL dgtimer-0.1.0a1-py3-none-any.whl
Size 6.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
54ef2fc7328f5ebb84ec7b40ddf3963314c3255938fa502a9af867ab19b76a85
BLAKE2b-256 checksum
How to use checksums
9bfc4620f8474999f2260648f63c958af173b45aad0f44f6a2ebf1dd0f574b91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Security for dgtimer 0.1.0a1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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