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
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)
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)
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)
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)
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)
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)
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)
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
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")
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")
def represent_sensitive_str(dumper, data): if _use_clear_text(dumper.vault): return SafeRepresenter.represent_str(dumper, data) return _represent_sensitive(dumper, data, "!vault")
def array_pres(dumper: SafeRepresenter, data): flat = str(list(data)) return dumper.represent_str(flat)
def track_pres(dumper: SafeRepresenter, data): return dumper.represent_str(str(data))