floris.type_dec#
Functions
|
Converts an input string or |
|
For a given iterable, convert the data to a numpy array and cast to floris_float_type. |
For the given dictionary, convert all the values to a numeric type. |
|
|
Helper function to generate iterable validators that will reduce the amount of boilerplate code. |
Classes
A Mixin class to allow for kwargs overloading when a data class doesn't have a specific parameter defined. |
- floris.type_dec.floris_array_converter(data)[source]#
For a given iterable, convert the data to a numpy array and cast to floris_float_type. If the input is a scalar, np.array() creates a 0-dimensional array, and this is not supported in FLORIS so this function raises an error.
- Return type:
ndarray
- Parameters:
data (Iterable) --
- Args:
data (Iterable): The input data to be converted to a Numpy array.
- Raises:
TypeError: Raises if the input data is not iterable. TypeError: Raises if the input data cannot be converted to a Numpy array.
- Returns:
np.ndarray: data converted to a Numpy array and cast to floris_float_type.
- floris.type_dec.floris_numeric_dict_converter(data)[source]#
For the given dictionary, convert all the values to a numeric type. If a value is a scalar, it will be converted to a float. If a value is an iterable, it will be converted to a Numpy array and cast to floris_float_type. If a value is not a numeric type, a TypeError will be raised.
- Return type:
dict
- Parameters:
data (dict) --
- Args:
data (dict): Dictionary of data to be converted to a numeric type.
- Returns:
dict: Dictionary with the same keys and all values converted to a numeric type.
- floris.type_dec.iter_validator(iter_type, item_types)[source]#
Helper function to generate iterable validators that will reduce the amount of boilerplate code.
- Return type:
Callable
- Parameters:
item_types (Any | Tuple[Any]) --
- Args:
iter_type (iterable): The type of iterable object that should be validated. item_types (Union[Any, Tuple[Any]]): The type or types of acceptable item types.
- Returns:
Callable: The attr.validators.deep_iterable iterable and instance validator.
- floris.type_dec.convert_to_path(fn)[source]#
Converts an input string or
pathlib.Path
object to a fully resolvedpathlib.Path
object. If the input is a string, it is converted to a pathlib.Path object. The function then checks if the path exists as an absolute path, a relative path from the script, or a relative path from the system location. If the path does not exist in any of these locations, a FileExistsError is raised.- Return type:
Path
- Parameters:
fn (str | Path) --
- Args:
fn (str | Path): The user input file path or file name.
- Raises:
- FileExistsError: Raised if
fn
is not able to be found as an absolute path, nor as a relative path.
TypeError: Raised if
fn
is neither astr
, nor apathlib.Path
.- FileExistsError: Raised if
- Returns:
Path: A resolved pathlib.Path object.
- class floris.type_dec.FromDictMixin[source]#
A Mixin class to allow for kwargs overloading when a data class doesn't have a specific parameter defined. This allows passing of larger dictionaries to a data class without throwing an error.
- classmethod from_dict(data)[source]#
Maps a data dictionary to an attr-defined class.
TODO: Add an error to ensure that either none or all the parameters are passed in
- Args:
- datadict
The data dictionary to be mapped.
- Returns:
- cls
The attr-defined class.
- Parameters:
data (dict) --
- as_dict()[source]#
Creates a YAML friendly dictionary that can be saved for future reloading. This dictionary will contain only Python types that can later be converted to their proper formats. See _attr_floris_filter for detail on which attributes are removed from the export.
- Return type:
dict
- Returns:
dict: All key, value pairs required for class recreation.