Исходный код EJIO.ctk_extender.widget.form.fields.base

## /ctk_extender/widget/form/fields/base.py

from abc import abstractmethod
from typing import Any, Protocol, runtime_checkable

__all__ = [
    'InputField',
]


[документация] @runtime_checkable class InputField(Protocol): """ Протокол, описывающий требования к элементам ввода внутри Form. Разрешен для рантайм-проверок через isinstance(). """ @property @abstractmethod def name(self) -> str: """Уникальное имя поля для формирования итогового словаря данных.""" raise NotImplementedError
[документация] @abstractmethod def get_value(self) -> Any: """Возвращает текущее значение, введенное пользователем.""" raise NotImplementedError
[документация] @abstractmethod def set_value(self, value: Any) -> None: """Программная установка значения в поле.""" raise NotImplementedError
[документация] @abstractmethod def clear(self) -> None: """Сброс значения поля в дефолтное состояние.""" raise NotImplementedError
[документация] def validate(self) -> str | None: """ Проводит внутреннюю валидацию поля. :return: Строка с ошибкой, если она есть, иначе None. """ return None