@@ -60,12 +60,17 @@ def __getitem__(self, key):
60
60
value = super ().__getitem__ (key )
61
61
if isinstance (value , dict ) and "__datetime__" in value :
62
62
return datetime .fromisoformat (value ["__datetime__" ])
63
+ assert not isinstance (value , dict ), value
63
64
return value
64
65
65
66
def get (self , key , default = None , retry = False ):
66
67
"""Override to handle datetime deserialization in get method with retry."""
67
68
try :
68
- return super ().get (key , default = default , retry = retry )
69
+ value = super ().get (key , default = default , retry = retry )
70
+ if isinstance (value , dict ) and "__datetime__" in value :
71
+ return datetime .fromisoformat (value ["__datetime__" ])
72
+ return value
73
+
69
74
except KeyError :
70
75
return default
71
76
@@ -150,6 +155,7 @@ async def get_user_activity(
150
155
if cached_data is not None :
151
156
if debug :
152
157
print (f"[cyan]Cache hit for { username } activity[/cyan]" )
158
+ assert isinstance (cached_data , datetime ), cached_data
153
159
return cached_data
154
160
if debug :
155
161
print (
@@ -170,10 +176,13 @@ async def get_user_activity(
170
176
events [0 ]["created_at" ].replace ("Z" , "+00:00" )
171
177
)
172
178
# Cache the results
179
+ assert isinstance (last_activity , datetime )
173
180
cache [cache_key ] = (
174
181
last_activity # Using __setitem__ instead of set()
175
182
)
176
- print (f"[green]Cached activity for { username } [/green]" )
183
+ if debug :
184
+ print (f"[green]Cached activity for { username } [/green]" )
185
+ assert isinstance (last_activity , datetime )
177
186
return last_activity
178
187
else :
179
188
if debug :
@@ -260,12 +269,12 @@ async def main(debug: bool):
260
269
# Print results sorted by last activity
261
270
user_activities = []
262
271
for (username , _ ), last_activity in zip (tasks , results ):
272
+ if last_activity is not None :
273
+ assert isinstance (last_activity , datetime ), last_activity
263
274
user_activities .append (
264
275
(
265
276
username ,
266
- datetime .fromisoformat (last_activity ["__datetime__" ])
267
- if last_activity is not None
268
- else None ,
277
+ last_activity if last_activity is not None else None ,
269
278
all_members [username ],
270
279
)
271
280
)
0 commit comments