update bots

This commit is contained in:
2026-05-18 14:15:59 +07:00
parent b0ce866a2f
commit b9054d178e
5775 changed files with 832577 additions and 38 deletions

View File

@@ -0,0 +1,331 @@
from .. import BaseProvider, ElementsType
# Data source
#
# The country codes in this provider comes from the following source:
# List of country calling codes
# https://en.wikipedia.org/wiki/List_of_country_calling_codes
#
# Data was collected from the alphabetical listing by country or region
localized = True
class Provider(BaseProvider):
country_calling_codes: ElementsType[str] = (
"+93",
"+358 18",
"+355",
"+213",
"+1 684",
"+376",
"+244",
"+1 264",
"+1 268",
"+54",
"+374",
"+297",
"+247",
"+61",
"+672 1",
"+672",
"+43",
"+994",
"+1 242",
"+973",
"+880",
"+1 246",
"+1 268",
"+375",
"+32",
"+501",
"+229",
"+1 441",
"+975",
"+591",
"+599 7",
"+387",
"+267",
"+55",
"+246",
"+1 284",
"+673",
"+359",
"+226",
"+257",
"+855",
"+237",
"+1",
"+238",
"+599 3",
"+599 4",
"+599 7",
"+1 345",
"+236",
"+235",
"+64",
"+56",
"+86",
"+61 89164",
"+61 89162",
"+57",
"+269",
"+242",
"+243",
"+682",
"+506",
"+385",
"+53",
"+599 9",
"+357",
"+420",
"+45",
"+246",
"+253",
"+1 767",
"+1 809",
"+1 829",
"+1 849",
"+670",
"+56",
"+593",
"+20",
"+503",
"+881 2",
"+881 3",
"+882 13",
"+240",
"+291",
"+372",
"+268",
"+251",
"+500",
"+298",
"+679",
"+358",
"+33",
"+596",
"+594",
"+689",
"+241",
"+220",
"+995",
"+49",
"+233",
"+350",
"+881",
"+881 8",
"+881 9",
"+30",
"+299",
"+1 473",
"+590",
"+1 671",
"+502",
"+44 1481",
"+44 7781",
"+44 7839",
"+44 7911",
"+224",
"+245",
"+592",
"+509",
"+504",
"+852",
"+36",
"+354",
"+881 0",
"+881 1",
"+91",
"+62",
"+870",
"+800",
"+882",
"+883",
"+979",
"+808",
"+98",
"+964",
"+353",
"+881 6",
"+881 7",
"+44 1624",
"+44 7524",
"+44 7624",
"+44 7924",
"+972",
"+39",
"+225",
"+1 876",
"+47 79",
"+81",
"+44 1534",
"+962",
"+7 6",
"+7 7",
"+254",
"+686",
"+850",
"+82",
"+383",
"+965",
"+996",
"+856",
"+371",
"+961",
"+266",
"+231",
"+218",
"+423",
"+370",
"+352",
"+853",
"+261",
"+265",
"+60",
"+960",
"+223",
"+356",
"+692",
"+596",
"+222",
"+230",
"+262 269",
"+262 639",
"+52",
"+691",
"+1 808",
"+373",
"+377",
"+976",
"+382",
"+1 664",
"+212",
"+258",
"+95",
"+374 47",
"+374 97",
"+264",
"+674",
"+977",
"+31",
"+1 869",
"+687",
"+64",
"+505",
"+227",
"+234",
"+683",
"+672 3",
"+389",
"+90 392",
"+44 28",
"+1 670",
"+47",
"+968",
"+92",
"+680",
"+970",
"+507",
"+675",
"+595",
"+51",
"+63",
"+64",
"+48",
"+351",
"+1 787",
"+1 939",
"+974",
"+262",
"+40",
"+7",
"+250",
"+599 4",
"+590",
"+290",
"+1 869",
"+1 758",
"+590",
"+508",
"+1 784",
"+685",
"+378",
"+239",
"+966",
"+221",
"+381",
"+248",
"+232",
"+65",
"+599 3",
"+1 721",
"+421",
"+386",
"+677",
"+252",
"+27",
"+500",
"+995 34",
"+211",
"+34",
"+94",
"+249",
"+597",
"+47 79",
"+46",
"+41",
"+963",
"+886",
"+992",
"+255",
"+888",
"+66",
"+882 16",
"+228",
"+690",
"+676",
"+373 2",
"+373 5",
"+1 868",
"+290 8",
"+216",
"+90",
"+993",
"+1 649",
"+688",
"+256",
"+380",
"+971",
"+44",
"+1",
"+878",
"+598",
"+1 340",
"+998",
"+678",
"+39 06 698",
"+379",
"+58",
"+84",
"+1 808",
"+681",
"+967",
"+260",
"+255 24",
"+263",
)
formats: ElementsType[str] = ("###-###-###",)
msisdn_formats: ElementsType[str] = ("#############",)
def phone_number(self) -> str:
return self.numerify(self.random_element(self.formats))
def country_calling_code(self) -> str:
return self.random_element(self.country_calling_codes)
def msisdn(self) -> str:
"""https://en.wikipedia.org/wiki/MSISDN"""
return self.numerify(self.random_element(self.msisdn_formats))

View File

@@ -0,0 +1,16 @@
# Data source
#
# Ethiopia national numbering plan: mobile prefixes 09 (Ethio Telecom) and 07 (Safaricom Ethiopia);
# international format country code +251 with trunk prefix 0 omitted.
# https://en.wikipedia.org/wiki/Telephone_numbers_in_Ethiopia (retrieved 2026-03-29)
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
"09########",
"+2519########",
"07########",
"+2517########",
)

View File

@@ -0,0 +1,94 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
# Source: https://en.wikipedia.org/wiki/Telephone_numbers_in_the_United_Arab_Emirates
cellphone_formats = (
"{{area_code}} {{cellphone_provider_code}} ### ####",
"{{area_code}}{{cellphone_provider_code}}#######",
"0{{cellphone_provider_code}} ### ####",
"0{{cellphone_provider_code}}#######",
)
telephone_formats = (
"{{area_code}} {{telephone_provider_code}} ### ####",
"{{area_code}}{{telephone_provider_code}}#######",
"0{{telephone_provider_code}} ### ####",
"0{{telephone_provider_code}}#######",
)
toll_formats = (
"200####",
"600######",
"800###",
"800####",
"800#####",
"800######",
"800#######",
)
services_phones_formats = (
"999",
"901",
"998",
"997",
"996",
"991",
"922",
)
formats = cellphone_formats + telephone_formats + services_phones_formats + toll_formats
def cellphone_provider_code(self) -> str:
return self.random_element(
[
"50",
"52",
"54",
"55",
"56",
"58",
]
)
def telephone_provider_code(self) -> str:
return self.random_element(
[
"1",
"2",
"3",
"4",
"6",
"7",
"9",
]
)
def area_code(self) -> str:
return self.random_element(
[
"00971",
"+971",
]
)
def cellphone_number(self) -> str:
pattern: str = self.random_element(self.cellphone_formats)
return self.numerify(self.generator.parse(pattern))
def telephone_number(self) -> str:
pattern: str = self.random_element(self.telephone_formats)
return self.numerify(self.generator.parse(pattern))
def service_phone_number(self) -> str:
pattern: str = self.random_element(self.services_phones_formats)
return self.numerify(self.generator.parse(pattern))
def toll_number(self) -> str:
pattern: str = self.random_element(self.toll_formats)
return self.numerify(self.generator.parse(pattern))
def phone_number(self) -> str:
pattern: str = self.random_element(self.formats)
return self.numerify(self.generator.parse(pattern))

View File

@@ -0,0 +1,60 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
# Source: https://en.wikipedia.org/wiki/Telephone_numbers_in_Algeria
cellphone_formats = (
"0{{mobile_operator}}## ## ## ##",
"+213 {{mobile_operator}}## ## ## ##",
)
telephone_formats = (
"0{{area_code}} ## ## ##",
"+213 {{area_code}} ## ## ##",
)
formats = cellphone_formats + telephone_formats
def mobile_operator(self) -> str:
return self.random_element(["5", "6", "7"])
def area_code(self) -> str:
return self.random_element(
[
"21",
"23",
"24",
"25",
"26",
"27",
"29",
"31",
"32",
"33",
"34",
"35",
"36",
"37",
"38",
"39",
"41",
"43",
"45",
"46",
"48",
"49",
]
)
def cellphone_number(self) -> str:
pattern: str = self.random_element(self.cellphone_formats)
return self.numerify(self.generator.parse(pattern))
def telephone_number(self) -> str:
pattern: str = self.random_element(self.telephone_formats)
return self.numerify(self.generator.parse(pattern))
def phone_number(self) -> str:
pattern: str = self.random_element(self.formats)
return self.numerify(self.generator.parse(pattern))

View File

@@ -0,0 +1,65 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
# Source: https://en.wikipedia.org/wiki/Telephone_numbers_in_Jordan
cellphone_formats = (
"+9627{{operator_id}}#######",
"+962 7 {{operator_id}}### ####",
"07{{operator_id}}#######",
"07{{operator_id}} ### ####",
)
telephone_formats = (
"+962{{area_code}}#######",
"+962 {{area_code}} ### ####",
"0{{area_code}}#######",
"0{{area_code}} ### ####",
)
services_phones_formats = (
"9##",
"12##",
"13##",
"14##",
)
formats = cellphone_formats + telephone_formats + services_phones_formats
def operator_id(self) -> str:
return self.random_element(
[
"4",
"7",
"8",
"9",
]
)
def area_code(self) -> str:
return self.random_element(
[
"2",
"3",
"5",
"6",
"7",
]
)
def cellphone_number(self) -> str:
pattern: str = self.random_element(self.cellphone_formats)
return self.numerify(self.generator.parse(pattern))
def telephone_number(self) -> str:
pattern: str = self.random_element(self.telephone_formats)
return self.numerify(self.generator.parse(pattern))
def service_phone_number(self) -> str:
pattern: str = self.random_element(self.services_phones_formats)
return self.numerify(self.generator.parse(pattern))
def phone_number(self) -> str:
pattern: str = self.random_element(self.formats)
return self.numerify(self.generator.parse(pattern))

View File

@@ -0,0 +1,129 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
# Source:
# https://en.wikipedia.org/wiki/Telephone_numbers_in_the_State_of_Palestine
cellphone_formats = (
"{{area_code}} {{provider_code}} ### ####",
"{{area_code}}{{provider_code}}#######",
"0{{provider_code}} ### ####",
"0{{provider_code}}#######",
)
telephone_formats = (
"{{area_code}} 4 24# ####",
"{{area_code}}424#####",
"04 24# ####",
"0424#####",
"{{area_code}} 9 25# ####",
"{{area_code}}925#####",
"09 25# ####",
"0925#####",
"{{area_code}} 4 26# ####",
"{{area_code}}426#####",
"04 26# ####",
"0426#####",
"{{area_code}} 4 23# ####",
"{{area_code}}423#####",
"04 23# ####",
"0423#####",
"{{area_code}} 4 29# ####",
"{{area_code}}429#####",
"04 29# ####",
"0429#####",
"{{area_code}} 2 29# ####",
"{{area_code}}229#####",
"02 29# ####",
"0229#####",
"{{area_code}} 2 23# ####",
"{{area_code}}223#####",
"02 23# ####",
"0223#####",
"{{area_code}} 2 22# ####",
"{{area_code}}222#####",
"02 22# ####",
"0222#####",
"{{area_code}} 2 27# ####",
"{{area_code}}227#####",
"02 27# ####",
"0227#####",
"{{area_code}} 8 20# ####",
"{{area_code}}820#####",
"08 20# ####",
"0820#####",
"{{area_code}} 8 21# ####",
"{{area_code}}821#####",
"08 21# ####",
"0821#####",
"{{area_code}} 8 24# ####",
"{{area_code}}824#####",
"08 24# ####",
"0824#####",
"{{area_code}} 8 25# ####",
"{{area_code}}825#####",
"08 25# ####",
"0825#####",
"{{area_code}} 8 26# ####",
"{{area_code}}826#####",
"08 26# ####",
"0826#####",
"{{area_code}} 8 28# ####",
"{{area_code}}828#####",
"08 28# ####",
"0828#####",
)
toll_formats = (
"1 700 ### ###",
"1-700-###-###",
"1 800 ### ###",
"1-800-###-###",
)
services_phones_formats = (
"100",
"101",
"102",
)
formats = cellphone_formats + telephone_formats + services_phones_formats + toll_formats
def provider_code(self) -> str:
return self.random_element(
[
"59",
"56",
]
)
def area_code(self) -> str:
return self.random_element(
[
"00972",
"+972",
"00970",
"+970",
]
)
def cellphone_number(self) -> str:
pattern: str = self.random_element(self.cellphone_formats)
return self.numerify(self.generator.parse(pattern))
def telephone_number(self) -> str:
pattern: str = self.random_element(self.telephone_formats)
return self.numerify(self.generator.parse(pattern))
def service_phone_number(self) -> str:
pattern: str = self.random_element(self.services_phones_formats)
return self.numerify(self.generator.parse(pattern))
def toll_number(self) -> str:
pattern: str = self.random_element(self.toll_formats)
return self.numerify(self.generator.parse(pattern))
def phone_number(self) -> str:
pattern: str = self.random_element(self.formats)
return self.numerify(self.generator.parse(pattern))

View File

@@ -0,0 +1,57 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
cellphone_formats = (
"+994{{provider_code}}{{start_digit}}######",
"0{{provider_code}} {{start_digit}}## ## ##",
"0{{provider_code}}-{{start_digit}}##-##-##",
)
telephone_formats = ("{{area_code}}## ## ##",)
provider_codes = ["50", "51", "55", "60", "70", "77", "99"]
start_digits = ["2", "3", "4", "5", "6", "7", "8", "9"]
area_codes = [
"012 3",
"012 4",
"012 5",
"018 6",
"020 2",
"021 2",
"021 4",
"022 2",
"022 3",
"022 4",
"023 3",
"024 2",
"025 2",
"026 2",
"026 3",
"036 5",
]
formats = cellphone_formats + telephone_formats
def start_digit(self) -> str:
return self.random_element(self.start_digits)
def provider_code(self) -> str:
return self.random_element(self.provider_codes)
def area_code(self) -> str:
return self.random_element(self.area_codes)
def cellphone_number(self) -> str:
pattern: str = self.random_element(self.cellphone_formats)
return self.numerify(self.generator.parse(pattern))
def landline_number(self) -> str:
pattern: str = self.random_element(self.telephone_formats)
return self.numerify(self.generator.parse(pattern))
def phone_number(self) -> str:
pattern: str = self.random_element(self.formats)
return self.numerify(self.generator.parse(pattern))

View File

@@ -0,0 +1,17 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
"+359(0)#########",
"+359(0)### ######",
"+359(0)### ### ###",
"+359#########",
"0#########",
"0### ######",
"0### ### ###",
"0### ###-###",
"(0###) ######",
"(0###) ### ###",
"(0###) ###-###",
)

View File

@@ -0,0 +1,334 @@
from faker.providers.person.bn_BD import translate_to_bengali_digits
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
"""
Implement phone number provider for ``bn_BD`` locale.
Sources:
- https://en.wikipedia.org/wiki/Telephone_numbers_in_Bangladesh
"""
country_calling_codes = (
"+৯৩",
"+৩৫৮ ১৮",
"+৩৫",
"+২১৩",
"+১ ৬৮৪",
"+৩৭৬",
"+২৪",
"+১ ২৬৪",
"+১ ২৬৮",
"+৫৪",
"+৩৭৪",
"+২৯৭",
"+২৪৭",
"+৬১",
"+৬৭২ ১",
"+৬৭২",
"+৪৩",
"+৯৪",
"+১ ২৪২",
"+৯৭৩",
"+৮০",
"+১ ২৪৬",
"+১ ২৬৮",
"+৩৭৫",
"+৩২",
"+৫০১",
"+২৯",
"+১ ৪১",
"+৯৭৫",
"+৫৯১",
"+৫৯ ",
"+৩৮৭",
"+২৬৭",
"+৫",
"+২৪৬",
"+১ ২৮৪",
"+৬৭৩",
"+৩৫৯",
"+২৬",
"+২৫৭",
"+৮৫",
"+২৩৭",
"+১",
"+২৩৮",
"+৫৯ ৩",
"+৫৯ ",
"+৫৯ ",
"+১ ৩৪৫",
"+২৩৬",
"+২৩৫",
"+৬৪",
"+৫৬",
"+৮৬",
"+৬১ ৮৯১৬৪",
"+৬১ ৮৯১৬২",
"+৫৭",
"+২৬৯",
"+২৪২",
"+২৪৩",
"+৬৮২",
"+৫০৬",
"+৩৮৫",
"+৫৩",
"+৫৯ ৯",
"+৩৫৭",
"+৪২০",
"+৪৫",
"+২৪৬",
"+২৫৩",
"+১ ৭৬৭",
"+১ ৮০৯",
"+১ ৮২৯",
"+১ ৮৪৯",
"+৬৭০",
"+৫৬",
"+৫৯৩",
"+২০",
"+৫০৩",
"+৮১ ২",
"+৮১ ৩",
"+৮২ ১৩",
"+২৪০",
"+২৯১",
"+৩৭২",
"+২৬৮",
"+২৫১",
"+৫০",
"+২৯৮",
"+৬৭৯",
"+৩৫৮",
"+৩",
"+৫৯৬",
"+৫৯৪",
"+৬৮৯",
"+২৪১",
"+২০",
"+৯৫",
"+৪৯",
"+২৩",
"+৩৫০",
"+৮১",
"+৮১ ৮",
"+৮১ ৯",
"+৩০",
"+২৯",
"+১ ৪৭৩",
"+৫৯০",
"+১ ৬৭১",
"+৫০২",
"+ ১৪৮১",
"+ ৭৮১",
"+ ৭৮৩৯",
"+ ৭৯১",
"+২৪",
"+২৪৫",
"+৫৯২",
"+৫০৯",
"+৫০৪",
"+৮৫২",
"+৩৬",
"+৩৫৪",
"+৮১ ",
"+৮১ ১",
"+৯১",
"+৬২",
"+৮৭০",
"+৮০",
"+৮২",
"+৮৩",
"+৯৭৯",
"+৮০৮",
"+৯৮",
"+৯৬৪",
"+৩৫৩",
"+৮১ ৬",
"+৮১ ",
"+ ১৬২৪",
"+ ৭৫২৪",
"+ ৭৬২৪",
"+ ৭৯২৪",
"+৯৭২",
"+৩৯",
"+২৫",
"+১ ৮৭৬",
"+ ৭৯",
"+৮১",
"+ ১৫৩৪",
"+৯৬২",
"+",
"+ ",
"+২৫৪",
"+৬৮৬",
"+৮৫০",
"+৮২",
"+৩৮৩",
"+৯৬৫",
"+৯৬",
"+৮৫৬",
"+৩৭১",
"+৯৬১",
"+২৬",
"+২৩১",
"+২১৮",
"+৪২৩",
"+৩৭০",
"+৩৫২",
"+৮৫৩",
"+২৬১",
"+২৬৫",
"+৬০",
"+৯৬০",
"+২৩",
"+৩৫৬",
"+৬৯২",
"+৫৯৬",
"+২",
"+২৩০",
"+২৬২ ২৬৯",
"+২৬২ ৬৩৯",
"+৫২",
"+৬৯১",
"+১ ৮০৮",
"+৩৭৩",
"+৩৭",
"+৯৭৬",
"+৩৮২",
"+১ ৬৪",
"+২১২",
"+২৫৮",
"+৯৫",
"+৩৭৪ ",
"+৩৭৪ ৯৭",
"+২৬৪",
"+৬৭৪",
"+৯৭",
"+৩১",
"+১ ৮৬৯",
"+৬৮৭",
"+৬৪",
"+৫০৫",
"+২৭",
"+২৩৪",
"+৬৮৩",
"+৬৭২ ৩",
"+৩৮৯",
"+৯০ ৩৯২",
"+ ২৮",
"+১ ৬৭০",
"+",
"+৯৬৮",
"+৯২",
"+৬৮০",
"+৯৭০",
"+৫০৭",
"+৬৭৫",
"+৫৯৫",
"+৫১",
"+৬৩",
"+৬৪",
"+৪৮",
"+৩৫১",
"+১ ৭৮৭",
"+১ ৯৩৯",
"+৯৭৪",
"+২৬২",
"+",
"+",
"+২৫০",
"+৫৯ ",
"+৫৯০",
"+২৯০",
"+১ ৮৬৯",
"+১ ৭৫৮",
"+৫৯০",
"+৫০৮",
"+১ ৭৮৪",
"+৬৮৫",
"+৩৭৮",
"+২৩৯",
"+৯৬",
"+২১",
"+৩৮১",
"+২৪৮",
"+২৩২",
"+৬৫",
"+৫৯ ৩",
"+১ ৭২১",
"+৪২১",
"+৩৮৬",
"+৬৭",
"+২৫২",
"+২৭",
"+৫০",
"+৯৫ ৩৪",
"+২১",
"+৩৪",
"+৯৪",
"+২৪৯",
"+৫৯৭",
"+ ৭৯",
"+৪৬",
"+৪১",
"+৯৬৩",
"+৮৬",
"+৯২",
"+২৫",
"+৮",
"+৬",
"+৮২ ১৬",
"+২৮",
"+৬৯০",
"+৬৭৬",
"+৩৭৩ ২",
"+৩৭৩ ৫",
"+১ ৮৬৮",
"+২৯০ ৮",
"+২১৬",
"+৯০",
"+৯৩",
"+১ ৬৪৯",
"+৬৮",
"+২৫৬",
"+৩৮০",
"+৯৭১",
"+",
"+১",
"+৮৭৮",
"+৫৯৮",
"+১ ৩৪০",
"+৯৮",
"+৬৭৮",
"+৩৯ ০৬ ৬৯৮",
"+৩৭৯",
"+৫৮",
"+৮৪",
"+১ ৮০৮",
"+৬৮১",
"+৯৬৭",
"+২৬০",
"+২৫ ২৪",
"+২৬৩",
)
formats = (
"01 ### ######",
"01###-######",
"01#########",
"+880 1### ######",
"+880-1###-######",
"+8801#########",
"+880-2-#-####-####",
"+880-###-###-###",
)
def phone_number(self) -> str:
res = super(self.__class__, self).phone_number()
return translate_to_bengali_digits(res)
def msisdn(self) -> str:
res = super(self.__class__, self).msisdn()
return translate_to_bengali_digits(res)

View File

@@ -0,0 +1,39 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
"030 ### ###",
"031 ### ###",
"032 ### ###",
"033 ### ###",
"034 ### ###",
"035 ### ###",
"036 ### ###",
"037 ### ###",
"038 ### ###",
"039 ### ###",
"049 ### ###",
"050 ### ###",
"051 ### ###",
"052 ### ###",
"053 ### ###",
"054 ### ###",
"055 ### ###",
"056 ### ###",
"057 ### ###",
"058 ### ###",
"059 ### ###",
"060 ### ###",
"060 #### ###",
"061 ### ###",
"062 ### ###",
"063 ### ###",
"064 ### ###",
"065 ### ###",
"066 ### ###",
"067 ### ###",
"070 20# ###",
"+387 61 ### ###",
"+387 (0)61 ### ###",
)

View File

@@ -0,0 +1,54 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
# Phone numbers
# https://cs.wikipedia.org/wiki/Telefonn%C3%AD_%C4%8D%C3%ADslo
# https://www.srovnejto.cz/blog/jake-jsou-telefonni-predvolby-do-zahranici/
formats = (
# prefix 00420
# 601-608
"00420 601 ### ###",
"00420 602 ### ###",
"00420 603 ### ###",
"00420 604 ### ###",
"00420 605 ### ###",
"00420 606 ### ###",
"00420 607 ### ###",
"00420 608 ### ###",
# 702-705
"00420 702 ### ###",
"00420 703 ### ###",
"00420 704 ### ###",
"00420 705 ### ###",
# 720-739
"00420 72# ### ###",
"00420 73# ### ###",
# 770-779
"00420 77# ### ###",
# 790-799
"00420 79# ### ###",
# prefix +420
# 601-608
"+420 601 ### ###",
"+420 602 ### ###",
"+420 603 ### ###",
"+420 604 ### ###",
"+420 605 ### ###",
"+420 606 ### ###",
"+420 607 ### ###",
"+420 608 ### ###",
# 702-705
"+420 702 ### ###",
"+420 703 ### ###",
"+420 704 ### ###",
"+420 705 ### ###",
# 720-739
"+420 72# ### ###",
"+420 73# ### ###",
# 770-779
"+420 77# ### ###",
# 790-799
"+420 79# ### ###",
)

View File

@@ -0,0 +1,12 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
"+45 ########",
"+45 #### ####",
"+45 ## ## ## ##",
"########",
"#### ####",
"## ## ## ##",
)

View File

@@ -0,0 +1,120 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
"""Phone number provider for `de_AT` locale.
Sources:
- https://de.wikipedia.org/wiki/Telefonvorwahl_(%C3%96sterreich)
"""
dialing_codes = (
"650",
"655",
"660",
"661",
"663",
"664",
"665",
"667",
"670",
"676",
"677",
"678",
"680",
"681",
"688",
"690",
"699",
)
area_code_formats = (
"1", # Wien
"316", # Graz
"463", # Klagenfurt
"512", # Innsbruck
"662", # Salzburg
"732", # Linz
"21##",
"22##",
"25##",
"26##",
"27##",
"28##",
"29##",
"31##",
"33##",
"34##",
"35##",
"36##",
"38##",
"42##",
"43##",
"47##",
"48##",
"52##",
"53##",
"54##",
"55##",
"56##",
"61##",
"62##",
"64##",
"65##",
"72##",
"73##",
"74##",
"75##",
"76##",
"77##",
"79##",
)
cellphone_formats = (
"+43 (0) {{dialing_code}} ########",
"+43 {{dialing_code}} ### ### ##",
"+43 {{dialing_code}}########",
"0{{dialing_code}} ### ### ##",
"0{{dialing_code}}/########",
)
landline_formats = (
"+43 (0) {{area_code}} ########",
"+43 {{area_code}} ##### ###",
"+43 {{area_code}}########",
"0{{area_code}} ##### ###",
"(0{{area_code}}) ##### ###",
"0{{area_code}}/########",
)
"""
Get dialing code for cellphone numbers.
"""
def dialing_code(self) -> str:
return self.random_element(self.dialing_codes)
"""
Get area code for landlines.
"""
def area_code(self) -> str:
area_code: str = self.random_element(self.area_code_formats)
return self.numerify(area_code)
"""
Get a landline phone number.
"""
def phone_number(self) -> str:
pattern: str = self.random_element(self.landline_formats)
return self.numerify(self.generator.parse(pattern))
"""
Get a cellphone number.
"""
def cellphone_number(self) -> str:
pattern: str = self.random_element(self.cellphone_formats)
return self.numerify(self.generator.parse(pattern))

View File

@@ -0,0 +1,81 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
"""Phone number provider for `de_CH` locale.
Sources:
- https://de.wikipedia.org/wiki/Telefonnummer_(Schweiz)
"""
dialing_codes = (
"75",
"76",
"77",
"78",
"79",
)
landline_codes = (
"21",
"22",
"24",
"26",
"27",
"31",
"32",
"33",
"34",
"43",
"41",
"44",
"52",
"55",
"56",
"61",
"62",
"71",
"81",
"91",
)
cellphone_formats = (
"+41 {{dialing_code}} ### ## ##",
"0{{dialing_code}} ### ## ##",
)
landline_formats = (
"+41 {{landline_code}} ### ## ##",
"0{{landline_code}} ### ## ##",
)
"""
Get dialing code for cellphone numbers.
"""
def dialing_code(self) -> str:
return self.random_element(self.dialing_codes)
"""
Get dialing code for landlines.
"""
def landline_code(self) -> str:
return self.random_element(self.landline_codes)
"""
Get a landline phone number.
"""
def phone_number(self) -> str:
pattern: str = self.random_element(self.landline_formats)
return self.numerify(self.generator.parse(pattern))
"""
Get a cellphone number.
"""
def cellphone_number(self) -> str:
pattern: str = self.random_element(self.cellphone_formats)
return self.numerify(self.generator.parse(pattern))

View File

@@ -0,0 +1,18 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
# https://de.wikipedia.org/wiki/Rufnummer#Schreibweisen
formats = (
"+49(0)##########",
"+49(0)#### ######",
"+49 (0) #### ######",
"+49(0) #########",
"+49(0)#### #####",
"0##########",
"0#########",
"0#### ######",
"0#### #####",
"(0####) ######",
"(0####) #####",
)

View File

@@ -0,0 +1,6 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
# https://en.wikipedia.org/wiki/Telephone_numbers_in_Liechtenstein
formats = ("%## ## ##", "+423 %## ## ##")

View File

@@ -0,0 +1,37 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
# https://de.wikipedia.org/wiki/Telefonvorwahl_(Luxemburg)
formats = (
"22 ## ##",
"23 ## ##",
"24 $# ## ##",
"25 ## ##",
"26 $# ## ##",
"27 $# ## ##",
"28 ## ##",
"29 ## ##",
"3# ## ##",
"4 ### ##",
"71 ## ##",
"72 ## ##",
"74 ## ##",
"75 ## ##",
"76 ## ##",
"78 ## ##",
"80 ## ##",
"81 ## ##",
"83 ## ##",
"87 ## ##",
"88 ## ##",
"89 ## ##",
"92 ## ##",
"95 ## ##",
"99 ## ##",
)
prefixes = ("+352 ", "")
def phone_number(self) -> str:
return self.random_element(self.prefixes) + self.numerify(self.random_element(self.formats))

View File

@@ -0,0 +1,23 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
"69########",
"69## ######",
"69## ### ###",
"210#######",
"210 #######",
"210 ### ####",
"2##0######",
"2##0 ######",
"2##0 ### ###",
"2###0#####",
"2###0 ## ###",
"(+30) 69## ######",
"+30 69## ######",
"+3069########",
"(+30) 2### ######",
"+30 2### ######",
"+302#########",
)

View File

@@ -0,0 +1,41 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
# Local calls
"#### ####",
"####-####",
"####.####", # domain registrars apparently use this
"########",
# National dialing
"0{{area_code}} #### ####",
"0{{area_code}}-####-####",
"0{{area_code}}.####.####",
"0{{area_code}}########",
# Optional parenthesis
"(0{{area_code}}) #### ####",
"(0{{area_code}})-####-####",
"(0{{area_code}}).####.####",
"(0{{area_code}})########",
# International drops the 0
"+61 {{area_code}} #### ####",
"+61-{{area_code}}-####-####",
"+61.{{area_code}}.####.####",
"+61{{area_code}}########",
# 04 Mobile telephones (Australia-wide) mostly commonly written 4 - 3 -
# 3 instead of 2 - 4 - 4
"04## ### ###",
"04##-###-###",
"04##.###.###",
"+61 4## ### ###",
"+61-4##-###-###",
"+61.4##.###.###",
)
def area_code(self) -> str:
return self.numerify(self.random_element(["2", "3", "7", "8"]))
def phone_number(self) -> str:
pattern: str = self.random_element(self.formats)
return self.numerify(self.generator.parse(pattern))

View File

@@ -0,0 +1,15 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
"%##-###-####",
"%##.###.####",
"%## ### ####",
"(%##) ###-####",
"1-%##-###-####",
"1 (%##) ###-####",
"+1 (%##) ###-####",
"%##-###-#### x###",
"(%##) ###-#### x###",
)

View File

@@ -0,0 +1,267 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
# Source:
# https://en.wikipedia.org/wiki/Telephone_numbers_in_the_United_Kingdom
# Fake phone numbers should be fake - this provider has been rewritten to
# use numbers reserved for dramatic use by Ofcom. See the following:
# https://en.wikipedia.org/wiki/Fictitious_telephone_number#United_Kingdom
# This ensures no genuine numbers are generated at random.
#
# It's worth noting that the following examples include incorrect notation
# of British phone numbers. +44(0)xxx is incorrect and the '(0)' should
# be omitted. However, it's commonly written this way by Joe Public
# and would better serve this project to be included, as it represents
# more realistic data and is of benefit to those developing data cleansing
# tools etc. All possible official fake numbers are covered below.
cellphone_formats = (
"07700 900 ###",
"07700 900###",
"07700900###",
"(07700) 900 ###",
"(07700) 900###",
"(07700)900###",
"+447700 900 ###",
"+447700 900###",
"+447700900###",
"+44(0)7700 900 ###",
"+44(0)7700 900###",
"+44(0)7700900###",
)
formats = (
"0113 496 0###",
"0113 4960###",
"01134960###",
"(0113) 496 0###",
"(0113) 4960###",
"(0113)4960###",
"+44113 496 0###",
"+44113 4960###",
"+441134960###",
"+44(0)113 496 0###",
"+44(0)113 4960###",
"+44(0)1134960###",
"0114 496 0###",
"0114 4960###",
"01144960###",
"(0114) 496 0###",
"(0114) 4960###",
"(0114)4960###",
"+44114 496 0###",
"+44114 4960###",
"+441144960###",
"+44(0)114 496 0###",
"+44(0)114 4960###",
"+44(0)1144960###",
"0115 496 0###",
"0115 4960###",
"01154960###",
"(0115) 496 0###",
"(0115) 4960###",
"(0115)4960###",
"+44115 496 0###",
"+44115 4960###",
"+441154960###",
"+44(0)115 496 0###",
"+44(0)115 4960###",
"+44(0)1154960###",
"0116 496 0###",
"0116 4960###",
"01164960###",
"(0116) 496 0###",
"(0116) 4960###",
"(0116)4960###",
"+44116 496 0###",
"+44116 4960###",
"+441164960###",
"+44(0)116 496 0###",
"+44(0)116 4960###",
"+44(0)1164960###",
"0117 496 0###",
"0117 4960###",
"01174960###",
"(0117) 496 0###",
"(0117) 4960###",
"(0117)4960###",
"+44117 496 0###",
"+44117 4960###",
"+441174960###",
"+44(0)117 496 0###",
"+44(0)117 4960###",
"+44(0)1174960###",
"0118 496 0###",
"0118 4960###",
"01184960###",
"(0118) 496 0###",
"(0118) 4960###",
"(0118)4960###",
"+44118 496 0###",
"+44118 4960###",
"+441184960###",
"+44(0)118 496 0###",
"+44(0)118 4960###",
"+44(0)1184960###",
"0121 496 0###",
"0121 4960###",
"01214960###",
"(0121) 496 0###",
"(0121) 4960###",
"(0121)4960###",
"+44121 496 0###",
"+44121 4960###",
"+441214960###",
"+44(0)121 496 0###",
"+44(0)121 4960###",
"+44(0)1214960###",
"0131 496 0###",
"0131 4960###",
"01314960###",
"(0131) 496 0###",
"(0131) 4960###",
"(0131)4960###",
"+44131 496 0###",
"+44131 4960###",
"+441314960###",
"+44(0)131 496 0###",
"+44(0)131 4960###",
"+44(0)1314960###",
"0141 496 0###",
"0141 4960###",
"01414960###",
"(0141) 496 0###",
"(0141) 4960###",
"(0141)4960###",
"+44141 496 0###",
"+44141 4960###",
"+441414960###",
"+44(0)141 496 0###",
"+44(0)141 4960###",
"+44(0)1414960###",
"0151 496 0###",
"0151 4960###",
"01514960###",
"(0151) 496 0###",
"(0151) 4960###",
"(0151)4960###",
"+44151 496 0###",
"+44151 4960###",
"+441514960###",
"+44(0)151 496 0###",
"+44(0)151 4960###",
"+44(0)1514960###",
"0161 496 0###",
"0161 4960###",
"01614960###",
"(0161) 496 0###",
"(0161) 4960###",
"(0161)4960###",
"+44161 496 0###",
"+44161 4960###",
"+441614960###",
"+44(0)161 496 0###",
"+44(0)161 4960###",
"+44(0)1614960###",
"0191 498 0###",
"0191 4960###",
"01914960###",
"(0191) 496 0###",
"(0191) 4960###",
"(0191)4960###",
"+44191 496 0###",
"+44191 4960###",
"+441914960###",
"+44(0)191 496 0###",
"+44(0)191 4960###",
"+44(0)1914960###",
"020 7946 0###",
"020 74960###",
"02074960###",
"(020) 7496 0###",
"(020) 74960###",
"(020)74960###",
"+4420 7496 0###",
"+4420 74960###",
"+442074960###",
"+44(0)20 7496 0###",
"+44(0)20 74960###",
"+44(0)2074960###",
"028 9018 0###",
"028 9018###",
"0289018###",
"(028) 9018 0###",
"(028) 9018###",
"(028)9018###",
"+4428 9018 0###",
"+4428 9018###",
"+44289018###",
"+44(0)28 9018 0###",
"+44(0)28 9018###",
"+44(0)289018###",
"029 2018 0###",
"029 2018###",
"0292018###",
"(029) 2018 0###",
"(029) 2018###",
"(029)2018###",
"+4429 2018 0###",
"+4429 2018###",
"+44292018###",
"+44(0)29 2018 0###",
"+44(0)29 2018###",
"+44(0)292018###",
"01632 960 ###",
"01632 960###",
"01632960###",
"(01632) 960 ###",
"(01632) 960###",
"(01632)960###",
"+441632 960 ###",
"+441632 960###",
"+441632960###",
"+44(0)1632 960 ###",
"+44(0)1632 960###",
"+44(0)1632960###",
"0306 999 0###",
"0306 9990###",
"03069990###",
"(0306) 999 0###",
"(0306) 9990###",
"(0306)9990###",
"+44306 999 0###",
"+44306 9990###",
"+443069990###",
"+44(0)306 999 0###",
"+44(0)306 9990###",
"+44(0)3069990###",
"0808 157 0###",
"0808 1570###",
"08081570###",
"(0808) 157 0###",
"(0808) 1570###",
"(0808)1570###",
"+44808 157 0###",
"+44808 1570###",
"+448081570###",
"+44(0)808 157 0###",
"+44(0)808 1570###",
"+44(0)8081570###",
"0909 879 0###",
"0909 8790###",
"09098790###",
"(0909) 879 0###",
"(0909) 8790###",
"(0909)8790###",
"+44909 879 0###",
"+44909 8790###",
"+449098790###",
"+44(0)909 879 0###",
"+44(0)909 8790###",
"+44(0)9098790###",
)
def cellphone_number(self) -> str:
pattern: str = self.random_element(self.cellphone_formats)
return self.numerify(self.generator.parse(pattern))

View File

@@ -0,0 +1,9 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
"+91##########",
"0##########",
"##########",
)

View File

@@ -0,0 +1,46 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
# Local calls
"%## ####",
"%##-####",
"%######",
# National & Mobile dialing
"0{{area_code}} %## ####",
"0{{area_code}} %##-####",
"0{{area_code}}-%##-####",
"0{{area_code}} %######",
# Optional parenthesis
"(0{{area_code}}) %## ####",
"(0{{area_code}}) %##-####",
"(0{{area_code}}) %######",
# International drops the 0
"+64 {{area_code}} %## ####",
"+64 {{area_code}} %##-####",
"+64 {{area_code}} %######",
"+64-{{area_code}}-%##-####",
"+64{{area_code}}%######",
)
area_codes = [
# Mobiles
"20",
"21",
"22",
"27",
"29",
"3", # South Island
"4", # Wellington
"6", # Lower North Island
"7", # Central North Island
"9", # Auckland
]
def area_code(self) -> str:
return self.numerify(self.random_element(self.area_codes))
def phone_number(self) -> str:
pattern: str = self.random_element(self.formats)
return self.numerify(self.generator.parse(pattern))

View File

@@ -0,0 +1,252 @@
from typing import Sequence, Tuple
from ... import BaseProvider
class Provider(BaseProvider):
"""
Provider for Philippine mobile and landline telephone numbers
This provider has methods that generate phone numbers specific to service providers whenever applicable, because the
kinds of services, the quality of said services, and even the fees may vary depending on the service provider and
the service location. This in turn, affects subscriber behavior, e.g. someone with a SIM from company X may be very
unlikely to respond to calls and texts sent from a company Y SIM as the service charge might be more expensive. The
provider methods are there to enable the creation of more "realistic" fake data for such cases.
Additional Notes:
- The Philippine telecommunication industry is dominated by the Globe-PLDT duopoly. Globe offers landline
services under the Globe brand and mobile services under the Globe and TM brands. PLDT offers landline
services under the PLDT brand, and its subsidiaries offer mobile services under the Smart, TNT, and SUN
brands. The rest of the industry is shared by smaller players, and Bayantel is one of the more well-known
players that provide landline services.
- Globe mobile prefixes include both Globe and TM brands, and the Smart mobile prefixes include both Smart
and TNT brands but not the SUN brand. Available sources only split the prefixes this way.
- In October 2019, Area 2 landline numbers were migrated to an 8 digit scheme, while the rest of the
country still uses the original 7 digit scheme. Area 2 is comprised of the whole National Capital
Region (aka Metro Manila) and parts of surrounding provinces, and within this area, the service
provider's identifier is included in every 8 digit landline number.
Sources:
- https://en.wikipedia.org/wiki/Telephone_numbers_in_the_Philippines
- https://www.prefix.ph/prefixes/2019-updated-complete-list-of-philippine-mobile-network-prefixes/
- https://powerpinoys.com/network-prefixes-philippines/
"""
globe_mobile_number_prefixes: Tuple[str, ...] = (
"817",
"904",
"905",
"906",
"915",
"916",
"917",
"926",
"927",
"935",
"936",
"937",
"945",
"955",
"956",
"965",
"966",
"967",
"973",
"975",
"976",
"977",
"978",
"979",
"994",
"995",
"996",
"997",
)
smart_mobile_number_prefixes: Tuple[str, ...] = (
"813",
"907",
"908",
"909",
"910",
"911",
"912",
"913",
"914",
"918",
"919",
"920",
"921",
"928",
"929",
"930",
"938",
"939",
"940",
"946",
"947",
"948",
"949",
"950",
"951",
"961",
"970",
"981",
"989",
"992",
"998",
"999",
)
sun_mobile_number_prefixes: Tuple[str, ...] = (
"922",
"923",
"924",
"925",
"931",
"932",
"933",
"934",
"941",
"942",
"943",
"944",
)
globe_mobile_number_formats: Tuple[str, ...] = (
"0{{globe_mobile_number_prefix}}-###-####",
"+63{{globe_mobile_number_prefix}}-###-####",
)
smart_mobile_number_formats: Tuple[str, ...] = (
"0{{smart_mobile_number_prefix}}-###-####",
"+63{{smart_mobile_number_prefix}}-###-####",
)
sun_mobile_number_formats: Tuple[str, ...] = (
"0{{sun_mobile_number_prefix}}-###-####",
"+63{{sun_mobile_number_prefix}}-###-####",
)
mobile_number_formats: Tuple[str, ...] = (
globe_mobile_number_formats + smart_mobile_number_formats + sun_mobile_number_formats
)
bayantel_landline_identifiers: Tuple[str, ...] = tuple(str(x) for x in range(3000, 3500))
misc_landline_identifiers: Tuple[str, ...] = tuple(str(x) for x in range(5300, 5800)) + tuple(
str(x) for x in range(6000, 6700)
)
non_area2_landline_area_codes: Tuple[str, ...] = (
"32",
"33",
"34",
"35",
"36",
"38",
"42",
"43",
"44",
"45",
"46",
"47",
"48",
"49",
"52",
"53",
"54",
"55",
"56",
"62",
"63",
"64",
"65",
"68",
"72",
"74",
"75",
"77",
"78",
"82",
"83",
"84",
"85",
"86",
"87",
"88",
)
globe_area2_landline_number_formats: Tuple[str, ...] = (
"02-7###-####",
"+632-7###-####",
)
pldt_area2_landline_number_formats: Tuple[str, ...] = (
"02-8###-####",
"+632-8###-####",
)
bayantel_area2_landline_number_formats: Tuple[str, ...] = (
"02-{{bayantel_landline_identifier}}-####",
"+632-{{bayantel_landline_identifier}}-####",
)
misc_area2_landline_number_formats: Tuple[str, ...] = (
"02-{{misc_landline_identifier}}-####",
"+632-{{misc_landline_identifier}}-####",
)
area2_landline_number_formats: Tuple[str, ...] = (
globe_area2_landline_number_formats
+ pldt_area2_landline_number_formats
+ bayantel_area2_landline_number_formats
+ misc_area2_landline_number_formats
)
non_area2_landline_number_formats: Tuple[str, ...] = (
"0{{non_area2_landline_area_code}}-###-####",
"+63{{non_area2_landline_area_code}}-###-####",
)
landline_number_formats: Tuple[str, ...] = area2_landline_number_formats + non_area2_landline_number_formats
def _create_phone_number(self, formats: Sequence[str]) -> str:
pattern: str = self.random_element(formats)
return self.numerify(self.generator.parse(pattern))
def globe_mobile_number_prefix(self) -> str:
return self.random_element(self.globe_mobile_number_prefixes)
def smart_mobile_number_prefix(self) -> str:
return self.random_element(self.smart_mobile_number_prefixes)
def sun_mobile_number_prefix(self) -> str:
return self.random_element(self.sun_mobile_number_prefixes)
def bayantel_landline_identifier(self) -> str:
return self.random_element(self.bayantel_landline_identifiers)
def misc_landline_identifier(self) -> str:
return self.random_element(self.misc_landline_identifiers)
def non_area2_landline_area_code(self) -> str:
return self.random_element(self.non_area2_landline_area_codes)
def globe_mobile_number(self) -> str:
return self._create_phone_number(self.globe_mobile_number_formats)
def smart_mobile_number(self) -> str:
return self._create_phone_number(self.smart_mobile_number_formats)
def sun_mobile_number(self) -> str:
return self._create_phone_number(self.sun_mobile_number_formats)
def mobile_number(self) -> str:
return self._create_phone_number(self.mobile_number_formats)
def globe_area2_landline_number(self) -> str:
return self._create_phone_number(self.globe_area2_landline_number_formats)
def pldt_area2_landline_number(self) -> str:
return self._create_phone_number(self.pldt_area2_landline_number_formats)
def bayantel_area2_landline_number(self) -> str:
return self._create_phone_number(self.bayantel_area2_landline_number_formats)
def misc_area2_landline_number(self) -> str:
return self._create_phone_number(self.misc_area2_landline_number_formats)
def area2_landline_number(self) -> str:
return self._create_phone_number(self.area2_landline_number_formats)
def non_area2_landline_number(self) -> str:
return self._create_phone_number(self.non_area2_landline_number_formats)
def landline_number(self) -> str:
return self._create_phone_number(self.landline_number_formats)

View File

@@ -0,0 +1,50 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
# Standard 10-digit phone number formats
"$##$######",
"$##$######",
"$##-$##-####",
"$##-$##-####",
# Optional 10-digit local phone number format
"($##)$##-####",
"($##)$##-####",
# Non-standard 10-digit phone number format
"$##.$##.####",
"$##.$##.####",
# Standard 10-digit phone number format with extensions
"$##-$##-####x###",
"$##-$##-####x####",
"$##-$##-####x#####",
# Optional 10-digit local phone number format with extensions
"($##)$##-####x###",
"($##)$##-####x####",
"($##)$##-####x#####",
# Non-standard 10-digit phone number format with extensions
"$##.$##.####x###",
"$##.$##.####x####",
"$##.$##.####x#####",
# Standard 11-digit phone number format
"+1-$##-$##-####",
"001-$##-$##-####",
# Standard 11-digit phone number format with extensions
"+1-$##-$##-####x###",
"+1-$##-$##-####x####",
"+1-$##-$##-####x#####",
"001-$##-$##-####x###",
"001-$##-$##-####x####",
"001-$##-$##-####x#####",
)
basic_formats = (
# basic 10-digit phone number format with no extensions
"$##$######",
"$##-$##-####",
"($##)$##-####",
)
def basic_phone_number(self) -> str:
pattern: str = self.random_element(self.basic_formats)
return self.numerify(self.generator.parse(pattern))

View File

@@ -0,0 +1,46 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
"""
According to official specs:
https://es.wikipedia.org/wiki/N%C3%BAmeros_telef%C3%B3nicos_en_Argentina
https://www.argentina.gob.ar/pais/codigo-telefonia
"""
formats = (
"+54 15 2%## ####", # National telephone to mobile phone
"+54 9 3%## ####", # International phone}
)
landline_codes = (
"351", # Córdoba (capital city of Córdoba province)
"379", # Corrientes (capital city of Corrientes province)
"221", # La Plata (capital city of Buenos Aires province)
"380", # La Rioja (capital city of La Rioja province)
"261", # Mendoza (capital city of Mendoza province)
"299", # Neuquén (capital city of Neuquén province)
"343", # Paraná (capital city of Entre Ríos province)
"376", # Posadas (capital city of Misiones province)
"280", # Rawson (capital city of Chubut province)
"362", # Resistencia (capital city of Chaco province)
"2966", # Río Gallegos (capital city of Santa Cruz province)
"387", # Salta (capital city of Salta province)
"383", # San Fernando del Valle de Catamarca (capital city of Catamarca province)
"264", # San Juan (capital city of San Juan province)
"266", # San Luis (capital city of San Luis province)
"381", # San Miguel de Tucumán (capital city of Tucumán province)
"388", # San Salvador de Jujuy (capital city of Jujuy province)
"342", # Santa Fe (capital city of Santa Fe province)
"2954", # Santa Rosa (capital city of La Pampa province)
"385", # Santiago del Estero (capital city of Santiago del Estero province)
"391", # Ushuaia (capital city of Tierra del Fuego province)
"2920", # Viedma (capital city of Rio Negro province)
)
special_codes = (
"600", # Nationalwide
"800", # Nationalwide, toll-free
)
cellphone_blocks = ("2", "3", "4", "5", "6", "7", "8", "9")

View File

@@ -0,0 +1,65 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
"""
According to official specs:
https://www.bcn.cl/leychile/navegar?i=173931
https://www.itu.int/itudoc/itu-t/number/c/chl/76483_ww9-es.doc
https://www.subtel.gob.cl/base_numeracion/tabla_numeracion_ido_idd.xlsx
"""
formats = (
"+56 2 2%## ####", # santiago landline
"+56 2 3%## ####",
"+56 {{ landline_code }} 2%# ####", # national landlines and VoIP
"+56 {{ landline_code }} 3%# ####",
"+56 9 {{ cellphone_block }}%## ####", # cell phones
"+56 {{ special_code }} %## ###", # special
)
landline_codes = (
"32", # Valparaíso
"33", # Quillota
"34", # Los Andes
"35", # San Antonio
"41", # Concepción
"42", # Chillán
"43", # Los Ángeles
"45", # Temuco
"51", # La Serena
"52", # Copiapó
"53", # Ovalle
"55", # Antofagasta
"57", # Iquique
"58", # Arica
"61", # Punta Arenas
"63", # Valdivia
"64", # Osorno
"65", # Puerto Montt
"67", # Coyhaique
"71", # Talca
"72", # Rangagua
"73", # Linares
"75", # Curicó
"44", # VoIP
)
special_codes = (
"600", # Nationalwide
"800", # Nationalwide, toll-free
)
cellphone_blocks = ("2", "3", "4", "5", "6", "7", "8", "9")
def landline_code(self) -> str:
return self.numerify(self.random_element(self.landline_codes))
def cellphone_block(self) -> str:
return self.random_element(self.cellphone_blocks)
def special_code(self) -> str:
return self.numerify(self.random_element(self.special_codes))
def phone_number(self) -> str:
return self.numerify(self.generator.parse(self.random_element(self.formats)))

View File

@@ -0,0 +1,42 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = [
"%######",
"60%%######",
"5760%%######",
"+5760%%######",
"(+57)60%%######",
"%## ## ##",
"60% %## ## ##",
"57 60% %## ## ##",
"+57 60% %## ## ##",
"(+57) 60% %## ## ##",
"30########",
"5730########",
"+5730########",
"(+57)30########",
"30# ### ## ##",
"57 30# ### ## ##",
"+57 30# ### ## ##",
"(+57) 30# ### ## ##",
"31########",
"5731########",
"+5731########",
"(+57)31########",
"31# ### ## ##",
"57 31# ### ## ##",
"+57 31# ### ## ##",
"(+57) 31# ### ## ##",
"32########",
"5732########",
"+5732########",
"(+57)32########",
"32# ### ## ##",
"57 32# ### ## ##",
"+57 32# ### ## ##",
"(+57) 32# ### ## ##",
"01800#######",
"01 800# ### ###",
]

View File

@@ -0,0 +1,128 @@
import itertools
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
"""
According to official specs:
https://avancedigital.mineco.gob.es/es-ES/Servicios/Numeracion/Documents/Guia_Numeracion.pdf
"""
PREFIXES = (
"6##",
"70#",
"71#",
"72#",
"73#",
"74#",
# 75-79 unassigned
"800",
"803",
"806",
"807",
# 801, 802, 804, 805, 808, 809 unassigned
"81#",
"820",
"821",
"822",
"823",
"824",
"825",
"826",
"827",
"828",
# 829 unassigned
"83#",
# 840 unassigned
"841",
"842",
"843",
"844",
"845",
"846",
"847",
"848",
"849",
"85#",
"86#",
# 870 unassigned
"871",
"872",
"873",
"874",
"875",
"876",
"877",
"878",
"879",
"880",
"881",
"882",
"883",
"884",
"885",
"886",
"887",
"888",
# 889-899 unassigned
"900",
"901",
"902",
# 903-909 unassigned
"91#",
"920",
"921",
"922",
"923",
"924",
"925",
"926",
"927",
"928",
# 929 unassigned
"93#",
# 940 unassigned
"941",
"942",
"943",
"944",
"945",
"946",
"947",
"948",
"949",
"95#",
"96#",
# 970 unassigned
"971",
"972",
"973",
"974",
"975",
"976",
"977",
"978",
"979",
"980",
"981",
"982",
"983",
"984",
"985",
"986",
"987",
"988",
# 989-999 unassigned
)
PHONE_FORMATS = (
"+34 xxx ### ###",
"+34 xxx######",
"+34 xxx ## ## ##",
"+34xxx ### ###",
"+34xxx######",
"+34xxx ## ## ##",
)
formats = tuple(
phone_format.replace("xxx", prefix) for (prefix, phone_format) in itertools.product(PREFIXES, PHONE_FORMATS)
)

View File

@@ -0,0 +1,30 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
"+##(#)##########",
"+##(#)##########",
"0##########",
"0##########",
"###-###-####",
"(###)###-####",
"1-###-###-####",
"###.###.####",
"###-###-####",
"(###)###-####",
"1-###-###-####",
"###.###.####",
"###-###-####x###",
"(###)###-####x###",
"1-###-###-####x###",
"###.###.####x###",
"###-###-####x####",
"(###)###-####x####",
"1-###-###-####x####",
"###.###.####x####",
"###-###-####x#####",
"(###)###-####x#####",
"1-###-###-####x#####",
"###.###.####x#####",
)

View File

@@ -0,0 +1,101 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
# Mobile
# Mci
"+98 91# ### ####",
"091# ### ####",
"+98 990 ### ####",
"0990 ### ####",
"+98 991 ### ####",
"0991 ### ####",
# Rightel Mobile prefixes
"+98 920 ### ####",
"0920 ### ####",
"+98 921 ### ####",
"0921 ### ####",
"+98 922 ### ####",
"0922 ### ####",
# Samantel Mobile prefixes
"+98 999 ### ####",
"0999 ### ####",
# Mtn and Talia
"+98 93# ### ####",
"093# ### ####",
"+98 901 ### ####",
"0901 ### ####",
"+98 902 ### ####",
"902 ### ####",
"+98 903 ### ####",
"0903 ### ####",
"+98 905 ### ####",
"0905 ### ####",
# Land lines,
# https://en.wikipedia.org/wiki/List_of_dialling_codes_in_Iran
"+98 21 #### ####",
"021 #### ####",
"+98 26 #### ####",
"026 #### ####",
"+98 25 #### ####",
"025 #### ####",
"+98 86 #### ####",
"086 #### ####",
"+98 24 #### ####",
"024 #### ####",
"+98 23 #### ####",
"023 #### ####",
"+98 81 #### ####",
"081 #### ####",
"+98 28 #### ####",
"028 #### ####",
"+98 31 #### ####",
"031 #### ####",
"+98 44 #### ####",
"044 #### ####",
"+98 11 #### ####",
"011 #### ####",
"+98 74 #### ####",
"074 #### ####",
"+98 83 #### ####",
"083 #### ####",
"+98 51 #### ####",
"051 #### ####",
"+98 45 #### ####",
"045 #### ####",
"+98 17 #### ####",
"017 #### ####",
"+98 41 #### ####",
"041 #### ####",
"+98 54 #### ####",
"054 #### ####",
"+98 87 #### ####",
"087 #### ####",
"+98 71 #### ####",
"071 #### ####",
"+98 66 #### ####",
"066 #### ####",
"+98 34 #### ####",
"034 #### ####",
"+98 56 #### ####",
"056 #### ####",
"+98 13 #### ####",
"013 #### ####",
"+98 77 #### ####",
"077 #### ####",
"+98 76 #### ####",
"076 #### ####",
"+98 61 #### ####",
"061 #### ####",
"+98 38 #### ####",
"038 #### ####",
"+98 58 #### ####",
"058 #### ####",
"+98 35 #### ####",
"035 #### ####",
"+98 84 #### ####",
"084 #### ####",
"+98 ### #### ####",
"0### #### ####",
)

View File

@@ -0,0 +1,12 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
"+358 ## #######",
"+358 #########",
"+358#########",
"(+358) #########",
"0#########",
"0## ### ####",
)

View File

@@ -0,0 +1,7 @@
from ..en_PH import Provider as EnPhPhoneNumberProvider
class Provider(EnPhPhoneNumberProvider):
"""No difference from Phone Number Provider for en_PH locale"""
pass

View File

@@ -0,0 +1,37 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
# source: https://de.wikipedia.org/wiki/Telefonnummer_(Schweiz)#Schreibweisen
"+41 2# ### ## ##",
"+41 3# ### ## ##",
"+41 4# ### ## ##",
"+41 5# ### ## ##",
"+41 6# ### ## ##",
"+41 7# ### ## ##",
"+41 8# ### ## ##",
"+41 9# ### ## ##",
"+41 (0)2# ### ## ##",
"+41 (0)3% ### ## ##",
"+41 (0)4% ### ## ##",
"+41 (0)5# ### ## ##",
"+41 (0)6# ### ## ##",
"+41 (0)7% ### ## ##",
"+41 (0)8# ### ## ##",
"+41 (0)9# ### ## ##",
"02# ### ## ##",
"03% ### ## ##",
"04% ### ## ##",
"05# ### ## ##",
"06# ### ## ##",
"07% ### ## ##",
"08# ### ## ##",
"09# ### ## ##",
# see: http://www.bakom.admin.ch/themen/telekom/00479/00607/index.html
"084# ### ###",
"0878 ### ###",
"0900 ### ###",
"0901 ### ###",
"0906 ### ###",
)

View File

@@ -0,0 +1,5 @@
from ..ar_DZ import Provider as ar_DZProvider
class Provider(ar_DZProvider):
pass

View File

@@ -0,0 +1,284 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
"+33 (0){{area_code_with_separator}} ## ## ##",
"+33 {{area_code_with_separator}} ## ## ##",
"0{{area_code_without_separator}}######",
"0{{area_code_with_separator}} ## ## ##",
)
# https://fr.wikipedia.org/wiki/Liste_des_indicatifs_t%C3%A9l%C3%A9phoniques_en_France#Liste_des_indicatifs_d%C3%A9partementaux_fran%C3%A7ais_class%C3%A9s_par_indicatif
area_codes = (
# landlines
"130",
"134",
"139",
"140",
"141",
"142",
"143",
"144",
"145",
"146",
"147",
"148",
"149",
"153",
"155",
"156",
"158",
"160",
"164",
"169",
"170",
"172",
"173",
"174",
"175",
"176",
"177",
"178",
"179",
"180",
"181",
"182",
"183",
"188",
"214",
"218",
"219",
"221",
"222",
"223",
"228",
"229",
"230",
"231",
"232",
"233",
"234",
"235",
"236",
"237",
"238",
"240",
"241",
"243",
"244",
"245",
"246",
"247",
"248",
"249",
"250",
"251",
"252",
"253",
"254",
"255",
"256",
"257",
"258",
"261",
"262",
"269",
"272",
"276",
"277",
"278",
"279",
"285",
"290",
"296",
"297",
"298",
"299",
"310",
"320",
"321",
"322",
"323",
"324",
"325",
"326",
"327",
"328",
"329",
"339",
"344",
"345",
"351",
"352",
"353",
"354",
"355",
"356",
"357",
"358",
"359",
"360",
"361",
"362",
"363",
"364",
"365",
"366",
"367",
"368",
"369",
"370",
"371",
"372",
"373",
"375",
"376",
"379",
"380",
"381",
"382",
"383",
"384",
"385",
"386",
"387",
"388",
"389",
"390",
"411",
"413",
"415",
"420",
"422",
"423",
"426",
"427",
"430",
"432",
"434",
"437",
"438",
"442",
"443",
"444",
"449",
"450",
"456",
"457",
"458",
"463",
"465",
"466",
"467",
"468",
"469",
"470",
"471",
"472",
"473",
"474",
"475",
"476",
"477",
"478",
"479",
"480",
"481",
"482",
"483",
"484",
"485",
"486",
"487",
"488",
"489",
"490",
"491",
"492",
"493",
"494",
"495",
"497",
"498",
"499",
"508",
"516",
"517",
"518",
"519",
"524",
"531",
"532",
"533",
"534",
"535",
"536",
"540",
"545",
"546",
"547",
"549",
"553",
"554",
"555",
"556",
"557",
"558",
"559",
"561",
"562",
"563",
"564",
"565",
"567",
"579",
"581",
"582",
"586",
"587",
"590",
"594",
"596",
# mobile numbers
"60#",
"61#",
"62#",
"630",
"631",
"632",
"633",
"634",
"635",
"636",
"637",
"638",
"64#",
"65#",
"66#",
"67#",
"68#",
"695",
"698",
"699",
"73#",
"74#",
"75#",
"76#",
"77#",
"78#",
"79#",
# special numbers
"80#",
)
def area_code_without_separator(self) -> str:
return self.numerify(self.random_element(self.area_codes))
def area_code_with_separator(self) -> str:
area_code: str = self.random_element(self.area_codes)
return self.numerify(f"{area_code[0]} {area_code[1:]}")
def phone_number(self) -> str:
pattern: str = self.random_element(self.formats)
return self.numerify(self.generator.parse(pattern))

View File

@@ -0,0 +1,22 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
"02#######",
"02-####-###",
"03#######",
"03-####-###",
"04#######",
"04-####-###",
"08#######",
"08-####-###",
"09#######",
"09-####-###",
"05#-###-####",
"05# ###-####",
"05# ### ####",
"05#-#######",
"05# #######",
"05########",
)

View File

@@ -0,0 +1,11 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
"+91 ##########",
"+91 ### #######",
"0##-########",
"0##########",
"0#### ######",
)

View File

@@ -0,0 +1,36 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
"01 #### ###",
"020 ### ###",
"021 ### ###",
"022 ### ###",
"023 ### ###",
"031 ### ###",
"032 ### ###",
"033 ### ###",
"034 ### ###",
"035 ### ###",
"040 ### ###",
"042 ### ###",
"043 ### ###",
"044 ### ###",
"047 ### ###",
"048 ### ###",
"049 ### ###",
"051 ### ###",
"052 ### ###",
"053 ### ###",
"060 ### ###",
"072 ### ###",
"074 ### ###",
"091 #### ###",
"092 #### ###",
"095 #### ###",
"097 #### ###",
"098 #### ###",
"099 #### ###",
"0800 ## ##",
)

View File

@@ -0,0 +1,13 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
"+36 ## ###-####",
"(06)##/###-####",
"(##)/###-####",
"##/###-####",
"##/### ####",
"06-#/### ####",
"06-##/### ####",
)

View File

@@ -0,0 +1,19 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
# Source: https://en.wikipedia.org/wiki/Telephone_numbers_in_Armenia
formats = (
"2##-#####",
"3##-#####",
"(2##) #####",
"(3##) #####",
"2##.#####",
"3##.#####",
"10-######",
"(10) ######",
"10.######",
"9#-######",
"(9#) ######",
"9#.######",
)

View File

@@ -0,0 +1,25 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
# Currently this is my own work
formats = (
"+62-##-###-####",
"+62-0##-###-####",
"+62 (0##) ### ####",
"+62 (0##) ###-####",
"+62 (##) ### ####",
"+62 (##) ###-####",
"+62-###-###-####",
"+62-0###-###-####",
"+62 (0###) ### ####",
"+62 (0###) ###-####",
"+62 (###) ### ####",
"+62 (###) ###-####",
"(0##) ### ####",
"(0##) ###-####",
"(0###) ### ####",
"(0###) ###-####",
"08# ### ####",
"08########",
)

View File

@@ -0,0 +1,37 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
# source: https://de.wikipedia.org/wiki/Telefonnummer_(Schweiz)#Schreibweisen
"+41 2# ### ## ##",
"+41 3# ### ## ##",
"+41 4# ### ## ##",
"+41 5# ### ## ##",
"+41 6# ### ## ##",
"+41 7# ### ## ##",
"+41 8# ### ## ##",
"+41 9# ### ## ##",
"+41 (0)2# ### ## ##",
"+41 (0)3% ### ## ##",
"+41 (0)4% ### ## ##",
"+41 (0)5# ### ## ##",
"+41 (0)6# ### ## ##",
"+41 (0)7% ### ## ##",
"+41 (0)8# ### ## ##",
"+41 (0)9# ### ## ##",
"02# ### ## ##",
"03% ### ## ##",
"04% ### ## ##",
"05# ### ## ##",
"06# ### ## ##",
"07% ### ## ##",
"08# ### ## ##",
"09# ### ## ##",
# see: http://www.bakom.admin.ch/themen/telekom/00479/00607/index.html
"084# ### ###",
"0878 ### ###",
"0900 ### ###",
"0901 ### ###",
"0906 ### ###",
)

View File

@@ -0,0 +1,270 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
"+39 {{area_code}}#####!!",
"{{area_code}}#####!!",
)
area_codes = (
# Landline: https://en.wikipedia.org/wiki/List_of_dialling_codes_in_Italy
"010#",
"011#",
"0122",
"0123",
"0124",
"0125",
"0131",
"0141",
"015#",
"0161",
"0163",
"0165",
"0166",
"0171",
"0183",
"0184",
"0185",
"0187",
"019#",
"02##",
"030#",
"031#",
"0321",
"0322",
"0324",
"0331",
"0332",
"0341",
"0342",
"0343",
"0344",
"0345",
"035#",
"0362",
"0363",
"0364",
"0365",
"0371",
"0372",
"0373",
"0375",
"0376",
"0382",
"039#",
"040#",
"041#",
"0421",
"0422",
"0423",
"0424",
"0425",
"0426",
"0429",
"0431",
"0432",
"0434",
"0438",
"0444",
"0445",
"045#",
"0461",
"0471",
"0481",
"049#",
"050#",
"051#",
"0521",
"0522",
"0523",
"0532",
"0535",
"0536",
"0541",
"0543",
"0544",
"0545",
"0547",
"0549",
"055#",
"0564",
"0565",
"0566",
"0571",
"0572",
"0573",
"0574",
"0575",
"0577",
"0578",
"0583",
"0584",
"0585",
"0586",
"0587",
"0588",
"059#",
"06##",
"070#",
"071#",
"0721",
"0731",
"0732",
"0733",
"0734",
"0735",
"0736",
"0737",
"075#",
"0761",
"0765",
"0771",
"0773",
"0774",
"0775",
"0776",
"0782",
"0783",
"0784",
"0789",
"079#",
"080#",
"081#",
"0823",
"0824",
"0825",
"0832",
"085#",
"0861",
"0862",
"0865",
"0874",
"0881",
"0882",
"0883",
"0884",
"089#",
"0835",
"090#",
"091#",
"0921",
"0931",
"0932",
"0933",
"0923",
"0922",
"0925",
"0934",
"0941",
"0942",
"095#",
"0961",
"0962",
"0963",
"0965",
"0974",
"0975",
"099#",
"0984",
# Mobile: https://it.wikipedia.org/wiki/Prefissi_telefonici_dei_cellulari_italiani
"3513",
"3514",
"3515",
"3516",
"3517",
"3518",
"3519",
"3520",
"330#",
"331#",
"333#",
"334#",
"335#",
"336#",
"337#",
"338#",
"339#",
"360#",
"361#",
"362#",
"363#",
"366#",
"368#",
"381#",
"385#",
"340#",
"341#",
"342#",
"343#",
"344#",
"345#",
"346#",
"347#",
"348#",
"349#",
"383#",
"320#",
"322#",
"323#",
"324#",
"327#",
"328#",
"329#",
"355#",
"380#",
"388#",
"389#",
"390#",
"391#",
"392#",
"393#",
"397#",
"3773",
"3793",
"3710",
"3777",
"3311",
"3703",
"3534",
"3778",
"3533",
"373#",
"3755",
"3756",
"3757",
"3770",
"3791",
"3792",
"3500",
"3501",
"3505",
"3509",
"3510",
"3511",
"3512",
"373#",
"382#",
"3780",
"3500",
"3505",
"3760",
"3711",
"3713",
"3714",
"3715",
"3716",
"3772",
"3774",
"3776",
"3779",
"3701",
"3783",
)
def area_code(self) -> str:
return self.numerify(self.random_element(self.area_codes))
def phone_number(self) -> str:
pattern: str = self.random_element(self.formats)
return self.numerify(self.generator.parse(pattern))

View File

@@ -0,0 +1,10 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
"070-####-####",
"080-####-####",
"090-####-####",
"##-####-####",
)

View File

@@ -0,0 +1,16 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
# Sourse: https://en.wikipedia.org/wiki/Telephone_numbers_in_Georgia_(country)
formats = (
"+995 ### ### ###",
"+995 (###) ### ###",
"+995#########",
"0 ### ### ###",
"+995 32 ### ## ##",
"+995 34# ### ###",
"+995 (34#) ### ###",
"0 32 ### ## ##",
"0 34# ### ###",
)

View File

@@ -0,0 +1,30 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
"02-####-####",
"031-###-####",
"032-###-####",
"033-###-####",
"041-###-####",
"042-###-####",
"043-###-####",
"044-###-####",
"051-###-####",
"052-###-####",
"053-###-####",
"054-###-####",
"055-###-####",
"061-###-####",
"062-###-####",
"063-###-####",
"064-7##-####",
"010-####-####",
"011-###-####",
"016-###-####",
"017-###-####",
"018-###-####",
"019-###-####",
"070-####-####",
)

View File

@@ -0,0 +1,9 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
"+370 ########",
"+(370) ########",
"+370########",
)

View File

@@ -0,0 +1,9 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
"+371 ########",
"+(371) ########",
"+371########",
)

View File

@@ -0,0 +1,11 @@
from .. import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
"+977 ##########",
"+977 ### #######",
"984#######",
"985#######",
"980#######",
)

Some files were not shown because too many files have changed in this diff Show More