|
| 1 | +import inspect |
1 | 2 | from functools import wraps |
2 | | -from utils import get_first_day_of_last_month, get_last_day_of_last_month |
| 3 | + |
| 4 | +from utils import ( |
| 5 | + get_first_day_of_last_month, |
| 6 | + get_first_month_of_last_year, |
| 7 | + get_last_day_of_last_month, |
| 8 | + get_last_month_of_last_year, |
| 9 | +) |
3 | 10 |
|
4 | 11 |
|
5 | 12 | def default_params(func): |
6 | 13 | @wraps(func) |
7 | 14 | def wrapper(*args, **kwargs): |
8 | | - kwargs["start_date"] = kwargs.get("start_date") or get_first_day_of_last_month() |
9 | | - kwargs["end_date"] = kwargs.get("end_date") or get_last_day_of_last_month() |
| 15 | + func_signature = inspect.signature(func) |
| 16 | + func_params = func_signature.parameters |
| 17 | + |
| 18 | + if "start_date" in func_params: |
| 19 | + kwargs["start_date"] = ( |
| 20 | + kwargs.get("start_date") or get_first_day_of_last_month() |
| 21 | + ) |
| 22 | + if "end_date" in func_params: |
| 23 | + kwargs["end_date"] = kwargs.get("end_date") or get_last_day_of_last_month() |
| 24 | + if "start_month" in func_params: |
| 25 | + kwargs["start_month"] = ( |
| 26 | + kwargs.get("start_month") or get_first_month_of_last_year() |
| 27 | + ) |
| 28 | + if "end_month" in func_params: |
| 29 | + kwargs["end_month"] = ( |
| 30 | + kwargs.get("end_month") or get_last_month_of_last_year() |
| 31 | + ) |
| 32 | + |
10 | 33 | return func(*args, **kwargs) |
11 | 34 |
|
12 | 35 | return wrapper |
0 commit comments