14
14
from __future__ import annotations
15
15
16
16
import copy
17
- from datetime import datetime
17
+ from datetime import datetime , timezone
18
18
import json
19
19
import logging
20
20
from typing import Any
@@ -144,6 +144,12 @@ class StorageSession(Base):
144
144
def __repr__ (self ):
145
145
return f"<StorageSession(id={ self .id } , update_time={ self .update_time } )>"
146
146
147
+ def create_timestamp_utc (self ) -> datetime :
148
+ return self .create_time .replace (tzinfo = timezone .utc ).timestamp ()
149
+
150
+ def update_timestamp_utc (self ) -> datetime :
151
+ return self .update_time .replace (tzinfo = timezone .utc ).timestamp ()
152
+
147
153
148
154
class StorageEvent (Base ):
149
155
"""Represents an event stored in the database."""
@@ -412,7 +418,7 @@ async def create_session(
412
418
user_id = str (storage_session .user_id ),
413
419
id = str (storage_session .id ),
414
420
state = merged_state ,
415
- last_update_time = storage_session .update_time . timestamp (),
421
+ last_update_time = storage_session .update_timestamp_utc (),
416
422
)
417
423
return session
418
424
@@ -473,7 +479,7 @@ async def get_session(
473
479
user_id = user_id ,
474
480
id = session_id ,
475
481
state = merged_state ,
476
- last_update_time = storage_session .update_time . timestamp (),
482
+ last_update_time = storage_session .update_timestamp_utc (),
477
483
)
478
484
session .events = [e .to_event () for e in reversed (storage_events )]
479
485
return session
@@ -496,7 +502,7 @@ async def list_sessions(
496
502
user_id = user_id ,
497
503
id = storage_session .id ,
498
504
state = {},
499
- last_update_time = storage_session .update_time . timestamp (),
505
+ last_update_time = storage_session .update_timestamp_utc (),
500
506
)
501
507
sessions .append (session )
502
508
return ListSessionsResponse (sessions = sessions )
@@ -529,7 +535,7 @@ async def append_event(self, session: Session, event: Event) -> Event:
529
535
StorageSession , (session .app_name , session .user_id , session .id )
530
536
)
531
537
532
- if storage_session .update_time . timestamp () > session .last_update_time :
538
+ if storage_session .update_timestamp_utc () > session .last_update_time :
533
539
raise ValueError (
534
540
"The last_update_time provided in the session object"
535
541
f" { datetime .fromtimestamp (session .last_update_time ):'%Y-%m-%d %H:%M:%S'} is"
@@ -577,7 +583,7 @@ async def append_event(self, session: Session, event: Event) -> Event:
577
583
session_factory .refresh (storage_session )
578
584
579
585
# Update timestamp with commit time
580
- session .last_update_time = storage_session .update_time . timestamp ()
586
+ session .last_update_time = storage_session .update_timestamp_utc ()
581
587
582
588
# Also update the in-memory session
583
589
await super ().append_event (session = session , event = event )
0 commit comments