def __init__(self, xtag, template=None, fill_na=True): self.o = PhoneNumberDesc() self.o.national_number_pattern = None self.o.possible_number_pattern = None self.o.example_number = None if xtag is None: if fill_na: self.o.national_number_pattern = "NA" self.o.possible_number_pattern = "NA" return # Start with the template values if template is not None: self.o.national_number_pattern = template.national_number_pattern self.o.possible_number_pattern = template.possible_number_pattern self.o.example_number = template.example_number # Overwrite with any values in the XML if xtag is not None: national_number_pattern = _dews_re(_get_unique_child_value(xtag, 'nationalNumberPattern')) if national_number_pattern is not None: self.o.national_number_pattern = national_number_pattern possible_number_pattern = _dews_re(_get_unique_child_value(xtag, 'possibleNumberPattern')) if possible_number_pattern is not None: self.o.possible_number_pattern = possible_number_pattern example_number = _get_unique_child_value(xtag, 'exampleNumber') if example_number is not None: self.o.example_number = example_number
def __init__(self, xterritory, tag, template=None, has_possible_lengths=True, has_example_number=True): id = xterritory.attrib['id'] xtag = _get_unique_child(xterritory, tag) self.xtag = xtag if xtag is None: # When a PhoneNumberDesc is absent, the upstream Java code builds an object # of form PhoneNumberDesc(national_number_pattern="NA", possible_length=(-1,)). # The Python code uses a desc of None for this case, to keep the generated # code size smaller. self.o = None return self.o = PhoneNumberDesc() self.o._mutable = True self.o.national_number_pattern = None self.o.possible_number_pattern = None # retired # Set possible length info to None for now, to mark that it wasn't specified # for this numberDesc. self.o.possible_length = None self.o.possible_length_local_only = None self.o.example_number = None # Always expect a nationalNumberPattern element self.o.national_number_pattern = _dews_re(_get_unique_child_value(xtag, 'nationalNumberPattern')) if self.o.national_number_pattern is None: if lax: if template is not None: self.o.national_number_pattern = template.national_number_pattern else: raise Exception("Missing required nationalNumberPattern element in %s.%s" % (id, tag)) # An exampleNumber element may be present. example_number = _get_unique_child_value(xtag, 'exampleNumber') if (not lax) and has_example_number and (example_number is None): raise Exception("Missing required exampleNumber element in %s.%s" % (id, tag)) if (not has_example_number) and example_number is not None: if lax: example_number = None else: raise Exception("Unexpected exampleNumber element in %s.%s" % (id, tag)) self.o.example_number = example_number # A possibleLengths element may be present. possible_lengths = _get_unique_child(xtag, 'possibleLengths') if (not lax) and has_possible_lengths and (possible_lengths is None): raise Exception("Missing required possibleLengths element in %s.%s" % (id, tag)) if (not has_possible_lengths) and possible_lengths is not None: raise Exception("Unexpected possibleLengths in %s.%s" % (id, tag)) if possible_lengths is not None: national_lengths = possible_lengths.attrib['national'] # REQUIRED attribute if national_lengths == "-1": # -1 used to be a special possibleLengths value, no longer allowed. raise Exception("Found unexpected %s.%s.possibleLength.national==-1", (id, tag)) self.o.possible_length = _extract_lengths(national_lengths) local_lengths = possible_lengths.get('localOnly', None) # IMPLIED attribute self.o.possible_length_local_only = _extract_lengths(local_lengths)
def __init__(self, xtag, template=None, fill_na=True, lengths_expected=True): self.xtag = xtag self.o = PhoneNumberDesc() self.o._mutable = True self.o.national_number_pattern = None self.o.possible_number_pattern = None # Set possible length info to None for now, to mark that it wasn't specified # for this numberDesc. self.o.possible_length = None self.o.possible_length_local_only = None self.o.example_number = None if xtag is None: if fill_na: self.o.national_number_pattern = DATA_NA self.o.possible_number_pattern = DATA_NA return # Start with the template values if template is not None: self.o.national_number_pattern = template.national_number_pattern self.o.possible_number_pattern = template.possible_number_pattern self.o.example_number = template.example_number # Overwrite with any values in the XML if xtag is not None: national_number_pattern = _dews_re(_get_unique_child_value(xtag, 'nationalNumberPattern')) if national_number_pattern is not None: self.o.national_number_pattern = national_number_pattern possible_number_pattern = _dews_re(_get_unique_child_value(xtag, 'possibleNumberPattern')) if possible_number_pattern is not None: self.o.possible_number_pattern = possible_number_pattern example_number = _get_unique_child_value(xtag, 'exampleNumber') if example_number is not None: self.o.example_number = example_number possible_lengths = _get_unique_child(xtag, 'possibleLengths') if possible_lengths is not None: if not lengths_expected: raise Exception("Found unexpected possibleLengths element in %s" % xtag.tag) national_lengths = possible_lengths.attrib['national'] # REQUIRED attribute if national_lengths == "-1": # A value of -1 for possibleLengths.national is a special marker to indicate # that this sub-type of number doesn't actually exist. if fill_na: raise Exception("Found possibleLengths -1 for unexpected number type") self.o.possible_length = (-1,) return self.o.possible_length = _extract_lengths(national_lengths) local_lengths = possible_lengths.get('localOnly', None) # IMPLIED attribute self.o.possible_length_local_only = _extract_lengths(local_lengths)
"""Auto-generated file, do not edit by hand. AU metadata""" from phonenumbers.phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_AU = PhoneMetadata(id='AU', country_code=61, international_prefix='001[12]', general_desc=PhoneNumberDesc(national_number_pattern='[1-578]\\d{4,14}', possible_number_pattern='\\d{5,15}'), fixed_line=PhoneNumberDesc(national_number_pattern='[2378]\\d{8}', possible_number_pattern='\\d{9}'), mobile=PhoneNumberDesc(national_number_pattern='4\\d{8}', possible_number_pattern='\\d{9}'), toll_free=PhoneNumberDesc(national_number_pattern='1800\\d{6}', possible_number_pattern='\\d{10}'), premium_rate=PhoneNumberDesc(national_number_pattern='190[0126]\\d{6}', possible_number_pattern='\\d{10}'), shared_cost=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), personal_number=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), voip=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), pager=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), uan=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), voicemail=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), no_international_dialling=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), preferred_international_prefix='0011', national_prefix='0', national_prefix_for_parsing='0', number_format=[NumberFormat(pattern='(\\d{4})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', leading_digits_pattern=['1'], national_prefix_formatting_rule='\\1'), NumberFormat(pattern='(\\d{1})(\\d{4})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['[2-478]'], national_prefix_formatting_rule='0\\1')])
"""Auto-generated file, do not edit by hand. NZ metadata""" from phonenumbers.phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_NZ = PhoneMetadata( id='NZ', country_code=64, international_prefix='00', general_desc=PhoneNumberDesc( national_number_pattern='[289]\\d{7,9}|[3-7]\\d{7}', possible_number_pattern='\\d{7,10}'), fixed_line=PhoneNumberDesc( national_number_pattern= '24099\\d{3}|(?:3[2-79]|[479][2-689]|6[235-9])\\d{6}', possible_number_pattern='\\d{7,8}'), mobile=PhoneNumberDesc( national_number_pattern= '2(?:[027]\\d{7}|9\\d{6,7}|1(?:0\\d{5,7}|[12]\\d{5,6}|[3-9]\\d{5})|4[1-9]\\d{6}|8\\d{7,8})', possible_number_pattern='\\d{8,10}'), toll_free=PhoneNumberDesc(national_number_pattern='800\\d{6,7}', possible_number_pattern='\\d{9,10}'), premium_rate=PhoneNumberDesc(national_number_pattern='900\\d{6,7}', possible_number_pattern='\\d{9,10}'), shared_cost=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), personal_number=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), voip=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), pager=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), uan=PhoneNumberDesc(national_number_pattern='NA',
"""Auto-generated file, do not edit by hand. SG metadata""" from phonenumbers.phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_SG = PhoneMetadata( id='SG', country_code=65, international_prefix='0[0-3][0-9]', general_desc=PhoneNumberDesc(national_number_pattern='[13689]\\d{7,10}', possible_number_pattern='\\d{8}|\\d{10,11}'), fixed_line=PhoneNumberDesc(national_number_pattern='[36]\\d{7}', possible_number_pattern='\\d{8}'), mobile=PhoneNumberDesc(national_number_pattern='[89]\\d{7}', possible_number_pattern='\\d{8}'), toll_free=PhoneNumberDesc(national_number_pattern='1?800\\d{7}', possible_number_pattern='\\d{10,11}'), premium_rate=PhoneNumberDesc(national_number_pattern='1900\\d{7}', possible_number_pattern='\\d{11}'), shared_cost=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), personal_number=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), voip=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), pager=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), uan=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), emergency=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), voicemail=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'),
"""Auto-generated file, do not edit by hand. KR metadata""" from phonenumbers.phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_KR = PhoneMetadata(id='KR', country_code=82, international_prefix='00(?:[124-68]|[37]\\d{2})', general_desc=PhoneNumberDesc(national_number_pattern='[1-7]\\d{3,9}|8\\d{8}', possible_number_pattern='\\d{4,10}'), fixed_line=PhoneNumberDesc(national_number_pattern='(?:2|[34][1-3]|5[1-5]|6[1-4])(?:1\\d{2,3}|[2-9]\\d{6,7})', possible_number_pattern='\\d{4,10}', example_number='22123456'), mobile=PhoneNumberDesc(national_number_pattern='1[0-25-9]\\d{7,8}', possible_number_pattern='\\d{9,10}', example_number='1023456789'), toll_free=PhoneNumberDesc(national_number_pattern='80\\d{7}', possible_number_pattern='\\d{9}', example_number='801234567'), premium_rate=PhoneNumberDesc(national_number_pattern='60[2-9]\\d{6}', possible_number_pattern='\\d{9}', example_number='602345678'), shared_cost=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), personal_number=PhoneNumberDesc(national_number_pattern='50\\d{8}', possible_number_pattern='\\d{10}', example_number='5012345678'), voip=PhoneNumberDesc(national_number_pattern='70\\d{8}', possible_number_pattern='\\d{10}', example_number='7012345678'), pager=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), uan=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), emergency=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), voicemail=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), no_international_dialling=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), national_prefix='0', national_prefix_for_parsing='0(8[1-46-8]|85\\d{2})?', number_format=[NumberFormat(pattern='(\\d{2})(\\d{4})(\\d{4})', format=u'\\1-\\2-\\3', leading_digits_pattern=['1(?:0|1[19]|[69]9|5[458])|[57]0', '1(?:0|1[19]|[69]9|5(?:44|59|8))|[57]0'], national_prefix_formatting_rule=u'0\\1'), NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{4})', format=u'\\1-\\2-\\3', leading_digits_pattern=['1(?:[169][2-8]|[78]|5[1-4])|[68]0|[3-6][1-9][2-9]', '1(?:[169][2-8]|[78]|5(?:[1-3]|4[56]))|[68]0|[3-6][1-9][2-9]'], national_prefix_formatting_rule=u'0\\1'), NumberFormat(pattern='(\\d{3})(\\d)(\\d{4})', format=u'\\1-\\2-\\3', leading_digits_pattern=['131', '1312'], national_prefix_formatting_rule=u'0\\1'), NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{4})', format=u'\\1-\\2-\\3', leading_digits_pattern=['131', '131[13-9]'], national_prefix_formatting_rule=u'0\\1'), NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{4})', format=u'\\1-\\2-\\3', leading_digits_pattern=['13[2-9]'], national_prefix_formatting_rule=u'0\\1'), NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{3})(\\d{4})', format=u'\\1-\\2-\\3-\\4', leading_digits_pattern=['30'], national_prefix_formatting_rule=u'0\\1'), NumberFormat(pattern='(\\d)(\\d{4})(\\d{4})', format=u'\\1-\\2-\\3', leading_digits_pattern=['2(?:[26]|3[0-467])', '2(?:[26]|3(?:01|1[45]|2[17-9]|39|4|6[67]|7[078]))'], national_prefix_formatting_rule=u'0\\1'), NumberFormat(pattern='(\\d)(\\d{3})(\\d{4})', format=u'\\1-\\2-\\3', leading_digits_pattern=['2(?:3[0-35-9]|[457-9])', '2(?:3(?:0[02-9]|1[0-36-9]|2[02-6]|3[0-8]|6[0-589]|7[1-69]|[589])|[457-9])'], national_prefix_formatting_rule=u'0\\1'), NumberFormat(pattern='(\\d)(\\d{3})', format=u'\\1-\\2', leading_digits_pattern=['21[0-46-9]', '21(?:[0-247-9]|3[124]|6[1269])'], national_prefix_formatting_rule=u'0\\1'), NumberFormat(pattern='(\\d)(\\d{4})', format=u'\\1-\\2', leading_digits_pattern=['21[36]', '21(?:3[035-9]|6[03-578])'], national_prefix_formatting_rule=u'0\\1'), NumberFormat(pattern='(\\d{2})(\\d{3})', format=u'\\1-\\2', leading_digits_pattern=['[3-6][1-9]1', '[3-6][1-9]1(?:[0-46-9])', '[3-6][1-9]1(?:[0-247-9]|3[124]|6[1269])'], national_prefix_formatting_rule=u'0\\1'), NumberFormat(pattern='(\\d{2})(\\d{4})', format=u'\\1-\\2', leading_digits_pattern=['[3-6][1-9]1', '[3-6][1-9]1[36]', '[3-6][1-9]1(?:3[035-9]|6[03-578])'], national_prefix_formatting_rule=u'0\\1')])
"""Auto-generated file, do not edit by hand. RE metadata""" from phonenumbers.phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_RE = PhoneMetadata(id='RE', country_code=262, international_prefix='00', general_desc=PhoneNumberDesc(national_number_pattern='[268]\\d{8}', possible_length=(9,)), fixed_line=PhoneNumberDesc(national_number_pattern='262\\d{6}', example_number='262161234', possible_length=(9,)), mobile=PhoneNumberDesc(national_number_pattern='6(?:9[23]|47)\\d{6}', example_number='692123456', possible_length=(9,)), toll_free=PhoneNumberDesc(national_number_pattern='80\\d{7}', example_number='801234567', possible_length=(9,)), premium_rate=PhoneNumberDesc(national_number_pattern='8(?:1[01]|2[0156]|84|9[0-37-9])\\d{6}', example_number='810123456', possible_length=(9,)), national_prefix='0', national_prefix_for_parsing='0', number_format=[NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{2})(\\d{2})', format='\\1 \\2 \\3 \\4', national_prefix_formatting_rule='0\\1')], leading_digits='262|6(?:9[23]|47)|8')
"""Auto-generated file, do not edit by hand. CN metadata""" from phonenumbers.phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_CN = PhoneMetadata( id='CN', country_code=86, international_prefix='00', general_desc=PhoneNumberDesc( national_number_pattern='[1-7]\\d{6,11}|8[0-357-9]\\d{6,9}|9\\d{7,10}', possible_length=(11, )), fixed_line=PhoneNumberDesc(national_number_pattern='[2-9]\\d{10}', example_number='91234567', possible_length=(11, )), mobile=PhoneNumberDesc( national_number_pattern='1(?:[38]\\d|4[57]|5[0-35-9]|7[0136-8])\\d{8}', example_number='13123456789', possible_length=(11, )), national_prefix='0', national_prefix_for_parsing='0', number_format=[ NumberFormat(pattern='(\\d{3})(\\d{5,6})', format='\\1 \\2', leading_digits_pattern=[ '[3-9]', '[3-9]\\d{2}[19]', '[3-9]\\d{2}(?:10|95)' ], national_prefix_formatting_rule='0\\1', domestic_carrier_code_formatting_rule='$CC \\1'), NumberFormat(pattern='(\\d{3})(\\d{8})', format='\\1 \\2', leading_digits_pattern=['1'], national_prefix_formatting_rule='\\1')
"""Auto-generated file, do not edit by hand. 800 metadata""" from phonenumbers.phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_800 = PhoneMetadata( id='001', country_code=800, international_prefix=None, general_desc=PhoneNumberDesc(national_number_pattern='\\d{8}', possible_number_pattern='\\d{8}', example_number='12345678'), fixed_line=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA', example_number='12345678'), mobile=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA', example_number='12345678'), toll_free=PhoneNumberDesc(national_number_pattern='\\d{8}', possible_number_pattern='\\d{8}', example_number='12345678'), premium_rate=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), shared_cost=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), personal_number=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), voip=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), pager=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), uan=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'),
"""Auto-generated file, do not edit by hand. CO metadata""" from phonenumbers.phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_CO = PhoneMetadata(id='CO', country_code=57, international_prefix=None, general_desc=PhoneNumberDesc(national_number_pattern='(?:60|3\\d)\\d{8}', possible_length=(10,)), fixed_line=PhoneNumberDesc(national_number_pattern='60\\d{8}', example_number='6012345678', possible_length=(10,)), mobile=PhoneNumberDesc(national_number_pattern='3(?:0[0-5]|1\\d|2[0-3]|5[01]|70)\\d{7}', example_number='3211234567', possible_length=(10,)), national_prefix='0', national_prefix_for_parsing='0(4(?:[14]4|56)|[579])?', number_format=[NumberFormat(pattern='(\\d{3})(\\d{7})', format='\\1 \\2', leading_digits_pattern=['6'], national_prefix_formatting_rule='(\\1)', domestic_carrier_code_formatting_rule='0$CC \\1'), NumberFormat(pattern='(\\d{3})(\\d{7})', format='\\1 \\2', leading_digits_pattern=['3'], domestic_carrier_code_formatting_rule='0$CC \\1')], mobile_number_portable_region=True)
"""Auto-generated file, do not edit by hand. NZ metadata""" from phonenumbers.phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_NZ = PhoneMetadata( id='NZ', country_code=64, international_prefix='00', general_desc=PhoneNumberDesc( national_number_pattern='[289]\\d{7,9}|[3-7]\\d{7}', possible_length=(7, 8, 9, 10)), fixed_line=PhoneNumberDesc( national_number_pattern= '24099\\d{3}|(?:3[2-79]|[479][2-689]|6[235-9])\\d{6}', example_number='24099123', possible_length=(7, 8)), mobile=PhoneNumberDesc( national_number_pattern= '2(?:[027]\\d{7}|9\\d{6,7}|1(?:0\\d{5,7}|[12]\\d{5,6}|[3-9]\\d{5})|4[1-9]\\d{6}|8\\d{7,8})', example_number='201234567', possible_length=(8, 9, 10)), toll_free=PhoneNumberDesc(national_number_pattern='800\\d{6,7}', example_number='8001234567', possible_length=(9, 10)), premium_rate=PhoneNumberDesc(national_number_pattern='900\\d{6,7}', example_number='9001234567', possible_length=(9, 10)), national_prefix='0', national_prefix_for_parsing='0', number_format=[ NumberFormat(pattern='(\\d)(\\d{3})(\\d{4})', format='\\1-\\2 \\3',
"""Auto-generated file, do not edit by hand. CN metadata""" from phonenumbers.phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_CN = PhoneMetadata( id='CN', country_code=86, international_prefix='00', general_desc=PhoneNumberDesc( national_number_pattern='[1-7]\\d{6,11}|8[0-357-9]\\d{6,9}|9\\d{7,10}', possible_number_pattern='\\d{4,12}', possible_length=(11, )), fixed_line=PhoneNumberDesc(national_number_pattern='[2-9]\\d{10}', possible_number_pattern='\\d{11}', example_number='91234567', possible_length=(11, )), mobile=PhoneNumberDesc( national_number_pattern='1(?:[38]\\d|4[57]|5[0-35-9]|7[0136-8])\\d{8}', possible_number_pattern='\\d{11}', example_number='13123456789', possible_length=(11, )), toll_free=PhoneNumberDesc(), premium_rate=PhoneNumberDesc(), shared_cost=PhoneNumberDesc(), personal_number=PhoneNumberDesc(), voip=PhoneNumberDesc(), pager=PhoneNumberDesc(), uan=PhoneNumberDesc(), voicemail=PhoneNumberDesc(), no_international_dialling=PhoneNumberDesc(), national_prefix='0', national_prefix_for_parsing='0',
"""Auto-generated file, do not edit by hand. RE metadata""" from phonenumbers.phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_RE = PhoneMetadata(id='RE', country_code=262, international_prefix='00', general_desc=PhoneNumberDesc(national_number_pattern='[268]\\d{8}', possible_number_pattern='\\d{9}'), fixed_line=PhoneNumberDesc(national_number_pattern='262\\d{6}', possible_number_pattern='\\d{9}', example_number='262161234'), mobile=PhoneNumberDesc(national_number_pattern='6(?:9[23]|47)\\d{6}', possible_number_pattern='\\d{9}', example_number='692123456'), toll_free=PhoneNumberDesc(national_number_pattern='80\\d{7}', possible_number_pattern='\\d{9}', example_number='801234567'), premium_rate=PhoneNumberDesc(national_number_pattern='8(?:1[01]|2[0156]|84|9[0-37-9])\\d{6}', possible_number_pattern='\\d{9}', example_number='810123456'), shared_cost=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), personal_number=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), voip=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), pager=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), uan=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), voicemail=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), no_international_dialling=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), national_prefix='0', national_prefix_for_parsing='0', number_format=[NumberFormat(pattern='([268]\\d{2})(\\d{2})(\\d{2})(\\d{2})', format=u'\\1 \\2 \\3 \\4', national_prefix_formatting_rule=u'0\\1')], leading_digits='262|6(?:9[23]|47)|8')
"""Auto-generated file, do not edit by hand. GB metadata""" from phonenumbers.phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_GB = PhoneMetadata( id='GB', country_code=44, international_prefix='00', general_desc=PhoneNumberDesc(national_number_pattern='\\d{10}', possible_number_pattern='\\d{6,10}'), fixed_line=PhoneNumberDesc(national_number_pattern='[1-6]\\d{9}', possible_number_pattern='\\d{6,10}'), mobile=PhoneNumberDesc(national_number_pattern='7[1-57-9]\\d{8}', possible_number_pattern='\\d{10}'), toll_free=PhoneNumberDesc(national_number_pattern='80\\d{8}', possible_number_pattern='\\d{10}'), premium_rate=PhoneNumberDesc(national_number_pattern='9[018]\\d{8}', possible_number_pattern='\\d{10}'), shared_cost=PhoneNumberDesc( national_number_pattern='8(?:4[3-5]|7[0-2])\\d{7}', possible_number_pattern='\\d{10}'), personal_number=PhoneNumberDesc(national_number_pattern='70\\d{8}', possible_number_pattern='\\d{10}'), voip=PhoneNumberDesc(national_number_pattern='56\\d{8}', possible_number_pattern='\\d{10}'), pager=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), uan=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), emergency=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), voicemail=PhoneNumberDesc(national_number_pattern='NA',
"""Auto-generated file, do not edit by hand. SE metadata""" from phonenumbers.phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_SE = PhoneMetadata( id='SE', country_code=46, international_prefix='00', general_desc=PhoneNumberDesc(national_number_pattern='\\d{9}', possible_length=(9, )), fixed_line=PhoneNumberDesc(example_number='123456789'))
def __init__(self, xterritory, tag, template=None, general_desc=False): id = xterritory.attrib['id'] xtag = _get_unique_child(xterritory, tag) self.xtag = xtag self.o = PhoneNumberDesc() self.o._mutable = True self.o.national_number_pattern = None self.o.possible_number_pattern = None # Set possible length info to None for now, to mark that it wasn't specified # for this numberDesc. self.o.possible_length = None self.o.possible_length_local_only = None self.o.example_number = None if xtag is None: return # Always expect a nationalNumberPattern element self.o.national_number_pattern = _dews_re( _get_unique_child_value(xtag, 'nationalNumberPattern')) if self.o.national_number_pattern is None: if lax: if template is not None: self.o.national_number_pattern = template.national_number_pattern else: raise Exception( "Missing required nationalNumberPattern element in %s.%s" % (id, tag)) # A possibleNumberPattern element is optional, except for the general_desc self.o.possible_number_pattern = _dews_re( _get_unique_child_value(xtag, 'possibleNumberPattern')) if self.o.possible_number_pattern is None: if general_desc: raise Exception( "Missing required possibleNumberPattern element for generalDesc in %s.%s" % (id, tag)) if template is not None: self.o.possible_number_pattern = template.possible_number_pattern # An exampleNumber element is present iff this is not the generalDesc example_number = _get_unique_child_value(xtag, 'exampleNumber') if (not lax) and (not general_desc) and (example_number is None): raise Exception("Missing required exampleNumber element in %s.%s" % (id, tag)) if general_desc and example_number is not None: if lax: example_number = None else: raise Exception( "Unexpected exampleNumber element for generalDesc in %s.%s" % (id, tag)) self.o.example_number = example_number # A possibleLengths element is present iff this is not the generalDesc possible_lengths = _get_unique_child(xtag, 'possibleLengths') if (not lax) and (not general_desc) and (possible_lengths is None): raise Exception( "Missing required possibleLengths element in %s.%s" % (id, tag)) if general_desc and possible_lengths is not None: raise Exception( "Unexpected possibleLengths for generalDesc in %s.%s" % (id, tag)) if possible_lengths is not None: national_lengths = possible_lengths.attrib[ 'national'] # REQUIRED attribute if national_lengths == "-1": # -1 used to be a special possibleLengths value, no longer allowed. raise Exception( "Found unexpected %s.%s.possibleLength.national==-1", (id, tag)) self.o.possible_length = _extract_lengths(national_lengths) local_lengths = possible_lengths.get('localOnly', None) # IMPLIED attribute self.o.possible_length_local_only = _extract_lengths(local_lengths)
"""Auto-generated file, do not edit by hand. JP metadata""" from phonenumbers.phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_JP = PhoneMetadata( id='JP', country_code=81, international_prefix='010', general_desc=PhoneNumberDesc( national_number_pattern='07\\d{5}|[1-357-9]\\d{3,10}', possible_length=(4, 5, 6, 7, 8, 9, 10, 11)), fixed_line=PhoneNumberDesc( national_number_pattern='07\\d{5}|[1-357-9]\\d{3,10}', example_number='0712345', possible_length=(4, 5, 6, 7, 8, 9, 10, 11)), toll_free=PhoneNumberDesc(national_number_pattern='0777[01]\\d{2}', example_number='0777012', possible_length=(7, )), no_international_dialling=PhoneNumberDesc( national_number_pattern='[23]\\d{3}', example_number='2123', possible_length=(4, )), national_prefix='0', national_prefix_for_parsing='0', number_format=[ NumberFormat(pattern='(\\d{2})(\\d{4})(\\d{4})', format='\\1 \\2 \\3', leading_digits_pattern=['[57-9]0'], national_prefix_formatting_rule='0\\1'), NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{3})(\\d{4})', format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[57-9]0'],
"""Auto-generated file, do not edit by hand. MX metadata""" from phonenumbers.phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_MX = PhoneMetadata( id='MX', country_code=52, international_prefix='00', general_desc=PhoneNumberDesc(national_number_pattern='[1-9]\\d{9,10}', possible_number_pattern='\\d{7,11}', possible_length=(10, 11), possible_length_local_only=(7, )), fixed_line=PhoneNumberDesc(national_number_pattern='[2-9]\\d{9}', possible_number_pattern='\\d{7,10}', possible_length=(10, ), possible_length_local_only=(7, )), mobile=PhoneNumberDesc(national_number_pattern='1\\d{10}', possible_number_pattern='\\d{11}', possible_length=(11, )), toll_free=PhoneNumberDesc(national_number_pattern='800\\d{7}', possible_number_pattern='\\d{10}', possible_length=(10, )), premium_rate=PhoneNumberDesc(national_number_pattern='900\\d{7}', possible_number_pattern='\\d{10}', possible_length=(10, )), shared_cost=PhoneNumberDesc(), personal_number=PhoneNumberDesc(), voip=PhoneNumberDesc(), pager=PhoneNumberDesc(), uan=PhoneNumberDesc(), voicemail=PhoneNumberDesc(), no_international_dialling=PhoneNumberDesc(),
"""Auto-generated file, do not edit by hand. BB metadata""" from phonenumbers.phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_BB = PhoneMetadata( id='BB', country_code=1, international_prefix='011', general_desc=PhoneNumberDesc(national_number_pattern='246\\d{7}', possible_length=(10, ), possible_length_local_only=(7, )), fixed_line=PhoneNumberDesc(example_number='2464567890'))
"""Auto-generated file, do not edit by hand. JP metadata""" from phonenumbers.phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_JP = PhoneMetadata( id='JP', country_code=81, international_prefix='010', general_desc=PhoneNumberDesc( national_number_pattern='07\\d{5}|[1-357-9]\\d{3,10}', possible_number_pattern='\\d{4,11}'), fixed_line=PhoneNumberDesc( national_number_pattern='07\\d{5}|[1-357-9]\\d{3,10}', possible_number_pattern='\\d{4,11}'), mobile=PhoneNumberDesc( national_number_pattern='07\\d{5}|[1-357-9]\\d{3,10}', possible_number_pattern='\\d{4,11}'), toll_free=PhoneNumberDesc(national_number_pattern='0777[01]\\d{2}', possible_number_pattern='\\d{7}', example_number='0777012'), premium_rate=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), shared_cost=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), personal_number=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), voip=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), pager=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), uan=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'),
"""Auto-generated file, do not edit by hand. DE metadata""" from phonenumbers.phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_DE = PhoneMetadata( id='DE', country_code=49, international_prefix='00', general_desc=PhoneNumberDesc(national_number_pattern='\\d{4,14}', possible_number_pattern='\\d{2,14}', possible_length=(4, 5, 6, 7, 8, 9, 10, 11), possible_length_local_only=(2, 3)), fixed_line=PhoneNumberDesc( national_number_pattern= '(?:[24-6]\\d{2}|3[03-9]\\d|[789](?:0[2-9]|[1-9]\\d))\\d{1,8}', possible_number_pattern='\\d{2,14}', example_number='30123456', possible_length=(4, 5, 6, 7, 8, 9, 10, 11), possible_length_local_only=(2, 3)), mobile=PhoneNumberDesc( national_number_pattern='1(5\\d{9}|7\\d{8}|6[02]\\d{8}|63\\d{7})', possible_number_pattern='\\d{10,11}', possible_length=(10, 11)), toll_free=PhoneNumberDesc(national_number_pattern='800\\d{7}', possible_number_pattern='\\d{10}', possible_length=(10, )), premium_rate=PhoneNumberDesc( national_number_pattern='900([135]\\d{6}|9\\d{7})', possible_number_pattern='\\d{10,11}', possible_length=(10, 11)), shared_cost=PhoneNumberDesc(), personal_number=PhoneNumberDesc(),
"""Auto-generated file, do not edit by hand. YT metadata""" from phonenumbers.phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_YT = PhoneMetadata( id='YT', country_code=262, international_prefix='00', general_desc=PhoneNumberDesc(national_number_pattern='[268]\\d{8}', possible_length=(9, )), fixed_line=PhoneNumberDesc(national_number_pattern='2696[0-4]\\d{4}', example_number='269601234', possible_length=(9, )), mobile=PhoneNumberDesc(national_number_pattern='639\\d{6}', example_number='639123456', possible_length=(9, )), toll_free=PhoneNumberDesc(national_number_pattern='80\\d{7}', example_number='801234567', possible_length=(9, )), national_prefix='0', national_prefix_for_parsing='0', leading_digits='269|639')
"""Auto-generated file, do not edit by hand. KR metadata""" from phonenumbers.phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_KR = PhoneMetadata( id='KR', country_code=82, international_prefix='00(?:[124-68]|[37]\\d{2})', general_desc=PhoneNumberDesc( national_number_pattern='[1-7]\\d{3,9}|8\\d{8}', possible_length=(4, 5, 6, 7, 8, 9, 10)), fixed_line=PhoneNumberDesc( national_number_pattern= '(?:2|[34][1-3]|5[1-5]|6[1-4])(?:1\\d{2,3}|[2-9]\\d{6,7})', example_number='22123456', possible_length=(4, 5, 6, 7, 8, 9, 10)), mobile=PhoneNumberDesc(national_number_pattern='1[0-25-9]\\d{7,8}', example_number='1023456789', possible_length=(9, 10)), toll_free=PhoneNumberDesc(national_number_pattern='80\\d{7}', example_number='801234567', possible_length=(9, )), premium_rate=PhoneNumberDesc(national_number_pattern='60[2-9]\\d{6}', example_number='602345678', possible_length=(9, )), personal_number=PhoneNumberDesc(national_number_pattern='50\\d{8}', example_number='5012345678', possible_length=(10, )), voip=PhoneNumberDesc(national_number_pattern='70\\d{8}', example_number='7012345678', possible_length=(10, )), national_prefix='0',
"""Auto-generated file, do not edit by hand. AD metadata""" from phonenumbers.phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_AD = PhoneMetadata(id='AD', country_code=376, international_prefix='00', general_desc=PhoneNumberDesc(national_number_pattern='\\d{6}', possible_number_pattern='\\d{6}', possible_length=(6,)), fixed_line=PhoneNumberDesc(national_number_pattern='\\d{6}', possible_number_pattern='\\d{6}', possible_length=(6,)), mobile=PhoneNumberDesc(national_number_pattern='\\d{6}', possible_number_pattern='\\d{6}', possible_length=(6,)), toll_free=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), premium_rate=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), shared_cost=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), personal_number=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), voip=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), pager=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), uan=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), voicemail=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), no_international_dialling=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'))
"""Auto-generated file, do not edit by hand. US metadata""" from phonenumbers.phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_US = PhoneMetadata( id='US', country_code=1, international_prefix='011', general_desc=PhoneNumberDesc( national_number_pattern='[13-689]\\d{9}|2[0-35-9]\\d{8}', possible_number_pattern='\\d{7}(?:\\d{3})?', example_number='1234567890'), fixed_line=PhoneNumberDesc( national_number_pattern='[13-689]\\d{9}|2[0-35-9]\\d{8}', possible_number_pattern='\\d{7}(?:\\d{3})?', example_number='1234567890'), mobile=PhoneNumberDesc( national_number_pattern='[13-689]\\d{9}|2[0-35-9]\\d{8}', possible_number_pattern='\\d{7}(?:\\d{3})?', example_number='1234567890'), toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|66|77|88)\\d{7}', possible_number_pattern='\\d{10}', example_number='1234567890'), premium_rate=PhoneNumberDesc(national_number_pattern='900\\d{7}', possible_number_pattern='\\d{10}', example_number='1234567890'), shared_cost=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), personal_number=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'), voip=PhoneNumberDesc(national_number_pattern='NA', possible_number_pattern='NA'),
"""Auto-generated file, do not edit by hand. 800 metadata""" from phonenumbers.phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_800 = PhoneMetadata( id='001', country_code=800, international_prefix=None, general_desc=PhoneNumberDesc(national_number_pattern='\\d{8}', possible_length=(8, )), toll_free=PhoneNumberDesc(national_number_pattern='\\d{8}', example_number='12345678', possible_length=(8, )), number_format=[NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2')])
"""Auto-generated file, do not edit by hand. BR metadata""" from phonenumbers.phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_BR = PhoneMetadata( id='BR', country_code=55, international_prefix='00', general_desc=PhoneNumberDesc(national_number_pattern='\\d{8,10}', possible_length=(10, ), possible_length_local_only=(8, )), fixed_line=PhoneNumberDesc(national_number_pattern='\\d{8,10}', example_number='12345678', possible_length=(10, ), possible_length_local_only=(8, )))
"""Auto-generated file, do not edit by hand. US metadata""" from phonenumbers.phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_US = PhoneMetadata( id='US', country_code=1, international_prefix='011', general_desc=PhoneNumberDesc( national_number_pattern='[13-689]\\d{9}|2[0-35-9]\\d{8}', possible_length=(10, ), possible_length_local_only=(7, )), fixed_line=PhoneNumberDesc( national_number_pattern='[13-689]\\d{9}|2[0-35-9]\\d{8}', example_number='1234567890', possible_length=(10, ), possible_length_local_only=(7, )), mobile=PhoneNumberDesc( national_number_pattern='[13-689]\\d{9}|2[0-35-9]\\d{8}', example_number='1234567890', possible_length=(10, ), possible_length_local_only=(7, )), toll_free=PhoneNumberDesc(national_number_pattern='8(?:00|66|77|88)\\d{7}', example_number='8004567890', possible_length=(10, )), premium_rate=PhoneNumberDesc(national_number_pattern='900\\d{7}', example_number='9004567890', possible_length=(10, )), no_international_dialling=PhoneNumberDesc( national_number_pattern='800\\d{7}', possible_length=(10, )), national_prefix='1', preferred_extn_prefix=' extn. ',
"""Auto-generated file, do not edit by hand. PL metadata""" from phonenumbers.phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata PHONE_METADATA_PL = PhoneMetadata( id='PL', country_code=48, international_prefix='00', general_desc=PhoneNumberDesc(national_number_pattern='[1-9]\\d{8}', possible_number_pattern='\\d{9}', possible_length=(9, )), fixed_line=PhoneNumberDesc(), mobile=PhoneNumberDesc( national_number_pattern='(?:5[01]|6[069]|7[289]|88)\\d{7}', possible_length=(9, )), toll_free=PhoneNumberDesc(national_number_pattern='800\\d{6}', possible_number_pattern='\\d{9}', possible_length=(9, )), premium_rate=PhoneNumberDesc(national_number_pattern='70\\d{7}', possible_number_pattern='\\d{9}', possible_length=(9, )), shared_cost=PhoneNumberDesc(), personal_number=PhoneNumberDesc(), voip=PhoneNumberDesc(), pager=PhoneNumberDesc(), uan=PhoneNumberDesc(), voicemail=PhoneNumberDesc(), no_international_dialling=PhoneNumberDesc(), national_prefix='0', national_prefix_for_parsing='0', number_format=[ NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{2})(\\d{2})',