Source code for pythonwrench.dataclasses
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from dataclasses import MISSING
from typing import Any, Dict, TypeVar
from pythonwrench.typing.checks import is_dataclass_instance # noqa: F401
from pythonwrench.typing.classes import DataclassInstance
T = TypeVar("T")
[docs]
def get_defaults_values(obj: DataclassInstance) -> Dict[str, Any]:
defaults = {}
for field in obj.__dataclass_fields__.values():
if callable(field.default_factory):
default = field.default_factory()
else:
default = field.default
if default != MISSING:
defaults[field.name] = default
return defaults