1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- the json module was added with python2.6, so a regular python 2.5
- machine will lack this module and won't probably have the simplejson
- module imported by the leapsecond.py script.
- Since the only function used is the isotime function, which is
- self-contained and quite trivial, only copy this function into the
- leapsecond script to avoid the import of the gps.misc module, which
- needs simplejson.
- Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
- ---
- leapsecond.py | 27 ++++++++++++++++++++++++---
- 1 file changed, 24 insertions(+), 3 deletions(-)
- diff --git a/leapsecond.py b/leapsecond.py
- index 2059f6c..cdacdb4 100755
- --- a/leapsecond.py
- +++ b/leapsecond.py
- @@ -24,7 +24,6 @@
- # BSD terms apply: see the file COPYING in the distribution root for details.
- #
- import os, urllib, re, random, time, calendar, math, sys
- -import gps.misc
-
- __locations = [
- (
- @@ -48,6 +47,28 @@ __locations = [
- # between times it might change, in seconds since Unix epoch GMT.
- __cachepath = "/var/run/leapsecond"
-
- +def isotime(s):
- + "Convert timestamps in ISO8661 format to and from Unix time."
- + if type(s) == type(1):
- + return time.strftime("%Y-%m-%dT%H:%M:%S", time.gmtime(s))
- + elif type(s) == type(1.0):
- + date = int(s)
- + msec = s - date
- + date = time.strftime("%Y-%m-%dT%H:%M:%S", time.gmtime(s))
- + return date + "." + repr(msec)[3:]
- + elif type(s) == type("") or type(s) == type(u""):
- + if s[-1] == "Z":
- + s = s[:-1]
- + if "." in s:
- + (date, msec) = s.split(".")
- + else:
- + date = s
- + msec = "0"
- + # Note: no leap-second correction!
- + return calendar.timegm(time.strptime(date, "%Y-%m-%dT%H:%M:%S")) + float("0." + msec)
- + else:
- + raise TypeError
- +
- def retrieve():
- "Retrieve current leap-second from Web sources."
- random.shuffle(__locations) # To spread the load
- @@ -261,10 +282,10 @@ if __name__ == '__main__':
- print unix_to_rfc822(float(val))
- raise SystemExit, 0
- elif (switch == '-I'): # Compute Unix time from ISO8601 date
- - print gps.misc.isotime(val)
- + print isotime(val)
- raise SystemExit, 0
- elif (switch == '-O'): # Compute ISO8601 date from Unix time
- - print gps.misc.isotime(float(val))
- + print isotime(float(val))
- raise SystemExit, 0
-
- print "Current leap second:", retrieve()
- --
- 1.7.9.5
|