Exemple #1
0
    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
Exemple #2
0
    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 []
Exemple #3
0
 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}
Exemple #4
0
    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