Source code for ubelt.util_time

# -*- coding: utf-8 -*-
"""
Timerit now exists in a standalone pip-installable module. The source code
lives in its own github repo here: https://github.com/Erotemic/timerit

Example:
    >>> # xdoctest: +IGNORE_WANT
    >>> import math
    >>> import ubelt as ub
    >>> timer = ub.Timer('Timer demo!', verbose=1)
    >>> with timer:
    >>>     math.factorial(100000)
    tic('Timer demo!')
    ...toc('Timer demo!')=0.1453s

Example:
    >>> # xdoctest: +IGNORE_WANT
    >>> import math
    >>> import ubelt as ub
    >>> for _ in ub.Timerit(num=200, verbose=3):
    >>>     math.factorial(10000)
    Timing for 200 loops
    Timed for: 200 loops, best of 3
        time per loop: best=2.055 ms, mean=2.145 ± 0.083 ms

"""
from __future__ import absolute_import, division, print_function, unicode_literals
import time
# Timerit and Timer now exist in standalone modules
from timerit import Timerit, Timer

__all__ = ['Timer', 'Timerit', 'timestamp']


[docs]def timestamp(method='iso8601'): """ make an iso8601 timestamp suitable for use in filenames Args: method (str, default='iso8601'): type of timestamp Example: >>> stamp = timestamp() >>> print('stamp = {!r}'.format(stamp)) stamp = ...-...-...T... """ if method == 'iso8601': # ISO 8601 # datetime.datetime.utcnow().isoformat() # datetime.datetime.now().isoformat() # utcnow tz_hour = time.timezone // 3600 utc_offset = str(tz_hour) if tz_hour < 0 else '+' + str(tz_hour) stamp = time.strftime('%Y-%m-%dT%H%M%S') + utc_offset return stamp else: raise ValueError('only iso8601 is accepted for now')