26 lines
660 B
Python
26 lines
660 B
Python
from typing import Any, Optional
|
|
|
|
|
|
def is_integer_between(
|
|
x: int, mn: Optional[int] = None, mx: Optional[int] = None, optional: bool = False
|
|
) -> bool:
|
|
if optional and x is None:
|
|
return True
|
|
try:
|
|
if mn is not None and mx is not None:
|
|
return int(x) >= mn and int(x) < mx
|
|
elif mn is not None:
|
|
return int(x) >= mn
|
|
elif mx is not None:
|
|
return int(x) < mx
|
|
else:
|
|
return True
|
|
except ValueError:
|
|
return False
|
|
|
|
|
|
def is_one_of(x: Any, choices: Any, optional: bool = False) -> bool:
|
|
if optional and x is None:
|
|
return True
|
|
return x in choices
|