atriumchain-api / utils /country_codes.py
Jainish1808's picture
Upload folder using huggingface_hub
4e4664a verified
"""
Country codes data and utility functions for international phone numbers
"""
# List of countries with their codes and ISO codes
COUNTRIES = [
{"name": "United States", "code": "+1", "iso": "US", "flag": "๐Ÿ‡บ๐Ÿ‡ธ"},
{"name": "United Kingdom", "code": "+44", "iso": "GB", "flag": "๐Ÿ‡ฌ๐Ÿ‡ง"},
{"name": "India", "code": "+91", "iso": "IN", "flag": "๐Ÿ‡ฎ๐Ÿ‡ณ"},
{"name": "United Arab Emirates", "code": "+971", "iso": "AE", "flag": "๐Ÿ‡ฆ๐Ÿ‡ช"},
{"name": "Canada", "code": "+1", "iso": "CA", "flag": "๐Ÿ‡จ๐Ÿ‡ฆ"},
{"name": "Australia", "code": "+61", "iso": "AU", "flag": "๐Ÿ‡ฆ๐Ÿ‡บ"},
{"name": "Germany", "code": "+49", "iso": "DE", "flag": "๐Ÿ‡ฉ๐Ÿ‡ช"},
{"name": "France", "code": "+33", "iso": "FR", "flag": "๐Ÿ‡ซ๐Ÿ‡ท"},
{"name": "Spain", "code": "+34", "iso": "ES", "flag": "๐Ÿ‡ช๐Ÿ‡ธ"},
{"name": "Italy", "code": "+39", "iso": "IT", "flag": "๐Ÿ‡ฎ๐Ÿ‡น"},
{"name": "China", "code": "+86", "iso": "CN", "flag": "๐Ÿ‡จ๐Ÿ‡ณ"},
{"name": "Japan", "code": "+81", "iso": "JP", "flag": "๐Ÿ‡ฏ๐Ÿ‡ต"},
{"name": "South Korea", "code": "+82", "iso": "KR", "flag": "๐Ÿ‡ฐ๐Ÿ‡ท"},
{"name": "Singapore", "code": "+65", "iso": "SG", "flag": "๐Ÿ‡ธ๐Ÿ‡ฌ"},
{"name": "Hong Kong", "code": "+852", "iso": "HK", "flag": "๐Ÿ‡ญ๐Ÿ‡ฐ"},
{"name": "Saudi Arabia", "code": "+966", "iso": "SA", "flag": "๐Ÿ‡ธ๐Ÿ‡ฆ"},
{"name": "Brazil", "code": "+55", "iso": "BR", "flag": "๐Ÿ‡ง๐Ÿ‡ท"},
{"name": "Mexico", "code": "+52", "iso": "MX", "flag": "๐Ÿ‡ฒ๐Ÿ‡ฝ"},
{"name": "South Africa", "code": "+27", "iso": "ZA", "flag": "๐Ÿ‡ฟ๐Ÿ‡ฆ"},
{"name": "Nigeria", "code": "+234", "iso": "NG", "flag": "๐Ÿ‡ณ๐Ÿ‡ฌ"},
{"name": "Egypt", "code": "+20", "iso": "EG", "flag": "๐Ÿ‡ช๐Ÿ‡ฌ"},
{"name": "Pakistan", "code": "+92", "iso": "PK", "flag": "๐Ÿ‡ต๐Ÿ‡ฐ"},
{"name": "Bangladesh", "code": "+880", "iso": "BD", "flag": "๐Ÿ‡ง๐Ÿ‡ฉ"},
{"name": "Indonesia", "code": "+62", "iso": "ID", "flag": "๐Ÿ‡ฎ๐Ÿ‡ฉ"},
{"name": "Malaysia", "code": "+60", "iso": "MY", "flag": "๐Ÿ‡ฒ๐Ÿ‡พ"},
{"name": "Philippines", "code": "+63", "iso": "PH", "flag": "๐Ÿ‡ต๐Ÿ‡ญ"},
{"name": "Thailand", "code": "+66", "iso": "TH", "flag": "๐Ÿ‡น๐Ÿ‡ญ"},
{"name": "Vietnam", "code": "+84", "iso": "VN", "flag": "๐Ÿ‡ป๐Ÿ‡ณ"},
{"name": "Turkey", "code": "+90", "iso": "TR", "flag": "๐Ÿ‡น๐Ÿ‡ท"},
{"name": "Russia", "code": "+7", "iso": "RU", "flag": "๐Ÿ‡ท๐Ÿ‡บ"},
{"name": "Poland", "code": "+48", "iso": "PL", "flag": "๐Ÿ‡ต๐Ÿ‡ฑ"},
{"name": "Netherlands", "code": "+31", "iso": "NL", "flag": "๐Ÿ‡ณ๐Ÿ‡ฑ"},
{"name": "Belgium", "code": "+32", "iso": "BE", "flag": "๐Ÿ‡ง๐Ÿ‡ช"},
{"name": "Sweden", "code": "+46", "iso": "SE", "flag": "๐Ÿ‡ธ๐Ÿ‡ช"},
{"name": "Norway", "code": "+47", "iso": "NO", "flag": "๐Ÿ‡ณ๐Ÿ‡ด"},
{"name": "Denmark", "code": "+45", "iso": "DK", "flag": "๐Ÿ‡ฉ๐Ÿ‡ฐ"},
{"name": "Switzerland", "code": "+41", "iso": "CH", "flag": "๐Ÿ‡จ๐Ÿ‡ญ"},
{"name": "Austria", "code": "+43", "iso": "AT", "flag": "๐Ÿ‡ฆ๐Ÿ‡น"},
{"name": "Ireland", "code": "+353", "iso": "IE", "flag": "๐Ÿ‡ฎ๐Ÿ‡ช"},
{"name": "New Zealand", "code": "+64", "iso": "NZ", "flag": "๐Ÿ‡ณ๐Ÿ‡ฟ"},
]
def get_country_by_code(code: str):
"""Get country data by phone code"""
for country in COUNTRIES:
if country["code"] == code:
return country
return None
def get_country_by_iso(iso: str):
"""Get country data by ISO code"""
for country in COUNTRIES:
if country["iso"] == iso:
return country
return None
def get_country_by_name(name: str):
"""Get country data by country name"""
for country in COUNTRIES:
if country["name"].lower() == name.lower():
return country
return None
def validate_country_code(code: str) -> bool:
"""Validate if the country code exists"""
return any(country["code"] == code for country in COUNTRIES)
def get_all_countries():
"""Return all countries"""
return COUNTRIES