refactoring

This commit is contained in:
Devaev Maxim
2020-09-08 12:32:16 +03:00
parent d932a937ca
commit d528a3002e
3 changed files with 20 additions and 13 deletions

View File

@@ -23,6 +23,7 @@
import re
from typing import List
from typing import Set
from typing import Mapping
from typing import Sequence
from typing import Callable
@@ -62,13 +63,19 @@ def check_not_none_string(arg: Any, name: str, strip: bool=True) -> str:
return arg
def check_in_list(arg: Any, name: str, variants: Union[Sequence, Mapping]) -> Any:
def check_in_list(arg: Any, name: str, variants: Union[Sequence, Mapping, Set]) -> Any:
if arg not in variants:
raise_error(arg, name)
return arg
def check_string_in_list(arg: Any, name: str, variants: Union[Sequence[str], Mapping[str, Any]], lower: bool=True) -> str:
def check_string_in_list(
arg: Any,
name: str,
variants: Union[Sequence[str], Mapping[str, Any], Set[str]],
lower: bool=True,
) -> str:
arg = check_not_none_string(arg, name)
if lower:
arg = arg.lower()

View File

@@ -21,6 +21,8 @@
from typing import List
from typing import Set
from typing import Optional
from typing import Any
from ..keyboard.mappings import KEYMAP
@@ -92,9 +94,12 @@ def valid_hid_mouse_wheel(arg: Any) -> int:
# =====
def valid_ugpio_driver(arg: Any) -> str:
def valid_ugpio_driver(arg: Any, variants: Optional[Set[str]]=None) -> str:
name = "GPIO driver"
return check_len(check_re_match(arg, name, r"^[a-zA-Z_][a-zA-Z0-9_-]*$"), name, 255)
arg = check_len(check_re_match(arg, name, r"^[a-zA-Z_][a-zA-Z0-9_-]*$"), name, 255)
if variants is not None:
arg = check_string_in_list(arg, f"configured {name}", variants)
return arg
def valid_ugpio_mode(arg: Any) -> str: