class CompilingFile(object): def __init__(self, context, fp, ref_controller, **kwargs): self.fp = fp self.ref_controller = ref_controller self.kwargs = kwargs self.revealer = Revealer(ref_controller) def write(self, data): """write data into file""" reveal = self.kwargs.get("reveal", False) target_name = self.kwargs.get("target_name", None) if reveal: self.fp.write(self.revealer.reveal_raw(data)) else: self.fp.write( self.revealer.compile_raw(data, target_name=target_name)) def write_yaml(self, obj): """recursively compile or reveal refs and convert obj to yaml and write to file""" indent = self.kwargs.get("indent", 2) reveal = self.kwargs.get("reveal", False) target_name = self.kwargs.get("target_name", None) if reveal: obj = self.revealer.reveal_obj(obj) else: obj = self.revealer.compile_obj(obj, target_name=target_name) if obj: if isinstance(obj, Mapping): yaml.dump(obj, stream=self.fp, indent=indent, Dumper=PrettyDumper, default_flow_style=False) else: yaml.dump_all(obj, stream=self.fp, indent=indent, Dumper=PrettyDumper, default_flow_style=False) logger.debug("Wrote %s", self.fp.name) else: logger.debug("%s is Empty, skipped writing output", self.fp.name) def write_json(self, obj): """recursively hash or reveal refs and convert obj to json and write to file""" indent = self.kwargs.get("indent", 2) reveal = self.kwargs.get("reveal", False) target_name = self.kwargs.get("target_name", None) if reveal: obj = self.revealer.reveal_obj(obj) else: obj = self.revealer.compile_obj(obj, target_name=target_name) if obj: json.dump(obj, self.fp, indent=indent) logger.debug("Wrote %s", self.fp.name) else: logger.debug("%s is Empty, skipped writing output", self.fp.name)
class CompilingFile(object): def __init__(self, context, fp, ref_controller, **kwargs): self.fp = fp self.ref_controller = ref_controller self.kwargs = kwargs self.revealer = Revealer(ref_controller) def write(self, data): """write data into file""" reveal = self.kwargs.get('reveal', False) target_name = self.kwargs.get('target_name', None) if reveal: self.fp.write(self.revealer.reveal_raw(data)) else: self.fp.write( self.revealer.compile_raw(data, target_name=target_name)) def write_yaml(self, obj): """recursively compile or reveal refs and convert obj to yaml and write to file""" indent = self.kwargs.get('indent', 2) reveal = self.kwargs.get('reveal', False) target_name = self.kwargs.get('target_name', None) if reveal: self.revealer.reveal_obj(obj) else: self.revealer.compile_obj(obj, target_name=target_name) yaml.dump(obj, stream=self.fp, indent=indent, Dumper=PrettyDumper, default_flow_style=False) def write_json(self, obj): """recursively hash or reveal refs and convert obj to json and write to file""" indent = self.kwargs.get('indent', 2) reveal = self.kwargs.get('reveal', False) target_name = self.kwargs.get('target_name', None) if reveal: self.revealer.reveal_obj(obj) else: self.revealer.compile_obj(obj, target_name=target_name) json.dump(obj, self.fp, indent=indent, escape_forward_slashes=False) def write_str(self, obj): """recursively hash or reveal refs and convert obj to str and write to file""" reveal = self.kwargs.get('reveal', False) target_name = self.kwargs.get('target_name', None) if reveal: self.revealer.reveal_obj(obj) else: self.revealer.compile_obj(obj, target_name=target_name) #json.dump(obj, self.fp, indent=indent, escape_forward_slashes=False) self.fp.write(obj)