Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-phonenumbers for
openSUSE:Factory checked in at 2026-06-28 21:10:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-phonenumbers (Old)
and /work/SRC/openSUSE:Factory/.python-phonenumbers.new.11887 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-phonenumbers"
Sun Jun 28 21:10:21 2026 rev:55 rq:1362133 version:9.0.33
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-phonenumbers/python-phonenumbers.changes
2026-05-25 22:00:15.313484856 +0200
+++
/work/SRC/openSUSE:Factory/.python-phonenumbers.new.11887/python-phonenumbers.changes
2026-06-28 21:11:28.208072766 +0200
@@ -1,0 +2,6 @@
+Sun Jun 28 09:47:26 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 9.0.33
+ * Merge metadata changes from upstream 9.0.33
+
+-------------------------------------------------------------------
Old:
----
phonenumbers-9.0.31.tar.gz
New:
----
phonenumbers-9.0.33.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-phonenumbers.spec ++++++
--- /var/tmp/diff_new_pack.paUA82/_old 2026-06-28 21:11:30.092136474 +0200
+++ /var/tmp/diff_new_pack.paUA82/_new 2026-06-28 21:11:30.092136474 +0200
@@ -18,7 +18,7 @@
%{?sle15_python_module_pythons}
Name: python-phonenumbers
-Version: 9.0.31
+Version: 9.0.33
Release: 0
Summary: Python version of Google's common library for international
phone numbers
License: Apache-2.0
++++++ phonenumbers-9.0.31.tar.gz -> phonenumbers-9.0.33.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/PKG-INFO
new/phonenumbers-9.0.33/PKG-INFO
--- old/phonenumbers-9.0.31/PKG-INFO 2026-05-23 08:08:53.345654500 +0200
+++ new/phonenumbers-9.0.33/PKG-INFO 2026-06-22 12:23:21.257601700 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: phonenumbers
-Version: 9.0.31
+Version: 9.0.33
Summary: Python version of Google's common library for parsing, formatting,
storing and validating international phone numbers.
Author-email: David Drysdale <[email protected]>
License-Expression: Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/__init__.py
new/phonenumbers-9.0.33/phonenumbers/__init__.py
--- old/phonenumbers-9.0.31/phonenumbers/__init__.py 2026-05-22
18:48:43.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/__init__.py 2026-06-22
12:12:25.000000000 +0200
@@ -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.31"
+__version__ = "9.0.33"
__all__ = ['PhoneNumber', 'CountryCodeSource', 'FrozenPhoneNumber',
'REGION_CODE_FOR_NON_GEO_ENTITY', 'NumberFormat',
'PhoneNumberDesc', 'PhoneMetadata',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/phonenumbers-9.0.31/phonenumbers/carrierdata/data0.py
new/phonenumbers-9.0.33/phonenumbers/carrierdata/data0.py
--- old/phonenumbers-9.0.31/phonenumbers/carrierdata/data0.py 2026-05-22
18:48:43.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/carrierdata/data0.py 2026-06-22
12:12:25.000000000 +0200
@@ -515,9 +515,9 @@
'180999':{'en': 'Tricom'},
'186825':{'en': 'Digicel'},
'186826':{'en': 'Digicel'},
- '186827':{'en': 'bmobile'},
- '186828':{'en': 'bmobile'},
- '186829':{'en': 'bmobile'},
+ '186827':{'en': 'Digicel'},
+ '186828':{'en': 'Digicel'},
+ '186829':{'en': 'Digicel'},
'18683':{'en': 'Digicel'},
'186843':{'en': 'Digicel'},
'186846':{'en': 'bmobile'},
@@ -1071,7 +1071,7 @@
'23232':{'en': 'QCELL'},
'23233':{'en': 'Africell'},
'23234':{'en': 'QCELL'},
- '23235':{'en': 'IPTEL'},
+ '23235':{'en': 'QCELL'},
'2326':{'en': 'Onlime'},
'2327':{'en': 'Orange'},
'23270':{'en': 'Africell'},
@@ -1079,19 +1079,19 @@
'2328':{'en': 'Africell'},
'2329':{'en': 'Africell'},
'23320':{'en': 'Telecel'},
- '23323':{'en': 'airteltiGO'},
+ '23323':{'en': 'at'},
'23324':{'en': 'MTN'},
'23325':{'en': 'MTN'},
- '23326':{'en': 'airteltiGO'},
- '23327':{'en': 'airteltiGO'},
+ '23326':{'en': 'at'},
+ '23327':{'en': 'at'},
'23328':{'en': 'Expresso'},
'23329':{'en': 'National Security'},
'23350':{'en': 'Telecel'},
'23353':{'en': 'MTN'},
'23354':{'en': 'MTN'},
'23355':{'en': 'MTN'},
- '23356':{'en': 'airteltiGO'},
- '23357':{'en': 'airteltiGO'},
+ '23356':{'en': 'at'},
+ '23357':{'en': 'at'},
'23359':{'en': 'MTN'},
'234701':{'en': 'Airtel'},
'2347020':{'en': 'Smile'},
@@ -1147,7 +1147,7 @@
'2356':{'en': 'Airtel'},
'2357':{'en': 'Sotel'},
'2358':{'en': 'Airtel'},
- '2359':{'en': 'Tigo'},
+ '2359':{'en': 'Moov'},
'23670':{'en': 'A-Cell'},
'23672':{'en': 'Orange'},
'23673':{'en': 'Orange'},
@@ -1272,11 +1272,7 @@
'24995':{'en': 'Network of The World Ltd'},
'24996':{'en': 'Zain'},
'24999':{'en': 'MTN'},
- '25072':{'en': 'TIGO'},
- '25073':{'en': 'Airtel'},
- '25077':{'en': 'KtRN'},
- '25078':{'en': 'MTN'},
- '25079':{'en': 'MTN'},
+ '2507':{'en': 'KtRN'},
'2517':{'en': 'Safaricom'},
'2518':{'en': 'Ethio Telecom'},
'2519':{'en': 'Ethio Telecom'},
@@ -1299,7 +1295,11 @@
'25270':{'en': 'Golis Telecom'},
'25271':{'en': 'Amtel'},
'25272':{'en': 'Golis Telecom'},
+ '25273':{'en': 'Telesom'},
+ '25275':{'en': 'Amtel'},
'25276':{'en': 'Somtel'},
+ '25277':{'en': 'Hormuud'},
+ '25278':{'en': 'Hormuud'},
'25279':{'en': 'Somtel'},
'25280':{'en': 'Somali Networks'},
'25288':{'en': 'Somali Networks'},
@@ -1358,11 +1358,13 @@
'25671':{'en': 'UTL'},
'256720':{'en': 'Smile'},
'256721':{'en': 'LycaMobile'},
- '256724':{'en': 'Hamilton Telecom'},
+ '256724':{'en': 'MTN'},
+ '2567240':{'en': 'Hamilton Telecom'},
'256726':{'en': 'LycaMobile'},
'256727':{'en': 'LycaMobile'},
'256728':{'en': 'Talkio'},
'256730':{'en': 'Airtel'},
+ '256731':{'en': 'Airtel'},
'256736':{'en': 'Hamilton Telecom'},
'25674':{'en': 'Airtel'},
'25675':{'en': 'Airtel'},
@@ -1539,6 +1541,7 @@
'26484':{'en': 'MTN'},
'26485':{'en': 'TN Mobile'},
'26511':{'en': 'Malawi Telecom-munications Ltd (MTL)'},
+ '2652':{'en': 'Zero2'},
'2653':{'en': 'TNM'},
'2657':{'en': 'Globally Advanced Integrated Networks Ltd'},
'2658':{'en': 'TNM'},
@@ -2351,6 +2354,7 @@
'3377192':{'en': 'Euroinformation Telecom'},
'3377193':{'en': 'Euroinformation Telecom'},
'3377194':{'en': 'Euroinformation Telecom'},
+ '3377199':{'en': 'Bouygues'},
'33772':{'en': 'Orange France'},
'33773':{'en': 'Syma mobile'},
'33774':{'en': 'Syma mobile'},
@@ -2965,6 +2969,7 @@
'36313331':{'en': 'Vidanet'},
'36313666':{'en': 'One'},
'3631700':{'en': 'One'},
+ '3631701':{'en': 'Tarr'},
'3631770':{'en': 'One'},
'3631771':{'en': 'One'},
'363178':{'en': 'One'},
@@ -3489,7 +3494,6 @@
'38640':{'en': 'A1'},
'38641':{'en': 'Telekom Slovenije'},
'38643':{'en': 'Telekom Slovenije'},
- '38649':{'en': 'Telekom Slovenije'},
'38651':{'en': 'Telekom Slovenije'},
'38664':{'en': 'T-2'},
'386651':{'en': u('S\u017d - Infrastruktura')},
@@ -3591,13 +3595,12 @@
'40775':{'en': 'Digi Mobil'},
'40776':{'en': 'Digi Mobil'},
'40777':{'en': 'Digi Mobil'},
- '40780':{'en': 'Telekom'},
- '40783':{'en': 'Orange'},
- '40784':{'en': 'Telekom'},
- '40785':{'en': 'Telekom'},
- '40786':{'en': 'Telekom'},
+ '4078':{'en': 'Telekom'},
+ '407830':{'en': 'Orange'},
+ '407831':{'en': 'Orange'},
+ '407832':{'en': 'Orange'},
+ '407833':{'en': 'Orange'},
'40787':{'en': 'Orange'},
- '40788':{'en': 'Telekom'},
'4079':{'en': 'Vodafone'},
'4168':{'en': 'Swisscom'},
'4169':{'en': 'Swisscom'},
@@ -6218,6 +6221,9 @@
'474119':{'en': 'telia'},
'47412':{'en': 'telia'},
'47413':{'en': 'telia'},
+ '4742':{'en': 'telenor norge'},
+ '4743':{'en': 'telenor norge'},
+ '4744':{'en': 'telenor norge'},
'4745':{'en': 'telia'},
'47453':{'en': 'telenor norge'},
'474536':{'en': 'nkom (nasjonal kommunikasjonsmyndighet)'},
@@ -6343,6 +6349,7 @@
'474896':{'en': 'telenor norge'},
'474898':{'en': 'telenor norge'},
'474899':{'en': 'telia'},
+ '4749':{'en': 'telenor norge'},
'4790':{'en': 'telenor norge'},
'479042':{'en': 'svea billing services'},
'479043':{'en': 'svea billing services'},
@@ -7095,7 +7102,7 @@
'50366116':{'en': 'Movistar'},
'50367':{'en': 'SIGET'},
'503690':{'en': 'Tigo'},
- '503692':{'en': 'Tigo'},
+ '503692':{'en': 'Movistar'},
'503693':{'en': 'Tigo'},
'503694':{'en': 'Tigo'},
'503695':{'en': 'Tigo'},
@@ -10012,11 +10019,4 @@
'553199723':{'en': 'Telemig Celular'},
'553199724':{'en': 'Telemig Celular'},
'553199725':{'en': 'Telemig Celular'},
- '553199726':{'en': 'Telemig Celular'},
- '553199728':{'en': 'Telemig Celular'},
- '553199729':{'en': 'Telemig Celular'},
- '553199731':{'en': 'Telemig Celular'},
- '553199732':{'en': 'Telemig Celular'},
- '553199733':{'en': 'Telemig Celular'},
- '553199734':{'en': 'Telemig Celular'},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/phonenumbers-9.0.31/phonenumbers/carrierdata/data1.py
new/phonenumbers-9.0.33/phonenumbers/carrierdata/data1.py
--- old/phonenumbers-9.0.31/phonenumbers/carrierdata/data1.py 2026-05-22
18:48:43.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/carrierdata/data1.py 2026-06-22
12:12:25.000000000 +0200
@@ -19,6 +19,13 @@
# limitations under the License.
data = {
+ '553199726':{'en': 'Telemig Celular'},
+ '553199728':{'en': 'Telemig Celular'},
+ '553199729':{'en': 'Telemig Celular'},
+ '553199731':{'en': 'Telemig Celular'},
+ '553199732':{'en': 'Telemig Celular'},
+ '553199733':{'en': 'Telemig Celular'},
+ '553199734':{'en': 'Telemig Celular'},
'553199735':{'en': 'Telemig Celular'},
'553199736':{'en': 'Telemig Celular'},
'553199737':{'en': 'Telemig Celular'},
@@ -10012,11 +10019,4 @@
'5730465':{'en': 'Tigo'},
'5730466':{'en': 'Tigo'},
'5730467':{'en': 'Tigo'},
- '57304680':{'en': 'Tigo'},
- '57304681':{'en': 'Tigo'},
- '57304682':{'en': 'Tigo'},
- '57304683':{'en': 'Tigo'},
- '57304684':{'en': 'Tigo'},
- '573046851':{'en': 'Tigo'},
- '573046852':{'en': 'Tigo'},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/phonenumbers-9.0.31/phonenumbers/carrierdata/data2.py
new/phonenumbers-9.0.33/phonenumbers/carrierdata/data2.py
--- old/phonenumbers-9.0.31/phonenumbers/carrierdata/data2.py 2026-05-22
18:48:43.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/carrierdata/data2.py 2026-06-22
12:12:25.000000000 +0200
@@ -19,6 +19,13 @@
# limitations under the License.
data = {
+ '57304680':{'en': 'Tigo'},
+ '57304681':{'en': 'Tigo'},
+ '57304682':{'en': 'Tigo'},
+ '57304683':{'en': 'Tigo'},
+ '57304684':{'en': 'Tigo'},
+ '573046851':{'en': 'Tigo'},
+ '573046852':{'en': 'Tigo'},
'573046853':{'en': 'Tigo'},
'573046854':{'en': 'Tigo'},
'573046855':{'en': 'Tigo'},
@@ -1568,6 +1575,7 @@
'658976':{'en': 'SingTel'},
'658977':{'en': 'SingTel'},
'658980':{'en': 'Simba'},
+ '658981':{'en': 'StarHub'},
'658982':{'en': 'SingTel'},
'658983':{'en': 'SingTel'},
'658984':{'en': 'SingTel'},
@@ -1615,6 +1623,7 @@
'65918':{'en': 'StarHub'},
'65919':{'en': 'M1'},
'659199':{'en': 'StarHub'},
+ '65920':{'en': 'SingTel'},
'65922':{'en': 'M1'},
'65923':{'en': 'SingTel'},
'659237':{'en': 'StarHub'},
@@ -3939,14 +3948,8 @@
'8458':{'en': 'Vietnamobile'},
'8459':{'en': 'G-Mobile'},
'847':{'en': 'MobiFone'},
- '8481':{'en': 'Vinaphone'},
- '8482':{'en': 'Vinaphone'},
- '8483':{'en': 'Vinaphone'},
- '8484':{'en': 'Vinaphone'},
- '8485':{'en': 'Vinaphone'},
+ '848':{'en': 'Vinaphone'},
'8486':{'en': 'Viettel'},
- '8487':{'en': 'Vinaphone'},
- '8488':{'en': 'Vinaphone'},
'8489':{'en': 'MobiFone'},
'8490':{'en': 'MobiFone'},
'8491':{'en': 'Vinaphone'},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/data/region_BF.py
new/phonenumbers-9.0.33/phonenumbers/data/region_BF.py
--- old/phonenumbers-9.0.31/phonenumbers/data/region_BF.py 2026-05-22
18:48:41.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/data/region_BF.py 2026-06-22
12:12:36.000000000 +0200
@@ -3,6 +3,6 @@
PHONE_METADATA_BF = PhoneMetadata(id='BF', country_code=226,
international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='[024-7]\\d{7}',
possible_length=(8,)),
-
fixed_line=PhoneNumberDesc(national_number_pattern='2(?:0(?:49|5[23]|6[5-7]|9[016-9])|4(?:4[569]|5[4-6]|6[5-7]|7[0179])|5(?:[34]\\d|50|6[5-7]))\\d{4}',
example_number='20491234', possible_length=(8,)),
+
fixed_line=PhoneNumberDesc(national_number_pattern='2(?:0(?:49|5[23]|6[5-7]|9[016-9])|4(?:4[569]|5[4-6]|6[5-7]|7[0179])|5(?:[34]\\d|50|6[5-8]))\\d{4}',
example_number='20491234', possible_length=(8,)),
mobile=PhoneNumberDesc(national_number_pattern='(?:0[1-7]|4[4-6]|5[0-8]|[67]\\d)\\d{6}',
example_number='70123456', possible_length=(8,)),
number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})(\\d{2})',
format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[024-7]'])])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/data/region_DZ.py
new/phonenumbers-9.0.33/phonenumbers/data/region_DZ.py
--- old/phonenumbers-9.0.31/phonenumbers/data/region_DZ.py 2026-05-22
18:48:41.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/data/region_DZ.py 2026-06-22
12:12:36.000000000 +0200
@@ -4,7 +4,7 @@
PHONE_METADATA_DZ = PhoneMetadata(id='DZ', country_code=213,
international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='(?:[1-4]|[5-79]\\d|80)\\d{7}',
possible_length=(8, 9)),
fixed_line=PhoneNumberDesc(national_number_pattern='9619\\d{5}|(?:[1-3]\\d|4[013-689])\\d{6}',
example_number='12345678', possible_length=(8, 9)),
-
mobile=PhoneNumberDesc(national_number_pattern='5(?:4[0-29]|6[0-3])\\d{6}|(?:55|6\\d|7[7-9])\\d{7}',
example_number='551234567', possible_length=(9,)),
+
mobile=PhoneNumberDesc(national_number_pattern='5(?:4[0-29]|6[0-4])\\d{6}|(?:55|6\\d|7[7-9])\\d{7}',
example_number='551234567', possible_length=(9,)),
toll_free=PhoneNumberDesc(national_number_pattern='800\\d{6}',
example_number='800123456', possible_length=(9,)),
premium_rate=PhoneNumberDesc(national_number_pattern='80[3-689]1\\d{5}',
example_number='808123456', possible_length=(9,)),
shared_cost=PhoneNumberDesc(national_number_pattern='80[12]1\\d{5}',
example_number='801123456', possible_length=(9,)),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/data/region_JP.py
new/phonenumbers-9.0.33/phonenumbers/data/region_JP.py
--- old/phonenumbers-9.0.31/phonenumbers/data/region_JP.py 2026-05-22
18:48:41.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/data/region_JP.py 2026-06-22
12:12:36.000000000 +0200
@@ -4,7 +4,7 @@
PHONE_METADATA_JP = PhoneMetadata(id='JP', country_code=81,
international_prefix='010',
general_desc=PhoneNumberDesc(national_number_pattern='00[1-9]\\d{6,14}|[25-9]\\d{9}|(?:00|[1-9]\\d\\d)\\d{6}',
possible_length=(8, 9, 10, 11, 12, 13, 14, 15, 16, 17)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:1(?:1[235-8]|2[3-6]|3[3-9]|4[2-6]|[58][2-8]|6[2-7]|7[2-9]|9[1-9])|(?:2[2-9]|[36][1-9])\\d|4(?:[2-578]\\d|6[02-8]|9[2-59])|5(?:[2-589]\\d|6[1-9]|7[2-8])|7(?:[25-9]\\d|3[4-9]|4[02-9])|8(?:[2679]\\d|3[2-9]|4[5-9]|5[1-9]|8[03-9])|9(?:[2-58]\\d|[679][1-9]))\\d{6}',
example_number='312345678', possible_length=(9,)),
-
mobile=PhoneNumberDesc(national_number_pattern='(?:601[0-4]0|[7-9]0[1-9]\\d\\d)\\d{5}',
example_number='9012345678', possible_length=(10,)),
+ mobile=PhoneNumberDesc(national_number_pattern='[6-9]0[1-9]\\d{7}',
example_number='9012345678', possible_length=(10,)),
toll_free=PhoneNumberDesc(national_number_pattern='00777(?:[01]|5\\d)\\d\\d|(?:00(?:7778|882[1245])|(?:120|800\\d)\\d\\d)\\d{4}|00(?:37|66|78)\\d{6,13}',
example_number='120123456', possible_length=(8, 9, 10, 11, 12, 13, 14, 15, 16,
17)),
premium_rate=PhoneNumberDesc(national_number_pattern='990\\d{6}',
example_number='990123456', possible_length=(9,)),
personal_number=PhoneNumberDesc(national_number_pattern='60\\d{7}',
example_number='601234567', possible_length=(9,)),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/data/region_KE.py
new/phonenumbers-9.0.33/phonenumbers/data/region_KE.py
--- old/phonenumbers-9.0.31/phonenumbers/data/region_KE.py 2026-05-22
18:48:41.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/data/region_KE.py 2026-06-22
12:12:36.000000000 +0200
@@ -4,7 +4,7 @@
PHONE_METADATA_KE = PhoneMetadata(id='KE', country_code=254,
international_prefix='000',
general_desc=PhoneNumberDesc(national_number_pattern='(?:[17]\\d\\d|900)\\d{6}|(?:2|80)0\\d{6,7}|[4-6]\\d{6,8}',
possible_length=(7, 8, 9, 10)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:4[245]|5[1-79]|6[01457-9])\\d{5,7}|(?:4[136]|5[08]|62)\\d{7}|(?:[24]0|66)\\d{6,7}',
example_number='202012345', possible_length=(7, 8, 9)),
-
mobile=PhoneNumberDesc(national_number_pattern='(?:1(?:0[0-8]|1\\d|2[014]|30|4[0-3])|7\\d\\d)\\d{6}',
example_number='712123456', possible_length=(9,)),
+
mobile=PhoneNumberDesc(national_number_pattern='(?:1(?:0[0-8]|1\\d|2[014]|30|4[0-5])|7\\d\\d)\\d{6}',
example_number='712123456', possible_length=(9,)),
toll_free=PhoneNumberDesc(national_number_pattern='800[02-8]\\d{5,6}',
example_number='800223456', possible_length=(9, 10)),
premium_rate=PhoneNumberDesc(national_number_pattern='900[02-9]\\d{5}',
example_number='900223456', possible_length=(9,)),
national_prefix='0',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/data/region_MC.py
new/phonenumbers-9.0.33/phonenumbers/data/region_MC.py
--- old/phonenumbers-9.0.31/phonenumbers/data/region_MC.py 2026-05-22
18:48:41.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/data/region_MC.py 2026-06-22
12:12:36.000000000 +0200
@@ -4,7 +4,7 @@
PHONE_METADATA_MC = PhoneMetadata(id='MC', country_code=377,
international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='(?:[3489]|[67]\\d)\\d{7}',
possible_length=(8, 9)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:870|9[2-47-9]\\d)\\d{5}',
example_number='99123456', possible_length=(8,)),
-
mobile=PhoneNumberDesc(national_number_pattern='4(?:[469]\\d|5[1-9])\\d{5}|(?:3|[67]\\d)\\d{7}',
example_number='612345678', possible_length=(8, 9)),
+
mobile=PhoneNumberDesc(national_number_pattern='4(?:[46]\\d|5[1-9])\\d{5}|(?:3|[67]\\d)\\d{7}',
example_number='612345678', possible_length=(8, 9)),
toll_free=PhoneNumberDesc(national_number_pattern='(?:800|90\\d)\\d{5}',
example_number='90123456', possible_length=(8,)),
no_international_dialling=PhoneNumberDesc(national_number_pattern='8[07]0\\d{5}',
possible_length=(8,)),
national_prefix='0',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/data/region_MW.py
new/phonenumbers-9.0.33/phonenumbers/data/region_MW.py
--- old/phonenumbers-9.0.31/phonenumbers/data/region_MW.py 2026-05-22
18:48:41.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/data/region_MW.py 2026-06-22
12:12:36.000000000 +0200
@@ -3,10 +3,9 @@
PHONE_METADATA_MW = PhoneMetadata(id='MW', country_code=265,
international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='(?:[1289]\\d|31|77)\\d{7}|1\\d{6}',
possible_length=(7, 9)),
-
fixed_line=PhoneNumberDesc(national_number_pattern='(?:1[2-9]|2[12]\\d\\d)\\d{5}',
example_number='1234567', possible_length=(7, 9)),
-
mobile=PhoneNumberDesc(national_number_pattern='111\\d{6}|(?:31|77|[89][89])\\d{7}',
example_number='991234567', possible_length=(9,)),
+ fixed_line=PhoneNumberDesc(national_number_pattern='1[2-9]\\d{5}',
example_number='1234567', possible_length=(7,)),
+
mobile=PhoneNumberDesc(national_number_pattern='111\\d{6}|(?:2[12]|31|77|[89][89])\\d{7}',
example_number='991234567', possible_length=(9,)),
national_prefix='0',
national_prefix_for_parsing='0',
number_format=[NumberFormat(pattern='(\\d)(\\d{3})(\\d{3})', format='\\1
\\2 \\3', leading_digits_pattern=['1[2-9]'],
national_prefix_formatting_rule='0\\1'),
- NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3',
leading_digits_pattern=['2'], national_prefix_formatting_rule='0\\1'),
- NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})(\\d{2})', format='\\1
\\2 \\3 \\4', leading_digits_pattern=['[137-9]'],
national_prefix_formatting_rule='0\\1')])
+ NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})(\\d{2})', format='\\1
\\2 \\3 \\4', leading_digits_pattern=['[1-37-9]'],
national_prefix_formatting_rule='0\\1')])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/data/region_NO.py
new/phonenumbers-9.0.33/phonenumbers/data/region_NO.py
--- old/phonenumbers-9.0.31/phonenumbers/data/region_NO.py 2026-05-22
18:48:41.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/data/region_NO.py 2026-06-22
12:12:36.000000000 +0200
@@ -3,8 +3,8 @@
PHONE_METADATA_NO = PhoneMetadata(id='NO', country_code=47,
international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='(?:0|[2-9]\\d{3})\\d{4}',
possible_length=(5, 8)),
-
fixed_line=PhoneNumberDesc(national_number_pattern='(?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-4679]|7[0-8])\\d{6}',
example_number='21234567', possible_length=(8,)),
- mobile=PhoneNumberDesc(national_number_pattern='(?:4[015-8]|9\\d)\\d{6}',
example_number='40612345', possible_length=(8,)),
+
fixed_line=PhoneNumberDesc(national_number_pattern='(?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-46-9]|7[0-8])\\d{6}',
example_number='21234567', possible_length=(8,)),
+ mobile=PhoneNumberDesc(national_number_pattern='[49]\\d{7}',
example_number='40612345', possible_length=(8,)),
toll_free=PhoneNumberDesc(national_number_pattern='80[01]\\d{5}',
example_number='80012345', possible_length=(8,)),
premium_rate=PhoneNumberDesc(national_number_pattern='82[09]\\d{5}',
example_number='82012345', possible_length=(8,)),
shared_cost=PhoneNumberDesc(national_number_pattern='810(?:0[0-6]|[2-8]\\d)\\d{3}',
example_number='81021234', possible_length=(8,)),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/data/region_SG.py
new/phonenumbers-9.0.33/phonenumbers/data/region_SG.py
--- old/phonenumbers-9.0.31/phonenumbers/data/region_SG.py 2026-05-22
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/data/region_SG.py 2026-06-22
12:12:36.000000000 +0200
@@ -4,7 +4,7 @@
PHONE_METADATA_SG = PhoneMetadata(id='SG', country_code=65,
international_prefix='0[0-3]\\d',
general_desc=PhoneNumberDesc(national_number_pattern='(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}',
possible_length=(8, 10, 11)),
fixed_line=PhoneNumberDesc(national_number_pattern='662[0-24-9]\\d{4}|6(?:[0-578]\\d|6[013-57-9]|9[0-35-9])\\d{5}',
example_number='61234567', possible_length=(8,)),
-
mobile=PhoneNumberDesc(national_number_pattern='898[02-9]\\d{4}|(?:8(?:0[1-9]|[1-8]\\d|9[0-79])|9[0-8]\\d)\\d{5}',
example_number='81234567', possible_length=(8,)),
+
mobile=PhoneNumberDesc(national_number_pattern='80[1-9]\\d{5}|(?:8[1-9]|9[0-8])\\d{6}',
example_number='81234567', possible_length=(8,)),
toll_free=PhoneNumberDesc(national_number_pattern='(?:18|8)00\\d{7}',
example_number='18001234567', possible_length=(10, 11)),
premium_rate=PhoneNumberDesc(national_number_pattern='1900\\d{7}',
example_number='19001234567', possible_length=(11,)),
voip=PhoneNumberDesc(national_number_pattern='(?:3[12]\\d|666)\\d{5}',
example_number='31234567', possible_length=(8,)),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/data/region_SI.py
new/phonenumbers-9.0.33/phonenumbers/data/region_SI.py
--- old/phonenumbers-9.0.31/phonenumbers/data/region_SI.py 2026-05-22
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/data/region_SI.py 2026-06-22
12:12:36.000000000 +0200
@@ -4,7 +4,7 @@
PHONE_METADATA_SI = PhoneMetadata(id='SI', country_code=386,
international_prefix='00|10(?:22|66|88|99)',
general_desc=PhoneNumberDesc(national_number_pattern='[1-7]\\d{7}|8\\d{4,7}|90\\d{4,6}',
possible_length=(5, 6, 7, 8)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:[1-357][2-8]|4[24-8])\\d{6}',
example_number='12345678', possible_length=(8,),
possible_length_local_only=(7,)),
-
mobile=PhoneNumberDesc(national_number_pattern='65(?:[178]\\d|5[56]|6[01])\\d{4}|(?:[37][01]|4[0139]|51|6[489])\\d{6}',
example_number='31234567', possible_length=(8,)),
+
mobile=PhoneNumberDesc(national_number_pattern='65(?:[178]\\d|5[56]|6[01])\\d{4}|(?:[37][01]|4[013]|51|6[489])\\d{6}',
example_number='31234567', possible_length=(8,)),
toll_free=PhoneNumberDesc(national_number_pattern='80\\d{4,6}',
example_number='80123456', possible_length=(6, 7, 8)),
premium_rate=PhoneNumberDesc(national_number_pattern='89[1-3]\\d{2,5}|90\\d{4,6}',
example_number='90123456', possible_length=(5, 6, 7, 8)),
voip=PhoneNumberDesc(national_number_pattern='(?:59\\d\\d|8(?:1(?:[67]\\d|8[0-589])|2(?:0\\d|2[0-37-9]|8[0-2489])|3[389]\\d))\\d{4}',
example_number='59012345', possible_length=(8,)),
@@ -13,6 +13,6 @@
national_prefix_for_parsing='0',
number_format=[NumberFormat(pattern='(\\d{2})(\\d{3,6})', format='\\1
\\2', leading_digits_pattern=['8[09]|9'],
national_prefix_formatting_rule='0\\1'),
NumberFormat(pattern='(\\d{3})(\\d{5})', format='\\1 \\2',
leading_digits_pattern=['59|8'], national_prefix_formatting_rule='0\\1'),
- NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{3})', format='\\1 \\2 \\3',
leading_digits_pattern=['[37][01]|4[0139]|51|6'],
national_prefix_formatting_rule='0\\1'),
+ NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{3})', format='\\1 \\2 \\3',
leading_digits_pattern=['[37][01]|4[013]|51|6'],
national_prefix_formatting_rule='0\\1'),
NumberFormat(pattern='(\\d)(\\d{3})(\\d{2})(\\d{2})', format='\\1 \\2
\\3 \\4', leading_digits_pattern=['[1-57]'],
national_prefix_formatting_rule='(0\\1)')],
mobile_number_portable_region=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/data/region_SJ.py
new/phonenumbers-9.0.33/phonenumbers/data/region_SJ.py
--- old/phonenumbers-9.0.31/phonenumbers/data/region_SJ.py 2026-05-22
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/data/region_SJ.py 2026-06-22
12:12:36.000000000 +0200
@@ -4,7 +4,7 @@
PHONE_METADATA_SJ = PhoneMetadata(id='SJ', country_code=47,
international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='0\\d{4}|(?:[489]\\d|79)\\d{6}',
possible_length=(5, 8)),
fixed_line=PhoneNumberDesc(national_number_pattern='79\\d{6}',
example_number='79123456', possible_length=(8,)),
- mobile=PhoneNumberDesc(national_number_pattern='(?:4[015-8]|9\\d)\\d{6}',
example_number='41234567', possible_length=(8,)),
+ mobile=PhoneNumberDesc(national_number_pattern='[49]\\d{7}',
example_number='41234567', possible_length=(8,)),
toll_free=PhoneNumberDesc(national_number_pattern='80[01]\\d{5}',
example_number='80012345', possible_length=(8,)),
premium_rate=PhoneNumberDesc(national_number_pattern='82[09]\\d{5}',
example_number='82012345', possible_length=(8,)),
shared_cost=PhoneNumberDesc(national_number_pattern='810(?:0[0-6]|[2-8]\\d)\\d{3}',
example_number='81021234', possible_length=(8,)),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/data/region_SO.py
new/phonenumbers-9.0.33/phonenumbers/data/region_SO.py
--- old/phonenumbers-9.0.31/phonenumbers/data/region_SO.py 2026-05-22
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/data/region_SO.py 2026-06-22
12:12:36.000000000 +0200
@@ -4,12 +4,12 @@
PHONE_METADATA_SO = PhoneMetadata(id='SO', country_code=252,
international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='[346-9]\\d{8}|[12679]\\d{7}|[1-5]\\d{6}|[1348]\\d{5}',
possible_length=(6, 7, 8, 9)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:1\\d|2[0-79]|3[0-46-8]|4[0-7]|5[57-9])\\d{5}|(?:[134]\\d|8[125])\\d{4}',
example_number='4012345', possible_length=(6, 7)),
-
mobile=PhoneNumberDesc(national_number_pattern='(?:(?:15|(?:3[59]|4[89]|6\\d|7[679]|8[08])\\d|9(?:0\\d|[2-9]))\\d|2(?:4\\d|8))\\d{5}|(?:[67]\\d\\d|904)\\d{5}',
example_number='71123456', possible_length=(7, 8, 9)),
+
mobile=PhoneNumberDesc(national_number_pattern='(?:(?:15|(?:3[59]|4[89]|6\\d|7[0-35-9]|8[08])\\d|9(?:0\\d|[2-9]))\\d|2(?:4\\d|8))\\d{5}|(?:[67]\\d\\d|904)\\d{5}',
example_number='71123456', possible_length=(7, 8, 9)),
national_prefix='0',
national_prefix_for_parsing='0',
number_format=[NumberFormat(pattern='(\\d{2})(\\d{4})', format='\\1 \\2',
leading_digits_pattern=['8[125]']),
NumberFormat(pattern='(\\d{6})', format='\\1',
leading_digits_pattern=['[134]']),
NumberFormat(pattern='(\\d)(\\d{6})', format='\\1 \\2',
leading_digits_pattern=['[15]|2[0-79]|3[0-46-8]|4[0-7]']),
- NumberFormat(pattern='(\\d)(\\d{7})', format='\\1 \\2',
leading_digits_pattern=['(?:2|90)4|[67]']),
- NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3',
leading_digits_pattern=['[348]|64|79|90']),
- NumberFormat(pattern='(\\d{2})(\\d{5,7})', format='\\1 \\2',
leading_digits_pattern=['1|28|6[0-35-9]|7[67]|9[2-9]'])])
+ NumberFormat(pattern='(\\d{2})(\\d{5,7})', format='\\1 \\2',
leading_digits_pattern=['1|28|9[2-9]']),
+ NumberFormat(pattern='(\\d)(\\d{7})', format='\\1 \\2',
leading_digits_pattern=['[267]|904']),
+ NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{4})', format='\\1 \\2 \\3',
leading_digits_pattern=['[346-9]'])])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/data/region_UG.py
new/phonenumbers-9.0.33/phonenumbers/data/region_UG.py
--- old/phonenumbers-9.0.31/phonenumbers/data/region_UG.py 2026-05-22
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/data/region_UG.py 2026-06-22
12:12:36.000000000 +0200
@@ -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]|3[1-4]|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='72[48]0\\d{5}|7(?:[014-8]\\d|2[0167]|3[06]|9[0-589])\\d{6}',
example_number='712345678', possible_length=(9,)),
+
mobile=PhoneNumberDesc(national_number_pattern='7280\\d{5}|7(?:[014-8]\\d|2[01467]|3[016]|9[0-589])\\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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/data/region_VN.py
new/phonenumbers-9.0.33/phonenumbers/data/region_VN.py
--- old/phonenumbers-9.0.31/phonenumbers/data/region_VN.py 2026-05-22
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/data/region_VN.py 2026-06-22
12:12:36.000000000 +0200
@@ -2,26 +2,24 @@
from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
PHONE_METADATA_VN = PhoneMetadata(id='VN', country_code=84,
international_prefix='00',
-
general_desc=PhoneNumberDesc(national_number_pattern='[12]\\d{9}|[135-9]\\d{8}|[16]\\d{7}|[16-8]\\d{6}',
possible_length=(7, 8, 9, 10)),
+
general_desc=PhoneNumberDesc(national_number_pattern='[12]\\d{9}|[135-9]\\d{8}|[16]\\d{6,7}|7\\d{6}',
possible_length=(7, 8, 9, 10)),
fixed_line=PhoneNumberDesc(national_number_pattern='2(?:0[3-9]|1[0-689]|2[0-25-9]|[38][2-9]|4[2-8]|5[124-9]|6[0-39]|7[0-7]|9[0-4679])\\d{7}',
example_number='2101234567', possible_length=(10,)),
mobile=PhoneNumberDesc(national_number_pattern='121[0-3]\\d{5}|(?:160|(?:3\\d|7[06-9])\\d|5(?:[1689]\\d|2[238]|59)|8(?:[1-8]\\d|9[6-9])|9(?:[0-8]\\d|9[013-9]))\\d{6}',
example_number='912345678', possible_length=(9,)),
toll_free=PhoneNumberDesc(national_number_pattern='1800\\d{4,6}|12(?:0[13]|28)\\d{4}',
example_number='1800123456', possible_length=(8, 9, 10)),
premium_rate=PhoneNumberDesc(national_number_pattern='1900\\d{4,6}',
example_number='1900123456', possible_length=(8, 9, 10)),
voip=PhoneNumberDesc(national_number_pattern='672\\d{6}',
example_number='672012345', possible_length=(9,)),
-
uan=PhoneNumberDesc(national_number_pattern='(?:[17]99|80\\d)\\d{4}|69\\d{5,6}',
example_number='1992000', possible_length=(7, 8)),
+ uan=PhoneNumberDesc(national_number_pattern='[17]99\\d{4}|69\\d{5,6}',
example_number='1992000', possible_length=(7, 8)),
no_international_dialling=PhoneNumberDesc(national_number_pattern='[17]99\\d{4}|69\\d{5,6}',
possible_length=(7, 8)),
national_prefix='0',
national_prefix_for_parsing='0',
number_format=[NumberFormat(pattern='(\\d{3})(\\d{4})', format='\\1 \\2',
leading_digits_pattern=['[17]99'], national_prefix_formatting_rule='0\\1',
national_prefix_optional_when_formatting=True),
- NumberFormat(pattern='(\\d{2})(\\d{5})', format='\\1 \\2',
leading_digits_pattern=['80'], national_prefix_formatting_rule='0\\1',
national_prefix_optional_when_formatting=True),
NumberFormat(pattern='(\\d{3})(\\d{4,5})', format='\\1 \\2',
leading_digits_pattern=['69'], national_prefix_formatting_rule='0\\1',
national_prefix_optional_when_formatting=True),
NumberFormat(pattern='(\\d{4})(\\d{4,6})', format='\\1 \\2',
leading_digits_pattern=['1(?:2[02]|[89])'],
national_prefix_optional_when_formatting=True),
NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{2})(\\d{2})', format='\\1
\\2 \\3 \\4', leading_digits_pattern=['1[26]|6'],
national_prefix_formatting_rule='0\\1',
national_prefix_optional_when_formatting=True),
NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3',
leading_digits_pattern=['[357-9]'], national_prefix_formatting_rule='0\\1',
national_prefix_optional_when_formatting=True),
NumberFormat(pattern='(\\d{2})(\\d{4})(\\d{4})', format='\\1 \\2 \\3',
leading_digits_pattern=['2[48]'], national_prefix_formatting_rule='0\\1',
national_prefix_optional_when_formatting=True),
NumberFormat(pattern='(\\d{3})(\\d{4})(\\d{3})', format='\\1 \\2 \\3',
leading_digits_pattern=['2'], national_prefix_formatting_rule='0\\1',
national_prefix_optional_when_formatting=True)],
- intl_number_format=[NumberFormat(pattern='(\\d{2})(\\d{5})', format='\\1
\\2', leading_digits_pattern=['80']),
- NumberFormat(pattern='(\\d{4})(\\d{4,6})', format='\\1 \\2',
leading_digits_pattern=['1(?:2[02]|[89])']),
+ intl_number_format=[NumberFormat(pattern='(\\d{4})(\\d{4,6})', format='\\1
\\2', leading_digits_pattern=['1(?:2[02]|[89])']),
NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{2})(\\d{2})', format='\\1
\\2 \\3 \\4', leading_digits_pattern=['1[26]|6']),
NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3',
leading_digits_pattern=['[357-9]']),
NumberFormat(pattern='(\\d{2})(\\d{4})(\\d{4})', format='\\1 \\2 \\3',
leading_digits_pattern=['2[48]']),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data10.py
new/phonenumbers-9.0.33/phonenumbers/geodata/data10.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data10.py 2026-05-22
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data10.py 2026-06-22
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
# limitations under the License.
data = {
+ '61350172':{'en': 'Woomelang'},
'61350173':{'en': 'Ouyen'},
'61350174':{'en': 'Tempy'},
'61350175':{'en': 'Underbool'},
@@ -10018,5 +10019,4 @@
'6139881':{'en': 'Melbourne'},
'61398810':{'en': 'Ringwood'},
'61398817':{'en': 'Ringwood'},
- '61398819':{'en': 'Ringwood'},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data11.py
new/phonenumbers-9.0.33/phonenumbers/geodata/data11.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data11.py 2026-05-22
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data11.py 2026-06-22
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
# limitations under the License.
data = {
+ '61398819':{'en': 'Ringwood'},
'6139882':{'en': 'Melbourne'},
'6139883':{'en': 'Melbourne'},
'6139884':{'en': 'Ringwood'},
@@ -10018,5 +10019,4 @@
'61752216':{'en': 'Gatton'},
'61752217':{'en': 'Gunalda'},
'61752218':{'en': 'Gympie'},
- '61752219':{'en': 'Harrisville'},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data12.py
new/phonenumbers-9.0.33/phonenumbers/geodata/data12.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data12.py 2026-05-22
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data12.py 2026-06-22
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
# limitations under the License.
data = {
+ '61752219':{'en': 'Harrisville'},
'61752220':{'en': 'Imbil'},
'61752221':{'en': 'Jimna'},
'61752222':{'en': 'Kalbar'},
@@ -10018,5 +10019,4 @@
'61885815':{'en': 'Willunga'},
'61885816':{'en': 'Barmera'},
'61885817':{'en': 'Robertstown'},
- '61885818':{'en': 'Robertstown'},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data13.py
new/phonenumbers-9.0.33/phonenumbers/geodata/data13.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data13.py 2026-05-22
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data13.py 2026-06-22
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
# limitations under the License.
data = {
+ '61885818':{'en': 'Robertstown'},
'61885819':{'en': 'Robertstown'},
'6188582':{'en': 'Berri'},
'6188583':{'en': 'Berri'},
@@ -10018,5 +10019,4 @@
'618993018':{'en': 'Denham'},
'618993019':{'en': 'Dongara'},
'61899302':{'en': 'Eneabba North'},
- '618993028':{'en': 'Eneabba'},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data14.py
new/phonenumbers-9.0.33/phonenumbers/geodata/data14.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data14.py 2026-05-22
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data14.py 2026-06-22
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
# limitations under the License.
data = {
+ '618993028':{'en': 'Eneabba'},
'61899303':{'en': 'Eneabba South'},
'618993039':{'en': 'Exmouth'},
'61899304':{'en': 'Leeman'},
@@ -10018,5 +10019,4 @@
'861308257':{'en': 'Yangzhou, Jiangsu', 'zh':
u('\u6c5f\u82cf\u7701\u626c\u5dde\u5e02')},
'861308258':{'en': 'Suqian, Jiangsu', 'zh':
u('\u6c5f\u82cf\u7701\u5bbf\u8fc1\u5e02')},
'861308259':{'en': 'Yancheng, Jiangsu', 'zh':
u('\u6c5f\u82cf\u7701\u76d0\u57ce\u5e02')},
- '861308260':{'en': 'Dongying, Shandong', 'zh':
u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data15.py
new/phonenumbers-9.0.33/phonenumbers/geodata/data15.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data15.py 2026-05-22
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data15.py 2026-06-22
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
# limitations under the License.
data = {
+ '861308260':{'en': 'Dongying, Shandong', 'zh':
u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
'861308261':{'en': 'Dongying, Shandong', 'zh':
u('\u5c71\u4e1c\u7701\u4e1c\u8425\u5e02')},
'861308262':{'en': 'Jining, Shandong', 'zh':
u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
'861308263':{'en': 'Jining, Shandong', 'zh':
u('\u5c71\u4e1c\u7701\u6d4e\u5b81\u5e02')},
@@ -10018,5 +10019,4 @@
'861324637':{'en': 'Zhuhai, Guangdong', 'zh':
u('\u5e7f\u4e1c\u7701\u73e0\u6d77\u5e02')},
'861324638':{'en': 'Zhuhai, Guangdong', 'zh':
u('\u5e7f\u4e1c\u7701\u73e0\u6d77\u5e02')},
'861324639':{'en': 'Zhuhai, Guangdong', 'zh':
u('\u5e7f\u4e1c\u7701\u73e0\u6d77\u5e02')},
- '86132464':{'en': 'Guangzhou, Guangdong', 'zh':
u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data16.py
new/phonenumbers-9.0.33/phonenumbers/geodata/data16.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data16.py 2026-05-22
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data16.py 2026-06-22
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
# limitations under the License.
data = {
+ '86132464':{'en': 'Guangzhou, Guangdong', 'zh':
u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
'861324650':{'en': 'Zhanjiang, Guangdong', 'zh':
u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
'861324651':{'en': 'Zhanjiang, Guangdong', 'zh':
u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
'861324652':{'en': 'Zhanjiang, Guangdong', 'zh':
u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
@@ -10018,5 +10019,4 @@
'861340904':{'en': 'Rizhao, Shandong', 'zh':
u('\u5c71\u4e1c\u7701\u65e5\u7167\u5e02')},
'86134091':{'en': 'Yulin, Shaanxi', 'zh':
u('\u9655\u897f\u7701\u6986\u6797\u5e02')},
'861340910':{'en': 'Xianyang, Shaanxi', 'zh':
u('\u9655\u897f\u7701\u54b8\u9633\u5e02')},
- '861340911':{'en': 'YanAn, Shaanxi', 'zh':
u('\u9655\u897f\u7701\u5ef6\u5b89\u5e02')},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data17.py
new/phonenumbers-9.0.33/phonenumbers/geodata/data17.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data17.py 2026-05-22
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data17.py 2026-06-22
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
# limitations under the License.
data = {
+ '861340911':{'en': 'YanAn, Shaanxi', 'zh':
u('\u9655\u897f\u7701\u5ef6\u5b89\u5e02')},
'861340913':{'en': 'Weinan, Shaanxi', 'zh':
u('\u9655\u897f\u7701\u6e2d\u5357\u5e02')},
'861340915':{'en': 'Ankang, Shaanxi', 'zh':
u('\u9655\u897f\u7701\u5b89\u5eb7\u5e02')},
'861340920':{'en': 'Xinxiang, Henan', 'zh':
u('\u6cb3\u5357\u7701\u65b0\u4e61\u5e02')},
@@ -10018,5 +10019,4 @@
'861365775':{'en': 'Yulin, Guangxi', 'zh':
u('\u5e7f\u897f\u7389\u6797\u5e02')},
'861365776':{'en': 'Baise, Guangxi', 'zh':
u('\u5e7f\u897f\u767e\u8272\u5e02')},
'861365777':{'en': 'Qinzhou, Guangxi', 'zh':
u('\u5e7f\u897f\u94a6\u5dde\u5e02')},
- '861365778':{'en': 'Hechi, Guangxi', 'zh':
u('\u5e7f\u897f\u6cb3\u6c60\u5e02')},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data18.py
new/phonenumbers-9.0.33/phonenumbers/geodata/data18.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data18.py 2026-05-22
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data18.py 2026-06-22
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
# limitations under the License.
data = {
+ '861365778':{'en': 'Hechi, Guangxi', 'zh':
u('\u5e7f\u897f\u6cb3\u6c60\u5e02')},
'861365779':{'en': 'Beihai, Guangxi', 'zh':
u('\u5e7f\u897f\u5317\u6d77\u5e02')},
'861365780':{'en': 'Liuzhou, Guangxi', 'zh':
u('\u5e7f\u897f\u67f3\u5dde\u5e02')},
'861365781':{'en': 'Nanning, Guangxi', 'zh':
u('\u5e7f\u897f\u5357\u5b81\u5e02')},
@@ -10018,5 +10019,4 @@
'861396511':{'en': 'Hefei, Anhui', 'zh':
u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
'861396512':{'en': 'Hefei, Anhui', 'zh':
u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
'861396513':{'en': 'Hefei, Anhui', 'zh':
u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
- '861396514':{'en': 'Hefei, Anhui', 'zh':
u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data19.py
new/phonenumbers-9.0.33/phonenumbers/geodata/data19.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data19.py 2026-05-22
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data19.py 2026-06-22
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
# limitations under the License.
data = {
+ '861396514':{'en': 'Hefei, Anhui', 'zh':
u('\u5b89\u5fbd\u7701\u5408\u80a5\u5e02')},
'861396515':{'en': 'Wuhu, Anhui', 'zh':
u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
'861396516':{'en': 'Wuhu, Anhui', 'zh':
u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
'861396517':{'en': 'Wuhu, Anhui', 'zh':
u('\u5b89\u5fbd\u7701\u829c\u6e56\u5e02')},
@@ -10018,5 +10019,4 @@
'861508031':{'en': 'Xiamen, Fujian', 'zh':
u('\u798f\u5efa\u7701\u53a6\u95e8\u5e02')},
'861508032':{'en': 'Xiamen, Fujian', 'zh':
u('\u798f\u5efa\u7701\u53a6\u95e8\u5e02')},
'861508033':{'en': 'Xiamen, Fujian', 'zh':
u('\u798f\u5efa\u7701\u53a6\u95e8\u5e02')},
- '861508034':{'en': 'Xiamen, Fujian', 'zh':
u('\u798f\u5efa\u7701\u53a6\u95e8\u5e02')},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data20.py
new/phonenumbers-9.0.33/phonenumbers/geodata/data20.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data20.py 2026-05-22
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data20.py 2026-06-22
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
# limitations under the License.
data = {
+ '861508034':{'en': 'Xiamen, Fujian', 'zh':
u('\u798f\u5efa\u7701\u53a6\u95e8\u5e02')},
'861508035':{'en': 'Putian, Fujian', 'zh':
u('\u798f\u5efa\u7701\u8386\u7530\u5e02')},
'861508036':{'en': 'Putian, Fujian', 'zh':
u('\u798f\u5efa\u7701\u8386\u7530\u5e02')},
'861508037':{'en': 'Putian, Fujian', 'zh':
u('\u798f\u5efa\u7701\u8386\u7530\u5e02')},
@@ -10018,5 +10019,4 @@
'861534378':{'en': 'Kaifeng, Henan', 'zh':
u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
'861534379':{'en': 'Luoyang, Henan', 'zh':
u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
'861534380':{'en': 'Zhengzhou, Henan', 'zh':
u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '861534381':{'en': 'Zhengzhou, Henan', 'zh':
u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data21.py
new/phonenumbers-9.0.33/phonenumbers/geodata/data21.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data21.py 2026-05-22
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data21.py 2026-06-22
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
# limitations under the License.
data = {
+ '861534381':{'en': 'Zhengzhou, Henan', 'zh':
u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
'861534382':{'en': 'Zhengzhou, Henan', 'zh':
u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
'861534383':{'en': 'Zhengzhou, Henan', 'zh':
u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
'861534384':{'en': 'Shangqiu, Henan', 'zh':
u('\u6cb3\u5357\u7701\u5546\u4e18\u5e02')},
@@ -10018,5 +10019,4 @@
'861568186':{'en': 'Zigong, Sichuan', 'zh':
u('\u56db\u5ddd\u7701\u81ea\u8d21\u5e02')},
'861568187':{'en': 'Dazhou, Sichuan', 'zh':
u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
'861568188':{'en': 'Dazhou, Sichuan', 'zh':
u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
- '861568189':{'en': 'Dazhou, Sichuan', 'zh':
u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data22.py
new/phonenumbers-9.0.33/phonenumbers/geodata/data22.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data22.py 2026-05-22
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data22.py 2026-06-22
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
# limitations under the License.
data = {
+ '861568189':{'en': 'Dazhou, Sichuan', 'zh':
u('\u56db\u5ddd\u7701\u8fbe\u5dde\u5e02')},
'86156819':{'en': 'Mianyang, Sichuan', 'zh':
u('\u56db\u5ddd\u7701\u7ef5\u9633\u5e02')},
'86156820':{'en': 'Chengdu, Sichuan', 'zh':
u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
'861568210':{'en': 'Chengdu, Sichuan', 'zh':
u('\u56db\u5ddd\u7701\u6210\u90fd\u5e02')},
@@ -10018,5 +10019,4 @@
'861595700':{'en': 'Quzhou, Zhejiang', 'zh':
u('\u6d59\u6c5f\u7701\u8862\u5dde\u5e02')},
'861595701':{'en': 'Quzhou, Zhejiang', 'zh':
u('\u6d59\u6c5f\u7701\u8862\u5dde\u5e02')},
'861595702':{'en': 'Quzhou, Zhejiang', 'zh':
u('\u6d59\u6c5f\u7701\u8862\u5dde\u5e02')},
- '861595703':{'en': 'Quzhou, Zhejiang', 'zh':
u('\u6d59\u6c5f\u7701\u8862\u5dde\u5e02')},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data23.py
new/phonenumbers-9.0.33/phonenumbers/geodata/data23.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data23.py 2026-05-22
18:48:43.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data23.py 2026-06-22
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
# limitations under the License.
data = {
+ '861595703':{'en': 'Quzhou, Zhejiang', 'zh':
u('\u6d59\u6c5f\u7701\u8862\u5dde\u5e02')},
'861595704':{'en': 'Quzhou, Zhejiang', 'zh':
u('\u6d59\u6c5f\u7701\u8862\u5dde\u5e02')},
'861595705':{'en': 'Zhoushan, Zhejiang', 'zh':
u('\u6d59\u6c5f\u7701\u821f\u5c71\u5e02')},
'861595706':{'en': 'Zhoushan, Zhejiang', 'zh':
u('\u6d59\u6c5f\u7701\u821f\u5c71\u5e02')},
@@ -10018,5 +10019,4 @@
'861787589':{'en': 'Dongguan, Guangdong', 'zh':
u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
'861787590':{'en': 'Zhanjiang, Guangdong', 'zh':
u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
'861787591':{'en': 'Shenzhen, Guangdong', 'zh':
u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '861787592':{'en': 'Guangzhou, Guangdong', 'zh':
u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data24.py
new/phonenumbers-9.0.33/phonenumbers/geodata/data24.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data24.py 2026-05-22
18:48:43.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data24.py 2026-06-22
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
# limitations under the License.
data = {
+ '861787592':{'en': 'Guangzhou, Guangdong', 'zh':
u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
'861787593':{'en': 'Meizhou, Guangdong', 'zh':
u('\u5e7f\u4e1c\u7701\u6885\u5dde\u5e02')},
'861787594':{'en': 'Yangjiang, Guangdong', 'zh':
u('\u5e7f\u4e1c\u7701\u9633\u6c5f\u5e02')},
'861787595':{'en': 'Maoming, Guangdong', 'zh':
u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
@@ -10018,5 +10019,4 @@
'861820760':{'en': 'Zhongshan, Guangdong', 'zh':
u('\u5e7f\u4e1c\u7701\u4e2d\u5c71\u5e02')},
'861820761':{'en': 'Dongguan, Guangdong', 'zh':
u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
'861820762':{'en': 'Heyuan, Guangdong', 'zh':
u('\u5e7f\u4e1c\u7701\u6cb3\u6e90\u5e02')},
- '861820763':{'en': 'Qingyuan, Guangdong', 'zh':
u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data25.py
new/phonenumbers-9.0.33/phonenumbers/geodata/data25.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data25.py 2026-05-22
18:48:43.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data25.py 2026-06-22
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
# limitations under the License.
data = {
+ '861820763':{'en': 'Qingyuan, Guangdong', 'zh':
u('\u5e7f\u4e1c\u7701\u6e05\u8fdc\u5e02')},
'861820764':{'en': 'Guangzhou, Guangdong', 'zh':
u('\u5e7f\u4e1c\u7701\u5e7f\u5dde\u5e02')},
'861820765':{'en': 'Zhongshan, Guangdong', 'zh':
u('\u5e7f\u4e1c\u7701\u4e2d\u5c71\u5e02')},
'861820766':{'en': 'Yunfu, Guangdong', 'zh':
u('\u5e7f\u4e1c\u7701\u4e91\u6d6e\u5e02')},
@@ -10018,5 +10019,4 @@
'861856306':{'en': 'Weifang, Shandong', 'zh':
u('\u5c71\u4e1c\u7701\u6f4d\u574a\u5e02')},
'861856307':{'en': 'Weifang, Shandong', 'zh':
u('\u5c71\u4e1c\u7701\u6f4d\u574a\u5e02')},
'861856308':{'en': 'Weifang, Shandong', 'zh':
u('\u5c71\u4e1c\u7701\u6f4d\u574a\u5e02')},
- '861856309':{'en': 'Binzhou, Shandong', 'zh':
u('\u5c71\u4e1c\u7701\u6ee8\u5dde\u5e02')},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data26.py
new/phonenumbers-9.0.33/phonenumbers/geodata/data26.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data26.py 2026-05-22
18:48:43.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data26.py 2026-06-22
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
# limitations under the License.
data = {
+ '861856309':{'en': 'Binzhou, Shandong', 'zh':
u('\u5c71\u4e1c\u7701\u6ee8\u5dde\u5e02')},
'86185631':{'en': 'Weihai, Shandong', 'zh':
u('\u5c71\u4e1c\u7701\u5a01\u6d77\u5e02')},
'86185632':{'en': 'Zaozhuang, Shandong', 'zh':
u('\u5c71\u4e1c\u7701\u67a3\u5e84\u5e02')},
'86185633':{'en': 'Rizhao, Shandong', 'zh':
u('\u5c71\u4e1c\u7701\u65e5\u7167\u5e02')},
@@ -10018,5 +10019,4 @@
'861883074':{'en': 'Cangzhou, Hebei', 'zh':
u('\u6cb3\u5317\u7701\u6ca7\u5dde\u5e02')},
'861883075':{'en': 'Baoding, Hebei', 'zh':
u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
'861883076':{'en': 'Baoding, Hebei', 'zh':
u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
- '861883077':{'en': 'Baoding, Hebei', 'zh':
u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data27.py
new/phonenumbers-9.0.33/phonenumbers/geodata/data27.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data27.py 2026-05-22
18:48:43.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data27.py 2026-06-22
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
# limitations under the License.
data = {
+ '861883077':{'en': 'Baoding, Hebei', 'zh':
u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
'861883078':{'en': 'Baoding, Hebei', 'zh':
u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
'861883079':{'en': 'Baoding, Hebei', 'zh':
u('\u6cb3\u5317\u7701\u4fdd\u5b9a\u5e02')},
'861883080':{'en': 'Hengshui, Hebei', 'zh':
u('\u6cb3\u5317\u7701\u8861\u6c34\u5e02')},
@@ -10018,5 +10019,4 @@
'9171623':{'en': 'Chhindwara, Madhya Pradesh'},
'9171624':{'en': 'Chhindwara, Madhya Pradesh'},
'9171625':{'en': 'Chhindwara, Madhya Pradesh'},
- '9171626':{'en': 'Chhindwara, Madhya Pradesh'},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data28.py
new/phonenumbers-9.0.33/phonenumbers/geodata/data28.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data28.py 2026-05-22
18:48:43.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data28.py 2026-06-22
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
# limitations under the License.
data = {
+ '9171626':{'en': 'Chhindwara, Madhya Pradesh'},
'9171627':{'en': 'Chhindwara, Madhya Pradesh'},
'9171642':{'en': 'Pandhurna, Madhya Pradesh'},
'9171643':{'en': 'Pandhurna, Madhya Pradesh'},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data5.py
new/phonenumbers-9.0.33/phonenumbers/geodata/data5.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data5.py 2026-05-22
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data5.py 2026-06-22
12:12:25.000000000 +0200
@@ -7665,6 +7665,7 @@
'4764':{'en': 'Akershus'},
'4766':{'en': 'Akershus'},
'4767':{'en': 'Akershus'},
+ '4768':{'en': u('\u00d8stfold/Akershus')},
'4769':{'en': u('\u00d8stfold')},
'4770':{'en': u('M\u00f8re og Romsdal')},
'4771':{'en': u('M\u00f8re og Romsdal')},
@@ -10018,5 +10019,4 @@
'494546':{'de': 'Mustin Lauenburg', 'en': 'Mustin Lauenburg'},
'494547':{'de': 'Gudow Lauenburg', 'en': 'Gudow Lauenburg'},
'494550':{'de': u('B\u00fchnsdorf'), 'en': u('B\u00fchnsdorf')},
- '494551':{'de': 'Bad Segeberg', 'en': 'Bad Segeberg'},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data6.py
new/phonenumbers-9.0.33/phonenumbers/geodata/data6.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data6.py 2026-05-22
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data6.py 2026-06-22
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
# limitations under the License.
data = {
+ '494551':{'de': 'Bad Segeberg', 'en': 'Bad Segeberg'},
'494552':{'de': 'Leezen', 'en': 'Leezen'},
'494553':{'de': 'Geschendorf', 'en': 'Geschendorf'},
'494554':{'de': 'Wahlstedt', 'en': 'Wahlstedt'},
@@ -10018,5 +10019,4 @@
'55483583':{'en': u('Balne\u00e1rio Gaivota - SC'), 'pt': u('Balne\u00e1rio
Gaivota - SC')},
'55483591':{'en': 'Jacinto Machado - SC', 'pt': 'Jacinto Machado - SC'},
'55483622':{'en': u('Tubar\u00e3o - SC'), 'pt': u('Tubar\u00e3o - SC')},
- '55483623':{'en': 'Capivari de Baixo - SC', 'pt': 'Capivari de Baixo - SC'},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data7.py
new/phonenumbers-9.0.33/phonenumbers/geodata/data7.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data7.py 2026-05-22
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data7.py 2026-06-22
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
# limitations under the License.
data = {
+ '55483623':{'en': 'Capivari de Baixo - SC', 'pt': 'Capivari de Baixo - SC'},
'55483624':{'en': 'Jaguaruna - SC', 'pt': 'Jaguaruna - SC'},
'55483625':{'en': 'Treze de Maio - SC', 'pt': 'Treze de Maio - SC'},
'55483626':{'en': u('Tubar\u00e3o - SC'), 'pt': u('Tubar\u00e3o - SC')},
@@ -10018,5 +10019,4 @@
'609453':{'en': 'Bukit Ibam'},
'609454':{'en': 'Bukit Ibam'},
'609455':{'en': 'Bukit Ibam'},
- '609456':{'en': 'Chini'},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data8.py
new/phonenumbers-9.0.33/phonenumbers/geodata/data8.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data8.py 2026-05-22
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data8.py 2026-06-22
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
# limitations under the License.
data = {
+ '609456':{'en': 'Chini'},
'609457':{'en': 'Chini'},
'609458':{'en': 'Bukit Ibam'},
'609460':{'en': 'Maran'},
@@ -10018,5 +10019,4 @@
'61263495':{'en': 'Ooma'},
'61263496':{'en': 'Quandialla'},
'61263497':{'en': 'Tyagong'},
- '61263498':{'en': 'Cowra'},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/geodata/data9.py
new/phonenumbers-9.0.33/phonenumbers/geodata/data9.py
--- old/phonenumbers-9.0.31/phonenumbers/geodata/data9.py 2026-05-22
18:48:42.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/geodata/data9.py 2026-06-22
12:12:25.000000000 +0200
@@ -19,6 +19,7 @@
# limitations under the License.
data = {
+ '61263498':{'en': 'Cowra'},
'61263499':{'en': 'Cowra'},
'612635':{'en': 'Lithgow'},
'61263504':{'en': 'Hampton'},
@@ -10018,5 +10019,4 @@
'61350169':{'en': 'Murrayville'},
'61350170':{'en': 'Woomelang'},
'61350171':{'en': 'Woomelang'},
- '61350172':{'en': 'Woomelang'},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers/phonenumberutil.py
new/phonenumbers-9.0.33/phonenumbers/phonenumberutil.py
--- old/phonenumbers-9.0.31/phonenumbers/phonenumberutil.py 2026-04-13
16:12:45.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers/phonenumberutil.py 2026-06-22
12:19:39.000000000 +0200
@@ -1099,12 +1099,16 @@
Returns the formatted phone number.
"""
if numobj.national_number == 0:
- # Unparseable numbers that kept their raw input just use that. This
- # is the only case where a number can be formatted as E164 without a
- # leading '+' symbol (but the original number wasn't parseable
- # anyway).
+ # Unparseable numbers that kept their raw input just use that, unless
default country was
+ # specified and the format is E164. In that case, we prepend the raw
input with the country
+ # code
raw_input = numobj.raw_input or ""
- if len(raw_input) > 0 or numobj.country_code is None:
+ if (len(raw_input) > 0 and
+ numobj.country_code is not None and
+ numobj.country_code_source ==
CountryCodeSource.FROM_DEFAULT_COUNTRY and
+ num_format == PhoneNumberFormat.E164):
+ return
_prefix_number_with_country_calling_code(numobj.country_code, num_format,
raw_input)
+ elif len(raw_input) > 0 or numobj.country_code is None:
return numobj.raw_input
country_calling_code = numobj.country_code
nsn = national_significant_number(numobj)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/phonenumbers.egg-info/PKG-INFO
new/phonenumbers-9.0.33/phonenumbers.egg-info/PKG-INFO
--- old/phonenumbers-9.0.31/phonenumbers.egg-info/PKG-INFO 2026-05-23
08:08:53.000000000 +0200
+++ new/phonenumbers-9.0.33/phonenumbers.egg-info/PKG-INFO 2026-06-22
12:23:21.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: phonenumbers
-Version: 9.0.31
+Version: 9.0.33
Summary: Python version of Google's common library for parsing, formatting,
storing and validating international phone numbers.
Author-email: David Drysdale <[email protected]>
License-Expression: Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.31/tests/phonenumberutiltest.py
new/phonenumbers-9.0.33/tests/phonenumberutiltest.py
--- old/phonenumbers-9.0.31/tests/phonenumberutiltest.py 2025-01-16
08:49:39.000000000 +0100
+++ new/phonenumbers-9.0.33/tests/phonenumberutiltest.py 2026-06-22
12:12:25.000000000 +0200
@@ -432,6 +432,19 @@
phonenumbers.format_number(US_SPOOF_WITH_RAW_INPUT,
PhoneNumberFormat.NATIONAL))
self.assertEqual("0", phonenumbers.format_number(US_SPOOF,
PhoneNumberFormat.NATIONAL))
+ def testFormatAUShortCodeNumber(self):
+ auShortCodeNumber = phonenumbers.parse("000", "AU")
+ self.assertEqual("+61000",
phonenumbers.format_number(auShortCodeNumber, PhoneNumberFormat.E164))
+
+ pgShortCodeNumber = PhoneNumber(country_code=675, national_number=0,
raw_input="+675000")
+ self.assertEqual("+675000",
phonenumbers.format_number(pgShortCodeNumber, PhoneNumberFormat.E164))
+
+ # Python version extra test
+ # (The added test in upstream change
https://github.com/google/libphonenumber/pull/3937 doesn't hit the new library
code).
+ pgShortCodeNumber2 = PhoneNumber(country_code=675, national_number=0,
raw_input="000",
+
country_code_source=CountryCodeSource.FROM_DEFAULT_COUNTRY)
+ self.assertEqual("+675000",
phonenumbers.format_number(pgShortCodeNumber2, PhoneNumberFormat.E164))
+
def testFormatBSNumber(self):
self.assertEqual("242 365 1234", phonenumbers.format_number(BS_NUMBER,
PhoneNumberFormat.NATIONAL))
self.assertEqual("+1 242 365 1234",
phonenumbers.format_number(BS_NUMBER, PhoneNumberFormat.INTERNATIONAL))