mirror of
https://github.com/koloideal/Argenta.git
synced 2026-06-10 18:15:28 +03:00
110 lines
4.4 KiB
ReStructuredText
110 lines
4.4 KiB
ReStructuredText
.. _root_api_command_validation_status:
|
||
|
||
ValidationStatus
|
||
================
|
||
|
||
`ValidationStatus` — это перечисление (`Enum`), которое определяет состояние валидации флага. Его задача — предоставить стандартные константы для отображения результата проверки. `ValidationStatus` используется в атрибуте `status` класса `InputFlag`, чтобы сообщить, прошла ли валидация успешно.
|
||
|
||
`ValidationStatus` наследуется от `Enum` и содержит три значения: `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>` — типы допустимых значений.
|
||
|
||
-----
|
||
|
||
Значения enum
|
||
-------------
|
||
|
||
VALID
|
||
~~~~~
|
||
|
||
.. code-block:: python
|
||
:linenos:
|
||
|
||
ValidationStatus.VALID = 'VALID'
|
||
|
||
Указывает, что флаг и его значение **прошли** валидацию.
|
||
|
||
Флаги с этим статусом соответствуют правилам, заданным в `possible_values` соответствующего `Flag`. Их можно безопасно использовать в логике приложения без дополнительных проверок.
|
||
|
||
**Условия получения статуса** ``VALID``:
|
||
|
||
* Флаг с `PossibleValues.NEITHER` передан без значения.
|
||
* Флаг с `PossibleValues.ALL` передан с любым значением или без него.
|
||
* Значение флага входит в список разрешённых.
|
||
* Значение флага соответствует регулярному выражению.
|
||
|
||
**Пример использования:**
|
||
|
||
.. literalinclude:: ../../../code_snippets/validation_status/valid.py
|
||
:linenos:
|
||
:language: python
|
||
|
||
-----
|
||
|
||
INVALID
|
||
~~~~~~~
|
||
|
||
.. code-block:: python
|
||
:linenos:
|
||
|
||
ValidationStatus.INVALID = 'INVALID'
|
||
|
||
Указывает, что флаг или его значение **не прошли** валидацию.
|
||
|
||
Флаги с этим статусом нарушают правила, заданные в `possible_values` соответствующего `Flag`. Их следует обрабатывать как ошибочные.
|
||
|
||
**Условия получения статуса** ``INVALID``:
|
||
|
||
* Флаг с `PossibleValues.NEITHER` передан со значением.
|
||
* Значение флага не входит в список разрешённых.
|
||
* Значение флага не соответствует регулярному выражению.
|
||
* Флаг требует значение, но передан без него.
|
||
|
||
**Пример использования:**
|
||
|
||
.. literalinclude:: ../../../code_snippets/validation_status/invalid.py
|
||
:linenos:
|
||
:language: python
|
||
|
||
-----
|
||
|
||
UNDEFINED
|
||
~~~~~~~~~
|
||
|
||
.. code-block:: python
|
||
:linenos:
|
||
|
||
ValidationStatus.UNDEFINED = 'UNDEFINED'
|
||
|
||
Указывает, что введённый флаг не был зарегистрирован в команде.
|
||
|
||
**Условия получения статуса** ``UNDEFINED``:
|
||
|
||
* Введённый флаг не найден среди зарегистрированных для данной команды.
|
||
|
||
-----
|
||
|
||
|
||
Практические примеры
|
||
--------------------
|
||
|
||
Комплексный пример валидации
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
||
Пример демонстрирует использование всех статусов в реальном сценарии.
|
||
|
||
.. literalinclude:: ../../../code_snippets/validation_status/comprehensive.py
|
||
:linenos:
|
||
:language: python
|
||
|