lms.util.parse
1import typing 2 3def required_int(raw_value: typing.Any, name: str) -> int: 4 """ Parse and clean an int value. """ 5 6 if (raw_value is None): 7 raise ValueError(f"Value '{name}' is None, when it should be an int.") 8 9 return int(raw_value) 10 11def required_string(raw_value: typing.Any, name: str, **kwargs: typing.Any) -> str: 12 """ Parse and clean a string value. """ 13 14 value = optional_string(raw_value, **kwargs) 15 if (value is None): 16 raise ValueError(f"Value '{name}' is None, when it should be a string.") 17 18 return value 19 20def optional_string(raw_value: typing.Any, 21 strip: bool = True, 22 allow_empty: bool = False, 23 **kwargs: typing.Any) -> typing.Union[str, None]: 24 """ Parse and clean an optional string value. """ 25 26 if (raw_value is None): 27 return None 28 29 value = str(raw_value) 30 if (strip): 31 value = value.strip() 32 33 if ((not allow_empty) and (len(value) == 0)): 34 return None 35 36 return value 37 38def optional_float(raw_value: typing.Any, label: str = 'field', 39 **kwargs: typing.Any) -> typing.Union[float, None]: 40 """ Parse and clean an optional float value. """ 41 42 if (raw_value is None): 43 return None 44 45 if (isinstance(raw_value, (int, float))): 46 return float(raw_value) 47 48 str_value = str(raw_value).strip() 49 50 try: 51 return float(str_value) 52 except ValueError as ex: 53 raise ValueError(f"Unable to parse {label} '{raw_value}' ({type(raw_value)}) as a float.") from ex
def
required_int(raw_value: Any, name: str) -> int:
4def required_int(raw_value: typing.Any, name: str) -> int: 5 """ Parse and clean an int value. """ 6 7 if (raw_value is None): 8 raise ValueError(f"Value '{name}' is None, when it should be an int.") 9 10 return int(raw_value)
Parse and clean an int value.
def
required_string(raw_value: Any, name: str, **kwargs: Any) -> str:
12def required_string(raw_value: typing.Any, name: str, **kwargs: typing.Any) -> str: 13 """ Parse and clean a string value. """ 14 15 value = optional_string(raw_value, **kwargs) 16 if (value is None): 17 raise ValueError(f"Value '{name}' is None, when it should be a string.") 18 19 return value
Parse and clean a string value.
def
optional_string( raw_value: Any, strip: bool = True, allow_empty: bool = False, **kwargs: Any) -> Optional[str]:
21def optional_string(raw_value: typing.Any, 22 strip: bool = True, 23 allow_empty: bool = False, 24 **kwargs: typing.Any) -> typing.Union[str, None]: 25 """ Parse and clean an optional string value. """ 26 27 if (raw_value is None): 28 return None 29 30 value = str(raw_value) 31 if (strip): 32 value = value.strip() 33 34 if ((not allow_empty) and (len(value) == 0)): 35 return None 36 37 return value
Parse and clean an optional string value.
def
optional_float(raw_value: Any, label: str = 'field', **kwargs: Any) -> Optional[float]:
39def optional_float(raw_value: typing.Any, label: str = 'field', 40 **kwargs: typing.Any) -> typing.Union[float, None]: 41 """ Parse and clean an optional float value. """ 42 43 if (raw_value is None): 44 return None 45 46 if (isinstance(raw_value, (int, float))): 47 return float(raw_value) 48 49 str_value = str(raw_value).strip() 50 51 try: 52 return float(str_value) 53 except ValueError as ex: 54 raise ValueError(f"Unable to parse {label} '{raw_value}' ({type(raw_value)}) as a float.") from ex
Parse and clean an optional float value.