This is an automated email from the ASF dual-hosted git repository.

skrawcz pushed a commit to branch stefan/fix-unit-tests
in repository https://gitbox.apache.org/repos/asf/hamilton.git

commit 0bc875b9e6528d32045d978c49dba290438cae1f
Author: Stefan Krawczyk <[email protected]>
AuthorDate: Mon Dec 29 22:29:16 2025 +1100

    Updates UTC use
    
    Updating code to not use the deprecated way of getting UTC time.
---
 .../contrib/user/elijahbenizzy/caption_images/__init__.py        | 3 ++-
 ui/sdk/src/hamilton_sdk/adapters.py                              | 5 +++--
 ui/sdk/src/hamilton_sdk/api/clients.py                           | 9 +++++----
 ui/sdk/src/hamilton_sdk/driver.py                                | 3 ++-
 4 files changed, 12 insertions(+), 8 deletions(-)

diff --git 
a/contrib/hamilton/contrib/user/elijahbenizzy/caption_images/__init__.py 
b/contrib/hamilton/contrib/user/elijahbenizzy/caption_images/__init__.py
index 8acdc00c..9fb19101 100644
--- a/contrib/hamilton/contrib/user/elijahbenizzy/caption_images/__init__.py
+++ b/contrib/hamilton/contrib/user/elijahbenizzy/caption_images/__init__.py
@@ -18,6 +18,7 @@
 import base64
 import datetime
 import logging
+from datetime import UTC
 from typing import IO, Any, Dict, List, Optional, Union
 
 from hamilton.function_modifiers import config
@@ -178,7 +179,7 @@ def metadata(
         out.update(caption_metadata)
     if additional_metadata is not None:
         out.update(additional_metadata)
-    out.update({"execution_time": datetime.datetime.utcnow().isoformat()})
+    out.update({"execution_time": datetime.datetime.now(UTC).isoformat()})
     return out
 
 
diff --git a/ui/sdk/src/hamilton_sdk/adapters.py 
b/ui/sdk/src/hamilton_sdk/adapters.py
index 2e969f82..d850113a 100644
--- a/ui/sdk/src/hamilton_sdk/adapters.py
+++ b/ui/sdk/src/hamilton_sdk/adapters.py
@@ -16,6 +16,7 @@
 # under the License.
 
 import datetime
+from datetime import UTC
 import hashlib
 import logging
 import os
@@ -368,7 +369,7 @@ class HamiltonTracker(
         dw_run_id = self.dw_run_ids[run_id]
         tracking_state = self.tracking_states[run_id]
         tracking_state.clock_end(status=Status.SUCCESS if success else 
Status.FAILURE)
-        finally_block_time = datetime.datetime.utcnow()
+        finally_block_time = datetime.datetime.now(UTC)
         if tracking_state.status != Status.SUCCESS:
             # TODO: figure out how to handle crtl+c stuff
             # -- we are at the mercy of Hamilton here.
@@ -644,7 +645,7 @@ class AsyncHamiltonTracker(
         dw_run_id = self.dw_run_ids[run_id]
         tracking_state = self.tracking_states[run_id]
         tracking_state.clock_end(status=Status.SUCCESS if success else 
Status.FAILURE)
-        finally_block_time = datetime.datetime.utcnow()
+        finally_block_time = datetime.datetime.now(UTC)
         if tracking_state.status != Status.SUCCESS:
             # TODO: figure out how to handle crtl+c stuff
             tracking_state.status = Status.FAILURE
diff --git a/ui/sdk/src/hamilton_sdk/api/clients.py 
b/ui/sdk/src/hamilton_sdk/api/clients.py
index 16898437..105377ee 100644
--- a/ui/sdk/src/hamilton_sdk/api/clients.py
+++ b/ui/sdk/src/hamilton_sdk/api/clients.py
@@ -19,6 +19,7 @@ import abc
 import asyncio
 import atexit
 import datetime
+from datetime import UTC
 import functools
 import logging
 import queue
@@ -486,7 +487,7 @@ class BasicSynchronousHamiltonClient(HamiltonClient):
             headers=self._common_headers(),
             json=make_json_safe(
                 {
-                    "run_start_time": datetime.datetime.utcnow(),  # TODO -- 
ensure serializable
+                    "run_start_time": datetime.datetime.now(UTC),  # TODO -- 
ensure serializable
                     "tags": tags,
                     # TODO: make the following replace with summary stats if 
it's large data, e.g. dataframes.
                     "inputs": make_json_safe(inputs),  # TODO -- ensure 
serializable
@@ -533,7 +534,7 @@ class BasicSynchronousHamiltonClient(HamiltonClient):
         logger.debug(f"Logging end of DAG run {dag_run_id} with status 
{status}")
         response = requests.put(
             f"{self.base_url}/dag_runs/{dag_run_id}/",
-            json=make_json_safe({"run_status": status, "run_end_time": 
datetime.datetime.utcnow()}),
+            json=make_json_safe({"run_status": status, "run_end_time": 
datetime.datetime.now(UTC)}),
             headers=self._common_headers(),
             verify=self.verify,
         )
@@ -823,7 +824,7 @@ class BasicAsynchronousHamiltonClient(HamiltonClient):
                 f"{self.base_url}/dag_runs?dag_template_id={dag_template_id}",
                 json=make_json_safe(
                     {
-                        "run_start_time": datetime.datetime.utcnow(),  # TODO 
-- ensure serializable
+                        "run_start_time": datetime.datetime.now(UTC),  # TODO 
-- ensure serializable
                         "tags": tags,
                         # TODO: make the following replace with summary stats 
if it's large data, e.g. dataframes.
                         "inputs": make_json_safe(inputs),  # TODO -- ensure 
serializable
@@ -862,7 +863,7 @@ class BasicAsynchronousHamiltonClient(HamiltonClient):
     async def log_dag_run_end(self, dag_run_id: int, status: str):
         logger.debug(f"Logging end of DAG run {dag_run_id} with status 
{status}")
         url = f"{self.base_url}/dag_runs/{dag_run_id}/"
-        data = make_json_safe({"run_status": status, "run_end_time": 
datetime.datetime.utcnow()})
+        data = make_json_safe({"run_status": status, "run_end_time": 
datetime.datetime.now(UTC)})
         headers = self._common_headers()
         async with aiohttp.ClientSession() as session:
             async with session.put(url, json=data, headers=headers, 
ssl=self.ssl) as response:
diff --git a/ui/sdk/src/hamilton_sdk/driver.py 
b/ui/sdk/src/hamilton_sdk/driver.py
index 416463ed..0c9c4d52 100644
--- a/ui/sdk/src/hamilton_sdk/driver.py
+++ b/ui/sdk/src/hamilton_sdk/driver.py
@@ -16,6 +16,7 @@
 # under the License.
 
 import datetime
+from datetime import UTC
 import hashlib
 import inspect
 import json
@@ -835,7 +836,7 @@ class DAGWorksGraphExecutor(driver.GraphExecutor):
                 tracking_state.clock_end(status=Status.FAILURE)
                 raise e
             finally:
-                finally_block_time = datetime.datetime.utcnow()
+                finally_block_time = datetime.datetime.now(UTC)
                 if tracking_state.status != Status.SUCCESS:
                     tracking_state.status = Status.FAILURE
                     # this assumes the task map only has things that have been 
processed, not

Reply via email to