The comment in _get_time_ns() caused me to do a double-take since the
function checks for Python > 3.3 and mentions Python 3.8 for unrelated
reasons.
I am clarifying the comments a bit to explain the reason for the two
versions being mentionned.
Also, the version check is changed to match 3.3 (although we don't
support that version) since that is when time.monotonic was introduced.
A type annotation is also added to clarify the function's intended usage
(i.e., it will not return fractional nanoseconds).
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Change-Id: I9f4fd7cf1d0673e80f6bce9e3cf86b9697fe3f91
- assert sys.version_info > (3, 3, 0)
- # time.monotonic_ns is only available for python >= 3.8
- return time.monotonic() * 1000000000
+ # type: () -> int
+
+ # time.monotonic is only available since Python 3.3. We don't support
+ # those older versions so we can simply assert here.
+ assert sys.version_info >= (3, 3, 0)
+
+ # time.monotonic_ns is only available for python >= 3.8,
+ # so the value is multiplied by 10^9 to maintain compatibility with
+ # older versions of the interpreter.
+ return int(time.monotonic() * 1000000000)
class InvalidTestPlan(RuntimeError):
class InvalidTestPlan(RuntimeError):
if os.getenv("TAP_AUTOTIME", "1") == "" or os.getenv("TAP_AUTOTIME", "1") == "0" or sys.version_info < (3,3,0):
_time_tests = False
if os.getenv("TAP_AUTOTIME", "1") == "" or os.getenv("TAP_AUTOTIME", "1") == "0" or sys.version_info < (3,3,0):
_time_tests = False
- assert sys.version_info > (3, 3, 0)
- # time.monotonic_ns is only available for python >= 3.8
- return time.monotonic() * 1000000000
+ # type: () -> int
+
+ # time.monotonic is only available since Python 3.3. We don't support
+ # those older versions so we can simply assert here.
+ assert sys.version_info >= (3, 3, 0)
+
+ # time.monotonic_ns is only available for python >= 3.8,
+ # so the value is multiplied by 10^9 to maintain compatibility with
+ # older versions of the interpreter.
+ return int(time.monotonic() * 1000000000)
_last_time = _get_time_ns()
_last_time = _get_time_ns()