devctrl.gui.test.settings.TestSettings#

class TestSettings(f_bool: bool = True, f_int: int = 0, f_float: float = 0.0, f_str: str = '', f_opt_str: str | None = None, f_tuple: tuple[int, str, float | None]=(42, 'TEST', None), f_union: int | str | float | None = 'String default', f_union_2: int | str | float | None = 'String default', f_tuple_docs: tuple[int, str, float | None]=<factory>, f_nested: NestedTestSettings = <factory>, f_opt_nested: NestedTestSettings | None = <factory>, f_list_bool: list[bool] = <factory>, f_list_int: list[int] = <factory>, f_list_float: list[float] = <factory>, f_list_str: list[str] = <factory>, f_list_opt_str: list[str | None] = <factory>, f_list_nested: list[NestedTestSettings] = <factory>, f_dict_bool: dict[str, bool]=<factory>, f_dict_int: dict[str, int]=<factory>, f_dict_float: dict[str, float]=<factory>, f_dict_str: dict[str, str]=<factory>, f_dict_opt_str: dict[str, str | None]=<factory>, f_dict_nested: dict[int, ~devctrl.gui.test.settings.NestedTestSettings]=<factory>)[source]#

Bases: SettingsClass

SettingsClass containg one of every supported type.

This class exists to test the SettingsClassWidget.

bool int, float, str, Optional[str] and list and dict[str, X] variant of all of the above

Methods

as_dict

Convenience wrapper for dataclasses.asdict(self)

from_dict

Recursively construct a SettingsClass from a dictionary.

load_yaml

save_yaml

Attributes

__annotations__ = {'f_bool': <class 'bool'>, 'f_dict_bool': dict[str, bool], 'f_dict_float': dict[str, float], 'f_dict_int': dict[str, int], 'f_dict_nested': dict[int, devctrl.gui.test.settings.NestedTestSettings], 'f_dict_opt_str': dict[str, typing.Optional[str]], 'f_dict_str': dict[str, str], 'f_float': <class 'float'>, 'f_int': <class 'int'>, 'f_list_bool': list[bool], 'f_list_float': list[float], 'f_list_int': list[int], 'f_list_nested': list[devctrl.gui.test.settings.NestedTestSettings], 'f_list_opt_str': list[typing.Optional[str]], 'f_list_str': list[str], 'f_nested': <class 'devctrl.gui.test.settings.NestedTestSettings'>, 'f_opt_nested': typing.Optional[devctrl.gui.test.settings.NestedTestSettings], 'f_opt_str': typing.Optional[str], 'f_str': <class 'str'>, 'f_tuple': tuple[int, str, typing.Optional[float]], 'f_tuple_docs': tuple[int, str, typing.Optional[float]], 'f_union': typing.Union[int, str, float, NoneType], 'f_union_2': typing.Union[int, str, float, NoneType]}#
__dataclass_fields__ = {'f_bool': Field(name='f_bool',type=<class 'bool'>,default=True,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_dict_bool': Field(name='f_dict_bool',type=dict[str, bool],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'dict'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_dict_float': Field(name='f_dict_float',type=dict[str, float],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'dict'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_dict_int': Field(name='f_dict_int',type=dict[str, int],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'dict'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_dict_nested': Field(name='f_dict_nested',type=dict[int, devctrl.gui.test.settings.NestedTestSettings],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'dict'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_dict_opt_str': Field(name='f_dict_opt_str',type=dict[str, typing.Optional[str]],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'dict'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_dict_str': Field(name='f_dict_str',type=dict[str, str],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'dict'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_float': Field(name='f_float',type=<class 'float'>,default=0.0,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_int': Field(name='f_int',type=<class 'int'>,default=0,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_list_bool': Field(name='f_list_bool',type=list[bool],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'list'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_list_float': Field(name='f_list_float',type=list[float],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'list'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_list_int': Field(name='f_list_int',type=list[int],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'list'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_list_nested': Field(name='f_list_nested',type=list[devctrl.gui.test.settings.NestedTestSettings],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'list'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_list_opt_str': Field(name='f_list_opt_str',type=list[typing.Optional[str]],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'list'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_list_str': Field(name='f_list_str',type=list[str],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'list'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_nested': Field(name='f_nested',type=<class 'devctrl.gui.test.settings.NestedTestSettings'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'devctrl.gui.test.settings.NestedTestSettings'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_opt_nested': Field(name='f_opt_nested',type=typing.Optional[devctrl.gui.test.settings.NestedTestSettings],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'devctrl.gui.test.settings.NestedTestSettings'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_opt_str': Field(name='f_opt_str',type=typing.Optional[str],default=None,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_str': Field(name='f_str',type=<class 'str'>,default='',default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_tuple': Field(name='f_tuple',type=tuple[int, str, typing.Optional[float]],default=(42, 'TEST', None),default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_tuple_docs': Field(name='f_tuple_docs',type=tuple[int, str, typing.Optional[float]],default=<dataclasses._MISSING_TYPE object>,default_factory=<function TestSettings.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({'doc': 'Nested unions are flattened, so these metadatas are correct', 'metadatas': ({'doc': 'AN INTEGER, WHAT ELSE??', 'valid': (0, 42)}, {'doc': 'A string'}, {'doc': 'Docstring for an Optional[float]', 'metadatas': {'float': {'doc': 'Goat with the float', 'valid': (-42, 42)}, 'NoneType': {'doc': 'NOTHING TO SEE HERE'}}})}),kw_only=False,_field_type=_FIELD), 'f_union': Field(name='f_union',type=typing.Union[int, str, float, NoneType],default='String default',default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({'doc': 'Nested unions are flattened, so these metadatas are wrong (for float)', 'metadatas': {'int': {'doc': 'AN INTEGER, WHAT ELSE??', 'valid': (0, 42)}, 'str': {'doc': 'A string'}, 'Union': {'metadatas': {'float': {'doc': 'Goat with the float', 'valid': (-42, 42)}}}}}),kw_only=False,_field_type=_FIELD), 'f_union_2': Field(name='f_union_2',type=typing.Union[int, str, float, NoneType],default='String default',default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({'doc': 'Nested unions are flattened, so these metadatas are correct', 'metadatas': {'int': {'doc': 'AN INTEGER, WHAT ELSE??', 'valid': (0, 42)}, 'str': {'doc': 'A string'}, 'float': {'doc': 'Goat with the float', 'valid': (-42, 42)}, 'NoneType': {'doc': 'NOTHING TO SEE HERE'}}}),kw_only=False,_field_type=_FIELD)}#
__dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False)#
__dict__ = mappingproxy({'__module__': 'devctrl.gui.test.settings', '__firstlineno__': 17, '__annotations__': {'f_bool': <class 'bool'>, 'f_int': <class 'int'>, 'f_float': <class 'float'>, 'f_str': <class 'str'>, 'f_opt_str': typing.Optional[str], 'f_tuple': tuple[int, str, typing.Optional[float]], 'f_union': typing.Union[int, str, float, NoneType], 'f_union_2': typing.Union[int, str, float, NoneType], 'f_tuple_docs': tuple[int, str, typing.Optional[float]], 'f_nested': <class 'devctrl.gui.test.settings.NestedTestSettings'>, 'f_opt_nested': typing.Optional[devctrl.gui.test.settings.NestedTestSettings], 'f_list_bool': list[bool], 'f_list_int': list[int], 'f_list_float': list[float], 'f_list_str': list[str], 'f_list_opt_str': list[typing.Optional[str]], 'f_list_nested': list[devctrl.gui.test.settings.NestedTestSettings], 'f_dict_bool': dict[str, bool], 'f_dict_int': dict[str, int], 'f_dict_float': dict[str, float], 'f_dict_str': dict[str, str], 'f_dict_opt_str': dict[str, typing.Optional[str]], 'f_dict_nested': dict[int, devctrl.gui.test.settings.NestedTestSettings]}, '__doc__': 'SettingsClass containg one of every supported type.\n\nThis class exists to test the SettingsClassWidget.\n\nbool int, float, str, Optional[str]\nand list and dict[str, X] variant of all of the above\n', 'f_bool': True, 'f_int': 0, 'f_float': 0.0, 'f_str': '', 'f_opt_str': None, 'f_tuple': (42, 'TEST', None), 'f_union': 'String default', 'f_union_2': 'String default', '__static_attributes__': (), '__dataclass_params__': _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False), '__dataclass_fields__': {'f_bool': Field(name='f_bool',type=<class 'bool'>,default=True,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_int': Field(name='f_int',type=<class 'int'>,default=0,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_float': Field(name='f_float',type=<class 'float'>,default=0.0,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_str': Field(name='f_str',type=<class 'str'>,default='',default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_opt_str': Field(name='f_opt_str',type=typing.Optional[str],default=None,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_tuple': Field(name='f_tuple',type=tuple[int, str, typing.Optional[float]],default=(42, 'TEST', None),default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_union': Field(name='f_union',type=typing.Union[int, str, float, NoneType],default='String default',default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({'doc': 'Nested unions are flattened, so these metadatas are wrong (for float)', 'metadatas': {'int': {'doc': 'AN INTEGER, WHAT ELSE??', 'valid': (0, 42)}, 'str': {'doc': 'A string'}, 'Union': {'metadatas': {'float': {'doc': 'Goat with the float', 'valid': (-42, 42)}}}}}),kw_only=False,_field_type=_FIELD), 'f_union_2': Field(name='f_union_2',type=typing.Union[int, str, float, NoneType],default='String default',default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({'doc': 'Nested unions are flattened, so these metadatas are correct', 'metadatas': {'int': {'doc': 'AN INTEGER, WHAT ELSE??', 'valid': (0, 42)}, 'str': {'doc': 'A string'}, 'float': {'doc': 'Goat with the float', 'valid': (-42, 42)}, 'NoneType': {'doc': 'NOTHING TO SEE HERE'}}}),kw_only=False,_field_type=_FIELD), 'f_tuple_docs': Field(name='f_tuple_docs',type=tuple[int, str, typing.Optional[float]],default=<dataclasses._MISSING_TYPE object>,default_factory=<function TestSettings.<lambda>>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({'doc': 'Nested unions are flattened, so these metadatas are correct', 'metadatas': ({'doc': 'AN INTEGER, WHAT ELSE??', 'valid': (0, 42)}, {'doc': 'A string'}, {'doc': 'Docstring for an Optional[float]', 'metadatas': {'float': {'doc': 'Goat with the float', 'valid': (-42, 42)}, 'NoneType': {'doc': 'NOTHING TO SEE HERE'}}})}),kw_only=False,_field_type=_FIELD), 'f_nested': Field(name='f_nested',type=<class 'devctrl.gui.test.settings.NestedTestSettings'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'devctrl.gui.test.settings.NestedTestSettings'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_opt_nested': Field(name='f_opt_nested',type=typing.Optional[devctrl.gui.test.settings.NestedTestSettings],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'devctrl.gui.test.settings.NestedTestSettings'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_list_bool': Field(name='f_list_bool',type=list[bool],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'list'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_list_int': Field(name='f_list_int',type=list[int],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'list'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_list_float': Field(name='f_list_float',type=list[float],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'list'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_list_str': Field(name='f_list_str',type=list[str],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'list'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_list_opt_str': Field(name='f_list_opt_str',type=list[typing.Optional[str]],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'list'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_list_nested': Field(name='f_list_nested',type=list[devctrl.gui.test.settings.NestedTestSettings],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'list'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_dict_bool': Field(name='f_dict_bool',type=dict[str, bool],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'dict'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_dict_int': Field(name='f_dict_int',type=dict[str, int],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'dict'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_dict_float': Field(name='f_dict_float',type=dict[str, float],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'dict'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_dict_str': Field(name='f_dict_str',type=dict[str, str],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'dict'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_dict_opt_str': Field(name='f_dict_opt_str',type=dict[str, typing.Optional[str]],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'dict'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'f_dict_nested': Field(name='f_dict_nested',type=dict[int, devctrl.gui.test.settings.NestedTestSettings],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'dict'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}, '__replace__': <function _replace>, '__hash__': None, '__init__': <function TestSettings.__init__>, '__repr__': <function TestSettings.__repr__>, '__eq__': <function TestSettings.__eq__>, '__match_args__': ('f_bool', 'f_int', 'f_float', 'f_str', 'f_opt_str', 'f_tuple', 'f_union', 'f_union_2', 'f_tuple_docs', 'f_nested', 'f_opt_nested', 'f_list_bool', 'f_list_int', 'f_list_float', 'f_list_str', 'f_list_opt_str', 'f_list_nested', 'f_dict_bool', 'f_dict_int', 'f_dict_float', 'f_dict_str', 'f_dict_opt_str', 'f_dict_nested')})#
__eq__(other)#

Return self==value.

__firstlineno__ = 17#
__hash__ = None#
__init__(f_bool: bool = True, f_int: int = 0, f_float: float = 0.0, f_str: str = '', f_opt_str: str | None = None, f_tuple: tuple[int, str, float | None]=(42, 'TEST', None), f_union: int | str | float | None = 'String default', f_union_2: int | str | float | None = 'String default', f_tuple_docs: tuple[int, str, float | None]=<factory>, f_nested: NestedTestSettings = <factory>, f_opt_nested: NestedTestSettings | None = <factory>, f_list_bool: list[bool] = <factory>, f_list_int: list[int] = <factory>, f_list_float: list[float] = <factory>, f_list_str: list[str] = <factory>, f_list_opt_str: list[str | None] = <factory>, f_list_nested: list[NestedTestSettings] = <factory>, f_dict_bool: dict[str, bool]=<factory>, f_dict_int: dict[str, int]=<factory>, f_dict_float: dict[str, float]=<factory>, f_dict_str: dict[str, str]=<factory>, f_dict_opt_str: dict[str, str | None]=<factory>, f_dict_nested: dict[int, ~devctrl.gui.test.settings.NestedTestSettings]=<factory>) None#
__match_args__ = ('f_bool', 'f_int', 'f_float', 'f_str', 'f_opt_str', 'f_tuple', 'f_union', 'f_union_2', 'f_tuple_docs', 'f_nested', 'f_opt_nested', 'f_list_bool', 'f_list_int', 'f_list_float', 'f_list_str', 'f_list_opt_str', 'f_list_nested', 'f_dict_bool', 'f_dict_int', 'f_dict_float', 'f_dict_str', 'f_dict_opt_str', 'f_dict_nested')#
__module__ = 'devctrl.gui.test.settings'#
__or__(other)#

Merge with another settings class or a dictionary.

__replace__(**changes)#
__repr__()#

Return repr(self).

__static_attributes__ = ()#
__weakref__#

list of weak references to the object

as_dict() dict#

Convenience wrapper for dataclasses.asdict(self)

f_bool: bool = True#
f_dict_bool: dict[str, bool]#
f_dict_float: dict[str, float]#
f_dict_int: dict[str, int]#
f_dict_nested: dict[int, NestedTestSettings]#
f_dict_opt_str: dict[str, str | None]#
f_dict_str: dict[str, str]#
f_float: float = 0.0#
f_int: int = 0#
f_list_bool: list[bool]#
f_list_float: list[float]#
f_list_int: list[int]#
f_list_nested: list[NestedTestSettings]#
f_list_opt_str: list[str | None]#
f_list_str: list[str]#
f_nested: NestedTestSettings#
f_opt_nested: NestedTestSettings | None#
f_opt_str: str | None = None#
f_str: str = ''#
f_tuple: tuple[int, str, float | None] = (42, 'TEST', None)#
f_tuple_docs: tuple[int, str, float | None]#
f_union: int | str | float | None = 'String default'#
f_union_2: int | str | float | None = 'String default'#
classmethod from_dict(data: dict)#

Recursively construct a SettingsClass from a dictionary.

If the value of a field is another SettingsClass, from_dict() will be called for that field as well. Handled are:

  • SettingsClass

  • list[SettingsClass]

  • dict[<any>, SettingsClass]

  • all of the above as Optional (Union with None)

  • a Union with any handled types

Raises:
  • ValueError – If data contains a value that has the wrong type for the field of cls (ONLY if the type is a subclass of SettingsClass! Other types are not enforced)

  • KeyError – If data contains a key that is not a field name of cls

classmethod load_yaml(yaml_path: str, loader=<class 'yaml.loader.Loader'>)#
save_yaml(yaml_path: str)#