Learn more  » Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

edgify / rook   python

Repository URL to install this package:

Version: 0.1.176 

/ utils.py

import sys
import time


def seconds_to_int_nano_seconds(seconds):
    '''
    Used to convert time.time() from seconds to nanoseconds.
    Note that Python>=3.7 has time.time_ns() that returns exactly the time in nanoseconds. We use this function for
    backwards compatibility.
    '''
    return int((10 ** 9) * seconds)


def milliseconds_to_int_nano_seconds(milliseconds):
    return int((10 ** 6) * milliseconds)


'''
This trick here allows to check the python version only once when the module is loaded,
and call get_most_accurate_time_stamp_nano_seconds() to find what is the time stamp.
'''
if sys.version_info >= (3, 7):
    get_most_accurate_time_stamp_nano_seconds = lambda: time.perf_counter_ns()
elif sys.version_info >= (3, 3):
    get_most_accurate_time_stamp_nano_seconds = lambda: seconds_to_int_nano_seconds(time.perf_counter())
else:
    get_most_accurate_time_stamp_nano_seconds = lambda: seconds_to_int_nano_seconds(time.time())