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 2025-12-10 15:32:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-phonenumbers (Old)
and /work/SRC/openSUSE:Factory/.python-phonenumbers.new.1939 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-phonenumbers"
Wed Dec 10 15:32:51 2025 rev:46 rq:1321797 version:9.0.20
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-phonenumbers/python-phonenumbers.changes
2025-11-26 17:19:05.199428326 +0100
+++
/work/SRC/openSUSE:Factory/.python-phonenumbers.new.1939/python-phonenumbers.changes
2025-12-10 15:33:41.766263301 +0100
@@ -1,0 +2,6 @@
+Tue Dec 9 12:39:30 UTC 2025 - John Paul Adrian Glaubitz
<[email protected]>
+
+- Update to 9.0.20
+ * Merge metadata changes from upstream 9.0.20
+
+-------------------------------------------------------------------
Old:
----
phonenumbers-9.0.19.tar.gz
New:
----
phonenumbers-9.0.20.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-phonenumbers.spec ++++++
--- /var/tmp/diff_new_pack.n87Vd2/_old 2025-12-10 15:33:42.614299179 +0100
+++ /var/tmp/diff_new_pack.n87Vd2/_new 2025-12-10 15:33:42.614299179 +0100
@@ -18,7 +18,7 @@
%{?sle15_python_module_pythons}
Name: python-phonenumbers
-Version: 9.0.19
+Version: 9.0.20
Release: 0
Summary: Python version of Google's common library for international
phone numbers
License: Apache-2.0
++++++ phonenumbers-9.0.19.tar.gz -> phonenumbers-9.0.20.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.19/PKG-INFO
new/phonenumbers-9.0.20/PKG-INFO
--- old/phonenumbers-9.0.19/PKG-INFO 2025-11-20 19:36:57.318746300 +0100
+++ new/phonenumbers-9.0.20/PKG-INFO 2025-12-05 13:03:40.884880000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: phonenumbers
-Version: 9.0.19
+Version: 9.0.20
Summary: Python version of Google's common library for parsing, formatting,
storing and validating international phone numbers.
Home-page: https://github.com/daviddrysdale/python-phonenumbers
Author: David Drysdale
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.19/phonenumbers/__init__.py
new/phonenumbers-9.0.20/phonenumbers/__init__.py
--- old/phonenumbers-9.0.19/phonenumbers/__init__.py 2025-11-20
19:27:05.000000000 +0100
+++ new/phonenumbers-9.0.20/phonenumbers/__init__.py 2025-12-05
12:59:27.000000000 +0100
@@ -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.19"
+__version__ = "9.0.20"
__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.19/phonenumbers/carrierdata/data0.py
new/phonenumbers-9.0.20/phonenumbers/carrierdata/data0.py
--- old/phonenumbers-9.0.19/phonenumbers/carrierdata/data0.py 2025-11-20
19:27:04.000000000 +0100
+++ new/phonenumbers-9.0.20/phonenumbers/carrierdata/data0.py 2025-12-05
12:59:26.000000000 +0100
@@ -1033,6 +1033,7 @@
'230704':{'en': 'Emtel'},
'230705':{'en': 'Cellplus'},
'230706':{'en': 'Cellplus'},
+ '230707':{'en': 'Emtel'},
'230730':{'en': 'Emtel'},
'230731':{'en': 'MTML'},
'230733':{'en': 'Cellplus'},
@@ -1314,6 +1315,7 @@
'25479':{'en': 'Safaricom'},
'25561':{'en': 'Viettel'},
'25562':{'en': 'Viettel'},
+ '25563':{'en': 'Viettel'},
'25565':{'en': 'Yas'},
'25566':{'en': 'SMILE'},
'25567':{'en': 'Yas'},
@@ -1335,7 +1337,8 @@
'256726':{'en': 'LycaMobile'},
'256727':{'en': 'LycaMobile'},
'256728':{'en': 'Talkio'},
- '25673':{'en': 'Hamilton Telecom'},
+ '256730':{'en': 'Airtel'},
+ '256736':{'en': 'Hamilton Telecom'},
'25674':{'en': 'Airtel'},
'25675':{'en': 'Airtel'},
'25676':{'en': 'MTN'},
@@ -2391,6 +2394,7 @@
'346124':{'en': 'Lycamobile'},
'346125':{'en': 'Lycamobile'},
'34613':{'en': 'Yoigo'},
+ '34614':{'en': 'DigiMobil'},
'34615':{'en': 'Orange'},
'34616':{'en': 'Movistar'},
'34617':{'en': 'Vodafone'},
@@ -10015,8 +10019,4 @@
'553199830':{'en': 'TIM'},
'553199840':{'en': 'TIM'},
'553199850':{'en': 'TIM'},
- '553199860':{'en': 'TIM'},
- '553199870':{'en': 'TIM'},
- '553199880':{'en': 'TIM'},
- '553199890':{'en': 'TIM'},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/phonenumbers-9.0.19/phonenumbers/carrierdata/data1.py
new/phonenumbers-9.0.20/phonenumbers/carrierdata/data1.py
--- old/phonenumbers-9.0.19/phonenumbers/carrierdata/data1.py 2025-11-20
19:27:04.000000000 +0100
+++ new/phonenumbers-9.0.20/phonenumbers/carrierdata/data1.py 2025-12-05
12:59:26.000000000 +0100
@@ -19,6 +19,10 @@
# limitations under the License.
data = {
+ '553199860':{'en': 'TIM'},
+ '553199870':{'en': 'TIM'},
+ '553199880':{'en': 'TIM'},
+ '553199890':{'en': 'TIM'},
'553199901':{'en': 'Telemig Celular'},
'553199902':{'en': 'Telemig Celular'},
'553199903':{'en': 'Telemig Celular'},
@@ -10015,8 +10019,4 @@
'573114':{'en': 'Claro'},
'573115':{'en': 'Claro'},
'573116':{'en': 'Claro'},
- '573117':{'en': 'Claro'},
- '573118':{'en': 'Claro'},
- '573122':{'en': 'Claro'},
- '573123':{'en': 'Claro'},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/phonenumbers-9.0.19/phonenumbers/carrierdata/data2.py
new/phonenumbers-9.0.20/phonenumbers/carrierdata/data2.py
--- old/phonenumbers-9.0.19/phonenumbers/carrierdata/data2.py 2025-11-20
19:27:04.000000000 +0100
+++ new/phonenumbers-9.0.20/phonenumbers/carrierdata/data2.py 2025-12-05
12:59:26.000000000 +0100
@@ -19,6 +19,10 @@
# limitations under the License.
data = {
+ '573117':{'en': 'Claro'},
+ '573118':{'en': 'Claro'},
+ '573122':{'en': 'Claro'},
+ '573123':{'en': 'Claro'},
'573124':{'en': 'Claro'},
'573125':{'en': 'Claro'},
'573126':{'en': 'Claro'},
@@ -8937,7 +8941,9 @@
'99879576':{'en': 'MobiUZ'},
'99879579':{'en': 'MobiUZ'},
'998797':{'en': 'MobiUZ'},
- '9988':{'en': 'MobiUZ'},
+ '99880':{'en': 'Perfectum'},
+ '99887':{'en': 'MobiUZ'},
+ '99888':{'en': 'MobiUZ'},
'99890':{'en': 'Beeline'},
'99891':{'en': 'Beeline'},
'99892':{'en': 'Beeline'},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.19/phonenumbers/data/region_GY.py
new/phonenumbers-9.0.20/phonenumbers/data/region_GY.py
--- old/phonenumbers-9.0.19/phonenumbers/data/region_GY.py 2025-11-20
19:27:00.000000000 +0100
+++ new/phonenumbers-9.0.20/phonenumbers/data/region_GY.py 2025-12-05
12:59:22.000000000 +0100
@@ -4,7 +4,7 @@
PHONE_METADATA_GY = PhoneMetadata(id='GY', country_code=592,
international_prefix='001',
general_desc=PhoneNumberDesc(national_number_pattern='(?:[2-8]\\d{3}|9008)\\d{3}',
possible_length=(7,)),
fixed_line=PhoneNumberDesc(national_number_pattern='(?:2(?:1[6-9]|2[0-35-9]|3[1-4]|5[3-9]|6\\d|7[0-79])|3(?:2[25-9]|3\\d)|4(?:4[0-24]|5[56])|50[0-6]|77[1-57])\\d{4}',
example_number='2201234', possible_length=(7,)),
-
mobile=PhoneNumberDesc(national_number_pattern='(?:51[01]|6\\d\\d|7(?:[0-5]\\d|6[0-39]|70))\\d{4}',
example_number='6091234', possible_length=(7,)),
+
mobile=PhoneNumberDesc(national_number_pattern='(?:51[01]|6\\d\\d|7(?:[0-5]\\d|6[0-49]|70))\\d{4}',
example_number='6091234', possible_length=(7,)),
toll_free=PhoneNumberDesc(national_number_pattern='(?:289|8(?:00|6[28]|88|99))\\d{4}',
example_number='2891234', possible_length=(7,)),
premium_rate=PhoneNumberDesc(national_number_pattern='9008\\d{3}',
example_number='9008123', possible_length=(7,)),
voip=PhoneNumberDesc(national_number_pattern='515\\d{4}',
example_number='5151234', possible_length=(7,)),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.19/phonenumbers/data/region_IL.py
new/phonenumbers-9.0.20/phonenumbers/data/region_IL.py
--- old/phonenumbers-9.0.19/phonenumbers/data/region_IL.py 2025-11-20
19:27:00.000000000 +0100
+++ new/phonenumbers-9.0.20/phonenumbers/data/region_IL.py 2025-12-05
12:59:22.000000000 +0100
@@ -4,11 +4,11 @@
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|5[0-7])|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[34]|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-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,)),
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)),
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[018])|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,)),
+
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,)),
voicemail=PhoneNumberDesc(national_number_pattern='151\\d{8,9}',
example_number='15112340000', possible_length=(11, 12)),
no_international_dialling=PhoneNumberDesc(national_number_pattern='1700\\d{6}',
possible_length=(10,)),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.19/phonenumbers/data/region_MU.py
new/phonenumbers-9.0.20/phonenumbers/data/region_MU.py
--- old/phonenumbers-9.0.19/phonenumbers/data/region_MU.py 2025-11-20
19:27:00.000000000 +0100
+++ new/phonenumbers-9.0.20/phonenumbers/data/region_MU.py 2025-12-05
12:59:22.000000000 +0100
@@ -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-8])|4(?:[013568]\\d|2[4-8]|71|90)|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-6]|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-7]|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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.19/phonenumbers/data/region_TD.py
new/phonenumbers-9.0.20/phonenumbers/data/region_TD.py
--- old/phonenumbers-9.0.19/phonenumbers/data/region_TD.py 2025-11-20
19:27:00.000000000 +0100
+++ new/phonenumbers-9.0.20/phonenumbers/data/region_TD.py 2025-12-05
12:59:22.000000000 +0100
@@ -4,6 +4,6 @@
PHONE_METADATA_TD = PhoneMetadata(id='TD', country_code=235,
international_prefix='00|16',
general_desc=PhoneNumberDesc(national_number_pattern='(?:22|30|[689]\\d|77)\\d{6}',
possible_length=(8,)),
fixed_line=PhoneNumberDesc(national_number_pattern='22(?:[37-9]0|5[0-5]|6[89])\\d{4}',
example_number='22501234', possible_length=(8,)),
-
mobile=PhoneNumberDesc(national_number_pattern='(?:30|[69]\\d|77|8[56])\\d{6}',
example_number='63012345', possible_length=(8,)),
+
mobile=PhoneNumberDesc(national_number_pattern='(?:30|[69]\\d|77|8[5-7])\\d{6}',
example_number='63012345', possible_length=(8,)),
preferred_international_prefix='00',
number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})(\\d{2})',
format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[236-9]'])])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.19/phonenumbers/data/region_TZ.py
new/phonenumbers-9.0.20/phonenumbers/data/region_TZ.py
--- old/phonenumbers-9.0.19/phonenumbers/data/region_TZ.py 2025-11-20
19:27:00.000000000 +0100
+++ new/phonenumbers-9.0.20/phonenumbers/data/region_TZ.py 2025-12-05
12:59:22.000000000 +0100
@@ -4,7 +4,7 @@
PHONE_METADATA_TZ = PhoneMetadata(id='TZ', country_code=255,
international_prefix='00[056]',
general_desc=PhoneNumberDesc(national_number_pattern='(?:[25-8]\\d|41|90)\\d{7}',
possible_length=(9,)),
fixed_line=PhoneNumberDesc(national_number_pattern='2[2-8]\\d{7}',
example_number='222345678', possible_length=(9,)),
-
mobile=PhoneNumberDesc(national_number_pattern='(?:6[125-9]|7[13-9])\\d{7}',
example_number='621234567', possible_length=(9,)),
+
mobile=PhoneNumberDesc(national_number_pattern='(?:6[1-35-9]|7[13-9])\\d{7}',
example_number='621234567', possible_length=(9,)),
toll_free=PhoneNumberDesc(national_number_pattern='80[08]\\d{6}',
example_number='800123456', possible_length=(9,)),
premium_rate=PhoneNumberDesc(national_number_pattern='90\\d{7}',
example_number='900123456', possible_length=(9,)),
shared_cost=PhoneNumberDesc(national_number_pattern='8(?:40|6[01])\\d{6}',
example_number='840123456', possible_length=(9,)),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.19/phonenumbers/data/region_UG.py
new/phonenumbers-9.0.20/phonenumbers/data/region_UG.py
--- old/phonenumbers-9.0.19/phonenumbers/data/region_UG.py 2025-11-20
19:27:00.000000000 +0100
+++ new/phonenumbers-9.0.20/phonenumbers/data/region_UG.py 2025-12-05
12:59:22.000000000 +0100
@@ -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]|36|9[0-2589])\\d{6}',
example_number='712345678', possible_length=(9,)),
+
mobile=PhoneNumberDesc(national_number_pattern='72[48]0\\d{5}|7(?:[014-8]\\d|2[0167]|3[06]|9[0-2589])\\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.19/phonenumbers/data/region_UZ.py
new/phonenumbers-9.0.20/phonenumbers/data/region_UZ.py
--- old/phonenumbers-9.0.19/phonenumbers/data/region_UZ.py 2025-11-20
19:27:00.000000000 +0100
+++ new/phonenumbers-9.0.20/phonenumbers/data/region_UZ.py 2025-12-05
12:59:22.000000000 +0100
@@ -4,5 +4,5 @@
PHONE_METADATA_UZ = PhoneMetadata(id='UZ', country_code=998,
international_prefix='00',
general_desc=PhoneNumberDesc(national_number_pattern='(?:20|33|[5-9]\\d)\\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])|[69]\\d\\d|7(?:[23]\\d|7[69]))|7(?:0(?:5[4-9]|6[0146]|7[124-6]|9[135-8])|[168]\\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|8[78]|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])))|7(?:[07]\\d{3}|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,)),
+
mobile=PhoneNumberDesc(national_number_pattern='(?:(?:[25]0|33|8[078]|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])))|7(?:[07]\\d{3}|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,)),
number_format=[NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{2})(\\d{2})',
format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[235-9]'])])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.19/phonenumbers/geodata/data3.py
new/phonenumbers-9.0.20/phonenumbers/geodata/data3.py
--- old/phonenumbers-9.0.19/phonenumbers/geodata/data3.py 2025-11-20
19:27:01.000000000 +0100
+++ new/phonenumbers-9.0.20/phonenumbers/geodata/data3.py 2025-12-05
12:59:24.000000000 +0100
@@ -2963,43 +2963,43 @@
'22825':{'en': 'Central region', 'es': u('Regi\u00f3n Central'), 'fr':
u('R\u00e9gion Centrale')},
'22826':{'en': 'Kara region', 'es': u('Regi\u00f3n de Kara'), 'fr':
u('R\u00e9gion de la Kara')},
'22827':{'en': 'Savannah region', 'es': u('Regi\u00f3n de Savannah'), 'fr':
u('R\u00e9gion des Savanes')},
- '2292021':{'en': 'Ongala', 'fr': 'Ongala'},
- '2292022':{'en': u('Kandi\u00e9v\u00e9'), 'fr': u('Kandi\u00e9v\u00e9')},
- '2292024':{'en': u('S\u00e8m\u00e8'), 'fr': u('S\u00e8m\u00e8')},
- '2292025':{'en': u('Pob\u00e8/K\u00e9tou'), 'fr': u('Pob\u00e8/K\u00e9tou')},
- '2292026':{'en': u('Sak\u00e9t\u00e9/Igolo'), 'fr':
u('Sak\u00e9t\u00e9/Igolo')},
- '2292027':{'en': 'Adjohoun', 'fr': 'Adjohoun'},
- '2292029':{'en': u('Ou\u00e9m\u00e9/Plateau departments'), 'fr':
u('D\u00e9partements Ou\u00e9m\u00e9/Plateau')},
- '2292130':{'en': 'Cadjehoun', 'fr': 'Cadjehoun'},
- '2292131':{'en': 'Ganhi', 'fr': 'Ganhi'},
- '2292132':{'en': u('J\u00e9richo'), 'fr': u('J\u00e9richo')},
- '2292133':{'en': 'Akpakpa', 'fr': 'Akpakpa'},
- '2292134':{'en': 'Ouidah', 'fr': 'Ouidah'},
- '2292135':{'en': 'Godomey', 'fr': 'Godomey'},
- '2292136':{'en': 'Abomey-Calaci', 'fr': 'Abomey-Calaci'},
- '2292137':{'en': 'Allada', 'fr': 'Allada'},
- '2292138':{'en': 'Kouhounou', 'fr': 'Kouhounou'},
- '2292139':{'en': 'Littoral/Atlantique departments', 'fr':
u('D\u00e9partements Littoral/Atlantique')},
- '2292241':{'en': 'Lokossa', 'fr': 'Lokossa'},
- '2292243':{'en': 'Come', 'fr': 'Come'},
- '2292246':{'en': 'Dogbo', 'fr': 'Dogbo'},
- '2292249':{'en': 'Mono/Kouffo/Zou/Collines departments', 'fr':
u('D\u00e9partements Mono/Couffo/Zou/Collines')},
- '2292250':{'en': 'Abomey', 'fr': 'Abomey'},
- '2292251':{'en': 'Bohicon', 'fr': 'Bohicon'},
- '2292252':{'en': u('Cov\u00e8'), 'fr': u('Cov\u00e8')},
- '2292253':{'en': u('Dassa-Zoum\u00e9'), 'fr': u('Dassa-Zoum\u00e9')},
- '2292254':{'en': 'Savalou', 'fr': 'Savalou'},
- '2292255':{'en': u('Sav\u00e8'), 'fr': u('Sav\u00e8')},
- '2292259':{'en': 'Mono/Kouffo/Zou/Collines departments', 'fr':
u('D\u00e9partements Mono/Couffo/Zou/Collines')},
- '2292361':{'en': 'Parakou', 'fr': 'Parakou'},
- '2292362':{'en': 'Nikki/Ndali', 'fr': 'Nikki/Ndali'},
- '2292363':{'en': u('Kandi/Gogounou/S\u00e9gbana'), 'fr':
u('Kandi/Gogounou/S\u00e9gbana')},
- '2292365':{'en': 'Banikoara', 'fr': 'Banikoara'},
- '2292367':{'en': 'Malanville', 'fr': 'Malanville'},
- '2292380':{'en': 'Djougou', 'fr': 'Djougou'},
- '2292382':{'en': 'Natitingou', 'fr': 'Natitingou'},
- '2292383':{'en': u('Tangui\u00e9ta'), 'fr': u('Tangui\u00e9ta')},
- '22924':{'en': u('Tangui\u00e9ta')},
+ '229012021':{'en': 'Ongala', 'fr': 'Ongala'},
+ '229012022':{'en': u('Kandi\u00e9v\u00e9'), 'fr': u('Kandi\u00e9v\u00e9')},
+ '229012024':{'en': u('S\u00e8m\u00e8'), 'fr': u('S\u00e8m\u00e8')},
+ '229012025':{'en': u('Pob\u00e8/K\u00e9tou'), 'fr':
u('Pob\u00e8/K\u00e9tou')},
+ '229012026':{'en': u('Sak\u00e9t\u00e9/Igolo'), 'fr':
u('Sak\u00e9t\u00e9/Igolo')},
+ '229012027':{'en': 'Adjohoun', 'fr': 'Adjohoun'},
+ '229012029':{'en': u('Ou\u00e9m\u00e9/Plateau departments'), 'fr':
u('Ou\u00e9m\u00e9/Plateau departments')},
+ '229012130':{'en': 'Cadjehoun', 'fr': 'Cadjehoun'},
+ '229012131':{'en': 'Ganhi', 'fr': 'Ganhi'},
+ '229012132':{'en': u('J\u00e9richo'), 'fr': u('J\u00e9richo')},
+ '229012133':{'en': 'Akpakpa', 'fr': 'Akpakpa'},
+ '229012134':{'en': 'Ouidah', 'fr': 'Ouidah'},
+ '229012135':{'en': 'Godomey', 'fr': 'Godomey'},
+ '229012136':{'en': 'Abomey-Calaci', 'fr': 'Abomey-Calaci'},
+ '229012137':{'en': 'Allada', 'fr': 'Allada'},
+ '229012138':{'en': 'Kouhounou', 'fr': 'Kouhounou'},
+ '229012139':{'en': 'Littoral/Atlantique departments', 'fr':
'Littoral/Atlantique departments'},
+ '229012241':{'en': 'Lokossa', 'fr': 'Lokossa'},
+ '229012243':{'en': 'Come', 'fr': 'Come'},
+ '229012246':{'en': 'Dogbo', 'fr': 'Dogbo'},
+ '229012249':{'en': 'Mono/Kouffo/Zou/Collines departments', 'fr':
'Mono/Kouffo/Zou/Collines departments'},
+ '229012250':{'en': 'Abomey', 'fr': 'Abomey'},
+ '229012251':{'en': 'Bohicon', 'fr': 'Bohicon'},
+ '229012252':{'en': u('Cov\u00e8'), 'fr': u('Cov\u00e8')},
+ '229012253':{'en': u('Dassa-Zoum\u00e9'), 'fr': u('Dassa-Zoum\u00e9')},
+ '229012254':{'en': 'Savalou', 'fr': 'Savalou'},
+ '229012255':{'en': u('Sav\u00e8'), 'fr': u('Sav\u00e8')},
+ '229012259':{'en': 'Mono/Kouffo/Zou/Collines departments', 'fr':
'Mono/Kouffo/Zou/Collines departments'},
+ '229012361':{'en': 'Parakou', 'fr': 'Parakou'},
+ '229012362':{'en': 'Nikki/Ndali', 'fr': 'Nikki/Ndali'},
+ '229012363':{'en': u('Kandi/Gogounou/S\u00e9gbana'), 'fr':
u('Kandi/Gogounou/S\u00e9gbana')},
+ '229012365':{'en': 'Banikoara', 'fr': 'Banikoara'},
+ '229012367':{'en': 'Malanville', 'fr': 'Malanville'},
+ '229012380':{'en': 'Djougou', 'fr': 'Djougou'},
+ '229012382':{'en': 'Natitingou', 'fr': 'Natitingou'},
+ '229012383':{'en': u('Tangui\u00e9ta'), 'fr': u('Tangui\u00e9ta')},
+ '2290124':{'en': u('Tangui\u00e9ta'), 'fr': u('Tangui\u00e9ta')},
'23020':{'en': 'North Region', 'es': u('Regi\u00f3n Norte'), 'fr':
u('R\u00e9gion Nord')},
'230210':{'en': 'North Region', 'es': u('Regi\u00f3n Norte'), 'fr':
u('R\u00e9gion Nord')},
'230211':{'en': 'North Region', 'es': u('Regi\u00f3n Norte'), 'fr':
u('R\u00e9gion Nord')},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/phonenumbers-9.0.19/phonenumbers.egg-info/PKG-INFO
new/phonenumbers-9.0.20/phonenumbers.egg-info/PKG-INFO
--- old/phonenumbers-9.0.19/phonenumbers.egg-info/PKG-INFO 2025-11-20
19:36:56.000000000 +0100
+++ new/phonenumbers-9.0.20/phonenumbers.egg-info/PKG-INFO 2025-12-05
13:03:40.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: phonenumbers
-Version: 9.0.19
+Version: 9.0.20
Summary: Python version of Google's common library for parsing, formatting,
storing and validating international phone numbers.
Home-page: https://github.com/daviddrysdale/python-phonenumbers
Author: David Drysdale