parselglossy.types.
type_fixers
= {'List[bool]': <function <lambda>>, 'List[complex]': <function <lambda>>, 'List[float]': <function <lambda>>, 'List[int]': <function <lambda>>, 'List[str]': <function <lambda>>, 'bool': <class 'bool'>, 'complex': <class 'complex'>, 'float': <class 'float'>, 'int': <class 'int'>, 'str': <class 'str'>}¶dictionary holding functions for type fixation.
Dict[str, Callable[[Any], Any]]
parselglossy.types.
type_matches
(value: Union[str, int, float, complex, List[bool], List[str], List[int], List[float], List[complex]], expected_type: str) → Optional[bool][source]¶Checks whether a value is of the expected type.
value (AllowedTypes) – Value whose type needs to be checked
expected_type (str) –
Notes
Allowed types T are: str, int, float, complex, bool, as well as List[T].
True if value has the type expected_type, otherwise False.
ValueError – If expected_type is not among the allowed types.
Notes
Complex numbers are a tad more fastidious, as they might be read in as strings. To avoid false negatives, we have a nasty hack, for which RDR will forever burn in hell. For complex and List[complex] we will re-run type checking after type casting if and only if:
We expected complex and List[complex].
We got a str or List[str].
The string are in the right format for the type casting operator.