Skip to content

Commit 040628b

Browse files
committed
Drop processing for "NA" metadata items
1 parent a46a6d7 commit 040628b

4 files changed

Lines changed: 16 additions & 21 deletions

File tree

python/phonenumbers/shortnumberinfo.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ def _matches_national_number(national_number, number_desc, allow_prefix_match):
4646
"""Returns whether the given national number (a string containing only decimal digits) matches
4747
the national number pattern defined in the given PhoneNumberDesc object.
4848
"""
49+
if number_desc.national_number_pattern is None:
50+
return False
4951
nnp_matcher = re.compile(number_desc.national_number_pattern)
5052
return (fullmatch(nnp_matcher, national_number) or
5153
(allow_prefix_match and nnp_matcher.match(national_number)))

python/tests/examplenumberstest.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -324,9 +324,9 @@ def testPrintShortMetadata(self):
324324
self.assertEqual(r"""PhoneMetadata(id='GB', country_code=None, international_prefix=None,
325325
general_desc=PhoneNumberDesc(national_number_pattern='[1-467-9]\\d{2,5}', possible_number_pattern='\\d{3,6}', possible_length=(3, 4, 5, 6)),
326326
toll_free=PhoneNumberDesc(national_number_pattern='1(?:16\\d{3}|7[56]0|8000)|2(?:202|48)|4444', possible_number_pattern='\\d{3,6}', example_number='116000', possible_length=(3, 4, 5, 6)),
327-
premium_rate=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'),
327+
premium_rate=PhoneNumberDesc(),
328328
emergency=PhoneNumberDesc(national_number_pattern='112|999', possible_number_pattern='\\d{3}', example_number='112', possible_length=(3,)),
329329
short_code=PhoneNumberDesc(national_number_pattern='1(?:0[01]|1(?:[12]|6(?:000|1(?:11|23))|8\\d{3})|2(?:[123]|50)|33|4(?:1|7\\d)|5(?:\\d|71)|7(?:0\\d|[56]0)|800\\d|9[15])|2(?:02(?:02)?|1300|2(?:02|11|2)|3(?:02|336|45)|4(?:25|8))|3[13]3|4(?:0[02]|35[01]|44[45]|5\\d)|6(?:50|\\d{4})|7(?:0\\d{3}|8(?:9|\\d{3})|9\\d{3})|8\\d{4}|9(?:01|99)', possible_number_pattern='\\d{3,6}', example_number='150', possible_length=(3, 4, 5, 6)),
330-
standard_rate=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'),
330+
standard_rate=PhoneNumberDesc(),
331331
carrier_specific=PhoneNumberDesc(national_number_pattern='1(?:250|571|7[56]0)|2(?:02(?:02)?|1300|3336|48)|4444|901', possible_number_pattern='\\d{3,5}', example_number='1571', possible_length=(3, 4, 5)),
332332
short_data=True)""", str(short_metadata))

python/tests/phonenumberutiltest.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -117,9 +117,9 @@ def testGetInstanceLoadUSMetadata(self):
117117
self.assertEqual(1, len(metadata.toll_free.possible_length))
118118
self.assertEqual(10, metadata.toll_free.possible_length[0])
119119
self.assertEqual("900\\d{7}", metadata.premium_rate.national_number_pattern)
120-
# No shared-cost data is available, so it should be initialised to "NA".
121-
self.assertEqual("NA", metadata.shared_cost.national_number_pattern)
122-
self.assertEqual("NA", metadata.shared_cost.possible_number_pattern)
120+
# No shared-cost data is available, so it should be initialised to None.
121+
self.assertEqual(None, metadata.shared_cost.national_number_pattern)
122+
self.assertEqual(None, metadata.shared_cost.possible_number_pattern)
123123

124124
def testGetInstanceLoadDEMetadata(self):
125125
metadata = PhoneMetadata.metadata_for_region("DE")
@@ -2671,13 +2671,13 @@ def testMetadataAsString(self):
26712671
mobile=PhoneNumberDesc(national_number_pattern='4\\d{8}', possible_number_pattern='\\d{9}', possible_length=(9,)),
26722672
toll_free=PhoneNumberDesc(national_number_pattern='1800\\d{6}', possible_number_pattern='\\d{10}', possible_length=(10,)),
26732673
premium_rate=PhoneNumberDesc(national_number_pattern='190[0126]\\d{6}', possible_number_pattern='\\d{10}', possible_length=(10,)),
2674-
shared_cost=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'),
2675-
personal_number=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'),
2676-
voip=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'),
2677-
pager=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'),
2678-
uan=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'),
2679-
voicemail=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'),
2680-
no_international_dialling=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'),
2674+
shared_cost=PhoneNumberDesc(),
2675+
personal_number=PhoneNumberDesc(),
2676+
voip=PhoneNumberDesc(),
2677+
pager=PhoneNumberDesc(),
2678+
uan=PhoneNumberDesc(),
2679+
voicemail=PhoneNumberDesc(),
2680+
no_international_dialling=PhoneNumberDesc(),
26812681
preferred_international_prefix='0011',
26822682
national_prefix='0',
26832683
national_prefix_for_parsing='0',

tools/python/buildmetadatafromxml.py

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,6 @@
6363
TOP_XPATH = "territories"
6464
# XML element name for the territory element
6565
TERRITORY_TAG = "territory"
66-
# Marker for unavailable entries
67-
DATA_NA = "NA"
6866

6967
# Boilerplate text for generated Python files
7068
METADATA_FILE_PROLOG = '"""Auto-generated file, do not edit by hand."""'
@@ -301,9 +299,7 @@ def __init__(self, owning_xterr, xtag, national_prefix,
301299
self.io.format = self.o.format
302300
else:
303301
# Replace '$1' etc with '\1' to match Python regexp group reference format
304-
intl_format = re.sub('\$', u(r'\\'), intl_format)
305-
if intl_format != DATA_NA:
306-
self.io.format = intl_format
302+
self.io.format = re.sub('\$', u(r'\\'), intl_format)
307303
owning_xterr.has_explicit_intl_format = True
308304
if self.io.format is not None:
309305
# Add this international NumberFormat object into the owning metadata
@@ -329,9 +325,6 @@ def __init__(self, xterritory, tag, template=None, fill_na=True, general_desc=Fa
329325
self.o.possible_length_local_only = None
330326
self.o.example_number = None
331327
if xtag is None:
332-
if fill_na:
333-
self.o.national_number_pattern = DATA_NA
334-
self.o.possible_number_pattern = DATA_NA
335328
return
336329

337330
# Always expect a nationalNumberPattern element
@@ -510,7 +503,7 @@ def __init__(self, xterritory, short_data):
510503
# to None). But only if they're non
511504
for desc in all_descs:
512505
if desc.o is not None:
513-
if desc.o.national_number_pattern == DATA_NA:
506+
if desc.o.national_number_pattern is None:
514507
desc.o.possible_length = []
515508
desc.o.possible_length_local_only = []
516509
continue

0 commit comments

Comments
 (0)