def dump_list()

in detection_rules/rule_formatter.py [0:0]


    def dump_list(self, v):
        """Dump a list more cleanly."""
        if all([isinstance(d, str) for d in v]) and sum(len(d) + 3 for d in v) > 100:
            dump = []
            for item in v:
                if len(item) > (120 - 4 - 3 - 3) and ' ' in item:
                    dump.append('    """\n{}    """'.format(wrap_text(item, block_indent=4, join=True)))
                else:
                    dump.append(' ' * 4 + self.dump_value(item))
            return '[\n{},\n]'.format(',\n'.join(dump))

        if v and all(isinstance(i, dict) for i in v):
            # Compact inline format for lists of dictionaries with proper indentation
            retval = "\n" + ' ' * 2 + "[\n"
            retval += ",\n".join([' ' * 4 + self.dump_inline_table(u).strip() for u in v])
            retval += "\n" + ' ' * 2 + "]\n"
            return retval

        return self._dump_flat_list(v)