pythonwrench.cast module¶
- pythonwrench.cast.as_builtin(x: Counter, **kwargs) dict[Any, int][source]¶
- pythonwrench.cast.as_builtin(x: date, **kwargs) str
- pythonwrench.cast.as_builtin(x: Enum, **kwargs) str
- pythonwrench.cast.as_builtin(x: Path, **kwargs) str
- pythonwrench.cast.as_builtin(x: Pattern, **kwargs) str
- pythonwrench.cast.as_builtin(x: Namespace, **kwargs) dict[str, Any]
- pythonwrench.cast.as_builtin(x: Mapping[K, V], **kwargs) dict[K, V]
- pythonwrench.cast.as_builtin(x: DataclassInstance, **kwargs) dict[str, Any]
- pythonwrench.cast.as_builtin(x: NamedTupleInstance, **kwargs) dict[str, Any]
- pythonwrench.cast.as_builtin(x: T_BuiltinScalar, **kwargs) T_BuiltinScalar
- pythonwrench.cast.as_builtin(x: Any, **kwargs) Any
Convert an object to a sanitized python builtin equivalent recursively.
This function can be used to sanitize data before saving to a JSON, YAML or CSV file.
Additional objects to convert can be added dynamically with pythonwrench.register_as_builtin_fn function decorator.
Here is the list of default objects converted to built-in: - tuple -> list - collections.Counter -> dict - datetime.date -> str - argparse.Namespace -> dict - re.Pattern -> str - pathlib.Path -> str - enum.Enum -> str - Mapping -> dict - Iterable -> list - Dataclass -> dict - NamedTuple -> dict
Note: By default, tuple objects are converted to list.
- Args:
x: Object to convert to built-in equivalent.
-
pythonwrench.cast.register_as_builtin_fn(class_or_tuple: type | tuple[type, ...], *, custom_predicate: None =
None, priority: int =0) Callable[source]¶ -
pythonwrench.cast.register_as_builtin_fn(class_or_tuple: None =
None, *, custom_predicate: Predicate, priority: int =0) Callable Decorator to add an as_builtin function.
Example¶
>>> import numpy as np >>> @register_as_builtin_fn(np.ndarray) >>> def my_checksum_for_numpy(x: np.ndarray): >>> return x.tolist() >>> pw.as_builtin([np.array([1, 2]), [3, 4]]) ... [[1, 2], [3, 4]]