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)
def set_time(self, timetuple): self.t = funcs.timetuple_timestamp(timetuple) self.d = Timestamp._make(timetuple)
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))
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))
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)
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)
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))
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))
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)
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)