コード例 #1
0
ファイル: visual_aides.py プロジェクト: he0x/rekall
    def render_full(self, target, **options):
        column_headers = []
        row_headers = []

        for row_header in target.row_headers or ():
            row_headers.append(text.Cell(row_header, align="r", padding=1))

        # If we're prepending row headers we need an extra column on the left.
        if row_headers:
            column_headers.append(text.Cell(target.caption or "-", padding=1))
        for column_header in target.column_headers:
            column_headers.append(
                text.Cell(column_header, align="c", padding=1))

        rows = [text.JoinedCell(*column_headers, tablesep="")]
        for idx, row in enumerate(target.rows):
            cells = []
            if row_headers:
                cells.append(row_headers[idx])

            for cell in row:
                fg = cell.get("fg")
                bg = cell.get("bg")
                heat = cell.get("heat")
                if heat and not bg:
                    bg = colors.HeatToRGB(heat, greyscale=target.greyscale)

                bg = colors.RGBToXTerm(*bg) if bg else None

                if bg and not fg:
                    fg = colors.XTermTextForBackground(bg)

                cells.append(
                    text.Cell(value=unicode(cell.get("value", "-")),
                              highlights=[
                                  dict(bg=bg,
                                       fg=fg,
                                       start=0,
                                       end=-1,
                                       bold=True)
                              ],
                              colorizer=self.renderer.colorizer,
                              padding=1))

            rows.append(text.JoinedCell(*cells, tablesep="", align="l"))

        return text.StackedCell(*rows, align="l")
コード例 #2
0
    def render_row(self, target, **_):
        column_names = [x["name"] for x in target.fields]
        table = text.TextTable(columns=target.fields,
                               renderer=self.renderer,
                               session=self.session)

        if not target.results:
            return text.Cell("")

        result = [
            text.JoinedCell(*[text.Cell(x) for x in column_names]),
            text.JoinedCell(*[text.Cell("-" * len(x)) for x in column_names])
        ]

        for row in target.results:
            ordered_row = []
            for column in column_names:
                ordered_row.append(row.get(column))

            result.append(table.get_row(*ordered_row))

        result = text.StackedCell(*result)
        return result
コード例 #3
0
ファイル: base_objects.py プロジェクト: methos2016/rekall
    def render_row(self, item, **options):
        result = []
        for key, value in item.iteritems():
            result.append(self.table.get_row(key, value))

        return text.StackedCell(*result)