diff --git a/edosl0util/timecode.py b/edosl0util/timecode.py index d6160fd1ad4e23c836a6a3dad1aba7bff6edf868..26b4aef83428962b66ae2ad002be4413ddd7b83b 100644 --- a/edosl0util/timecode.py +++ b/edosl0util/timecode.py @@ -8,8 +8,6 @@ __copyright__ = "Copyright (C) 2015 University of Wisconsin SSEC. All rights res UNIX_EPOCH = datetime(1970, 1, 1) CDS_EPOCH = datetime(1958, 1, 1) -_grain = Grain() - def unixtime(dt): """ @@ -29,7 +27,7 @@ def timecode_parts_to_iet(days, ms, us, epoch): """ Convert components to a IET based on arbitrary epoch. """ - return int(_grain.utc2tai( + return int(_get_grain().utc2tai( epoch + timedelta(days=float(days), milliseconds=float(ms), microseconds=float(us)), @@ -58,5 +56,19 @@ def dt_to_cds(dt): return (d.days, int(d.seconds * 1e3), d.microseconds) -dt_to_iet = _grain.utc2iet -iet_to_dt = _grain.iet2utc +_grain = None + + +def _get_grain(): + global _grain + if _grain is None: + _grain = Grain() + return _grain + + +def dt_to_iet(*args, **kwargs): + return _get_grain().utc2iet(*args, **kwargs) + + +def iet_to_dt(*args, **kwargs): + return _get_grain().iet2utc(*args, **kwargs)