Method: rich._emoji_replace._emoji_replace
Calls: 1737, Exceptions: 0, Paths: 1Back
Path 1: 1737 calls (1.0)
'' (233) 'foo' (151) 'bar' (80) 'Averlongwordgoeshere' (68) 'baz' (58) 'banana pancakes' (54) 'Coffee' (48) '\n✓ ' (36) 'COL1' (24) 'FOO' (22)
None (1737)
builtin_method (1737)
'' (233) 'foo' (151) 'bar' (80) 'Averlongwordgoeshere' (68) 'baz' (58) 'banana pancakes' (54) 'Coffee' (48) '\n✓ ' (36) 'COL1' (24) 'FOO' (22)
1def _emoji_replace(
2 text: str,
3 default_variant: Optional[str] = None,
4 _emoji_sub: _EmojiSubMethod = re.compile(r"(:(\S*?)(?:(?:\-)(emoji|text))?:)").sub,
5) -> str:
6 """Replace emoji code in text."""
7 get_emoji = EMOJI.__getitem__
8 variants = {"text": "\uFE0E", "emoji": "\uFE0F"}
9 get_variant = variants.get
10 default_variant_code = variants.get(default_variant, "") if default_variant else ""
11
12 def do_replace(match: Match[str]) -> str:
13 emoji_code, emoji_name, variant = match.groups()
14 try:
15 return get_emoji(emoji_name.lower()) + get_variant(
16 variant, default_variant_code
17 )
18 except KeyError:
19 return emoji_code
20
21 return _emoji_sub(do_replace, text)