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.0a1.tar.gz (5.5 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.0a1-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for dgtimer-0.1.0a1.tar.gz
Algorithm Hash digest
SHA256 e46339cf97922138f30b560baf30a5680effffaf76960dfaecee9abef07313d7
MD5 f604f7117ea914c0cf83d68ff855887a
BLAKE2b-256 7cd4da8fc547426b92632ab6253afbd2d58b3b6359e5a7594c0bde55e2c44e3a

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for dgtimer-0.1.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 54ef2fc7328f5ebb84ec7b40ddf3963314c3255938fa502a9af867ab19b76a85
MD5 4f722d8906d37cb43526f372081669bd
BLAKE2b-256 9bfc4620f8474999f2260648f63c958af173b45aad0f44f6a2ebf1dd0f574b91

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