30 lines
870 B
Python
30 lines
870 B
Python
from datetime import datetime, timezone
|
|
|
|
import litellm
|
|
from litellm.litellm_core_utils.duration_parser import get_next_standardized_reset_time
|
|
|
|
|
|
def get_budget_reset_timezone():
|
|
"""
|
|
Get the budget reset timezone from litellm_settings.
|
|
Falls back to UTC if not specified.
|
|
|
|
litellm_settings values are set as attributes on the litellm module
|
|
by proxy_server.py at startup (via setattr(litellm, key, value)).
|
|
"""
|
|
return getattr(litellm, "timezone", None) or "UTC"
|
|
|
|
|
|
def get_budget_reset_time(budget_duration: str):
|
|
"""
|
|
Get the budget reset time based on the configured timezone.
|
|
Falls back to UTC if not specified.
|
|
"""
|
|
|
|
reset_at = get_next_standardized_reset_time(
|
|
duration=budget_duration,
|
|
current_time=datetime.now(timezone.utc),
|
|
timezone_str=get_budget_reset_timezone(),
|
|
)
|
|
return reset_at
|