mirror of
https://github.com/koloideal/Argenta.git
synced 2026-06-10 10:05:28 +03:00
add Enum PossibleValues for bool values as values of possible_values argument in Flag
This commit is contained in:
@@ -4,11 +4,11 @@ __all__ = [
|
||||
"UndefinedInputFlags",
|
||||
"ValidInputFlags",
|
||||
"InvalidValueInputFlags",
|
||||
"Flags",
|
||||
"Flags", "PossibleValues"
|
||||
]
|
||||
|
||||
|
||||
from argenta.command.flag.models import Flag, InputFlag
|
||||
from argenta.command.flag.models import Flag, InputFlag, PossibleValues
|
||||
from argenta.command.flag.flags.models import (
|
||||
UndefinedInputFlags,
|
||||
ValidInputFlags,
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
from dataclasses import dataclass
|
||||
from argenta.command.flag.models import Flag
|
||||
from argenta.command.flag.models import Flag, PossibleValues
|
||||
import re
|
||||
|
||||
|
||||
|
||||
@dataclass
|
||||
class PredefinedFlags:
|
||||
"""
|
||||
Public. A dataclass with predefined flags and most frequently used flags for quick use
|
||||
"""
|
||||
|
||||
HELP = Flag(name="help", possible_values=False)
|
||||
SHORT_HELP = Flag(name="H", prefix="-", possible_values=False)
|
||||
HELP = Flag(name="help", possible_values=PossibleValues.DISABLE)
|
||||
SHORT_HELP = Flag(name="H", prefix="-", possible_values=PossibleValues.DISABLE)
|
||||
|
||||
INFO = Flag(name="info", possible_values=False)
|
||||
SHORT_INFO = Flag(name="I", prefix="-", possible_values=False)
|
||||
INFO = Flag(name="info", possible_values=PossibleValues.DISABLE)
|
||||
SHORT_INFO = Flag(name="I", prefix="-", possible_values=PossibleValues.DISABLE)
|
||||
|
||||
ALL = Flag(name="all", possible_values=False)
|
||||
SHORT_ALL = Flag(name="A", prefix="-", possible_values=False)
|
||||
ALL = Flag(name="all", possible_values=PossibleValues.DISABLE)
|
||||
SHORT_ALL = Flag(name="A", prefix="-", possible_values=PossibleValues.DISABLE)
|
||||
|
||||
HOST = Flag(
|
||||
name="host", possible_values=re.compile(r"^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$")
|
||||
|
||||
@@ -1,6 +1,16 @@
|
||||
from enum import Enum
|
||||
from typing import Literal, Pattern
|
||||
|
||||
|
||||
|
||||
class PossibleValues(Enum):
|
||||
DISABLE: Literal[False] = False
|
||||
ALL: Literal[True] = True
|
||||
|
||||
def __eq__(self, other: bool) -> bool:
|
||||
return self.value == other
|
||||
|
||||
|
||||
class BaseFlag:
|
||||
def __init__(self, name: str, prefix: Literal["-", "--", "---"] = "--") -> None:
|
||||
"""
|
||||
@@ -43,7 +53,7 @@ class Flag(BaseFlag):
|
||||
self,
|
||||
name: str,
|
||||
prefix: Literal["-", "--", "---"] = "--",
|
||||
possible_values: list[str] | Pattern[str] | bool = True,
|
||||
possible_values: list[str] | Pattern[str] | PossibleValues = PossibleValues.ALL,
|
||||
) -> None:
|
||||
"""
|
||||
Public. The entity of the flag being registered for subsequent processing
|
||||
@@ -61,7 +71,7 @@ class Flag(BaseFlag):
|
||||
:param input_flag_value: The input flag value to validate
|
||||
:return: whether the entered flag is valid as bool
|
||||
"""
|
||||
if self.possible_values is False:
|
||||
if self.possible_values == PossibleValues.DISABLE:
|
||||
if input_flag_value is None:
|
||||
return True
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user