def range(self, start=None, end=None): """ """ expect_entries = True if end: start = Timestamp(start) end = Timestamp(end) url = '%s/range/%s/%s' % (self.source, start.compact(), end.compact()) elif start: start = Timestamp(start) url = '%s/range/%s' % (self.source, start.compact()) else: url = '%s/range' % (self.source) expect_entries = False #print url req = urllib2.urlopen(url) response = req.read() req.close() if expect_entries: result = json.loads(response) elist = [] for e in result['entries']: m = Moment(data=e['data'], tags=e['tags'], created=e['created'], path=e['path']) #m = Moment(data=e['data'], tags=e['tags'], created=e['created']) elist.append(m) return elist else: return response
def date(self, date_key=None): """ lookup date_key in self._dates date_key should be compact stamp """ if date_key: if isinstance(date_key, Timestamp): ts = date_key else: ts = Timestamp(compact=date_key) #print ts, type(ts) #print ts.accuracy if ts.accuracy and ts.accuracy != "second": rr = Timerange(ts) #get the timerange tr = rr.default() #print tr #print tr.start.datetime #print tr.end.datetime entries = self.range(tr.start, tr.end) #return {ts.compact():entries} return entries elif self._dates.has_key(ts.compact()): entries = self._dates[ts.compact()] #print "LEN ENTRIES: %s" % len(entries) #print entries #return { ts.compact():entries } return entries else: #return { ts.compact():[] } return [] else: #could also return self.dates() #return self.dates() #return { date_key:[] } return []
def date(self, date_key=''): values = {} params = urllib.urlencode(values) if isinstance(date_key, Timestamp): ts = date_key else: ts = Timestamp(compact=date_key) url = '%s/date/%s' % (self.source, ts.compact()) #print url #GET: req = urllib2.urlopen(url) json_raw = req.read() #print "json from server: %s" % json_raw req.close() result = json.loads(json_raw) elist = [] for e in result[ts.compact()]: m = Moment(data=e['data'], tags=e['tags'], created=e['created'], path=e['path']) elist.append(m) return {ts.compact(): elist}
def dates(self): """ return a dictionary with: all dates as keys, and number of entries for each date as values """ ddict = {} for key in self._dates.keys(): #print "KEY:", key #key might be blank here (i.e. no timestamp) if key: ts = Timestamp(compact=key) #print ts ddict[ts.compact()] = len(self._dates[key]) else: ddict[key] = len(self._dates[key]) return ddict