Beispiel #1
0
 def load(self, kind, key, start, finish, limit=100):
     t0    = funcs.datetime_fromtimestamp(funcs.timetuple_timestamp(start))
     t1    = funcs.datetime_fromtimestamp(funcs.timetuple_timestamp(finish))
     diff  = (t1.month + 12 * (t1.year - t0.year)) - t0.month
     if (t0 > t1):
         raise(ValueError("start > finish"))
     if (diff > 1):
         raise(ValueError("range too wide"))
     k0    = struct.pack(">i", marshall.serialize_key(*start, epoch=marshall.DEFAULT_EPOCH))
     k1    = struct.pack(">i", marshall.serialize_key(*finish, epoch=marshall.DEFAULT_EPOCH))
     f     = None
     delay = defer.Deferred()
     if (kind == event.Event.kind()):
         cf1 = CF_EVENTS % (start[1], start[0])
         cf2 = CF_EVENTS % (finish[1], finish[0])
         f   = unserialize_event
     else:
         cf1 = CF_DATA % (start[1], start[0])
         cf2 = CF_DATA % (finish[1], finish[0])
         f   = unserialize_data
     if (cf1 == cf2):
         d = self.get_slice(key           = encode_string(key),
                            start         = k1,
                            finish        = k0,
                            count         = limit,
                            column_family = cf1)
     else:
         d = merge(self.get_slice(key           = encode_string(key),
                                  start         = k1,
                                  finish        = k0,
                                  count         = limit,
                                  column_family = cf2),
                   self.get_slice(key           = encode_string(key),
                                  start         = k1,
                                  finish        = k0,
                                  count         = limit,
                                  column_family = cf1))
     d.addCallback(lambda xs: reversed(xs))
     d.addCallback(lambda cols: f(key, cols))
     d.addCallback(delay.callback)
     d.addErrback(delay.errback)
     return(delay)
Beispiel #2
0
 def set_time(self, timetuple):
     self.t = funcs.timetuple_timestamp(timetuple)
     self.d = Timestamp._make(timetuple)
Beispiel #3
0
def unserialize_event(name, k, v, epoch):
    timetuple = list(unserialize_key(k, epoch=epoch))
    timestamp = funcs.timetuple_timestamp(timetuple)
    return(event.Event(name, v, timestamp))
Beispiel #4
0
def unserialize_data(name, k, v, epoch):
    timetuple = list(unserialize_key(k, epoch=epoch))
    timestamp = funcs.timetuple_timestamp(timetuple)
    return(data.Data(name, parser.parse_json(v), timestamp))
Beispiel #5
0
def serialize_key(y, mo, d, h, mi, s, epoch):
    e = funcs.timetuple_timestamp((epoch, 1, 1, 0, 0, 0))
    t = funcs.timetuple_timestamp((y, mo, d, h, mi, s))
    return(t - e)
Beispiel #6
0
def unserialize_key(k, epoch):
    e = funcs.timetuple_timestamp((epoch, 1, 1, 0, 0, 0))
    t = funcs.datetime_fromtimestamp(k + e)
    return(t.year, t.month, t.day, t.hour, t.minute, t.second)
Beispiel #7
0
 def set_time(self, timetuple):
     self.t = funcs.timetuple_timestamp(timetuple)
     self.d = Timestamp._make(timetuple)
Beispiel #8
0
def unserialize_data(name, k, v, epoch):
    timetuple = list(unserialize_key(k, epoch=epoch))
    timestamp = funcs.timetuple_timestamp(timetuple)
    return (data.Data(name, parser.parse_json(v), timestamp))
Beispiel #9
0
def unserialize_event(name, k, v, epoch):
    timetuple = list(unserialize_key(k, epoch=epoch))
    timestamp = funcs.timetuple_timestamp(timetuple)
    return (event.Event(name, v, timestamp))
Beispiel #10
0
def unserialize_key(k, epoch):
    e = funcs.timetuple_timestamp((epoch, 1, 1, 0, 0, 0))
    t = funcs.datetime_fromtimestamp(k + e)
    return (t.year, t.month, t.day, t.hour, t.minute, t.second)
Beispiel #11
0
def serialize_key(y, mo, d, h, mi, s, epoch):
    e = funcs.timetuple_timestamp((epoch, 1, 1, 0, 0, 0))
    t = funcs.timetuple_timestamp((y, mo, d, h, mi, s))
    return (t - e)