From 2aa698f3aee879ce4f9244e830579cc6b6c2faa8 Mon Sep 17 00:00:00 2001 From: Bruce Flynn <brucef@ssec.wisc.edu> Date: Thu, 3 Jan 2019 13:45:22 -0600 Subject: [PATCH] lazy load grain --- edosl0util/timecode.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/edosl0util/timecode.py b/edosl0util/timecode.py index d6160fd..26b4aef 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) -- GitLab