functions.py 文件源码

python
阅读 25 收藏 0 点赞 0 评论 0

项目:related 作者: genomoncology 项目源码 文件源码
def to_yaml(obj, stream=None, dumper_cls=yaml.Dumper, default_flow_style=False,
            **kwargs):
    """
    Serialize a Python object into a YAML stream with OrderedDict and
    default_flow_style defaulted to False.

    If stream is None, return the produced string instead.

    OrderedDict reference: http://stackoverflow.com/a/21912744
    default_flow_style reference: http://stackoverflow.com/a/18210750

    :param data: python object to be serialized
    :param stream: to be serialized to
    :param Dumper: base Dumper class to extend.
    :param kwargs: arguments to pass to to_dict
    :return: stream if provided, string if stream is None
    """

    class OrderedDumper(dumper_cls):
        pass

    def dict_representer(dumper, data):
        return dumper.represent_mapping(
            yaml.resolver.BaseResolver.DEFAULT_MAPPING_TAG,
            data.items())

    OrderedDumper.add_representer(OrderedDict, dict_representer)

    obj_dict = to_dict(obj, **kwargs)

    return yaml.dump(obj_dict, stream, OrderedDumper,
                     default_flow_style=default_flow_style)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号