
https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/operators/python/index.html!

그냥 편한걸로 ...
#Macro 사용
@task(task_id='task_using_macros',
templates_dict={
'start_date':'{{ (data_interval_end.in_timezone("Asia/Seoul") + macros.dateutil.relativedelta.relativedelta(months=-1,day=1)) | ds }}',
'end_date': '{{ (data_interval_end.in_timezone("Asia/Seoul").replace(day=1) + macros.dateutil.relativedelta.relativedelta(days=-1)) | ds }}'
} )
def get_datetime_macro(**kwargs):
templates_dict = kwargs.get('templates_dict') or {} if templates_dict:
start_date = templates_dict.get('start_date') or 'start_date없음'
end_date = templates_dict.get('end_date') or 'end_date없음' print(start_date)
print(end_date)
# Python 직접사용
@task(task_id='task_direct_calc')
def get_datetime_calc(**kwargs):
from dateutil.relativedelta import relativedelta data_interval_end = kwargs['data_interval_end']
prev_month_day_first = data_interval_end.in_timezone('Asia/Seoul') + relativedelta(months=-1, day=1)
prev_month_day_last = data_interval_end.in_timezone('Asia/Seoul').replace(day=1) + relativedelta(days=-1)
print(prev_month_day_first.strftime('%Y-%m-%d')) print(prev_month_day_last.strftime('%Y-%m-%d'))