def reformat_data(mongo_data): def item(day, val): return [calendar.timegm(day.timetuple()) * 1000, val] next_expected_date = begin for d in mongo_data: this_date = datetime(d['_id']['year'], d['_id']['month'], d['_id']['day']) for day in h.daterange(next_expected_date, this_date): yield item(day, 0) yield item(this_date, d['posts']) next_expected_date = this_date + timedelta(days=1) for day in h.daterange(next_expected_date, end + timedelta(days=1)): yield item(day, 0)
def reformat_data(mongo_data): def item(day, val): return [ calendar.timegm(day.timetuple()) * 1000, val ] next_expected_date = begin for d in mongo_data: this_date = datetime(d['_id']['year'], d['_id']['month'], d['_id']['day']) for day in h.daterange(next_expected_date, this_date): yield item(day, 0) yield item(this_date, d['posts']) next_expected_date = this_date + timedelta(days=1) for day in h.daterange(next_expected_date, end + timedelta(days=1)): yield item(day, 0)
def test_daterange(): assert_equals( list(h.daterange(datetime(2013, 1, 1), datetime(2013, 1, 4))), [datetime(2013, 1, 1), datetime(2013, 1, 2), datetime(2013, 1, 3)])