Coverage for /Users/eugene/Development/robotnikmq/robotnikmq/utils.py: 100%

7 statements  

« prev     ^ index     » next       coverage.py v7.3.4, created at 2023-12-26 23:29 -0500

1from json import JSONEncoder, dumps 

2from pathlib import Path 

3from typing import Any 

4 

5from typeguard import typechecked 

6 

7 

8class MyEncoder(JSONEncoder): # pragma: no cover # not directly used in code 

9 @typechecked 

10 def default(self, obj: Any) -> Any: # pylint: disable=W0221 

11 if isinstance(obj, Path): 

12 return str(obj) 

13 return JSONEncoder.default(self, obj) 

14 

15 

16@typechecked 

17def to_json(obj: Any) -> Any: 

18 return dumps(obj, cls=MyEncoder)