Source code for classical.fields.dataclass

try:
    # New in Python 3.7
    import dataclasses
except ImportError:
    dataclasses = None

from classical.fields.base import ClassField, FieldInspector, FieldSchema


if dataclasses is not None:

[docs] class DataclassFieldInspector(FieldInspector[ClassField]): @classmethod def _validate_cls(cls, insp_cls: type) -> None: if not dataclasses.is_dataclass(insp_cls): cls._raise_unsupported_field_class(insp_cls=insp_cls) @classmethod def _get_class_fields(cls, insp_cls: type) -> FieldSchema[ClassField]: cls._validate_cls(insp_cls) result = FieldSchema() for field in dataclasses.fields(insp_cls): # noqa init_name = field.name.lstrip("_") result.append(ClassField(init_name=init_name, attr_name=field.name)) return result
else: DataclassFieldInspector = None