Reads YAML files

    :param filename:
        The full path to the YAML file
    :param add_constructor:
        A list of yaml constructors (loaders)
    :returns:
        Loaded YAML content as represented data structure

    .. seealso::
        :func:`util.structures.yaml_str_join`,
        :func:`util.structures.yaml_loc_join`

def read_yaml(filename, add_constructor=None):
    '''
    Reads YAML files

    :param filename:
        The full path to the YAML file
    :param add_constructor:
        A list of yaml constructors (loaders)
    :returns:
        Loaded YAML content as represented data structure

    .. seealso::
        :func:`util.structures.yaml_str_join`,
        :func:`util.structures.yaml_loc_join`
    '''

    y = read_file(filename)
    if add_constructor:
        if not isinstance(add_constructor, list):
            add_constructor = [add_constructor]
        for a in add_constructor:
            _yaml.add_constructor(*a)
    if y:
        return _yaml.load(y)