Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
_emoji_replace.py33 linesDownload Raw Back to rich
1from typing import Callable, Match, Optional2import re3 4from ._emoji_codes import EMOJI5 6 7_ReStringMatch = Match[str]  # regex match object8_ReSubCallable = Callable[[_ReStringMatch], str]  # Callable invoked by re.sub9_EmojiSubMethod = Callable[[_ReSubCallable, str], str]  # Sub method of a compiled re10 11 12def _emoji_replace(13    text: str,14    default_variant: Optional[str] = None,15    _emoji_sub: _EmojiSubMethod = re.compile(r"(:(\S*?)(?:(?:\-)(emoji|text))?:)").sub,16) -> str:17    """Replace emoji code in text."""18    get_emoji = EMOJI.__getitem__19    variants = {"text": "\uFE0E", "emoji": "\uFE0F"}20    get_variant = variants.get21    default_variant_code = variants.get(default_variant, "") if default_variant else ""22 23    def do_replace(match: Match[str]) -> str:24        emoji_code, emoji_name, variant = match.groups()25        try:26            return get_emoji(emoji_name.lower()) + get_variant(27                variant, default_variant_code28            )29        except KeyError:30            return emoji_code31 32    return _emoji_sub(do_replace, text)33 
codekingpro/portable-devtools · Team Ai