@@ -41,6 +41,7 @@ class Style:
4141 underline2 : bool | None = None
4242 reverse : bool | None = None
4343 strike : bool | None = None
44+ blink : bool | None = None
4445 link : str | None = None
4546 _meta : bytes | None = None
4647 auto_color : bool = False
@@ -55,6 +56,7 @@ def __rich_repr__(self) -> rich.repr.Result:
5556 yield "underline2" , self .underline2 , None
5657 yield "reverse" , self .reverse , None
5758 yield "strike" , self .strike , None
59+ yield "blink" , self .blink , None
5860 yield "link" , self .link , None
5961
6062 if self ._meta is not None :
@@ -72,6 +74,7 @@ def _is_null(self) -> bool:
7274 and self .underline2 is None
7375 and self .reverse is None
7476 and self .strike is None
77+ and self .blink is None
7578 and self .link is None
7679 and self ._meta is None
7780 )
@@ -89,6 +92,7 @@ def hash(self) -> int:
8992 self .underline2 ,
9093 self .reverse ,
9194 self .strike ,
95+ self .blink ,
9296 self .link ,
9397 self .auto_color ,
9498 self ._meta ,
@@ -130,6 +134,8 @@ def style_definition(self) -> str:
130134 output_append ("underline2" if self .underline else "not underline2" )
131135 if self .strike is not None :
132136 output_append ("strike" if self .strike else "not strike" )
137+ if self .blink is not None :
138+ output_append ("blink" if self .strike else "not blink" )
133139 if self .link is not None :
134140 if "'" not in self .link :
135141 output_append (f"link='{ self .link } '" )
@@ -170,6 +176,8 @@ def markup_tag(self) -> str:
170176 output_append ("underline2" if self .underline2 else "not underline2" )
171177 if self .strike is not None :
172178 output_append ("strike" if self .strike else "not strike" )
179+ if self .blink is not None :
180+ output_append ("blink" if self .strike else "not blink" )
173181 if self .link is not None :
174182 output_append ("link" )
175183 if self ._meta is not None :
@@ -200,6 +208,7 @@ def __add__(self, other: object | None) -> Style:
200208 self .underline2 if other .underline2 is None else other .underline2 ,
201209 self .reverse if other .reverse is None else other .reverse ,
202210 self .strike if other .strike is None else other .strike ,
211+ self .blink if other .blink is None else other .blink ,
203212 self .link if other .link is None else other .link ,
204213 (
205214 dumps ({** self .meta , ** other .meta })
@@ -287,6 +296,7 @@ def from_rich_style(
287296 underline2 = rich_style .underline2 ,
288297 reverse = rich_style .reverse ,
289298 strike = rich_style .strike ,
299+ blink = rich_style .blink ,
290300 link = rich_style .link ,
291301 _meta = rich_style ._meta ,
292302 )
@@ -347,6 +357,7 @@ def rich_style(self) -> RichStyle:
347357 underline2 = self .underline2 ,
348358 reverse = self .reverse ,
349359 strike = self .strike ,
360+ blink = self .blink ,
350361 link = self .link ,
351362 meta = None if self ._meta is None else self .meta ,
352363 )
@@ -374,6 +385,7 @@ def rich_style_with_offset(self, x: int, y: int) -> RichStyle:
374385 underline2 = self .underline2 ,
375386 reverse = self .reverse ,
376387 strike = self .strike ,
388+ blink = self .blink ,
377389 link = self .link ,
378390 meta = {** self .meta , "offset" : (x , y )},
379391 )
@@ -389,6 +401,7 @@ def without_color(self) -> Style:
389401 underline2 = self .underline2 ,
390402 reverse = self .reverse ,
391403 strike = self .strike ,
404+ blink = self .blink ,
392405 link = self .link ,
393406 _meta = self ._meta ,
394407 )
0 commit comments