diff --git a/wetb/gtsdf/__init__.py b/wetb/gtsdf/__init__.py index 7339aa3425109db20313635013bf75b0e14db84c..8e583291a9a11dd40f5bbf0fc36235605ad62689 100644 --- a/wetb/gtsdf/__init__.py +++ b/wetb/gtsdf/__init__.py @@ -48,8 +48,18 @@ class Dataset(object): if id == 1: return self.time else: - return self.data[:, id - 2] - + return self.data[:, id - 1] + + def __getattribute__(self, name): + try: + return object.__getattribute__(self, name) + + except Exception as e: + try: + return self(name) + except: + raise e + __all__ = sorted([m for m in set(dir()) - set(d)]) diff --git a/wetb/gtsdf/tests/test_gtsdf.py b/wetb/gtsdf/tests/test_gtsdf.py index 004eed321612f21ae8dd045db9e13f87d7a7fb99..116b27f9e4030c2d9fe96737cb8480ccefe16f27 100644 --- a/wetb/gtsdf/tests/test_gtsdf.py +++ b/wetb/gtsdf/tests/test_gtsdf.py @@ -18,10 +18,10 @@ from wetb import gtsdf import unittest import os -import shutil tmp_path = os.path.dirname(__file__) + "/tmp/" -tfp = os.path.dirname(__file__) + "/test_files/" +tfp = os.path.dirname(os.path.abspath(__file__)) + "/test_files/" + class Test_gsdf(unittest.TestCase): def setUp(self): unittest.TestCase.setUp(self) @@ -230,11 +230,32 @@ class Test_gsdf(unittest.TestCase): df = gtsdf.load_pandas(fn) def test_loadtesthdf5(self): - time, data, info = gtsdf.load(tfp + 'test.hdf5') self.assertEqual(time[1], 0.05) self.assertEqual(data[1, 1], 11.986652374267578) self.assertEqual(info['attribute_names'][1], "WSP gl. coo.,Vy") + + def test_loadhdf5File(self): + f = h5py.File(tfp + 'test.hdf5') + time, data, info = gtsdf.load(f) + + self.assertEqual(time[1], 0.05) + self.assertEqual(data[1, 1], 11.986652374267578) + self.assertEqual(info['attribute_names'][1], "WSP gl. coo.,Vy") + + + def test_gtsdf_dataset(self): + ds = gtsdf.Dataset(tfp+'test.hdf5') + self.assertEqual(ds('Time')[1], 0.05) + self.assertEqual(ds.Time[1], 0.05) + self.assertRaisesRegex(AttributeError, "'Dataset' object has no attribute 'Time1'", lambda : ds.Time1) + self.assertEqual(ds(2)[1], 11.986652374267578) + n = ds.info['attribute_names'][2] + self.assertEqual(n, "WSP gl. coo.,Vy") + self.assertEqual(ds(n)[1], 11.986652374267578) + + + diff --git a/wetb/gtsdf/tests/test_unix_time.py b/wetb/gtsdf/tests/test_unix_time.py index 434b7c3d87446840831aadf273943f2476604b07..35e053be226483a49966b3f6aefce5e81fa8c6f2 100644 --- a/wetb/gtsdf/tests/test_unix_time.py +++ b/wetb/gtsdf/tests/test_unix_time.py @@ -12,7 +12,6 @@ standard_library.install_aliases() import unittest import numpy as np import datetime -from wetb.utils.timing import print_time from wetb.gtsdf.unix_time import to_unix, from_unix class TestUnixTime(unittest.TestCase): @@ -20,22 +19,24 @@ class TestUnixTime(unittest.TestCase): def test_to_unix(self): self.assertEqual(to_unix(datetime.datetime(2016, 2, 2, 13, 6, 25)), 1454418385) + self.assertEqual(to_unix([datetime.datetime(2016, 2, 2, 13, 6, 25),datetime.datetime(2016, 2, 2, 13, 6, 26)]), [1454418385,1454418386]) self.assertNotEqual(to_unix(datetime.datetime(2016, 2, 2, 13, 6, 26)), 1454418385) + self.assertRaises(Exception, to_unix,1) + + + + 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)) + + self.assertEqual(from_unix(np.nan), datetime.datetime(1970,1,1,0,0)) + self.assertEqual(from_unix([1454418385,1454418386]), [datetime.datetime(2016, 2, 2, 13, 6, 25),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'] unittest.main() diff --git a/wetb/gtsdf/unix_time.py b/wetb/gtsdf/unix_time.py index dfd4bc6ebb2beadd4720cecf292ab84d199855e3..c5ac88c06e9f8978e8415574f5c74f80bff9ccae 100644 --- a/wetb/gtsdf/unix_time.py +++ b/wetb/gtsdf/unix_time.py @@ -18,10 +18,10 @@ def to_unix(dateTime): return [(dt - timestamp0).total_seconds() for dt in dateTime] raise -def from_unix_old(sec): - if np.isnan(sec): - return datetime.utcfromtimestamp(0) - return datetime.utcfromtimestamp(sec) +# def from_unix_old(sec): +# if np.isnan(sec): +# return datetime.utcfromtimestamp(0) +# return datetime.utcfromtimestamp(sec) day_dict = {}