Skip to content
Snippets Groups Projects
Commit 1c6d4463 authored by Yoann Schneider's avatar Yoann Schneider :tennis: Committed by Bastien Abadie
Browse files

Blast timer

parent 4f008639
No related branches found
No related tags found
1 merge request!326Blast timer
Pipeline #80210 passed
# -*- coding: utf-8 -*-
"""
General utility functions and classes.
"""
import datetime
from timeit import default_timer
class Timer(object):
"""
A context manager to help measure execution times.
Example
---
```
with Timer() as t:
# do something interesting
print(t.delta) # X days, X:XX:XX
```
"""
def __init__(self):
self.timer = default_timer
def __enter__(self):
self.start = self.timer()
return self
def __exit__(self, *args):
end = self.timer()
self.elapsed = end - self.start
self.delta = datetime.timedelta(seconds=self.elapsed)
# Generic Utilities
::: arkindex_worker.utils
......@@ -86,7 +86,6 @@ nav:
- Transcription: ref/api/transcription.md
- WorkerVersion: ref/api/worker_version.md
- Models: ref/models.md
- Generic Utilities: ref/utils.md
- Git & Gitlab support: ref/git.md
- Image utilities: ref/image.md
- Reporting: ref/reporting.md
......
# -*- coding: utf-8 -*-
from datetime import timedelta
from time import sleep
from arkindex_worker.utils import Timer
def test_timer_type():
with Timer() as timer:
pass
assert isinstance(timer.delta, timedelta)
def test_timer():
# Assert the second timer has recorded a longer period
with Timer() as timer:
pass
with Timer() as timer2:
sleep(1 / 100)
assert timer.delta < timer2.delta
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment