Files
Argenta/docs/root/api/command/validation_status.rst
T

79 lines
3.6 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
.. _root_api_command_validation_status:
ValidationStatus
================
``ValidationStatus`` — это перечисление, которое определяет состояние валидации флага. Его задача — предоставить стандартные константы для отображения результата проверки. ``ValidationStatus`` используется в атрибуте ``status`` класса ``InputFlag``.
``ValidationStatus`` содержит три значения: **VALID** (корректный флаг), **INVALID** (некорректный) и **UNDEFINED** (незарегистрированный).
.. note::
Статус валидации устанавливается автоматически при создании экземпляра ``InputFlag`` на основе правил, заданных в соответствующем ``Flag``.
.. seealso::
Документация по :ref:`InputFlag <root_api_command_input_flag>` — класс введённого флага, использующий ``ValidationStatus``.
Документация по :ref:`Flag <root_api_command_flag>` — класс флага с правилами валидации.
Документация по :ref:`PossibleValues <root_api_command_possible_values>` — типы допустимых значений.
-----
VALID
~~~~~
.. code-block:: python
:linenos:
ValidationStatus.VALID = 'VALID'
Указывает, что флаг и его значение **прошли** валидацию.
Флаги с этим статусом соответствуют правилам, заданным в ``possible_values`` соответствующего ``Flag``. Их можно безопасно использовать в логике приложения без дополнительных проверок.
**Условия получения статуса** ``VALID``:
* Флаг с ``PossibleValues.NEITHER`` передан без значения.
* Флаг с ``PossibleValues.ALL`` передан с любым значением или без него.
* Значение флага входит в список разрешённых.
* Значение флага соответствует регулярному выражению.
-----
INVALID
~~~~~~~
.. code-block:: python
:linenos:
ValidationStatus.INVALID = 'INVALID'
Указывает, что флаг или его значение **не прошли** валидацию.
Флаги с этим статусом нарушают правила, заданные в ``possible_values`` соответствующего ``Flag``. Их следует обрабатывать как ошибочные.
**Условия получения статуса** ``INVALID``:
* Флаг с ``PossibleValues.NEITHER`` передан со значением.
* Значение флага не входит в список разрешённых.
* Значение флага не соответствует регулярному выражению.
* Флаг требует значение, но передан без него.
-----
UNDEFINED
~~~~~~~~~
.. code-block:: python
:linenos:
ValidationStatus.UNDEFINED = 'UNDEFINED'
Указывает, что введённый флаг не был зарегистрирован в команде.
**Условия получения статуса** ``UNDEFINED``:
* Введённый флаг не найден среди зарегистрированных для данной команды.