utils django_spire.auth.sms.utils phone_number_normalize Source code in django_spire/auth/sms/utils.py 4 5 6 7 8 9 10 11 12 13 14 15 16def phone_number_normalize(phone_number: str | None) -> str | None: if not phone_number: return None digits = ''.join(filter(str.isdigit, phone_number)) if len(digits) == 10: return '+1' + digits if len(digits) == 11 and digits.startswith('1'): return '+' + digits return None phone_number_format_display Source code in django_spire/auth/sms/utils.py 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34def phone_number_format_display(phone_number: str | None) -> str: normalized = phone_number_normalize(phone_number) if normalized is None: return phone_number or '' national = normalized[2:] if len(national) != 10: return phone_number or '' area = national[:3] prefix = national[3:6] line = national[6:] return f'({area}) {prefix}-{line}'