Spaces:
Sleeping
Sleeping
| """ | |
| 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 | |