示例#1
0
def add_multi_representer(data_type,
                          multi_representer,
                          Dumper=None,
                          representer=Representer):
    # type: (Any, Any, Any, Any) -> None
    """
    Add a representer for the given type.
    multi_representer is a function accepting a Dumper instance
    and an instance of the given data type or subtype
    and producing the corresponding representation node.
    """
    if Dumper is None:
        representer.add_multi_representer(data_type, multi_representer)
    else:
        if hasattr(Dumper, 'add_multi_representer'):
            Dumper.add_multi_representer(data_type, multi_representer)
            return
        if issubclass(Dumper, BaseDumper):
            BaseRepresenter.add_multi_representer(data_type, multi_representer)
        elif issubclass(Dumper, SafeDumper):
            SafeRepresenter.add_multi_representer(data_type, multi_representer)
        elif issubclass(Dumper, Dumper):
            Representer.add_multi_representer(data_type, multi_representer)
        elif issubclass(Dumper, RoundTripDumper):
            RoundTripRepresenter.add_multi_representer(data_type,
                                                       multi_representer)
        else:
            raise NotImplementedError
示例#2
0
 def __init__(self,
              stream,
              default_style=None,
              default_flow_style=None,
              canonical=None,
              indent=None,
              width=None,
              allow_unicode=None,
              line_break=None,
              encoding=None,
              explicit_start=None,
              explicit_end=None,
              version=None,
              tags=None,
              block_seq_indent=None,
              top_level_colon_align=None,
              prefix_colon=None):
     # type: (StreamType, Any, Any, Any, bool, Union[None, int], Union[None, int], bool, Any, Any, Union[None, bool], Union[None, bool], Any, Any, Any, Any, Any) -> None   # NOQA
     self._emitter = self._serializer = self._representer = self
     CEmitter.__init__(self,
                       stream,
                       canonical=canonical,
                       indent=indent,
                       width=width,
                       encoding=encoding,
                       allow_unicode=allow_unicode,
                       line_break=line_break,
                       explicit_start=explicit_start,
                       explicit_end=explicit_end,
                       version=version,
                       tags=tags)
     SafeRepresenter.__init__(self,
                              default_style=default_style,
                              default_flow_style=default_flow_style)
     Resolver.__init__(self)
示例#3
0
 def __init__(self,
              stream,
              default_style=None,
              default_flow_style=None,
              canonical=None,
              indent=None,
              width=None,
              allow_unicode=None,
              line_break=None,
              encoding=None,
              explicit_start=None,
              explicit_end=None,
              version=None,
              tags=None,
              block_seq_indent=None,
              top_level_colon_align=None,
              prefix_colon=None):
     Emitter.__init__(self,
                      stream,
                      canonical=canonical,
                      indent=indent,
                      width=width,
                      allow_unicode=allow_unicode,
                      line_break=line_break,
                      block_seq_indent=block_seq_indent)
     Serializer.__init__(self,
                         encoding=encoding,
                         explicit_start=explicit_start,
                         explicit_end=explicit_end,
                         version=version,
                         tags=tags)
     SafeRepresenter.__init__(self,
                              default_style=default_style,
                              default_flow_style=default_flow_style)
     Resolver.__init__(self)
示例#4
0
文件: yaml.py 项目: nhtzr/homebin
def represent_multiline_string(self, data):
    if isinstance(data, str) and '\n' in data:
        return SafeRepresenter.represent_scalar(self,
                                                u'tag:yaml.org,2002:str',
                                                data,
                                                style='|')
    if ':' in data:
        return SafeRepresenter.represent_scalar(self,
                                                u'tag:yaml.org,2002:str',
                                                data,
                                                style=r"'")
    return SafeRepresenter.represent_str(self, data)
示例#5
0
 def __init__(self, stream,
              default_style=None, default_flow_style=None,
              canonical=None, indent=None, width=None,
              allow_unicode=None, line_break=None,
              encoding=None, explicit_start=None, explicit_end=None,
              version=None, tags=None, block_seq_indent=None,
              top_level_colon_align=None, prefix_colon=None):
     CEmitter.__init__(self, stream, canonical=canonical,
                       indent=indent, width=width, encoding=encoding,
                       allow_unicode=allow_unicode, line_break=line_break,
                       explicit_start=explicit_start,
                       explicit_end=explicit_end,
                       version=version, tags=tags)
     SafeRepresenter.__init__(self, default_style=default_style,
                              default_flow_style=default_flow_style)
     Resolver.__init__(self)
示例#6
0
 def __init__(
     self,
     stream,
     default_style=None,
     default_flow_style=None,
     canonical=None,
     indent=None,
     width=None,
     allow_unicode=None,
     line_break=None,
     encoding=None,
     explicit_start=None,
     explicit_end=None,
     version=None,
     tags=None,
     block_seq_indent=None,
     top_level_colon_align=None,
     prefix_colon=None,
 ):
     # type: (StreamType, Any, Any, Optional[bool], Optional[int], Optional[int], Optional[bool], Any, Any, Optional[bool], Optional[bool], Any, Any, Any, Any, Any) -> None  # NOQA
     Emitter.__init__(
         self,
         stream,
         canonical=canonical,
         indent=indent,
         width=width,
         allow_unicode=allow_unicode,
         line_break=line_break,
         block_seq_indent=block_seq_indent,
         dumper=self,
     )
     Serializer.__init__(
         self,
         encoding=encoding,
         explicit_start=explicit_start,
         explicit_end=explicit_end,
         version=version,
         tags=tags,
         dumper=self,
     )
     SafeRepresenter.__init__(
         self,
         default_style=default_style,
         default_flow_style=default_flow_style,
         dumper=self,
     )
     Resolver.__init__(self, loadumper=self)
示例#7
0
def track_pres(dumper: SafeRepresenter, data: BmsTrack):
    data = no_underscore(data)

    k = 'addr'
    if k in data:
        data[k] = hex(data[k])

    return dumper.represent_dict(data)
示例#8
0
def file_pres(dumper: SafeRepresenter, data: BmsFile):
    data = no_underscore(data)

    k = 'at'
    if k in data:
        v = data[k]
        data[k] = {'$%04X'%addr: event for addr,event in v.items()}

    return dumper.represent_dict(data)
示例#9
0
def event_pres(dumper: SafeRepresenter, data):

    data = dict(data)
    for k in ['addr', 'next']:
        if k in data:
            data[k] = hex(data[k])

    tag = data['type']
    # print(tag)
    # print(without(data, 'type'))

    rep = dumper.represent_mapping(
        tag,
        without(data, 'type')
    )

    # print(type(rep))
    return rep
示例#10
0
def represent_sensitive_bytes(dumper, data):
    if _use_clear_text(dumper.vault):
        return SafeRepresenter.represent_binary(dumper, data)
    return _represent_sensitive(dumper, data, "!vault-binary")
示例#11
0
def represent_sensitive_dict(dumper, data):
    if _use_clear_text(dumper.vault):
        return SafeRepresenter.represent_dict(dumper, data)
    return _represent_sensitive(dumper, json.dumps(data, sort_keys=True),
                                "!vault-json")
示例#12
0
def represent_sensitive_str(dumper, data):
    if _use_clear_text(dumper.vault):
        return SafeRepresenter.represent_str(dumper, data)
    return _represent_sensitive(dumper, data, "!vault")
示例#13
0
def array_pres(dumper: SafeRepresenter, data):
    flat = str(list(data))
    return dumper.represent_str(flat)
示例#14
0
def track_pres(dumper: SafeRepresenter, data):
    return dumper.represent_str(str(data))