From 263a24d8eb05b3a5bbe5779a24eb9f7f49301d14 Mon Sep 17 00:00:00 2001 From: Marc Abramowitz Date: Thu, 16 May 2024 11:56:02 -0700 Subject: [PATCH] Fix datetime.datetime.utcnow DeprecationWarning Eliminates these warning when running tests: ``` $ cd litellm/tests pytest test_key_generate_prisma.py -x -vv ... ====================================================================== warnings summary ======================================================================= ... test_key_generate_prisma.py::test_generate_and_call_with_expired_key test_key_generate_prisma.py::test_key_with_no_permissions /Users/abramowi/Code/OpenSource/litellm/litellm/proxy/proxy_server.py:2934: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). expires = datetime.utcnow() + timedelta(seconds=duration_s) ... ``` --- litellm/proxy/proxy_server.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/litellm/proxy/proxy_server.py b/litellm/proxy/proxy_server.py index 79d191cd1c..69c86984d3 100644 --- a/litellm/proxy/proxy_server.py +++ b/litellm/proxy/proxy_server.py @@ -2863,19 +2863,19 @@ async def generate_key_helper_fn( expires = None else: duration_s = _duration_in_seconds(duration=duration) - expires = datetime.utcnow() + timedelta(seconds=duration_s) + expires = datetime.now(timezone.utc) + timedelta(seconds=duration_s) if key_budget_duration is None: # one-time budget key_reset_at = None else: duration_s = _duration_in_seconds(duration=key_budget_duration) - key_reset_at = datetime.utcnow() + timedelta(seconds=duration_s) + key_reset_at = datetime.now(timezone.utc) + timedelta(seconds=duration_s) if budget_duration is None: # one-time budget reset_at = None else: duration_s = _duration_in_seconds(duration=budget_duration) - reset_at = datetime.utcnow() + timedelta(seconds=duration_s) + reset_at = datetime.now(timezone.utc) + timedelta(seconds=duration_s) aliases_json = json.dumps(aliases) config_json = json.dumps(config) @@ -4974,7 +4974,7 @@ async def update_key_fn(request: Request, data: UpdateKeyRequest): if "duration" in non_default_values: duration = non_default_values.pop("duration") duration_s = _duration_in_seconds(duration=duration) - expires = datetime.utcnow() + timedelta(seconds=duration_s) + expires = datetime.datetime.now(timezone.utc) + timedelta(seconds=duration_s) non_default_values["expires"] = expires response = await prisma_client.update_data(