Skip to main content

Simple settings manager

Project description

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. Используйте в своих сервисах или пайплайнах без ограничений!


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

dgtimer-0.1.0a0.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

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

dgtimer-0.1.0a0-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

Details for the file dgtimer-0.1.0a0.tar.gz.

File metadata

  • Download URL: dgtimer-0.1.0a0.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for dgtimer-0.1.0a0.tar.gz
Algorithm Hash digest
SHA256 b51b296bdd7cb66af90adfcd59eecf04034a59e652769f0d6d9b961f8ff2e2f8
MD5 f37f34fd0dcff979495f688080bcd684
BLAKE2b-256 666acabbcb69343999d4b859d0b10ad85e3d57eff9c8a175945dff1dea3fc394

See more details on using hashes here.

File details

Details for the file dgtimer-0.1.0a0-py3-none-any.whl.

File metadata

  • Download URL: dgtimer-0.1.0a0-py3-none-any.whl
  • Upload date:
  • Size: 6.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for dgtimer-0.1.0a0-py3-none-any.whl
Algorithm Hash digest
SHA256 d49666c9ec78c76166a6c272cef27cefb7dbfc0daefbece222036272a89473c2
MD5 5b67af6ad71e80b77324fb2144595f82
BLAKE2b-256 86f2b23b0f171354b57eb68be484fb9a4be35818bb5f17c0af932196174be2f0

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