diff --git a/python/phonenumbers/carrierdata/data0.py b/python/phonenumbers/carrierdata/data0.py index d716df9c..38393f25 100644 --- a/python/phonenumbers/carrierdata/data0.py +++ b/python/phonenumbers/carrierdata/data0.py @@ -1017,6 +1017,7 @@ '230700':{'en': 'Cellplus'}, '230701':{'en': 'Emtel'}, '230702':{'en': 'MTML'}, + '230703':{'en': 'Emtel'}, '230730':{'en': 'Emtel'}, '230731':{'en': 'MTML'}, '230733':{'en': 'Cellplus'}, @@ -7128,6 +7129,7 @@ '5025918':{'en': 'Tigo'}, '5025919':{'en': 'Tigo'}, '502599':{'en': 'Tigo'}, + '5028':{'en': 'Tigo'}, '503600':{'en': 'Tigo'}, '503601':{'en': 'Tigo'}, '503602':{'en': 'Tigo'}, @@ -10017,6 +10019,4 @@ '553199614':{'en': 'Telemig Celular'}, '553199615':{'en': 'Telemig Celular'}, '553199616':{'en': 'Telemig Celular'}, - '553199617':{'en': 'Telemig Celular'}, - '553199618':{'en': 'Telemig Celular'}, } diff --git a/python/phonenumbers/carrierdata/data1.py b/python/phonenumbers/carrierdata/data1.py index 2f249d1a..098c4af2 100644 --- a/python/phonenumbers/carrierdata/data1.py +++ b/python/phonenumbers/carrierdata/data1.py @@ -19,6 +19,8 @@ # limitations under the License. data = { + '553199617':{'en': 'Telemig Celular'}, + '553199618':{'en': 'Telemig Celular'}, '553199619':{'en': 'Telemig Celular'}, '553199621':{'en': 'Telemig Celular'}, '553199622':{'en': 'Telemig Celular'}, @@ -10017,6 +10019,4 @@ '5699975':{'en': 'Claro'}, '5699976':{'en': 'Claro'}, '5699977':{'en': 'Claro'}, - '5699978':{'en': 'Claro'}, - '5699979':{'en': 'Claro'}, } diff --git a/python/phonenumbers/carrierdata/data2.py b/python/phonenumbers/carrierdata/data2.py index 2bfbd115..dd137d65 100644 --- a/python/phonenumbers/carrierdata/data2.py +++ b/python/phonenumbers/carrierdata/data2.py @@ -19,6 +19,8 @@ # limitations under the License. data = { + '5699978':{'en': 'Claro'}, + '5699979':{'en': 'Claro'}, '569998':{'en': 'Claro'}, '569999':{'en': 'Entel'}, '5699990':{'en': 'Tesacom'}, @@ -3962,6 +3964,7 @@ '852466':{'en': 'China Mobile', 'zh': u('\u4e2d\u56fd\u79fb\u52a8')}, '852467':{'en': 'China Mobile', 'zh': u('\u4e2d\u56fd\u79fb\u52a8')}, '8524678':{'en': 'Sun Mobile', 'zh': u('\u65b0\u79fb\u52a8\u901a\u8baf')}, + '8524679':{'en': 'HKT', 'zh': u('\u9999\u6e2f\u79fb\u52a8\u901a\u8baf')}, '852468':{'en': 'China Mobile', 'zh': u('\u4e2d\u56fd\u79fb\u52a8')}, '852510':{'en': 'China Mobile', 'zh': u('\u4e2d\u56fd\u79fb\u52a8'), 'zh_Hant': u('\u4e2d\u570b\u79fb\u52d5')}, '852511':{'en': 'Sun Mobile', 'zh': u('\u65b0\u79fb\u52a8\u901a\u8baf'), 'zh_Hant': u('\u65b0\u79fb\u52d5\u901a\u8a0a')}, @@ -4185,6 +4188,7 @@ '852840':{'en': 'China Mobile', 'zh': u('\u4e2d\u56fd\u79fb\u52a8')}, '8528480':{'en': 'Handy', 'zh': 'Handy', 'zh_Hant': 'Handy'}, '8528481':{'en': 'Sun Mobile', 'zh': u('\u65b0\u79fb\u52a8\u901a\u8baf'), 'zh_Hant': u('\u65b0\u79fb\u52d5\u901a\u8a0a')}, + '8528482':{'en': 'HKT', 'zh': u('\u9999\u6e2f\u79fb\u52a8\u901a\u8baf')}, '8528485':{'en': 'SmarTone', 'zh': u('\u6570\u7801\u901a')}, '8528486':{'en': 'SmarTone', 'zh': u('\u6570\u7801\u901a')}, '8528487':{'en': 'SmarTone', 'zh': u('\u6570\u7801\u901a')}, @@ -4194,8 +4198,9 @@ '852901':{'en': 'SmarTone', 'zh': u('\u6570\u7801\u901a'), 'zh_Hant': u('\u6578\u78bc\u901a')}, '852902':{'en': 'HKT', 'zh': u('\u9999\u6e2f\u79fb\u52a8\u901a\u8baf'), 'zh_Hant': u('\u9999\u6e2f\u79fb\u52d5\u901a\u8a0a')}, '852903':{'en': 'HKT', 'zh': u('\u9999\u6e2f\u79fb\u52a8\u901a\u8baf'), 'zh_Hant': u('\u9999\u6e2f\u79fb\u52d5\u901a\u8a0a')}, - '852904':{'en': '3', 'zh': '3', 'zh_Hant': '3'}, - '8529057':{'en': 'HKT', 'zh': u('\u9999\u6e2f\u79fb\u52a8\u901a\u8baf'), 'zh_Hant': u('\u9999\u6e2f\u79fb\u52d5\u901a\u8a0a')}, + '852904':{'en': 'Hutchison Telecom.', 'zh': u('\u548c\u8a18\u96fb\u8a71\u6709\u9650\u516c\u53f8'), 'zh_Hant': '3'}, + '852905':{'en': 'Hutchison Telecom.', 'zh': u('\u548c\u8a18\u96fb\u8a71\u6709\u9650\u516c\u53f8')}, + '8529057':{'zh_Hant': u('\u9999\u6e2f\u79fb\u52d5\u901a\u8a0a')}, '852906':{'en': 'China Mobile', 'zh': u('\u4e2d\u56fd\u79fb\u52a8'), 'zh_Hant': u('\u4e2d\u570b\u79fb\u52d5')}, '852907':{'en': 'HKT', 'zh': u('\u9999\u6e2f\u79fb\u52a8\u901a\u8baf'), 'zh_Hant': u('\u9999\u6e2f\u79fb\u52d5\u901a\u8a0a')}, '852908':{'en': 'HKT', 'zh': u('\u9999\u6e2f\u79fb\u52a8\u901a\u8baf'), 'zh_Hant': u('\u9999\u6e2f\u79fb\u52d5\u901a\u8a0a')}, @@ -8833,17 +8838,6 @@ '99875528':{'en': 'MobiUZ'}, '99875529':{'en': 'MobiUZ'}, '998757':{'en': 'MobiUZ'}, - '99876221':{'en': 'MobiUZ'}, - '99876222':{'en': 'MobiUZ'}, - '99876224':{'en': 'MobiUZ'}, - '99876225':{'en': 'MobiUZ'}, - '9987624':{'en': 'MobiUZ'}, - '9987639':{'en': 'MobiUZ'}, - '99876411':{'en': 'MobiUZ'}, - '99876417':{'en': 'MobiUZ'}, - '99876419':{'en': 'MobiUZ'}, - '998765':{'en': 'MobiUZ'}, - '998767':{'en': 'MobiUZ'}, '99877':{'en': 'Uzbektelecom'}, '99879221':{'en': 'MobiUZ'}, '99879222':{'en': 'MobiUZ'}, diff --git a/python/phonenumbers/data/region_BW.py b/python/phonenumbers/data/region_BW.py index dd62668d..8f6e5502 100644 --- a/python/phonenumbers/data/region_BW.py +++ b/python/phonenumbers/data/region_BW.py @@ -7,7 +7,7 @@ mobile=PhoneNumberDesc(national_number_pattern='(?:321|7[1-8]\\d)\\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(?:[01]\\d|2[0-7])|2[0-7]\\d)\\d{3}', example_number='79101234', possible_length=(8,)), + voip=PhoneNumberDesc(national_number_pattern='79(?:1(?:[01]\\d|2[0-8])|2[0-7]\\d)\\d{3}', example_number='79101234', possible_length=(8,)), number_format=[NumberFormat(pattern='(\\d{2})(\\d{5})', format='\\1 \\2', leading_digits_pattern=['90']), NumberFormat(pattern='(\\d{3})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[24-6]|3[15-9]']), NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['[37]']), diff --git a/python/phonenumbers/data/region_EE.py b/python/phonenumbers/data/region_EE.py index 18227bc3..5375207a 100644 --- a/python/phonenumbers/data/region_EE.py +++ b/python/phonenumbers/data/region_EE.py @@ -4,7 +4,7 @@ PHONE_METADATA_EE = PhoneMetadata(id='EE', country_code=372, international_prefix='00', general_desc=PhoneNumberDesc(national_number_pattern='8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}', possible_length=(7, 8, 10)), fixed_line=PhoneNumberDesc(national_number_pattern='(?:3[23589]|4[3-8]|6\\d|7[1-9]|88)\\d{5}', example_number='3212345', possible_length=(7,)), - mobile=PhoneNumberDesc(national_number_pattern='(?:5\\d{5}|8(?:1(?:0(?:000|[3-9]\\d\\d)|(?:1(?:0[236]|1\\d)|(?:2[0-59]|[3-79]\\d)\\d)\\d)|2(?:0(?:000|(?:19|[2-7]\\d)\\d)|(?:(?:[124-6]\\d|3[5-9])\\d|7(?:[0-79]\\d|8[13-9])|8(?:[2-6]\\d|7[01]))\\d)|[349]\\d{4}))\\d\\d|5(?:(?:[02]\\d|5[0-478])\\d|1(?:[0-8]\\d|95)|6(?:4[0-4]|5[1-589]))\\d{3}', example_number='51234567', possible_length=(7, 8)), + mobile=PhoneNumberDesc(national_number_pattern='(?:5\\d{5}|8(?:1(?:0(?:0(?:00|[178]\\d)|[3-9]\\d\\d)|(?:1(?:0[236]|1\\d)|(?:2[0-59]|[3-79]\\d)\\d)\\d)|2(?:0(?:000|(?:19|[2-7]\\d)\\d)|(?:(?:[124-6]\\d|3[5-9])\\d|7(?:[0-79]\\d|8[13-9])|8(?:[2-6]\\d|7[01]))\\d)|[349]\\d{4}))\\d\\d|5(?:(?:[02]\\d|5[0-478])\\d|1(?:[0-8]\\d|95)|6(?:4[0-4]|5[1-589]))\\d{3}', example_number='51234567', possible_length=(7, 8)), toll_free=PhoneNumberDesc(national_number_pattern='800(?:(?:0\\d\\d|1)\\d|[2-9])\\d{3}', example_number='80012345', possible_length=(7, 8, 10)), premium_rate=PhoneNumberDesc(national_number_pattern='(?:40\\d\\d|900)\\d{4}', example_number='9001234', possible_length=(7, 8)), personal_number=PhoneNumberDesc(national_number_pattern='70[0-2]\\d{5}', example_number='70012345', possible_length=(8,)), diff --git a/python/phonenumbers/data/region_GT.py b/python/phonenumbers/data/region_GT.py index d120ba3c..8791fa92 100644 --- a/python/phonenumbers/data/region_GT.py +++ b/python/phonenumbers/data/region_GT.py @@ -2,10 +2,10 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_GT = PhoneMetadata(id='GT', country_code=502, international_prefix='00', - general_desc=PhoneNumberDesc(national_number_pattern='(?:1\\d{3}|[2-7])\\d{7}', possible_length=(8, 11)), + general_desc=PhoneNumberDesc(national_number_pattern='80\\d{6}|(?:1\\d{3}|[2-7])\\d{7}', possible_length=(8, 11)), fixed_line=PhoneNumberDesc(national_number_pattern='[267][2-9]\\d{6}', example_number='22456789', possible_length=(8,)), - mobile=PhoneNumberDesc(national_number_pattern='[3-5]\\d{7}', example_number='51234567', possible_length=(8,)), + mobile=PhoneNumberDesc(national_number_pattern='(?:[3-5]\\d\\d|80[0-4])\\d{5}', example_number='51234567', possible_length=(8,)), toll_free=PhoneNumberDesc(national_number_pattern='18[01]\\d{8}', example_number='18001112222', possible_length=(11,)), premium_rate=PhoneNumberDesc(national_number_pattern='19\\d{9}', example_number='19001112222', possible_length=(11,)), - number_format=[NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[2-7]']), + number_format=[NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', leading_digits_pattern=['[2-8]']), NumberFormat(pattern='(\\d{4})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['1'])]) diff --git a/python/phonenumbers/data/region_HK.py b/python/phonenumbers/data/region_HK.py index 02d35c6d..a34a6724 100644 --- a/python/phonenumbers/data/region_HK.py +++ b/python/phonenumbers/data/region_HK.py @@ -4,7 +4,7 @@ PHONE_METADATA_HK = PhoneMetadata(id='HK', country_code=852, international_prefix='00(?:30|5[09]|[126-9]?)', general_desc=PhoneNumberDesc(national_number_pattern='8[0-46-9]\\d{6,7}|9\\d{4,7}|(?:[2-7]|9\\d{3})\\d{7}', possible_length=(5, 6, 7, 8, 9, 11)), fixed_line=PhoneNumberDesc(national_number_pattern='(?:2(?:[13-9]\\d|2[013-9])\\d|3(?:(?:[1569][0-24-9]|4[0-246-9]|7[0-24-69])\\d|8(?:[45][0-8]|6[01]|9\\d))|58(?:0[1-9]|1[2-9]))\\d{4}', example_number='21234567', possible_length=(8,)), - mobile=PhoneNumberDesc(national_number_pattern='(?:4(?:44[5-9]|6(?:0[0-7]|1[0-6]|4[0-57-9]|6[0-4]|7[0-8]))|573[0-6]|6(?:26[013-8]|66[0-3])|70(?:7[1-5]|8[0-4])|848[015-9]|9(?:29[013-9]|59[0-4]))\\d{4}|(?:4(?:4[01]|6[2358])|5(?:[1-59][0-46-9]|6[0-4689]|7[0-246-9])|6(?:0[1-9]|[13-59]\\d|[268][0-57-9]|7[0-79])|84[09]|9(?:0[1-9]|1[02-9]|[2358][0-8]|[467]\\d))\\d{5}', example_number='51234567', possible_length=(8,)), + mobile=PhoneNumberDesc(national_number_pattern='(?:4(?:44[5-9]|6(?:0[0-7]|1[0-6]|4[0-57-9]|6[0-4]))|573[0-6]|6(?:26[013-8]|66[0-3])|70(?:7[1-5]|8[0-4])|848[0-25-9]|9(?:29[013-9]|59[0-4]))\\d{4}|(?:4(?:4[01]|6[23578])|5(?:[1-59][0-46-9]|6[0-4689]|7[0-246-9])|6(?:0[1-9]|[13-59]\\d|[268][0-57-9]|7[0-79])|84[09]|9(?:0[1-9]|1[02-9]|[2358][0-8]|[467]\\d))\\d{5}', example_number='51234567', possible_length=(8,)), toll_free=PhoneNumberDesc(national_number_pattern='800\\d{6}', example_number='800123456', possible_length=(9,)), premium_rate=PhoneNumberDesc(national_number_pattern='900(?:[0-24-9]\\d{7}|3\\d{1,4})', example_number='90012345678', possible_length=(5, 6, 7, 8, 11)), personal_number=PhoneNumberDesc(national_number_pattern='8(?:1[0-4679]\\d|2(?:[0-36]\\d|7[0-4])|3(?:[034]\\d|2[09]|70))\\d{4}', example_number='81123456', possible_length=(8,)), diff --git a/python/phonenumbers/data/region_HR.py b/python/phonenumbers/data/region_HR.py index 1157247b..0c384dd1 100644 --- a/python/phonenumbers/data/region_HR.py +++ b/python/phonenumbers/data/region_HR.py @@ -5,7 +5,7 @@ general_desc=PhoneNumberDesc(national_number_pattern='(?:[24-69]\\d|3[0-79])\\d{7}|80\\d{5,7}|[1-79]\\d{7}|6\\d{5,6}', possible_length=(6, 7, 8, 9)), fixed_line=PhoneNumberDesc(national_number_pattern='1\\d{7}|(?:2[0-3]|3[1-5]|4[02-47-9]|5[1-3])\\d{6,7}', example_number='12345678', possible_length=(8, 9), possible_length_local_only=(6, 7)), mobile=PhoneNumberDesc(national_number_pattern='9(?:(?:0[1-9]|[12589]\\d)\\d\\d|7(?:[0679]\\d\\d|5(?:[01]\\d|44|77|9[67])))\\d{4}|98\\d{6}', example_number='921234567', possible_length=(8, 9)), - toll_free=PhoneNumberDesc(national_number_pattern='80[01]\\d{4,6}', example_number='800123456', possible_length=(7, 8, 9)), + toll_free=PhoneNumberDesc(national_number_pattern='80\\d{5,7}', example_number='800123456', possible_length=(7, 8, 9)), premium_rate=PhoneNumberDesc(national_number_pattern='6[01459]\\d{6}|6[01]\\d{4,5}', example_number='611234', possible_length=(6, 7, 8)), personal_number=PhoneNumberDesc(national_number_pattern='7[45]\\d{6}', example_number='74123456', possible_length=(8,)), uan=PhoneNumberDesc(national_number_pattern='62\\d{6,7}|72\\d{6}', example_number='62123456', possible_length=(8, 9)), diff --git a/python/phonenumbers/data/region_KZ.py b/python/phonenumbers/data/region_KZ.py index 4e84bca2..2d76c35a 100644 --- a/python/phonenumbers/data/region_KZ.py +++ b/python/phonenumbers/data/region_KZ.py @@ -13,4 +13,5 @@ preferred_international_prefix='8~10', national_prefix='8', national_prefix_for_parsing='8', - leading_digits='33|7') + leading_digits='33|7', + mobile_number_portable_region=True) diff --git a/python/phonenumbers/data/region_MU.py b/python/phonenumbers/data/region_MU.py index af6d6a7c..391aef72 100644 --- a/python/phonenumbers/data/region_MU.py +++ b/python/phonenumbers/data/region_MU.py @@ -4,7 +4,7 @@ PHONE_METADATA_MU = PhoneMetadata(id='MU', country_code=230, international_prefix='0(?:0|[24-7]0|3[03])', general_desc=PhoneNumberDesc(national_number_pattern='(?:[57]|8\\d\\d)\\d{7}|[2-468]\\d{6}', possible_length=(7, 8, 10)), fixed_line=PhoneNumberDesc(national_number_pattern='(?:2(?:[0346-8]\\d|1[0-7])|4(?:[013568]\\d|2[4-8])|54(?:[3-5]\\d|71)|6\\d\\d|8(?:14|3[129]))\\d{4}', example_number='54480123', possible_length=(7, 8)), - mobile=PhoneNumberDesc(national_number_pattern='5(?:4(?:2[1-389]|7[1-9])|87[15-8])\\d{4}|(?:5(?:2[5-9]|4[3-689]|[57]\\d|8[0-689]|9[0-8])|7(?:0[0-2]|3[013]))\\d{5}', example_number='52512345', possible_length=(8,)), + mobile=PhoneNumberDesc(national_number_pattern='5(?:4(?:2[1-389]|7[1-9])|87[15-8])\\d{4}|(?:5(?:2[5-9]|4[3-689]|[57]\\d|8[0-689]|9[0-8])|7(?:0[0-3]|3[013]))\\d{5}', example_number='52512345', possible_length=(8,)), toll_free=PhoneNumberDesc(national_number_pattern='802\\d{7}|80[0-2]\\d{4}', example_number='8001234', possible_length=(7, 10)), premium_rate=PhoneNumberDesc(national_number_pattern='30\\d{5}', example_number='3012345', possible_length=(7,)), voip=PhoneNumberDesc(national_number_pattern='3(?:20|9\\d)\\d{4}', example_number='3201234', possible_length=(7,)), diff --git a/python/phonenumbers/data/region_PA.py b/python/phonenumbers/data/region_PA.py index db51356c..58e7c132 100644 --- a/python/phonenumbers/data/region_PA.py +++ b/python/phonenumbers/data/region_PA.py @@ -3,7 +3,7 @@ PHONE_METADATA_PA = PhoneMetadata(id='PA', country_code=507, international_prefix='00', general_desc=PhoneNumberDesc(national_number_pattern='(?:00800|8\\d{3})\\d{6}|[68]\\d{7}|[1-57-9]\\d{6}', possible_length=(7, 8, 10, 11)), - fixed_line=PhoneNumberDesc(national_number_pattern='(?:1(?:0\\d|1[479]|2[37]|3[0137]|4[17]|5[05]|6[58]|7[0167]|8[2358]|9[1389])|2(?:[0235-79]\\d|1[0-7]|4[013-9]|8[02-9])|3(?:[089]\\d|1[0-7]|2[0-5]|33|4[0-79]|5[0-35]|6[068]|7[0-8])|4(?:00|3[0-579]|4\\d|7[0-57-9])|5(?:[01]\\d|2[0-7]|[56]0|79)|7(?:0[09]|2[0-26-8]|3[03]|4[04]|5[05-9]|6[056]|7[0-24-9]|8[5-9]|90)|8(?:09|2[89]|3\\d|4[0-24-689]|5[014]|8[02])|9(?:0[5-9]|1[0135-8]|2[036-9]|3[35-79]|40|5[0457-9]|6[05-9]|7[04-9]|8[35-8]|9\\d))\\d{4}', example_number='2001234', possible_length=(7,)), + fixed_line=PhoneNumberDesc(national_number_pattern='(?:1(?:0\\d|1[479]|2[37]|3[0137]|4[17]|5[05]|6[058]|7[0167]|8[2358]|9[1389])|2(?:[0235-79]\\d|1[0-7]|4[013-9]|8[02-9])|3(?:[089]\\d|1[0-7]|2[0-5]|33|4[0-79]|5[0-35]|6[068]|7[0-8])|4(?:00|3[0-579]|4\\d|7[0-57-9])|5(?:[01]\\d|2[0-7]|[56]0|79)|7(?:0[09]|2[0-26-8]|3[03]|4[04]|5[05-9]|6[0156]|7[0-24-9]|8[5-9]|90)|8(?:09|2[89]|3\\d|4[0-24-689]|5[014]|8[02])|9(?:0[5-9]|1[0135-8]|2[036-9]|3[35-79]|40|5[0457-9]|6[05-9]|7[04-9]|8[35-8]|9\\d))\\d{4}', example_number='2001234', possible_length=(7,)), mobile=PhoneNumberDesc(national_number_pattern='(?:1[16]1|21[89]|6\\d{3}|8(?:1[01]|7[23]))\\d{4}', example_number='61234567', possible_length=(7, 8)), toll_free=PhoneNumberDesc(national_number_pattern='800\\d{4,5}|(?:00800|800\\d)\\d{6}', example_number='8001234', possible_length=(7, 8, 10, 11)), premium_rate=PhoneNumberDesc(national_number_pattern='(?:8(?:22|55|60|7[78]|86)|9(?:00|81))\\d{4}', example_number='8601234', possible_length=(7,)), diff --git a/python/phonenumbers/data/region_RU.py b/python/phonenumbers/data/region_RU.py index 64de98f2..434f851b 100644 --- a/python/phonenumbers/data/region_RU.py +++ b/python/phonenumbers/data/region_RU.py @@ -23,4 +23,5 @@ NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{2})(\\d{2})', format='\\1 \\2-\\3-\\4', leading_digits_pattern=['[349]|8(?:[02-7]|1[1-8])']), NumberFormat(pattern='(\\d{4})(\\d{4})(\\d{3})(\\d{3})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['8'])], main_country_for_code=True, - leading_digits='3[04-689]|[489]') + leading_digits='3[04-689]|[489]', + mobile_number_portable_region=True) diff --git a/python/phonenumbers/data/region_UG.py b/python/phonenumbers/data/region_UG.py index d0541ee1..627ff8d0 100644 --- a/python/phonenumbers/data/region_UG.py +++ b/python/phonenumbers/data/region_UG.py @@ -4,7 +4,7 @@ PHONE_METADATA_UG = PhoneMetadata(id='UG', country_code=256, international_prefix='00[057]', general_desc=PhoneNumberDesc(national_number_pattern='800\\d{6}|(?:[29]0|[347]\\d)\\d{7}', possible_length=(9,), possible_length_local_only=(5, 6, 7)), fixed_line=PhoneNumberDesc(national_number_pattern='20(?:(?:240|30[67])\\d|6(?:00[0-2]|30[0-4]))\\d{3}|(?:20(?:[017]\\d|2[5-9]|32|5[0-4]|6[15-9])|[34]\\d{3})\\d{5}', example_number='312345678', possible_length=(9,), possible_length_local_only=(5, 6, 7)), - mobile=PhoneNumberDesc(national_number_pattern='726[01]\\d{5}|7(?:[01578]\\d|20|36|4[0-4]|6[0-6]|9[89])\\d{6}', example_number='712345678', possible_length=(9,)), + mobile=PhoneNumberDesc(national_number_pattern='726[01]\\d{5}|7(?:[015-8]\\d|20|36|4[0-4]|9[89])\\d{6}', example_number='712345678', possible_length=(9,)), toll_free=PhoneNumberDesc(national_number_pattern='800[1-3]\\d{5}', example_number='800123456', possible_length=(9,)), premium_rate=PhoneNumberDesc(national_number_pattern='90[1-3]\\d{6}', example_number='901123456', possible_length=(9,)), national_prefix='0', diff --git a/python/phonenumbers/data/region_US.py b/python/phonenumbers/data/region_US.py index 8a2986a6..02d0ee8e 100644 --- a/python/phonenumbers/data/region_US.py +++ b/python/phonenumbers/data/region_US.py @@ -3,8 +3,8 @@ PHONE_METADATA_US = PhoneMetadata(id='US', country_code=1, international_prefix='011', general_desc=PhoneNumberDesc(national_number_pattern='[2-9]\\d{9}|3\\d{6}', possible_length=(10,), possible_length_local_only=(7,)), - fixed_line=PhoneNumberDesc(national_number_pattern='5056(?:[0-35-9]\\d|4[46])\\d{4}|(?:4722|505[2-57-9]|983[29])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[0-2]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}', example_number='2015550123', possible_length=(10,), possible_length_local_only=(7,)), - mobile=PhoneNumberDesc(national_number_pattern='5056(?:[0-35-9]\\d|4[46])\\d{4}|(?:4722|505[2-57-9]|983[29])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[0-2]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}', example_number='2015550123', possible_length=(10,), possible_length_local_only=(7,)), + fixed_line=PhoneNumberDesc(national_number_pattern='5056(?:[0-35-9]\\d|4[468])\\d{4}|(?:4722|505[2-57-9]|983[29])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[0-2]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}', example_number='2015550123', possible_length=(10,), possible_length_local_only=(7,)), + mobile=PhoneNumberDesc(national_number_pattern='5056(?:[0-35-9]\\d|4[468])\\d{4}|(?:4722|505[2-57-9]|983[29])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[0-2]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}', example_number='2015550123', possible_length=(10,), possible_length_local_only=(7,)), toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|33|44|55|66|77|88)[2-9]\\d{6}', example_number='8002345678', possible_length=(10,)), premium_rate=PhoneNumberDesc(national_number_pattern='900[2-9]\\d{6}', example_number='9002345678', possible_length=(10,)), personal_number=PhoneNumberDesc(national_number_pattern='52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}', example_number='5002345678', possible_length=(10,)), diff --git a/python/phonenumbers/data/region_UZ.py b/python/phonenumbers/data/region_UZ.py index 728b91a3..e5172d2f 100644 --- a/python/phonenumbers/data/region_UZ.py +++ b/python/phonenumbers/data/region_UZ.py @@ -2,9 +2,9 @@ from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_UZ = PhoneMetadata(id='UZ', country_code=998, international_prefix='810', - general_desc=PhoneNumberDesc(national_number_pattern='200\\d{6}|(?:33|[5-79]\\d|88)\\d{7}', possible_length=(9,)), - fixed_line=PhoneNumberDesc(national_number_pattern='(?:55\\d\\d|6(?:1(?:22|3[124]|4[1-4]|5[1-3578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|6\\d\\d|7(?:[23]\\d|7[69])|9(?:22|4[1-8]|6[135]))|7(?:0(?:5[4-9]|6[0146]|7[124-6]|9[135-8])|(?:1[12]|8\\d)\\d|2(?:22|3[13-57-9]|4[1-3579]|5[14])|3(?:2\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\d|3[1-579]|7[1-79])|5(?:22|5[1-9]|6[1457])|6(?:22|3[12457]|4[13-8])|9(?:22|5[1-9])))\\d{5}', example_number='669050123', possible_length=(9,)), - mobile=PhoneNumberDesc(national_number_pattern='(?:(?:200[01]|(?:33|50|88|9[0-57-9])\\d\\d)\\d|6(?:1(?:2(?:2[01]|98)|35[0-4]|50\\d|61[23]|7(?:[01][017]|4\\d|55|9[5-9]))|2(?:(?:11|7\\d)\\d|2(?:[12]1|9[01379])|5(?:[126]\\d|3[0-4]))|5(?:19[01]|2(?:27|9[26])|(?:30|59|7\\d)\\d)|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|(?:3[79]|9[0-3])\\d|4(?:56|83)|7(?:[07]\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79]))|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\d|[39][07])|9(?:0\\d|7[079]))|9(?:2(?:1[1267]|3[01]|5\\d|7[0-4])|(?:5[67]|7\\d)\\d|6(?:2[0-26]|8\\d)))|7(?:[07]\\d{3}|1(?:13[01]|6(?:0[47]|1[67]|66)|71[3-69]|98\\d)|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\d|7(?:0\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|(?:33|9[4-6])\\d|5(?:0[0-4]|5[579]|9\\d)|7(?:[0-3579]\\d|4[0467]|6[67]|8[078]))|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\d|9[5-9])|7(?:0\\d|1[024589]|2[0-27]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\d))|5(?:112|2(?:0\\d|2[29]|[49]4)|3[1568]\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\d|8[78]|9[079]))|6(?:2(?:2[1245]|4[2-4])|39\\d|41[179]|5(?:[349]\\d|5[0-2])|7(?:0[017]|[13]\\d|22|44|55|67|88))|9(?:22[128]|3(?:2[0-4]|7\\d)|57[02569]|7(?:2[05-9]|3[37]|4\\d|60|7[2579]|87|9[07]))))\\d{4}', example_number='912345678', possible_length=(9,)), + general_desc=PhoneNumberDesc(national_number_pattern='(?:20|33|[5-79]\\d|88)\\d{7}', possible_length=(9,)), + fixed_line=PhoneNumberDesc(national_number_pattern='(?:55\\d\\d|6(?:1(?:22|3[124]|4[1-4]|5[1-3578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|6\\d\\d|7(?:[23]\\d|7[69])|9(?:22|4[1-8]|6[135]))|7(?:0(?:5[4-9]|6[0146]|7[124-6]|9[135-8])|(?:1[12]|[68]\\d)\\d|2(?:22|3[13-57-9]|4[1-3579]|5[14])|3(?:2\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\d|3[1-579]|7[1-79])|5(?:22|5[1-9]|6[1457])|9(?:22|5[1-9])))\\d{5}', example_number='669050123', possible_length=(9,)), + mobile=PhoneNumberDesc(national_number_pattern='(?:(?:[25]0|33|88|9[0-57-9])\\d{3}|6(?:1(?:2(?:2[01]|98)|35[0-4]|50\\d|61[23]|7(?:[01][017]|4\\d|55|9[5-9]))|2(?:(?:11|7\\d)\\d|2(?:[12]1|9[01379])|5(?:[126]\\d|3[0-4]))|5(?:19[01]|2(?:27|9[26])|(?:30|59|7\\d)\\d)|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|(?:3[79]|9[0-3])\\d|4(?:56|83)|7(?:[07]\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79]))|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\d|[39][07])|9(?:0\\d|7[079]))|9(?:2(?:1[1267]|3[01]|5\\d|7[0-4])|(?:5[67]|7\\d)\\d|6(?:2[0-26]|8\\d)))|7(?:[07]\\d{3}|1(?:13[01]|6(?:0[47]|1[67]|66)|71[3-69]|98\\d)|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\d|7(?:0\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|(?:33|9[4-6])\\d|5(?:0[0-4]|5[579]|9\\d)|7(?:[0-3579]\\d|4[0467]|6[67]|8[078]))|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\d|9[5-9])|7(?:0\\d|1[024589]|2[0-27]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\d))|5(?:112|2(?:0\\d|2[29]|[49]4)|3[1568]\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\d|8[78]|9[079]))|9(?:22[128]|3(?:2[0-4]|7\\d)|57[02569]|7(?:2[05-9]|3[37]|4\\d|60|7[2579]|87|9[07]))))\\d{4}', example_number='912345678', possible_length=(9,)), preferred_international_prefix='8~10', national_prefix='8', national_prefix_for_parsing='8',