Source code for imednet.core.endpoint.mixins.parsing

from __future__ import annotations

from typing import Any, Generic, Type, TypeVar

from imednet.core.parsing import get_model_parser
from imednet.models.json_base import JsonModel

T = TypeVar("T", bound=JsonModel)


[docs]class ParsingMixin(Generic[T]): """Mixin implementing model parsing helpers.""" MODEL: Type[T] def _parse_item(self, item: Any) -> T: """ Parse a single item into the model type. This method can be overridden by subclasses for custom parsing logic. By default, it uses the centralized parsing strategy. Args: item: Raw data to parse Returns: Parsed model instance """ parse_func = get_model_parser(self.MODEL) return parse_func(item)