def run(self, query, args):
self.start = args.get(constants.PARAM_START_DATE)
self.end = args.get(constants.PARAM_END_DATE)
self.validate_start_end_dates()
if self.errors:
return
start_date, end_date = None, None
if self.start:
start_date = str(iso8601.parse_date(self.start).date())
if self.end:
end_date = iso8601.parse_date(self.end).date()
if '-' not in self.end: # Solo especifica año
end_date = datetime.date(end_date.year, 12, 31)
if self.end.count('-') == 1: # Especifica año y mes
# Obtengo el último día del mes, monthrange devuelve
# tupla (month, last_day)
days = monthrange(end_date.year, end_date.month)[1]
end_date = datetime.date(end_date.year, end_date.month, days)
query.add_filter(start_date, end_date)
评论列表
文章目录