def get_stats(update, context): if update.message: now = datetime.datetime.utcnow() + datetime.timedelta(hours=3) from_time = now.date().replace(day=1) from_time = datetime.datetime(from_time.year, from_time.month, from_time.day) to_time = now else: month, year = update.callback_query.data.split('_')[-2:] from_time = datetime.datetime(int(year), int(month), 1) to_time = from_time + relativedelta(months=1, days=-1) items = TestResult.where( user_id=update.effective_user.id, created_on__ge=from_time, created_on__le=to_time, ).all() answer = StatsMessage(from_time, items) if update.message: update.message.reply_text(**answer) else: update.callback_query.edit_message_text(**answer)