87 lines
3.6 KiB
Python
87 lines
3.6 KiB
Python
|
|
from collections.abc import Callable
|
||
|
|
from collections.abc import Iterator
|
||
|
|
from re import Pattern
|
||
|
|
|
||
|
|
from .util import U_EMPTY_STRING, U_DASH, U_SEMICOLON, U_SLASH, U_X_LOWER, U_X_UPPER, U_PERCENT
|
||
|
|
from .phonenumberutil import NON_DIGITS_PATTERN
|
||
|
|
from .phonemetadata import NumberFormat
|
||
|
|
from .phonenumber import PhoneNumber
|
||
|
|
from .util import UnicodeMixin
|
||
|
|
|
||
|
|
def _limit(lower: int, upper: int) -> str: ...
|
||
|
|
|
||
|
|
_OPENING_PARENS: str
|
||
|
|
_CLOSING_PARENS: str
|
||
|
|
_NON_PARENS: str
|
||
|
|
_BRACKET_PAIR_LIMIT: str
|
||
|
|
_MATCHING_BRACKETS: Pattern[str]
|
||
|
|
_LEAD_LIMIT: str
|
||
|
|
_PUNCTUATION_LIMIT: str
|
||
|
|
_DIGIT_BLOCK_LIMIT: int
|
||
|
|
_BLOCK_LIMIT: str
|
||
|
|
_PUNCTUATION: str
|
||
|
|
_DIGIT_SEQUENCE: str
|
||
|
|
_LEAD_CLASS_CHARS: str
|
||
|
|
_LEAD_CLASS: str
|
||
|
|
_LEAD_PATTERN: Pattern[str]
|
||
|
|
_PATTERN: Pattern[str]
|
||
|
|
_PUB_PAGES: Pattern[str]
|
||
|
|
_SLASH_SEPARATED_DATES: Pattern[str]
|
||
|
|
_TIME_STAMPS: Pattern[str]
|
||
|
|
_TIME_STAMPS_SUFFIX: Pattern[str]
|
||
|
|
_INNER_MATCHES: tuple[Pattern[str], ...]
|
||
|
|
|
||
|
|
class Leniency:
|
||
|
|
POSSIBLE: int
|
||
|
|
VALID: int
|
||
|
|
STRICT_GROUPING: int
|
||
|
|
EXACT_GROUPING: int
|
||
|
|
|
||
|
|
def _verify(leniency: int, numobj: PhoneNumber, candidate: str, matcher: PhoneNumberMatcher) -> bool: ...
|
||
|
|
def _verify_strict_grouping(numobj: PhoneNumber, candidate: str, matcher: PhoneNumberMatcher) -> bool: ...
|
||
|
|
def _all_number_groups_remain_grouped(numobj: PhoneNumber, normalized_candidate: str, formatted_number_groups: list[str]) -> bool: ...
|
||
|
|
def _verify_exact_grouping(numobj: PhoneNumber, candidate: str, matcher: PhoneNumberMatcher) -> bool: ...
|
||
|
|
def _all_number_groups_are_exactly_present(numobj: PhoneNumber, normalized_candidate: str, formatted_number_groups: list[str]) -> bool: ...
|
||
|
|
def _get_national_number_groups_without_pattern(numobj: PhoneNumber) -> list[str]: ...
|
||
|
|
def _get_national_number_groups(numobj: PhoneNumber, formatting_pattern: NumberFormat) -> list[str]: ...
|
||
|
|
def _contains_more_than_one_slash_in_national_number(numobj: PhoneNumber, candidate: str) -> bool: ...
|
||
|
|
def _contains_only_valid_x_chars(numobj: PhoneNumber, candidate: str) -> bool: ...
|
||
|
|
def _is_national_prefix_present_if_required(numobj: PhoneNumber) -> bool: ...
|
||
|
|
|
||
|
|
class PhoneNumberMatcher:
|
||
|
|
_NOT_READY: int
|
||
|
|
_READY: int
|
||
|
|
_DONE: int
|
||
|
|
text: str
|
||
|
|
preferred_region: str | None
|
||
|
|
leniency: int
|
||
|
|
_max_tries: int
|
||
|
|
_state: int
|
||
|
|
_last_match: PhoneNumberMatch | None
|
||
|
|
_search_index: int
|
||
|
|
def __init__(self, text: str | None, region: str | None, leniency: int = ..., max_tries: int = ...) -> None: ...
|
||
|
|
def _find(self, index: int) -> PhoneNumberMatch | None: ...
|
||
|
|
def _trim_after_first_match(self, pattern: Pattern[str], candidate: str) -> str: ...
|
||
|
|
@classmethod
|
||
|
|
def _is_latin_letter(cls, letter: str) -> bool: ...
|
||
|
|
@classmethod
|
||
|
|
def _is_invalid_punctuation_symbol(cls, character: str) -> bool: ...
|
||
|
|
def _extract_match(self, candidate: str, offset: int) -> PhoneNumberMatch | None: ...
|
||
|
|
def _extract_inner_match(self, candidate: str, offset: int) -> PhoneNumberMatch | None: ...
|
||
|
|
def _parse_and_verify(self, candidate: str, offset: int) -> PhoneNumberMatch | None: ...
|
||
|
|
def _check_number_grouping_is_valid(self, numobj: PhoneNumber, candidate: str, checker: Callable[[PhoneNumber, str, list[str]], bool]) -> bool: ...
|
||
|
|
def has_next(self) -> bool: ...
|
||
|
|
def next(self) -> PhoneNumberMatch: ...
|
||
|
|
def __iter__(self) -> Iterator[PhoneNumberMatch]: ...
|
||
|
|
|
||
|
|
class PhoneNumberMatch(UnicodeMixin):
|
||
|
|
start: int
|
||
|
|
raw_string: str
|
||
|
|
end: int
|
||
|
|
number: PhoneNumber
|
||
|
|
def __init__(self, start: int, raw_string: str, numobj: PhoneNumber) -> None: ...
|
||
|
|
def __eq__(self, other: object) -> bool: ...
|
||
|
|
def __ne__(self, other: object) -> bool: ...
|
||
|
|
def __repr__(self) -> str: ...
|
||
|
|
def __unicode__(self) -> str: ...
|