Example #1
0
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)
Example #2
0
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)