def run(self, config, client, options):
        report = self.get_report(config, client, options)

        if options.limit is not None:
            report.set_data_limit(int(options.limit))

        if options.sort is not None:
            reverse = False
            offset = options.sort.find(":")
            if offset != -1:
                if options.sort[offset + 1:] == "rev":
                    reverse = True
                options.sort = options.sort[0:offset]
            report.set_sort_column(options.sort, reverse)

        if len(options.field) > 0:
            for col in report.get_columns():
                col.visible = False
            for key in options.field:
                name = key
                offset = name.find(":")
                truncate = None
                if offset != -1:
                    truncate = int(name[offset+1:])
                    name = name[0:offset]
                col = report.get_column(name)
                if col is None:
                    raise Exception(name % "Unknown field '%s'")
                if truncate is not None:
                    col.truncate = truncate
                col.visible = True

        report.display(options.mode)
dataset/ETHPy150Open berrange/gerrymander/gerrymander/commands.py/CommandReportTable.run/swapped operands of `%`