From 2f9b995bc43a62419cca370be4e7d19d265c4f7b Mon Sep 17 00:00:00 2001
From: madsmpedersen <m@madsp.dk>
Date: Tue, 2 Feb 2016 13:09:01 +0100
Subject: [PATCH] support datetime_lists in to_unix

---
 wetb/gtsdf/tests/test_unix_time.py | 23 +++++++++++++++++------
 wetb/gtsdf/unix_time.py            | 11 +++++++----
 2 files changed, 24 insertions(+), 10 deletions(-)

diff --git a/wetb/gtsdf/tests/test_unix_time.py b/wetb/gtsdf/tests/test_unix_time.py
index 3a5987ba..ea65ad80 100644
--- a/wetb/gtsdf/tests/test_unix_time.py
+++ b/wetb/gtsdf/tests/test_unix_time.py
@@ -7,17 +7,28 @@ import unittest
 import numpy as np
 import datetime
 from wetb.utils.timing import print_time
-from wetb.gtsdf.unix_time import to_unix
+from wetb.gtsdf.unix_time import to_unix, from_unix
 
 class TestUnixTime(unittest.TestCase):
 
-    #@print_time
-    def r(self, dt):
-        return [to_unix(dt) for dt in dt]
 
     def test_to_unix(self):
-        dt = [datetime.datetime(2000, 1, 1, 12, s % 60) for s in np.arange(1000000)]
-        self.r(dt)
+        self.assertEqual(to_unix(datetime.datetime(2016, 2, 2, 13, 6, 25)), 1454418385)
+        self.assertNotEqual(to_unix(datetime.datetime(2016, 2, 2, 13, 6, 26)), 1454418385)
+
+    def test_from_unix(self):
+        self.assertEqual(from_unix(1454418385), datetime.datetime(2016, 2, 2, 13, 6, 25))
+        self.assertNotEqual(from_unix(1454418385), datetime.datetime(2016, 2, 2, 13, 6, 26))
+
+
+
+#    @print_time
+#    def r(self, dt):
+#        return [to_unix(dt) for dt in dt]
+
+#    def test_to_unix_time(self):
+#        dt = [datetime.datetime(2000, 1, 1, 12, s % 60) for s in np.arange(1000000)]
+#        self.r(dt)
 
 if __name__ == "__main__":
     #import sys;sys.argv = ['', 'Test.testName']
diff --git a/wetb/gtsdf/unix_time.py b/wetb/gtsdf/unix_time.py
index e01d816e..f8f10368 100644
--- a/wetb/gtsdf/unix_time.py
+++ b/wetb/gtsdf/unix_time.py
@@ -2,11 +2,14 @@ from datetime import datetime, date
 import numpy as np
 timestamp0 = datetime.utcfromtimestamp(0)
 
-def to_unix(dateTime):
-    #return dateTime.timestamp() + 3600
-    return (dateTime - timestamp0).total_seconds()
-    #return (dateTime - datetime.utcfromtimestamp(0)).total_seconds()
 
+def to_unix(dateTime):
+    try:
+        return (dateTime - timestamp0).total_seconds()
+    except:
+        if hasattr(dateTime, "__len__"):
+            return [(dt - timestamp0).total_seconds() for dt in dateTime]
+        raise
 
 def from_unix_old(sec):
     if np.isnan(sec):
-- 
GitLab