Source code for record_convertor.package_settings.protocol

from dataclasses import Field
from typing import Any, ClassVar, Protocol

from .package_types import BaseRuleDict, FormatDateRuleDict, RulesDict

__all__ = [
    "RecordConvertorProtocol",
    "FieldConvertorProtocol",
    "DateFormatProtocol",
    "DataclassInstance",
]


[docs] class RecordConvertorProtocol(Protocol):
[docs] def convert(self, record: dict) -> dict: ...
[docs] def get_record_convertor_copy_with_new_rules(
self, new_rules: RulesDict ) -> "RecordConvertorProtocol": ...
[docs] class FieldConvertorProtocol(Protocol):
[docs] def convert_field(self, record: dict, conversion_rule: BaseRuleDict) -> dict: ...
[docs] class DateFormatProtocol(Protocol):
[docs] def format_date_field(
self, record: dict, conversion_rule: FormatDateRuleDict ) -> dict: ...
[docs] class DataclassInstance(Protocol): __dataclass_fields__: ClassVar[dict[str, Field[Any]]]