Skip to content
Snippets Groups Projects
Commit ad83ef8d authored by Brian Moe's avatar Brian Moe
Browse files

moved time utils out of template tags lib

parent f33ca4cd
No related branches found
No related tags found
No related merge requests found
......@@ -6,7 +6,7 @@ import os
from gracedb.ligolw.models import CoincEvent
from gracedb.gracedb.templatetags.timeutil import posixToGpsTime
from gracedb.utils import posixToGpsTime
from django.conf import settings
import pytz, time
......
......@@ -6,6 +6,7 @@ from django.utils import dateformat
from django.utils.html import conditional_escape
from django.utils.safestring import mark_safe
from gracedb.utils import posixToGpsTime, gpsToUtc
import pytz
import time
......@@ -114,55 +115,3 @@ def utc(dt, format=FORMAT):
def gpsdate(gpstime, format=FORMAT):
return dateformat.format(gpsToUtc(gpstime), format)
# TAG that generates stuff that changes time display what-nots.
# GPS time conversion
# This is kind of awful in that leapSeconds
# are hard coded and needs to be kept up to date.
# Also, this should be somewhere else.
# Also, there are almost certainly failing edge cases at leap second adjustment times.
import calendar, datetime
gpsEpoch = calendar.timegm((1980, 1, 6, 0, 0, 0, 0, 0, 0))
leapSeconds = map(calendar.timegm, [
(1981, 7, 0, 0, 0, 0, 0, 0, 0),
(1982, 7, 0, 0, 0, 0, 0, 0, 0),
(1983, 7, 0, 0, 0, 0, 0, 0, 0),
(1985, 7, 0, 0, 0, 0, 0, 0, 0),
(1988, 1, 0, 0, 0, 0, 0, 0, 0),
(1990, 1, 0, 0, 0, 0, 0, 0, 0),
(1991, 1, 0, 0, 0, 0, 0, 0, 0),
(1992, 7, 0, 0, 0, 0, 0, 0, 0),
(1993, 7, 0, 0, 0, 0, 0, 0, 0),
(1994, 7, 0, 0, 0, 0, 0, 0, 0),
(1996, 1, 0, 0, 0, 0, 0, 0, 0),
(1997, 7, 0, 0, 0, 0, 0, 0, 0),
(1999, 1, 0, 0, 0, 0, 0, 0, 0),
(2006, 1, 0, 0, 0, 0, 0, 0, 0),
(2009, 1, 0, 0, 0, 0, 0, 0, 0),
])
def gpsToPosixTime(gpsTime):
t = gpsEpoch + gpsTime
for leap in leapSeconds:
if t >= leap:
t = t - 1
return t
def posixToGpsTime(posixTime):
change = 0
for leap in leapSeconds:
if posixTime > leap:
change += 1
return posixTime + change - gpsEpoch
def gpsToUtc(gpsTime):
t = gpsToPosixTime(gpsTime)
return datetime.datetime.fromtimestamp(t, pytz.utc)
# GPS time conversion
# This is kind of awful in that leapSeconds
# are hard coded and needs to be kept up to date.
# Also, this probably is/will be/should be in glue.
# Also, there are almost certainly failing edge cases at leap second adjustment times.
# Oh yea, and I don't think this works exactly right for some periods 2006-2008, say.
import pytz
import datetime
import calendar
gpsEpoch = calendar.timegm((1980, 1, 6, 0, 0, 0, 0, 0, 0))
leapSeconds = map(calendar.timegm, [
(1981, 7, 0, 0, 0, 0, 0, 0, 0),
(1982, 7, 0, 0, 0, 0, 0, 0, 0),
(1983, 7, 0, 0, 0, 0, 0, 0, 0),
(1985, 7, 0, 0, 0, 0, 0, 0, 0),
(1988, 1, 0, 0, 0, 0, 0, 0, 0),
(1990, 1, 0, 0, 0, 0, 0, 0, 0),
(1991, 1, 0, 0, 0, 0, 0, 0, 0),
(1992, 7, 0, 0, 0, 0, 0, 0, 0),
(1993, 7, 0, 0, 0, 0, 0, 0, 0),
(1994, 7, 0, 0, 0, 0, 0, 0, 0),
(1996, 1, 0, 0, 0, 0, 0, 0, 0),
(1997, 7, 0, 0, 0, 0, 0, 0, 0),
(1999, 1, 0, 0, 0, 0, 0, 0, 0),
(2006, 1, 0, 0, 0, 0, 0, 0, 0),
(2009, 1, 0, 0, 0, 0, 0, 0, 0),
])
def gpsToPosixTime(gpsTime):
t = gpsEpoch + gpsTime
for leap in leapSeconds:
if t >= leap:
t = t - 1
return t
def posixToGpsTime(posixTime):
change = 0
for leap in leapSeconds:
if posixTime > leap:
change += 1
return posixTime + change - gpsEpoch
def gpsToUtc(gpsTime):
t = gpsToPosixTime(gpsTime)
return datetime.datetime.fromtimestamp(t, pytz.utc)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment