@@ -78,31 +78,34 @@ async def get_metadata(self) -> ApifyRequestQueueMetadata:
7878 Returns:
7979 Request queue metadata with accurate counts and timestamps, combining API data with local estimates.
8080 """
81- response = await self ._api_client .get ()
81+ metadata = await self ._api_client .get ()
8282
83- if response is None :
83+ if metadata is None :
8484 raise ValueError ('Failed to fetch request queue metadata from the API.' )
8585
86- total_request_count = int (response .total_request_count )
87- handled_request_count = int (response .handled_request_count )
88- pending_request_count = int (response .pending_request_count )
89- created_at = datetime .fromisoformat (response .created_at )
90- modified_at = datetime .fromisoformat (response .modified_at )
91- accessed_at = datetime .fromisoformat (response .accessed_at )
86+ total_request_count = int (metadata .total_request_count )
87+ handled_request_count = int (metadata .handled_request_count )
88+ pending_request_count = int (metadata .pending_request_count )
89+ created_at = datetime .fromisoformat (metadata .created_at . replace ( 'Z' , '+00:00' ) )
90+ modified_at = datetime .fromisoformat (metadata .modified_at . replace ( 'Z' , '+00:00' ) )
91+ accessed_at = datetime .fromisoformat (metadata .accessed_at . replace ( 'Z' , '+00:00' ) )
9292
9393 # Enhance API response with local estimations to account for propagation delays (API data can be delayed
9494 # by a few seconds, while local estimates are immediately accurate).
9595 return ApifyRequestQueueMetadata (
96- id = response .id ,
97- name = response .name ,
96+ id = metadata .id ,
97+ name = metadata .name ,
9898 total_request_count = max (total_request_count , self ._implementation .metadata .total_request_count ),
9999 handled_request_count = max (handled_request_count , self ._implementation .metadata .handled_request_count ),
100100 pending_request_count = pending_request_count ,
101101 created_at = min (created_at , self ._implementation .metadata .created_at ),
102102 modified_at = max (modified_at , self ._implementation .metadata .modified_at ),
103103 accessed_at = max (accessed_at , self ._implementation .metadata .accessed_at ),
104- had_multiple_clients = response .had_multiple_clients or self ._implementation .metadata .had_multiple_clients ,
105- stats = RequestQueueStats .model_validate (response .stats , by_alias = True ), # ty: ignore[possibly-missing-attribute]
104+ had_multiple_clients = metadata .had_multiple_clients or self ._implementation .metadata .had_multiple_clients ,
105+ stats = RequestQueueStats .model_validate (
106+ metadata .stats .model_dump (by_alias = True ) if metadata .stats else {},
107+ by_alias = True ,
108+ ),
106109 )
107110
108111 @classmethod
@@ -151,7 +154,7 @@ async def open(
151154 raw_metadata = await api_client .get ()
152155 if raw_metadata is None :
153156 raise ValueError ('Failed to retrieve request queue metadata from the API.' )
154- metadata = ApifyRequestQueueMetadata .model_validate (raw_metadata )
157+ metadata = ApifyRequestQueueMetadata .model_validate (raw_metadata . model_dump ( by_alias = True ) )
155158
156159 return cls (
157160 api_client = api_client ,
0 commit comments