Собесов

Aviasales Junior — рефакторинг исследовательского скрипта для регулярного запуска

PythonЧистый код и регулярные джобыСредняяJunior

Условие

Есть кусок исследовательского скрипта (см. ниже), который мы хотим поставить на регулярное выполнение. Перепишите код, отформатировав его для удобства дальнейшего переиспользования и исправив ошибки, если они есть. Напишите саммари того, что и почему изменили.

Исходный код (упрощённо):

import pandas as pd, numpy as np
from datetime import datetime, timedelta, date
from dateutil.relativedelta import relativedelta
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings("ignore")
 
today_dt = (datetime.today()).date()
today = today_dt.strftime('%Y-%m-%d')
yesterday_dt = today_dt - timedelta(days=1)
yesterday = yesterday_dt.strftime('%Y-%m-%d')
two_weeks_ago_start = (today_dt - timedelta(days=14)).strftime('%Y-%m-%d')
last_year_day = (yesterday_dt - relativedelta(years=1)).strftime('%Y-%m-%d')
 
total_aviasales_bookings = session.query(f"""
    select to_date(booked_at) as period, count(booking_id) as total_bookings_aviasales
    from bd.bookings
    where to_date(booked_at) >= '{two_weeks_ago_start}' and to_date(booked_at) <= '{yesterday}'
    group by 1 order by 1
""")
 
total_aviasales_gross_profit = session.query(f"""
    select to_date(booked_at) as period, sum(profit) as total_profit_aviasales
    from bd.bookings
    where to_date(booked_at) >= '{two_weeks_ago_start}' and to_date(booked_at) <= '{yesterday}'
    group by 1 order by 1
""")
 
# ... ещё две похожие выгрузки + 4 одинаковых по структуре графика

Хочешь увидеть разбор?

Зарегистрируйся бесплатно — откроется развёрнутое решение этой задачи и ещё 4 на выбор.

Зарегистрироваться и увидеть разбор
Уже есть аккаунт? Войти