Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion python/phonenumbers/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@

# Version number is taken from the upstream libphonenumber version
# together with an indication of the version of the Python-specific code.
__version__ = "9.0.27"
__version__ = "9.0.28"

__all__ = ['PhoneNumber', 'CountryCodeSource', 'FrozenPhoneNumber',
'REGION_CODE_FOR_NON_GEO_ENTITY', 'NumberFormat', 'PhoneNumberDesc', 'PhoneMetadata',
Expand Down
24 changes: 12 additions & 12 deletions python/phonenumbers/carrierdata/data0.py
Original file line number Diff line number Diff line change
Expand Up @@ -1580,6 +1580,8 @@
'267778':{'en': 'Mascom'},
'267779':{'en': 'Orange'},
'26778':{'en': 'Orange'},
'267790':{'en': 'Orange'},
'267793':{'en': 'Orange'},
'26875':{'en': 'Eswatini Mobile'},
'26876':{'en': 'Swazi MTN'},
'26877':{'en': 'SPTC'},
Expand Down Expand Up @@ -2439,9 +2441,10 @@
'346112':{'en': 'Yoigo'},
'346113':{'en': 'Yoigo'},
'34612':{'en': 'Syma'},
'346122':{'en': 'Lycamobile'},
'346124':{'en': 'Lycamobile'},
'346125':{'en': 'Lycamobile'},
'346122':{'en': 'Yoigo'},
'346124':{'en': 'Yoigo'},
'346125':{'en': 'Yoigo'},
'346126':{'en': 'Sarenet'},
'34613':{'en': 'Yoigo'},
'34614':{'en': 'DigiMobil'},
'34615':{'en': 'Orange'},
Expand Down Expand Up @@ -2891,24 +2894,24 @@
'35850':{'en': 'Elisa'},
'35987':{'en': 'Vivacom'},
'35988':{'en': 'A1'},
'35989':{'en': 'Telenor'},
'35989':{'en': 'Yettel'},
'359988':{'en': 'Bob'},
'359989':{'en': 'A1'},
'3599960':{'en': 'A1'},
'3599961':{'en': 'A1'},
'3599962':{'en': 'A1'},
'3599964':{'en': 'Telenor'},
'3599965':{'en': 'Telenor'},
'3599966':{'en': 'Telenor'},
'3599964':{'en': 'Yettel'},
'3599965':{'en': 'Yettel'},
'3599966':{'en': 'Yettel'},
'3599967':{'en': 'Vivacom'},
'3599968':{'en': 'Vivacom'},
'3599969':{'en': 'Vivacom'},
'3599990':{'en': 'A1'},
'3599991':{'en': 'A1'},
'3599992':{'en': 'A1'},
'3599993':{'en': 'A1'},
'3599994':{'en': 'Telenor'},
'3599995':{'en': 'Telenor'},
'3599994':{'en': 'Yettel'},
'3599995':{'en': 'Yettel'},
'3599996':{'en': 'Vivacom'},
'3599997':{'en': 'Vivacom'},
'3599998':{'en': 'Vivacom'},
Expand Down Expand Up @@ -10016,7 +10019,4 @@
'553199745':{'en': 'Telemig Celular'},
'553199746':{'en': 'Telemig Celular'},
'553199747':{'en': 'Telemig Celular'},
'553199748':{'en': 'Telemig Celular'},
'553199749':{'en': 'Telemig Celular'},
'553199751':{'en': 'Telemig Celular'},
}
6 changes: 3 additions & 3 deletions python/phonenumbers/carrierdata/data1.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@
# limitations under the License.

data = {
'553199748':{'en': 'Telemig Celular'},
'553199749':{'en': 'Telemig Celular'},
'553199751':{'en': 'Telemig Celular'},
'553199752':{'en': 'Telemig Celular'},
'553199753':{'en': 'Telemig Celular'},
'553199755':{'en': 'Telemig Celular'},
Expand Down Expand Up @@ -10016,7 +10019,4 @@
'57305266':{'en': 'Tigo'},
'573052670':{'en': 'Tigo'},
'573052671':{'en': 'Tigo'},
'5730527':{'en': 'Tigo'},
'5730528':{'en': 'Tigo'},
'5730529':{'en': 'Tigo'},
}
20 changes: 18 additions & 2 deletions python/phonenumbers/carrierdata/data2.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@
# limitations under the License.

data = {
'5730527':{'en': 'Tigo'},
'5730528':{'en': 'Tigo'},
'5730529':{'en': 'Tigo'},
'573053':{'en': 'Tigo'},
'5730540':{'en': 'Movil Exito'},
'5730541':{'en': 'Movil Exito'},
Expand Down Expand Up @@ -8422,7 +8425,10 @@
'9725531':{'en': '019mobile'},
'9725532':{'en': 'Free Telecom'},
'9725533':{'en': 'Free Telecom'},
'9725540':{'en': 'Rami Levy'},
'97255400':{'en': 'Rami Levy'},
'97255401':{'en': 'Rami Levy'},
'97255402':{'en': 'Rami Levy'},
'97255403':{'en': 'Yossi'},
'9725541':{'en': 'Merkaziya'},
'9725543':{'en': 'Maskyoo'},
'9725544':{'en': 'Cellran Cellular Communications'},
Expand Down Expand Up @@ -8519,7 +8525,16 @@
'976507':{'en': 'Mobicom'},
'976508':{'en': 'Mobicom'},
'976509':{'en': 'Mobicom'},
'97655':{'en': 'Unitel'},
'976550':{'en': 'Unitel'},
'976551':{'en': 'Unitel'},
'976552':{'en': 'Unitel'},
'976553':{'en': 'Unitel'},
'976554':{'en': 'Unitel'},
'976555':{'en': 'Mobicom'},
'976556':{'en': 'Mobicom'},
'976557':{'en': 'Mobicom'},
'976558':{'en': 'Mobicom'},
'976559':{'en': 'Mobicom'},
'97660':{'en': 'ONDO'},
'97666':{'en': 'ONDO'},
'97669':{'en': 'Skytel'},
Expand All @@ -8530,6 +8545,7 @@
'97683':{'en': 'G-Mobile'},
'97685':{'en': 'Mobicom'},
'97686':{'en': 'Unitel'},
'97687':{'en': 'G-Mobile'},
'97688':{'en': 'Unitel'},
'97689':{'en': 'Unitel'},
'97690':{'en': 'Skytel'},
Expand Down
2 changes: 1 addition & 1 deletion python/phonenumbers/data/region_BW.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
PHONE_METADATA_BW = PhoneMetadata(id='BW', country_code=267, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='(?:0800|(?:[37]|800)\\d)\\d{6}|(?:[2-6]\\d|90)\\d{5}', possible_length=(7, 8, 10)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:2(?:4[0-48]|6[0-24]|9[0578])|3(?:1[0-35-9]|55|[69]\\d|7[013]|81)|4(?:6[03]|7[1267]|9[0-5])|5(?:3[03489]|4[0489]|7[1-47]|88|9[0-49])|6(?:2[1-35]|5[149]|8[013467]))\\d{4}', example_number='2401234', possible_length=(7,)),
mobile=PhoneNumberDesc(national_number_pattern='(?:321|7[1-8]\\d)\\d{5}', example_number='71123456', possible_length=(8,)),
mobile=PhoneNumberDesc(national_number_pattern='(?:321|7(?:[1-8]\\d|9[03]))\\d{5}', example_number='71123456', possible_length=(8,)),
toll_free=PhoneNumberDesc(national_number_pattern='(?:0800|800\\d)\\d{6}', example_number='0800012345', possible_length=(10,)),
premium_rate=PhoneNumberDesc(national_number_pattern='90\\d{5}', example_number='9012345', possible_length=(7,)),
voip=PhoneNumberDesc(national_number_pattern='79(?:1(?:[0-2]\\d|3[0-8])|2[0-7]\\d)\\d{3}', example_number='79101234', possible_length=(8,)),
Expand Down
4 changes: 2 additions & 2 deletions python/phonenumbers/data/region_IL.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
PHONE_METADATA_IL = PhoneMetadata(id='IL', country_code=972, international_prefix='0(?:0|1[2-9])',
general_desc=PhoneNumberDesc(national_number_pattern='1\\d{6}(?:\\d{3,5})?|[57]\\d{8}|[1-489]\\d{7}', possible_length=(7, 8, 9, 10, 11, 12)),
fixed_line=PhoneNumberDesc(national_number_pattern='153\\d{8,9}|29[1-9]\\d{5}|(?:2[0-8]|[3489]\\d)\\d{6}', example_number='21234567', possible_length=(8, 11, 12), possible_length_local_only=(7,)),
mobile=PhoneNumberDesc(national_number_pattern='55(?:4(?:0[0-2]|[16]0)|57[0-289])\\d{4}|5(?:(?:[0-2][02-9]|[36]\\d|[49][2-9]|8[3-7])\\d|5(?:01|2\\d|3[0-3]|4[3-5]|5[0-25689]|6[6-8]|7[0-267]|8[7-9]|9[1-9]))\\d{5}', example_number='502345678', possible_length=(9,)),
mobile=PhoneNumberDesc(national_number_pattern='55(?:4(?:0[0-3]|[16]0)|57[0-289])\\d{4}|5(?:(?:[0-2][02-9]|[36]\\d|[49][2-9]|8[3-7])\\d|5(?:01|2\\d|3[0-3]|4[3-5]|5[0-25689]|6[6-8]|7[0-267]|8[7-9]|9[1-9]))\\d{5}', example_number='502345678', possible_length=(9,)),
toll_free=PhoneNumberDesc(national_number_pattern='1(?:255|80[019]\\d{3})\\d{3}', example_number='1800123456', possible_length=(7, 10)),
premium_rate=PhoneNumberDesc(national_number_pattern='1212\\d{4}|1(?:200|9(?:0[0-2]|19))\\d{6}', example_number='1919123456', possible_length=(8, 10)),
premium_rate=PhoneNumberDesc(national_number_pattern='1212\\d{4}|1(?:200|9(?:0[0-2]|19|9\\d))\\d{6}', example_number='1919123456', possible_length=(8, 10)),
shared_cost=PhoneNumberDesc(national_number_pattern='1700\\d{6}', example_number='1700123456', possible_length=(10,)),
voip=PhoneNumberDesc(national_number_pattern='7(?:38(?:[05]\\d|8[0138])|8(?:33|55|77|81)\\d)\\d{4}|7(?:18|2[23]|3[237]|47|6[258]|7\\d|82|9[2-9])\\d{6}', example_number='771234567', possible_length=(9,)),
uan=PhoneNumberDesc(national_number_pattern='1599\\d{6}', example_number='1599123456', possible_length=(10,)),
Expand Down
6 changes: 3 additions & 3 deletions python/phonenumbers/data/region_MN.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@

PHONE_METADATA_MN = PhoneMetadata(id='MN', country_code=976, international_prefix='001',
general_desc=PhoneNumberDesc(national_number_pattern='[12]\\d{7,9}|[5-9]\\d{7}', possible_length=(8, 9, 10), possible_length_local_only=(4, 5, 6)),
fixed_line=PhoneNumberDesc(national_number_pattern='[12]2[1-3]\\d{5,6}|(?:(?:[12](?:1|27)|5[368])\\d\\d|7(?:0(?:[0-5]\\d|7[078]|80)|128))\\d{4}|[12](?:3[2-8]|4[2-68]|5[1-4689])\\d{6,7}', example_number='53123456', possible_length=(8, 9, 10), possible_length_local_only=(4, 5, 6)),
mobile=PhoneNumberDesc(national_number_pattern='92[0139]\\d{5}|(?:5[05]|6[069]|7[28]|8[0135689]|9[013-9])\\d{6}', example_number='88123456', possible_length=(8,)),
fixed_line=PhoneNumberDesc(national_number_pattern='[12](?:2[1-3]|(?:3[2-8]|4[2-68]|5[1-4689])\\d)\\d{5,6}|7(?:0(?:[0-5]\\d|7[078]|80)|128)\\d{4}|[12]27\\d{6}|(?:11|2[16]|5[368])\\d{6}', example_number='53123456', possible_length=(8, 9, 10), possible_length_local_only=(4, 5, 6)),
mobile=PhoneNumberDesc(national_number_pattern='(?:87[01]|92[0139])\\d{5}|(?:5[05]|6[069]|7[28]|8[0135689]|9[013-9])\\d{6}', example_number='88123456', possible_length=(8,)),
voip=PhoneNumberDesc(national_number_pattern='712[0-79]\\d{4}|7(?:1[013-9]|[5-79]\\d)\\d{5}', example_number='75123456', possible_length=(8,)),
national_prefix='0',
national_prefix_for_parsing='0',
number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['[12]1'], national_prefix_formatting_rule='0\\1'),
number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['11|2[16]'], national_prefix_formatting_rule='0\\1'),
NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[5-9]']),
NumberFormat(pattern='(\\d{3})(\\d{5,6})', format='\\1 \\2', leading_digits_pattern=['[12]2[1-3]'], national_prefix_formatting_rule='0\\1'),
NumberFormat(pattern='(\\d{4})(\\d{5,6})', format='\\1 \\2', leading_digits_pattern=['[12](?:27|3[2-8]|4[2-68]|5[1-4689])', '[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]'], national_prefix_formatting_rule='0\\1'),
Expand Down
2 changes: 1 addition & 1 deletion python/phonenumbers/data/region_RE.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

PHONE_METADATA_RE = PhoneMetadata(id='RE', country_code=262, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='709\\d{6}|(?:26|[689]\\d)\\d{7}', possible_length=(9,)),
fixed_line=PhoneNumberDesc(national_number_pattern='26(?:2\\d\\d|3(?:0\\d|1[0-6]))\\d{4}', example_number='262161234', possible_length=(9,)),
fixed_line=PhoneNumberDesc(national_number_pattern='2631[0-6]\\d{4}|26(?:2\\d|30|88)\\d{5}', example_number='262161234', possible_length=(9,)),
mobile=PhoneNumberDesc(national_number_pattern='(?:69(?:2\\d\\d|3(?:[06][0-6]|1[0-3]|2[0-2]|3[0-39]|4\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))|7092[0-3])\\d{4}', example_number='692123456', possible_length=(9,)),
toll_free=PhoneNumberDesc(national_number_pattern='80\\d{7}', example_number='801234567', possible_length=(9,)),
premium_rate=PhoneNumberDesc(national_number_pattern='89[1-37-9]\\d{6}', example_number='891123456', possible_length=(9,)),
Expand Down
6 changes: 3 additions & 3 deletions python/phonenumbers/data/region_SR.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata

PHONE_METADATA_SR = PhoneMetadata(id='SR', country_code=597, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='(?:[2-5]|[6-8]\\d|90)\\d{5}', possible_length=(6, 7)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:2[1-3]|3[0-7]|4\\d|5[2-58])\\d{4}', example_number='211234', possible_length=(6,)),
general_desc=PhoneNumberDesc(national_number_pattern='(?:[2-5]|[6-9]\\d)\\d{5}', possible_length=(6, 7)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:2[1-3]|3[0-7]|4\\d|5[2-578])\\d{4}', example_number='211234', possible_length=(6,)),
mobile=PhoneNumberDesc(national_number_pattern='(?:6[08]|7[124-7]|8[1-9])\\d{5}', example_number='7412345', possible_length=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='80\\d{5}', example_number='8012345', possible_length=(7,)),
premium_rate=PhoneNumberDesc(national_number_pattern='90\\d{5}', example_number='9012345', possible_length=(7,)),
voip=PhoneNumberDesc(national_number_pattern='56\\d{4}', example_number='561234', possible_length=(6,)),
voip=PhoneNumberDesc(national_number_pattern='(?:56|91\\d)\\d{4}', example_number='561234', possible_length=(6, 7)),
number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})', format='\\1-\\2-\\3', leading_digits_pattern=['56']),
NumberFormat(pattern='(\\d{3})(\\d{3})', format='\\1-\\2', leading_digits_pattern=['[2-5]']),
NumberFormat(pattern='(\\d{3})(\\d{4})', format='\\1-\\2', leading_digits_pattern=['[6-9]'])])
4 changes: 2 additions & 2 deletions python/phonenumbers/data/region_YT.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata

PHONE_METADATA_YT = PhoneMetadata(id='YT', country_code=262, international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='7093\\d{5}|(?:80|9\\d)\\d{7}|(?:26|63)9\\d{6}', possible_length=(9,)),
fixed_line=PhoneNumberDesc(national_number_pattern='269(?:0[0-467]|15|5[0-4]|6\\d|[78]0)\\d{4}', example_number='269601234', possible_length=(9,)),
general_desc=PhoneNumberDesc(national_number_pattern='(?:639\\d|7093)\\d{5}|(?:26|80|9\\d)\\d{7}', possible_length=(9,)),
fixed_line=PhoneNumberDesc(national_number_pattern='26(?:89\\d|9(?:0[0-467]|15|5[0-4]|6\\d|[78]0))\\d{4}', example_number='269601234', possible_length=(9,)),
mobile=PhoneNumberDesc(national_number_pattern='(?:639(?:0[0-79]|1[019]|[267]\\d|3[09]|40|5[05-9]|9[04-79])|7093[5-7])\\d{4}', example_number='639012345', possible_length=(9,)),
toll_free=PhoneNumberDesc(national_number_pattern='80\\d{7}', example_number='801234567', possible_length=(9,)),
voip=PhoneNumberDesc(national_number_pattern='9(?:(?:39|47)8[01]|769\\d)\\d{4}', example_number='939801234', possible_length=(9,)),
Expand Down
48 changes: 21 additions & 27 deletions python/phonenumbers/phonenumberutil.py
Original file line number Diff line number Diff line change
Expand Up @@ -1485,14 +1485,15 @@ def format_in_original_format(numobj, region_calling_from):

Returns the formatted phone number in its original number format.
"""
if (numobj.raw_input is not None and not _has_formatting_pattern_for_number(numobj)):
format_rule = _choose_formatting_pattern_for_numobj(numobj)
if (numobj.raw_input is not None and format_rule is None):
# We check if we have the formatting pattern because without that, we
# might format the number as a group without national prefix.
return numobj.raw_input
if numobj.country_code_source is CountryCodeSource.UNSPECIFIED:
return format_number(numobj, PhoneNumberFormat.NATIONAL)

formatted_number = _format_original_allow_mods(numobj, region_calling_from)
formatted_number = _format_original_allow_mods(numobj, region_calling_from, format_rule)
num_raw_input = numobj.raw_input
# If no digit is inserted/removed/modified as a result of our formatting,
# we return the formatted phone number; otherwise we return the raw input
Expand All @@ -1505,7 +1506,7 @@ def format_in_original_format(numobj, region_calling_from):
return formatted_number


def _format_original_allow_mods(numobj, region_calling_from):
def _format_original_allow_mods(numobj, region_calling_from, format_rule):
if (numobj.country_code_source == CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN):
return format_number(numobj, PhoneNumberFormat.INTERNATIONAL)
elif numobj.country_code_source == CountryCodeSource.FROM_NUMBER_WITH_IDD:
Expand All @@ -1527,12 +1528,6 @@ def _format_original_allow_mods(numobj, region_calling_from):
if (_raw_input_contains_national_prefix(numobj.raw_input, national_prefix, region_code)):
# If so, we can safely return the national format.
return national_format
# Metadata cannot be None here because ndd_prefix_for_region() (above) returns None if
# there is no metadata for the region.
metadata = PhoneMetadata.metadata_for_region(region_code)
assert metadata is not None
national_number = national_significant_number(numobj)
format_rule = _choose_formatting_pattern_for_number(metadata.number_format, national_number)
# The format rule could still be null here if the national number was
# 0 and there was no raw input (this should not be possible for
# numbers generated by the phonenumber library as they would also not
Expand Down Expand Up @@ -1578,15 +1573,28 @@ def _raw_input_contains_national_prefix(raw_input, national_prefix, region_code)
return False


def _has_formatting_pattern_for_number(numobj):
def _choose_formatting_pattern_for_numobj(numobj):
country_code = numobj.country_code
phone_number_region = region_code_for_country_code(country_code)
metadata = PhoneMetadata.metadata_for_region_or_calling_code(country_code, phone_number_region)
if metadata is None:
return False
return None
national_number = national_significant_number(numobj)
format_rule = _choose_formatting_pattern_for_number(metadata.number_format, national_number)
return format_rule is not None
return _choose_formatting_pattern_for_number(metadata.number_format, national_number)


def _choose_formatting_pattern_for_number(available_formats, national_number):
for num_format in available_formats:
size = len(num_format.leading_digits_pattern)
# We always use the last leading_digits_pattern, as it is the most detailed.
if size > 0:
ld_pattern = re.compile(num_format.leading_digits_pattern[-1])
ld_match = ld_pattern.match(national_number)
if size == 0 or ld_match:
format_pattern = re.compile(num_format.pattern)
if fullmatch(format_pattern, national_number):
return num_format
return None


def format_out_of_country_keeping_alpha_chars(numobj, region_calling_from):
Expand Down Expand Up @@ -1769,20 +1777,6 @@ def _format_nsn(number, metadata, num_format, carrier_code=None):
return _format_nsn_using_pattern(number, formatting_pattern, num_format, carrier_code)


def _choose_formatting_pattern_for_number(available_formats, national_number):
for num_format in available_formats:
size = len(num_format.leading_digits_pattern)
# We always use the last leading_digits_pattern, as it is the most detailed.
if size > 0:
ld_pattern = re.compile(num_format.leading_digits_pattern[-1])
ld_match = ld_pattern.match(national_number)
if size == 0 or ld_match:
format_pattern = re.compile(num_format.pattern)
if fullmatch(format_pattern, national_number):
return num_format
return None


def _format_nsn_using_pattern(national_number, formatting_pattern, number_format,
carrier_code=None):
# Note that carrier_code is optional - if None or an empty string, no
Expand Down
6 changes: 3 additions & 3 deletions python/phonenumbers/phonenumberutil.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -152,14 +152,14 @@ def format_national_number_with_preferred_carrier_code(numobj: PhoneNumber, fall
def format_number_for_mobile_dialing(numobj: PhoneNumber, region_calling_from: str, with_formatting: bool) -> str: ...
def format_out_of_country_calling_number(numobj: PhoneNumber, region_calling_from: str) -> str: ...
def format_in_original_format(numobj: PhoneNumber, region_calling_from: str) -> str: ...
def _format_original_allow_mods(numobj: PhoneNumber, region_calling_from: str) -> str: ...
def _format_original_allow_mods(numobj: PhoneNumber, region_calling_from: str, format_rule: NumberFormat) -> str: ...
def _raw_input_contains_national_prefix(raw_input: str, national_prefix: str, region_code: str) -> bool: ...
def _has_formatting_pattern_for_number(numobj: PhoneNumber) -> bool: ...
def _choose_formatting_pattern_for_numobj(numobj: PhoneNumber) -> NumberFormat: ...
def _choose_formatting_pattern_for_number(available_formats: list[NumberFormat], national_number: str) -> NumberFormat | None: ...
def format_out_of_country_keeping_alpha_chars(numobj: PhoneNumber, region_calling_from: str) -> str: ...
def national_significant_number(numobj: PhoneNumber) -> str: ...
def _prefix_number_with_country_calling_code(country_code: int, num_format: int, formatted_number: str) -> str: ...
def _format_nsn(number: str, metadata: PhoneMetadata, num_format: int, carrier_code: str | None = ...) -> str: ...
def _choose_formatting_pattern_for_number(available_formats: list[NumberFormat], national_number: str) -> NumberFormat | None: ...
def _format_nsn_using_pattern(national_number: str, formatting_pattern: NumberFormat, number_format: int, carrier_code: str | None = ...) -> str: ...
def example_number(region_code: str) -> PhoneNumber | None: ...
def invalid_example_number(region_code: str) -> PhoneNumber | None: ...
Expand Down
Loading
Loading