X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/blobdiff_plain/a8ed516cc3b6c4cdd7a346f897aa1a520071a239..refs/heads/micropython-pyi:/src/adafruit_blinka/agnostic/time.py?ds=sidebyside diff --git a/src/adafruit_blinka/agnostic/time.py b/src/adafruit_blinka/agnostic/time.py old mode 100644 new mode 100755 index 078b833..c0eca3c --- a/src/adafruit_blinka/agnostic/time.py +++ b/src/adafruit_blinka/agnostic/time.py @@ -1,4 +1,13 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT +"""Platform agnostic time implementation""" + from adafruit_blinka import agnostic + +# We intentionally are patching into this namespace so skip the wildcard check. +# pylint: disable=unused-wildcard-import,wildcard-import + if agnostic.implementation == "circuitpython": from time import * elif agnostic.implementation == "micropython": @@ -6,22 +15,61 @@ elif agnostic.implementation == "micropython": from utime import sleep from ucollections import namedtuple - _struct_time = namedtuple("struct_time", ("tm_year", "tm_mon", "tm_mday", "tm_hour", "tm_min", "tm_sec", "tm_wday", "tm_yday", "tm_isdst")) - def marshal_time(tm_year, tm_mon, tm_mday, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=-1, tm_yday=-1, tm_isdst=-1): - _struct_time(tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec, tm_wday, tm_yday, tm_isdst) + _struct_time = namedtuple( + "struct_time", + ( + "tm_year", + "tm_mon", + "tm_mday", + "tm_hour", + "tm_min", + "tm_sec", + "tm_wday", + "tm_yday", + "tm_isdst", + ), + ) + + # pylint: disable=too-many-arguments + def _marshal_time( + tm_year, + tm_mon, + tm_mday, + tm_hour=0, + tm_min=0, + tm_sec=0, + tm_wday=-1, + tm_yday=-1, + tm_isdst=-1, + ): + """Construct struct_time with default values.""" + _struct_time( + tm_year, + tm_mon, + tm_mday, + tm_hour, + tm_min, + tm_sec, + tm_wday, + tm_yday, + tm_isdst, + ) + + def struct_time(time_tuple): + """Create a struct_time""" + return _marshal_time(*time_tuple) - def struct_time(t): - return marshal_time(*t) + # pylint: disable=invalid-name + _total_ms = 0 + _prev_ticks_ms = utime.ticks_ms() - total_ms = 0 - prev_ticks_ms = utime.ticks_ms() def monotonic(): - """ - Assumes that monotonic is called more frequently than the wraparound of micropython's utime.ticks_ms() - """ - global prev_ticks_ms, total_ms + """A monotonically increasing time in seconds. No defined start time.""" + # Assumes that monotonic is called more frequently than the wraparound of micropython's + # utime.ticks_ms() + global _prev_ticks_ms, _total_ms # pylint: disable=global-statement ticks_ms = utime.ticks_ms() - total_ms += utime.ticks_diff(ticks_ms, prev_ticks_ms) - prev_ticks_ms = ticks_ms - return total_ms * 0.001 \ No newline at end of file + _total_ms += utime.ticks_diff(ticks_ms, _prev_ticks_ms) + _prev_ticks_ms = ticks_ms + return _total_ms * 0.001