dumper.py 文件源码

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

项目:yamlpal 作者: jorisroovers 项目源码 文件源码
def _install_customer_representers():
    """ Installs custom yaml representers so that yaml.dump() can use print out our custom classes like
    LineStr, LineDict, LineList """

    # TODO(jroovers): we need to support different yaml types like Float, Int, etc so that we don't print
    # everything like a string (i.e. wrap atomic type in quotes)

    def linestr_representer(dumper, data):
        node = dumper.represent_str(str(data))
        # If the linestring was entered as a string starting with |, we want to print it in the | again, because
        # otherwise pyyaml will insert too many newlines
        if hasattr(data, 'style') and '|' == data.style:
            node.style = data.style
        return node

    def lineint_representer(dumper, data):
        return dumper.represent_int(data)

    def linefloat_representer(dumper, data):
        return dumper.represent_float(data)

    def linedict_representer(dumper, data):
        return dumper.represent_dict(data)

    def linelist_representer(dumper, data):
        return dumper.represent_list(data)

    yaml.add_representer(LineInt, lineint_representer)
    yaml.add_representer(LineFloat, linefloat_representer)
    yaml.add_representer(LineStr, linestr_representer)
    yaml.add_representer(LineDict, linedict_representer)
    yaml.add_representer(LineList, linelist_representer)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号