YAMLHandler
- class great_expectations.core.yaml_handler.YAMLHandler#
Facade class designed to be a lightweight wrapper around YAML serialization.
For all YAML-related activities in Great Expectations, this is the entry point.
Note that this is meant to be library agnostic - the underlying implementation does not matter as long as we fulfill the following contract:
load
dump
Typical usage example:
simple_yaml: str = '''
name: test
class_name: test_class
module_name: test.test_class
'''
yaml_handler = YAMLHandler()
res: dict = yaml_handler.load(simple_yaml)
example_dict: dict = dict(abc=1)
yaml_handler.dump(example_dict)dump(data: dict, stream: io.TextIOWrapper | io.StringIO | Path | None = None, **kwargs) str | None #
Converts a Python dictionary into a YAML string.
Dump code has been adopted from: Example.Html
>>> data = {'foo': 'bar'}
>>> yaml_str = yaml_handler.dump(data)
>>> print(yaml_str)
foo:
bar:- Parameters:
data – The dictionary to serialize into a Python object.
stream – The output stream to modify. If not provided, we default to io.StringIO.
kwargs – Additional key-word arguments to pass to underlying yaml dump method.
- Returns:
If no stream argument is provided, the str that results from
_handler.dump()
. Otherwise, None as the_handler.dump()
works in place and will exercise the handler accordingly.
- load(stream: io.TextIOWrapper | str)dict[str, JSONValues] #
Converts a YAML input stream into a Python dictionary.
Example:
import pathlib
yaml_handler = YAMLHandler()
my_file_str = pathlib.Path("my_file.yaml").read_text()
dict_from_yaml = yaml_handler.load(my_file_str)- Parameters:
stream – The input stream to read in. Although this function calls ruamel's load(), we use a slightly more restrictive type-hint than ruamel (which uses Any). This is in order to tightly bind the behavior of the YamlHandler class with expected YAML-related activities of Great Expectations.
- Returns:
The deserialized dictionary form of the input stream.