From ac674f41cb22e25d6c8826955feccfed30264ded Mon Sep 17 00:00:00 2001 From: Koen Lageveen Date: Sat, 3 Aug 2019 10:03:41 +0200 Subject: [PATCH] Revert "add first very naive vt100 escape sequence match" 274a31594446ebd1f54c9712085b37ff106d6249 Because it can be a list (31;41;42), it can't be handled like the others (i.e. a single color matched by regex). Instead we would need a little parser that renders multiple hints: for each color in the list. --- lib/ansi_vt100.py | 93 ----------------------------------------------- lib/util.py | 25 +++---------- 2 files changed, 5 insertions(+), 113 deletions(-) delete mode 100755 lib/ansi_vt100.py diff --git a/lib/ansi_vt100.py b/lib/ansi_vt100.py deleted file mode 100755 index 011dbb7..0000000 --- a/lib/ansi_vt100.py +++ /dev/null @@ -1,93 +0,0 @@ -""" -ANSI/VT100 color escape sequences for 4 bit colors. - -A simple escape sequence to hex map of colors. -Assumes "default background" to be black and "foreground" white. -Colors taken from Terminal.app defaults. - -https://en.m.wikipedia.org/wiki/ANSI_escape_code#Colors -""" -code2hex_map = { - '39': '#ffffff', # default foreground - '49': '#000000', # default background - - '30': '#000000', # black - '40': '#000000', - - '31': '#990000', # red - '41': '#990000', - - '32': '#00a600', # green - '42': '#00a600', - - '33': '#999900', # yellow - '43': '#999900', - - '34': '#0000b2', # blue - '44': '#0000b2', - - '35': '#b200b2', # magenta - '45': '#b200b2', - - '36': '#00a6b2', # cyan - '46': '#00a6b2', - - '37': '#ffffff', # white - '47': '#ffffff', - - '90': '#666666', # bright black - '100': '#666666', - '1;30': '#666666', # bold + black - '1;40': '#666666', - - '91': '#e50000', # bright red - '101': '#e50000', - '1;31': '#e50000', # bold + red - '1;41': '#e50000', - - '92': '#00d900', # bright green - '102': '#00d900', - '1;32': '#00d900', # bold + green - '1;42': '#00d900', - - '93': '#e5e500', # bright yellow - '103': '#e5e500', - '1;33': '#e5e500', # bold + yellow - '1;43': '#e5e500', - - '94': '#0000ff', # bright blue - '104': '#0000ff', - '1;34': '#0000ff', # bold + blue - '1;44': '#0000ff', - - '95': '#e500e5', # bright magenta - '105': '#e500e5', - '1;35': '#e500e5', # bold + magenta - '1;45': '#e500e5', - - '96': '#00e5e5', # bright cyan - '106': '#00e5e5', - '1;36': '#00e5e5', # bold + cyan - '1;46': '#00e5e5', - - '97': '#e5e5e5', # bright white - '107': '#e5e5e5', - '1;37': '#e5e5e5', # bold + white - '1;47': '#e5e5e5', -} - -hex2code_map = dict([(v, k) for k, v in code2hex_map.items()]) - - -def hex2code(value): - """Convert CSS hex to webcolor name.""" - - return hex2code_map.get(value.lower(), None) - - -def code2hex(name): - """Convert webcolor name to CSS hex.""" - - print(name.split(';')) - - return code2hex_map.get(name.lower(), None) diff --git a/lib/util.py b/lib/util.py index 8d99e4e..f5f3139 100644 --- a/lib/util.py +++ b/lib/util.py @@ -6,11 +6,10 @@ """ import re import decimal -from . import csscolors, pantone, ral, ansi_vt100 +from . import csscolors, pantone, ral from .rgba import RGBA, round_int, clamp -FLOAT_TRIM_RE = re.compile( - r'^(?P\d+)(?P\.0+|(?P\.\d*[1-9])0+)$') +FLOAT_TRIM_RE = re.compile(r'^(?P\d+)(?P\.0+|(?P\.\d*[1-9])0+)$') COLOR_PARTS = { "percent": r"[+\-]?(?:(?:\d*\.\d+)|\d+)%", @@ -22,13 +21,9 @@ (?P(\#|0x)(?P[\dA-Fa-f]{6}))\b | (?P(\#|0x)(?P[\dA-Fa-f]{4}))\b | (?P(\#|0x)(?P[\dA-Fa-f]{3}))\b | - \b(?Prgb\(\s*(?P - (?:%(float)s\s*,\s*){2}%(float)s | - (?:%(percent)s\s*,\s*){2}%(percent)s - )\s*\)) | + \b(?Prgb\(\s*(?P(?:%(float)s\s*,\s*){2}%(float)s | (?:%(percent)s\s*,\s*){2}%(percent)s)\s*\)) | \b(?Prgba\(\s*(?P - (?:%(float)s\s*,\s*){3}(?:%(percent)s|%(float)s) | - (?:%(percent)s\s*,\s*){3}(?:%(percent)s|%(float)s) + (?:%(float)s\s*,\s*){3}(?:%(percent)s|%(float)s) | (?:%(percent)s\s*,\s*){3}(?:%(percent)s|%(float)s) )\s*\)) | \b(?Phsl\(\s*(?P%(float)s\s*,\s*%(percent)s\s*,\s*%(percent)s)\s*\)) | \b(?Phsla\(\s*(?P%(float)s\s*,\s*(?:%(percent)s\s*,\s*){2}(?:%(percent)s|%(float)s))\s*\)) | @@ -37,8 +32,7 @@ \b(?Pgray\(\s*(?P%(float)s|%(percent)s)\s*\)) | \b(?Pgray\(\s*(?P(?:%(float)s|%(percent)s)\s*,\s*(?:%(percent)s|%(float)s))\s*\)) | \b(?P((\d{2}-)?\d{3,5}\s|(black|blue|bright red|cool gray|dark blue|green|magenta|medium purple|orange|pink|process blue|purple|red|reflex blue|rhodamine red|rose gold|silver|violet|warm gray|warm red|yellow)\s(\d{1,5}\s)?|p\s\d{1,3}-\d{1,2}\s)[a-z]{1,3})\b | - \b(?PRAL\s\d{4})\b | - \\(e|033|x1B)\[(?P(1;)?(3|4|10)[0-9])(;[0-9]+)*)m + \b(?PRAL\s\d{4})\b ''' % COLOR_PARTS COLOR_NAMES = r'\b(?P%s)\b(?!\()' % '|'.join([name for name in csscolors.name2hex_map.keys()]) @@ -331,13 +325,4 @@ def translate_color(m, use_hex_argb=False, decode=False): color = ral.code2hex(m.group('ral_code')).lower() except Exception: pass - elif m.group('ansi_vt100'): - try: - print('ansi rulez') - if decode: - color = ansi_vt100.code2hex(m.group('ansi_vt100').decode('utf-8')).lower() - else: - color = ansi_vt100.code2hex(m.group('ansi_vt100')).lower() - except Exception: - pass return color, alpha, alpha_dec