Exemple #1
0
 def __getitem__(self, key):  # noqa: F811
     if isinstance(key, slice):
         fields = self.fields[key]
         raw_values = self.data[key]
         return tuple(tsdb.cast(field.datatype, raw)
                      for field, raw in zip(fields, raw_values))
     else:
         if isinstance(key, str):
             index = self._field_index[key]
         else:
             index = key
         field = self.fields[index]
         raw_value = self.data[index]
         return tsdb.cast(field.datatype, raw_value)
Exemple #2
0
def test_cast():
    assert tsdb.cast(':integer', None) is None
    assert tsdb.cast(':float', None) is None
    assert tsdb.cast(':string', None) is None
    assert tsdb.cast(':date', None) is None
    assert tsdb.cast(':integer', '15') == 15
    assert tsdb.cast(':integer', '-1') == -1
    assert tsdb.cast(':integer', '') is None
    assert tsdb.cast(':float', '2.05e-3') == 0.00205
    assert tsdb.cast(':float', '') is None
    assert tsdb.cast(':string', 'Abrams slept.') == 'Abrams slept.'
    assert tsdb.cast(':string', '') is None
    assert tsdb.cast(':date', '10-6-2002') == datetime(2002, 6, 10, 0, 0)
    assert tsdb.cast(':date', '8-sep-1999') == datetime(1999, 9, 8, 0, 0)
    assert tsdb.cast(':date', 'apr-95') == datetime(1995, 4, 1, 0, 0)
    assert (tsdb.cast(':date', '01-dec-02 (15:31:01)')
            == datetime(2002, 12, 1, 15, 31, 1))
    assert (tsdb.cast(':date', '2008-10-12 10:51')
            == datetime(2008, 10, 12, 10, 51))
    assert tsdb.cast(':date', '') is None
Exemple #3
0
 def __iter__(self) -> Iterator[tsdb.Value]:
     datatypes = tuple(field.datatype for field in self.fields)
     for datatype, raw_value in zip(datatypes, self.data):
         yield tsdb.cast(datatype, raw_value)