import phonenumbers from phonenumbers import NumberParseException from phonenumbers import PhoneNumberFormat as PNF def parse_phone_number(phone_number, default_country="IN"): try: # Parse the number number = phonenumbers.parse(phone_number, default_country) # Get various information about the number result = { "is_valid": phonenumbers.is_valid_number(number), "country_code": number.country_code, "national_number": str(number.national_number), "formats": { "international": phonenumbers.format_number(number, PNF.INTERNATIONAL), "national": phonenumbers.format_number(number, PNF.NATIONAL), "E164": phonenumbers.format_number(number, PNF.E164), "RFC3966": phonenumbers.format_number(number, PNF.RFC3966), }, "type": phonenumbers.number_type(number), "country": phonenumbers.region_code_for_number(number), "is_possible": phonenumbers.is_possible_number(number), } return {"success": True, **result} except NumberParseException as e: return {"success": False, "error": str(e)}