File tree Expand file tree Collapse file tree 2 files changed +12
-3
lines changed
Expand file tree Collapse file tree 2 files changed +12
-3
lines changed Original file line number Diff line number Diff line change @@ -88,7 +88,8 @@ def json_default(o: object) -> object:
8888 if isinstance (o , polars .Datetime ):
8989 return o .isoformat ()
9090
91- raise TypeError ("Unsupported type" )
91+ # Fall back to repr() get _some_ useful value to log
92+ return repr (o )
9293
9394
9495if platform .python_implementation () == "PyPy" :
Original file line number Diff line number Diff line change @@ -73,8 +73,8 @@ def test_numpy_not_imported(self):
7373
7474 This ensures NumPy isn't a hard dependency.
7575 """
76- with self . assertRaises ( TypeError ):
77- dumps ([object () ], default = json_default )
76+ weird_val = object ()
77+ self . assertEqual ( dumps ([weird_val ], default = json_default ), dumps ([ repr ( weird_val )]) )
7878 self .assertEqual (dumps (12 , default = json_default ), "12" )
7979
8080 @skipUnless (np , "NumPy is not installed." )
@@ -206,3 +206,11 @@ class TestDataClass:
206206 obj = TestDataClass (name = "test" , value = 42 )
207207 serialized = loads (dumps (obj , default = json_default ))
208208 self .assertEqual (serialized , {"name" : "test" , "value" : 42 })
209+
210+ def test_unserializable (self ):
211+ """Test that even values without dedicated JSON serialization
212+ support dump without errors."""
213+ def unserializable ():
214+ pass
215+
216+ self .assertEqual (dumps (unserializable , default = json_default ), dumps (repr (unserializable )))
You can’t perform that action at this time.
0 commit comments