@@ -284,7 +284,7 @@ def _dump_values(cls, values: dict[Any, Any]) -> dict[Any, tuple[str, str]]:
284
284
return result
285
285
286
286
@classmethod
287
- def _dump_value (cls , value : str | datetime | date | int | float ) -> tuple [str , str ]:
287
+ def _dump_value (cls , value : str | datetime | date | int | float | None ) -> tuple [str , str ]:
288
288
if isinstance (value , str ):
289
289
type_ = "s"
290
290
elif isinstance (value , datetime ):
@@ -297,21 +297,23 @@ def _dump_value(cls, value: str | datetime | date | int | float) -> tuple[str, s
297
297
type_ = "i"
298
298
elif isinstance (value , float ):
299
299
type_ = "f"
300
+ elif value is None :
301
+ return "n" , ""
300
302
else :
301
303
raise TypeError (type (value ))
302
304
return type_ , str (value )
303
305
304
306
@classmethod
305
307
def _load_values (
306
308
cls , payload : dict [str , tuple [str , Any ]]
307
- ) -> dict [str , str | datetime | date | int | float ]:
309
+ ) -> dict [str , str | datetime | date | int | float | None ]:
308
310
result = {}
309
311
for k , (t , v ) in payload .items ():
310
312
result [k ] = cls ._load_value ((t , v ))
311
313
return result
312
314
313
315
@classmethod
314
- def _load_value (cls , payload : tuple [str , Any ]) -> str | datetime | date | int | float :
316
+ def _load_value (cls , payload : tuple [str , Any ]) -> str | datetime | date | int | float | None :
315
317
(type_ , value ) = payload
316
318
if type_ == "s" :
317
319
return force_str (value )
@@ -323,6 +325,8 @@ def _load_value(cls, payload: tuple[str, Any]) -> str | datetime | date | int |
323
325
return int (value )
324
326
elif type_ == "f" :
325
327
return float (value )
328
+ elif type_ == "n" :
329
+ return None
326
330
else :
327
331
raise TypeError (f"invalid type: { type_ } " )
328
332
0 commit comments