Esempio n. 1
0
 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)
Esempio n. 3
0
 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)
Esempio n. 4
0
"""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')])
Esempio n. 5
0
"""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',
Esempio n. 6
0
"""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'),
Esempio n. 7
0
"""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')])
Esempio n. 8
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_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')
Esempio n. 9
0
"""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')
Esempio n. 10
0
"""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'),
Esempio n. 11
0
"""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)
Esempio n. 12
0
"""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',
Esempio n. 13
0
"""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',
Esempio n. 14
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')
Esempio n. 15
0
"""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',
Esempio n. 16
0
"""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)
Esempio n. 18
0
"""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'],
Esempio n. 19
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(),
Esempio n. 20
0
"""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'))
Esempio n. 21
0
"""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'),
Esempio n. 22
0
"""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(),
Esempio n. 23
0
"""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')
Esempio n. 24
0
"""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',
Esempio n. 25
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'))
Esempio n. 26
0
"""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'),
Esempio n. 27
0
"""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')])
Esempio n. 28
0
"""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, )))
Esempio n. 29
0
"""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. ',
Esempio n. 30
0
"""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})',