48 lines
1.2 KiB
Python
48 lines
1.2 KiB
Python
|
|
from typing import NamedTuple, Union, Dict, Iterator, Any
|
||
|
|
|
||
|
|
_SearchTree = Dict[str, Union['_SearchTree', dict[str, dict[str, Any]]]]
|
||
|
|
|
||
|
|
_SEARCH_TREE: _SearchTree
|
||
|
|
|
||
|
|
|
||
|
|
class EmojiMatch:
|
||
|
|
emoji: str
|
||
|
|
start: int
|
||
|
|
end: int
|
||
|
|
data: dict[str, Any] | None
|
||
|
|
def __init__(self, emoji: str, start: int,
|
||
|
|
end: int, data: dict | None): ...
|
||
|
|
|
||
|
|
def data_copy(self) -> Dict[str, Any]: ...
|
||
|
|
def is_zwj(self) -> bool: ...
|
||
|
|
def split(self) -> EmojiMatchZWJ | EmojiMatch: ...
|
||
|
|
def __repr__(self) -> str: ...
|
||
|
|
|
||
|
|
|
||
|
|
class EmojiMatchZWJ(EmojiMatch):
|
||
|
|
def __init__(self, match: EmojiMatch): ...
|
||
|
|
def join(self) -> str: ...
|
||
|
|
def is_zwj(self) -> bool: ...
|
||
|
|
def split(self) -> EmojiMatchZWJ: ...
|
||
|
|
def __repr__(self) -> str: ...
|
||
|
|
|
||
|
|
|
||
|
|
class EmojiMatchZWJNonRGI(EmojiMatchZWJ):
|
||
|
|
def __init__(self, first_emoji_match: EmojiMatch,
|
||
|
|
second_emoji_match: EmojiMatch): ...
|
||
|
|
|
||
|
|
|
||
|
|
class Token(NamedTuple):
|
||
|
|
chars: str
|
||
|
|
value: str | EmojiMatch
|
||
|
|
|
||
|
|
|
||
|
|
def tokenize(string, keep_zwj: bool) -> Iterator[Token]: ...
|
||
|
|
|
||
|
|
|
||
|
|
def filter_tokens(matches: Iterator[Token], emoji_only: bool,
|
||
|
|
join_emoji: bool) -> Iterator[Token]: ...
|
||
|
|
|
||
|
|
|
||
|
|
def get_search_tree() -> _SearchTree: ...
|