From 080f6e1d544c82a5ef9e08532f489e2e0fd9997f Mon Sep 17 00:00:00 2001 From: Anthony Sottile Date: Tue, 17 Mar 2020 12:37:31 -0700 Subject: [PATCH] Add support for shorthand hex colors --- babi/color.py | 4 +++- tests/color_test.py | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/babi/color.py b/babi/color.py index fd6c605..02fa120 100644 --- a/babi/color.py +++ b/babi/color.py @@ -12,7 +12,9 @@ class Color(NamedTuple): @classmethod def parse(cls, s: str) -> 'Color': - if s.startswith('#'): + if s.startswith('#') and len(s) >= 7: return cls(r=int(s[1:3], 16), g=int(s[3:5], 16), b=int(s[5:7], 16)) + elif s.startswith('#'): + return cls.parse(f'#{s[1] * 2}{s[2] * 2}{s[3] * 2}') else: return cls.parse(NAMED_COLORS[s]) diff --git a/tests/color_test.py b/tests/color_test.py index 6786d8c..a3938df 100644 --- a/tests/color_test.py +++ b/tests/color_test.py @@ -9,6 +9,7 @@ from babi.color import Color ('#1e77d3', Color(0x1e, 0x77, 0xd3)), ('white', Color(0xff, 0xff, 0xff)), ('black', Color(0x00, 0x00, 0x00)), + ('#ccc', Color(0xcc, 0xcc, 0xcc)), ), ) def test_color_parse(s, expected):