diff --git a/trustgraph-base/trustgraph/provenance/agent.py b/trustgraph-base/trustgraph/provenance/agent.py index 5c4f0b2e..76244439 100644 --- a/trustgraph-base/trustgraph/provenance/agent.py +++ b/trustgraph-base/trustgraph/provenance/agent.py @@ -13,7 +13,7 @@ Agent provenance tracks the reasoning trace of agent sessions: """ import json -from datetime import datetime +from datetime import datetime, timezone from typing import List, Optional, Dict, Any from .. schema import Triple, Term, IRI, LITERAL @@ -87,7 +87,7 @@ def agent_session_triples( List of Triple objects """ if timestamp is None: - timestamp = datetime.utcnow().isoformat() + "Z" + timestamp = datetime.now(timezone.utc).isoformat().replace("+00:00", "Z") triples = [ _triple(session_uri, RDF_TYPE, _iri(PROV_ENTITY)), diff --git a/trustgraph-base/trustgraph/provenance/triples.py b/trustgraph-base/trustgraph/provenance/triples.py index 8bdfc2cb..8dedff9a 100644 --- a/trustgraph-base/trustgraph/provenance/triples.py +++ b/trustgraph-base/trustgraph/provenance/triples.py @@ -2,7 +2,7 @@ Helper functions to build PROV-O triples for extraction-time provenance. """ -from datetime import datetime +from datetime import datetime, timezone from typing import List, Optional from .. schema import Triple, Term, IRI, LITERAL, TRIPLE @@ -192,7 +192,7 @@ def derived_entity_triples( List of Triple objects """ if timestamp is None: - timestamp = datetime.utcnow().isoformat() + "Z" + timestamp = datetime.now(timezone.utc).isoformat().replace("+00:00", "Z") act_uri = activity_uri() agt_uri = agent_uri(component_name) @@ -309,7 +309,7 @@ def subgraph_provenance_triples( List of Triple objects for the provenance """ if timestamp is None: - timestamp = datetime.utcnow().isoformat() + "Z" + timestamp = datetime.now(timezone.utc).isoformat().replace("+00:00", "Z") act_uri = activity_uri() agt_uri = agent_uri(component_name) @@ -386,7 +386,7 @@ def question_triples( List of Triple objects """ if timestamp is None: - timestamp = datetime.utcnow().isoformat() + "Z" + timestamp = datetime.now(timezone.utc).isoformat().replace("+00:00", "Z") triples = [ _triple(question_uri, RDF_TYPE, _iri(PROV_ENTITY)), @@ -640,7 +640,7 @@ def docrag_question_triples( List of Triple objects """ if timestamp is None: - timestamp = datetime.utcnow().isoformat() + "Z" + timestamp = datetime.now(timezone.utc).isoformat().replace("+00:00", "Z") triples = [ _triple(question_uri, RDF_TYPE, _iri(PROV_ENTITY)), diff --git a/trustgraph-flow/trustgraph/agent/orchestrator/pattern_base.py b/trustgraph-flow/trustgraph/agent/orchestrator/pattern_base.py index 88d4ee72..6daba1a1 100644 --- a/trustgraph-flow/trustgraph/agent/orchestrator/pattern_base.py +++ b/trustgraph-flow/trustgraph/agent/orchestrator/pattern_base.py @@ -9,7 +9,7 @@ librarian integration. import json import logging import uuid -from datetime import datetime +from datetime import datetime, timezone from ... schema import AgentRequest, AgentResponse, AgentStep, Error from ... schema import Triples, Metadata @@ -253,7 +253,7 @@ class PatternBase: collection, respond, streaming, parent_uri=None): """Emit provenance triples for a new session.""" - timestamp = datetime.utcnow().isoformat() + "Z" + timestamp = datetime.now(timezone.utc).isoformat().replace("+00:00", "Z") triples = set_graph( agent_session_triples( session_uri, question, timestamp, diff --git a/trustgraph-flow/trustgraph/agent/react/service.py b/trustgraph-flow/trustgraph/agent/react/service.py index 00432181..1512fa83 100755 --- a/trustgraph-flow/trustgraph/agent/react/service.py +++ b/trustgraph-flow/trustgraph/agent/react/service.py @@ -10,7 +10,7 @@ import sys import functools import logging import uuid -from datetime import datetime +from datetime import datetime, timezone # Module logger logger = logging.getLogger(__name__) @@ -452,7 +452,7 @@ class Processor(AgentService): # On first iteration, emit session triples if iteration_num == 1: - timestamp = datetime.utcnow().isoformat() + "Z" + timestamp = datetime.now(timezone.utc).isoformat().replace("+00:00", "Z") triples = set_graph( agent_session_triples(session_uri, request.question, timestamp), GRAPH_RETRIEVAL diff --git a/trustgraph-flow/trustgraph/retrieval/document_rag/document_rag.py b/trustgraph-flow/trustgraph/retrieval/document_rag/document_rag.py index 625b1386..dfe4e051 100644 --- a/trustgraph-flow/trustgraph/retrieval/document_rag/document_rag.py +++ b/trustgraph-flow/trustgraph/retrieval/document_rag/document_rag.py @@ -2,7 +2,7 @@ import asyncio import logging import uuid -from datetime import datetime +from datetime import datetime, timezone # Provenance imports from trustgraph.provenance import ( @@ -199,7 +199,7 @@ class DocumentRag: exp_uri = docrag_exploration_uri(session_id) syn_uri = docrag_synthesis_uri(session_id) - timestamp = datetime.utcnow().isoformat() + "Z" + timestamp = datetime.now(timezone.utc).isoformat().replace("+00:00", "Z") # Emit question explainability immediately if explain_callback: diff --git a/trustgraph-flow/trustgraph/retrieval/graph_rag/graph_rag.py b/trustgraph-flow/trustgraph/retrieval/graph_rag/graph_rag.py index cf9f5c4e..a4b14644 100644 --- a/trustgraph-flow/trustgraph/retrieval/graph_rag/graph_rag.py +++ b/trustgraph-flow/trustgraph/retrieval/graph_rag/graph_rag.py @@ -7,7 +7,7 @@ import math import time import uuid from collections import OrderedDict -from datetime import datetime +from datetime import datetime, timezone from ... schema import Term, Triple as SchemaTriple, IRI, LITERAL, TRIPLE from ... knowledge import Uri, Literal @@ -643,7 +643,7 @@ class GraphRag: foc_uri = make_focus_uri(session_id) syn_uri = make_synthesis_uri(session_id) - timestamp = datetime.utcnow().isoformat() + "Z" + timestamp = datetime.now(timezone.utc).isoformat().replace("+00:00", "Z") # Emit question explainability immediately if explain_callback: