def __init__(self, **options): super(BaseGoogleAnalytics, self).__init__(**options) with open(options['oauth_token']) as f: token = json_loads(f.read()) self.client = get_service(**token) self.profile_id = _ga(options['profile_id']) self.metrics = _gatable(options['metrics']) self.qmetrics = ','.join(self.metrics) if 'dimensions' in options: self.dimensions = _gatable(options['dimensions']) self.qdimensions = ','.join(self.dimensions) else: self.dimensions = ['ga:date'] self.qdimensions = 'ga:date' if 'filters' in options: self.filters = _gatable(options['filters']) self.qfilters = ','.join(self.filters) else: self.qfilters = None if 'rate_limit' in options: self.rate_limit = int(options['rate_limit']) else: self.rate_limit = 3 if 'rate_span' in options: self.rate_span = float(options['rate_span']) else: self.rate_span = 1.0 self.frequency = deque(maxlen=self.rate_limit)
def _check(self, data): data = dict(data) value = data["value"] if isinstance(value, buffer): value = str(value) data.update(json_loads(value)) del data["value"] if self.mysql: return data # deal with sqlite returning buffers for key, value in data.items(): if isinstance(value, buffer): data[key] = str(value) # cope with SQLite not having a date type date = data["date"] if isinstance(date, basestring): data["date"] = datetime.datetime.strptime(date, "%Y-%m-%d") return data
def _check(self, data): data = dict(data) value = data['value'] if isinstance(value, buffer): value = str(value) data.update(json_loads(value)) del data['value'] if self.mysql: return data # deal with sqlite returning buffers for key, value in data.items(): if isinstance(value, buffer): data[key] = str(value) # cope with SQLite not having a date type date = data['date'] if isinstance(date, basestring): data['date'] = datetime.datetime.strptime(date, '%Y-%m-%d') return data
def test_loads_date(self): data = json_loads('{"date": "2012-03-15"}') self.assertEqual(data, {'date': '2012-03-15'})