Python phonenumbers.is_possible_number() Examples
The following are 8
code examples of phonenumbers.is_possible_number().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
phonenumbers
, or try the search function
.
Example #1
Source File: models.py From casepro with BSD 3-Clause "New" or "Revised" License | 7 votes |
def validate_phone(cls, number): """ Validates the given phone number which should be in E164 format. """ try: parsed = phonenumbers.parse(number) except phonenumbers.NumberParseException as e: raise InvalidURN(str(e)) if number != phonenumbers.format_number(parsed, phonenumbers.PhoneNumberFormat.E164): raise InvalidURN("Phone numbers must be in E164 format") if not phonenumbers.is_possible_number(parsed) or not phonenumbers.is_valid_number(parsed): raise InvalidURN("Phone numbers must be in E164 format") return True
Example #2
Source File: models.py From casepro with BSD 3-Clause "New" or "Revised" License | 6 votes |
def normalize_phone(cls, number): """ Normalizes the passed in phone number """ # remove any invalid characters number = regex.sub(r"[^0-9a-z\+]", "", number.lower(), regex.V0) # add on a plus if it looks like it could be a fully qualified number if len(number) >= 11 and number[0] not in ["+", "0"]: number = "+" + number try: normalized = phonenumbers.parse(number) if phonenumbers.is_possible_number(normalized): return phonenumbers.format_number(normalized, phonenumbers.PhoneNumberFormat.E164) except Exception: pass return number
Example #3
Source File: functions.py From docassemble with MIT License | 6 votes |
def phone_number_is_valid(number, country=None): """Given a phone number and a country code, returns True if the phone number is valid, otherwise False.""" ensure_definition(number, country) if country is None: country = get_country() if isinstance(number, str): m = re.search(r'^whatsapp:(.*)', number) if m: number = m.group(1) try: pn = phonenumbers.parse(number, country) except: return False if phonenumbers.is_possible_number(pn) and phonenumbers.is_valid_number(pn): return True return False
Example #4
Source File: forms.py From conducthotline.com with Apache License 2.0 | 5 votes |
def validate_phone_number(form, field): try: number = phonenumbers.parse(field.data, "US") except phonenumbers.NumberParseException: raise wtforms.ValidationError( f"{field.data} does not appear to be a valid number." ) if not phonenumbers.is_possible_number(number): raise wtforms.ValidationError( f"{field.data} does not appear to be a possible number." ) field.data = phonenumbers.format_number(number, phonenumbers.PhoneNumberFormat.E164)
Example #5
Source File: phoneinfoga.py From Phoneinfoga with GNU General Public License v3.0 | 5 votes |
def localScan(InputNumber): global number global localNumber global internationalNumber global numberCountryCode global numberCountry print(code_info + 'Running local scan...') FormattedPhoneNumber = "+" + formatNumber(InputNumber) try: PhoneNumberObject = phonenumbers.parse(FormattedPhoneNumber, None) except: return False else: if not phonenumbers.is_valid_number(PhoneNumberObject): return False number = phonenumbers.format_number(PhoneNumberObject, phonenumbers.PhoneNumberFormat.E164).replace('+', '') numberCountryCode = phonenumbers.format_number(PhoneNumberObject, phonenumbers.PhoneNumberFormat.INTERNATIONAL).split(' ')[0] countryRequest = json.loads(requests.request('GET', 'https://restcountries.eu/rest/v2/callingcode/{}'.format(numberCountryCode.replace('+', ''))).content) numberCountry = countryRequest[0]['alpha2Code'] localNumber = phonenumbers.format_number(PhoneNumberObject, phonenumbers.PhoneNumberFormat.E164).replace(numberCountryCode, '') internationalNumber = phonenumbers.format_number(PhoneNumberObject, phonenumbers.PhoneNumberFormat.INTERNATIONAL) print(code_result + 'International format: {}'.format(internationalNumber)) print(code_result + 'Local format: 0{}'.format(localNumber)) print(code_result + 'Country code: {}'.format(numberCountryCode)) print(code_result + 'Location: {}'.format(geocoder.description_for_number(PhoneNumberObject, "en"))) print(code_result + 'Carrier: {}'.format(carrier.name_for_number(PhoneNumberObject, 'en'))) print(code_result + 'Area: {}'.format(geocoder.description_for_number(PhoneNumberObject, 'en'))) for timezoneResult in timezone.time_zones_for_number(PhoneNumberObject): print(code_result + 'Timezone: {}'.format(timezoneResult)) if phonenumbers.is_possible_number(PhoneNumberObject): print(code_info + 'The number is valid and possible.') else: print(code_warning + 'The number is valid but might not be possible.')
Example #6
Source File: target_info.py From whatsapp-play with MIT License | 4 votes |
def localScan(InputNumber, print_results=True): print("Running local scan...") FormattedPhoneNumber = "+" + formatNumber(InputNumber) try: PhoneNumberObject = phonenumbers.parse(FormattedPhoneNumber, None) except Exception as e: print(e) else: if not phonenumbers.is_valid_number(PhoneNumberObject): return False number = phonenumbers.format_number(PhoneNumberObject, phonenumbers.PhoneNumberFormat.E164).replace("+", "") numberCountryCode = phonenumbers.format_number(PhoneNumberObject, phonenumbers.PhoneNumberFormat.INTERNATIONAL).split(" ")[0] numberCountry = phonenumbers.region_code_for_country_code(int(numberCountryCode)) localNumber = phonenumbers.format_number(PhoneNumberObject, phonenumbers.PhoneNumberFormat.E164).replace(numberCountryCode, "") internationalNumber = phonenumbers.format_number(PhoneNumberObject, phonenumbers.PhoneNumberFormat.INTERNATIONAL) country = geocoder.country_name_for_number(PhoneNumberObject, "en") location = geocoder.description_for_number(PhoneNumberObject, "en") carrierName = carrier.name_for_number(PhoneNumberObject, "en") if print_results: print("International format: {}".format(internationalNumber)) print("Local format: {}".format(localNumber)) print("Country found: {} ({})".format(country, numberCountryCode)) print("City/Area: {}".format(location)) print("Carrier: {}".format(carrierName)) for timezoneResult in timezone.time_zones_for_number(PhoneNumberObject): print("Timezone: {}".format(timezoneResult)) if phonenumbers.is_possible_number(PhoneNumberObject): print("The number is valid and possible.") else: print("The number is valid but might not be possible.") numberObj = {} numberObj["input"] = InputNumber numberObj["default"] = number numberObj["local"] = localNumber numberObj["international"] = internationalNumber numberObj["country"] = country numberObj["countryCode"] = numberCountryCode numberObj["countryIsoCode"] = numberCountry numberObj["location"] = location numberObj["carrier"] = carrierName return numberObj
Example #7
Source File: smsaction.py From VizAlerts with MIT License | 4 votes |
def smsnumber_to_e164(smsnumber, iso2countrycode): """Tries to convert a string into an E.164 formatted phone number Raises exception if it can't, returns the E.164 number as a string, if it can """ try: log.logger.debug(u'Converting {} to E.164 format, country code {}'.format(smsnumber, iso2countrycode)) try: if smsnumber.startswith('+'): smsnumber_obj = phonenumbers.parse(smsnumber) else: # country code not specified in number, so pass it in smsnumber_obj = phonenumbers.parse(smsnumber, iso2countrycode) except phonenumbers.NumberParseException as e: errormessage = u'SMS Unable to parse number {}. Error: {}'.format(smsnumber, e.message) log.logger.error(errormessage) raise UserWarning(errormessage) try: if not phonenumbers.is_possible_number(smsnumber_obj): errormessage = u'SMS Number is not possibly valid: {}.'.format(smsnumber) log.logger.error(errormessage) raise UserWarning(errormessage) except phonenumbers.NumberParseException as e: errormessage = u'SMS Unable to parse number {}. Error: {}'.format(smsnumber, e.message) log.logger.error(errormessage) raise UserWarning(errormessage) if not phonenumbers.is_valid_number(smsnumber_obj): errormessage = u'SMS Number is not valid: {}.'.format(smsnumber) log.logger.error(errormessage) raise UserWarning(errormessage) e164_number = phonenumbers.format_number(smsnumber_obj, phonenumbers.PhoneNumberFormat.E164) if not e164_number: errormessage = u'SMS number {} could not be converted to E.164 for an unknown reason.'.format(smsnumber) log.logger.error(errormessage) raise UserWarning(errormessage) # all good, return it! return e164_number except Exception as e: log.logger.error(e.message) return None
Example #8
Source File: localscan.py From phonia with MIT License | 4 votes |
def scan(InputNumber, print_results=True): test('Running local scan...') FormattedPhoneNumber = "+" + formatNumber(InputNumber) try: PhoneNumberObject = phonenumbers.parse(FormattedPhoneNumber, None) except Exception as e: throw(e) else: if not phonenumbers.is_valid_number(PhoneNumberObject): return False number = phonenumbers.format_number( PhoneNumberObject, phonenumbers.PhoneNumberFormat.E164).replace('+', '') numberCountryCode = phonenumbers.format_number( PhoneNumberObject, phonenumbers.PhoneNumberFormat.INTERNATIONAL).split(' ')[0] numberCountry = phonenumbers.region_code_for_country_code( int(numberCountryCode)) localNumber = phonenumbers.format_number( PhoneNumberObject, phonenumbers.PhoneNumberFormat.E164).replace(numberCountryCode, '') internationalNumber = phonenumbers.format_number( PhoneNumberObject, phonenumbers.PhoneNumberFormat.INTERNATIONAL) country = geocoder.country_name_for_number(PhoneNumberObject, "en") location = geocoder.description_for_number(PhoneNumberObject, "en") carrierName = carrier.name_for_number(PhoneNumberObject, 'en') if print_results: info('International format: {}'.format(internationalNumber)) info('Local format: {}'.format(localNumber)) info('Country found: {} ({})'.format(country, numberCountryCode)) info('City/Area: {}'.format(location)) info('Carrier: {}'.format(carrierName)) for timezoneResult in timezone.time_zones_for_number(PhoneNumberObject): info('Timezone: {}'.format(timezoneResult)) if phonenumbers.is_possible_number(PhoneNumberObject): plus('The number is valid and possible!') else: warn('The number is valid but might not be possible.') numberObj = {} numberObj['input'] = InputNumber numberObj['default'] = number numberObj['local'] = localNumber numberObj['international'] = internationalNumber numberObj['country'] = country numberObj['countryCode'] = numberCountryCode numberObj['countryIsoCode'] = numberCountry numberObj['location'] = location numberObj['carrier'] = carrierName return numberObj