Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 6 additions & 10 deletions sqlathanor/utilities.py
Original file line number Diff line number Diff line change
Expand Up @@ -382,16 +382,16 @@ def are_dicts_equivalent(*args, **kwargs):


def parse_yaml(input_data,
deserialize_function = None,
deserialize_function = yaml.safe_load,
**kwargs):
"""De-serialize YAML data into a Python :class:`dict <python:dict>` object.

:param input_data: The YAML data to de-serialize.
:type input_data: :class:`str <python:str>` / Path-like object

:param deserialize_function: Optionally override the default YAML deserializer.
Defaults to :obj:`None <python:None>`, which calls the default ``yaml.safe_load()``
function from the `PyYAML <https://github.com/yaml/pyyaml>`_ library.
Defaults to :obj:`yaml.safe_load <python:function>` from the
`PyYAML <https://github.com/yaml/pyyaml>`_ library.

.. note::

Expand All @@ -417,11 +417,7 @@ def parse_yaml(input_data,
if checkers.is_file(input_data):
is_file = True

if deserialize_function is None and not is_file:
deserialize_function = yaml.safe_load
elif deserialize_function is None and is_file:
deserialize_function = yaml.safe_load
else:
if deserialize_function:
if checkers.is_callable(deserialize_function) is False:
raise ValueError(
'deserialize_function (%s) is not callable' % deserialize_function
Expand All @@ -437,10 +433,10 @@ def parse_yaml(input_data,
raise DeserializationError('input_data is not a valid string')

if not is_file:
from_yaml = yaml.safe_load(input_data, **kwargs)
from_yaml = deserialize_function(input_data, **kwargs)
else:
with open(input_data, 'r') as input_file:
from_yaml = yaml.safe_load(input_file, **kwargs)
from_yaml = deserialize_function(input_file, **kwargs)

return from_yaml

Expand Down