From b82dbc3d71229c2146bc72d99bd8853565f41fdf Mon Sep 17 00:00:00 2001 From: Andrew Hamilton Date: Wed, 19 Oct 2022 14:03:21 +1000 Subject: [PATCH] termstr: Let termstr's style be given with optional arguments --- termstr/termstr.py | 4 +++- termstr/tests/termstr_test.py | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/termstr/termstr.py b/termstr/termstr.py index 1175ee9..97cf648 100644 --- a/termstr/termstr.py +++ b/termstr/termstr.py @@ -211,7 +211,7 @@ def join(seperator, parts): class TermStr(collections.UserString): - def __init__(self, data, style=CharStyle()): + def __init__(self, data, style=CharStyle(), **kwargs): if isinstance(style, tuple): self.data = data self.style = style @@ -220,6 +220,8 @@ class TermStr(collections.UserString): self.data, self.style = data.data, data.style except AttributeError: self.data = _pad_wide_chars(data).expandtabs() + if kwargs != {}: + style = CharStyle(**kwargs) self.style = (style,) * len(self.data) @classmethod diff --git a/termstr/tests/termstr_test.py b/termstr/tests/termstr_test.py index cd1cb6a..5e3ce64 100755 --- a/termstr/tests/termstr_test.py +++ b/termstr/tests/termstr_test.py @@ -123,6 +123,7 @@ class TermStrTests(unittest.TestCase): self.assertEqual(baz[2:], termstr.TermStr(" z")) baz = termstr.TermStr("⭐⭐") self.assertEqual(len(baz), 4) + self.assertEqual(termstr.TermStr("foo", is_bold=True), termstr.TermStr("foo").bold()) def test_from_term(self): def test_round_trip(term_str):