From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 2E2601F5 for ; Wed, 20 Sep 2017 11:41:25 +0200 (CEST) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Sep 2017 02:41:24 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,420,1500966000"; d="scan'208";a="153451293" Received: from dpdk-test47.sh.intel.com ([10.67.118.152]) by fmsmga005.fm.intel.com with ESMTP; 20 Sep 2017 02:41:23 -0700 From: wang fei To: dts@dpdk.org Cc: wang fei Date: Wed, 20 Sep 2017 20:13:51 +0800 Message-Id: <1505909631-49915-1-git-send-email-feix.y.wang@intel.com> X-Mailer: git-send-email 2.7.4 Subject: [dts] [Patch V1] framework/texttable.py: Add the class of supporting trex sent this patch on behalf of chen hongli X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Sep 2017 09:41:26 -0000 Signed-off-by: wang fei --- framework/texttable.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/framework/texttable.py b/framework/texttable.py index 2f37a0c..f423bf7 100644 --- a/framework/texttable.py +++ b/framework/texttable.py @@ -92,6 +92,7 @@ Brian Peterson: import sys import string +import re from functools import reduce try: @@ -122,6 +123,34 @@ def len(iterable): except: return iterable.__len__() +TEXT_CODES = {'bold': {'start': '\x1b[1m', + 'end': '\x1b[22m'}, + 'cyan': {'start': '\x1b[36m', + 'end': '\x1b[39m'}, + 'blue': {'start': '\x1b[34m', + 'end': '\x1b[39m'}, + 'red': {'start': '\x1b[31m', + 'end': '\x1b[39m'}, + 'magenta': {'start': '\x1b[35m', + 'end': '\x1b[39m'}, + 'green': {'start': '\x1b[32m', + 'end': '\x1b[39m'}, + 'yellow': {'start': '\x1b[33m', + 'end': '\x1b[39m'}, + 'underline': {'start': '\x1b[4m', + 'end': '\x1b[24m'}} + +class TextCodesStripper: + keys = [re.escape(v['start']) for k,v in TEXT_CODES.items()] + keys += [re.escape(v['end']) for k,v in TEXT_CODES.items()] + pattern = re.compile("|".join(keys)) + + @staticmethod + def strip (s): + return re.sub(TextCodesStripper.pattern, '', s) + +def ansi_len (iterable): + return len(TextCodesStripper.strip(iterable)) class ArraySizeError(Exception): -- 2.7.4