Add support for shorthand hex colors

This commit is contained in:
Anthony Sottile
2020-03-17 12:37:31 -07:00
parent e77a660029
commit 080f6e1d54
2 changed files with 4 additions and 1 deletions

View File

@@ -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])

View File

@@ -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):