Skip to main content

Biblioteca para normalização, validação e geração de variantes de números telefônicos.

Project description

phone-utils

Biblioteca Python para normalização, validação e geração de variantes de números de telefone internacionais, com suporte especial à regra do 9º dígito brasileiro.

Instalação

pip install phone-utils

Uso

from phone_utils import normalize_phone, validate_phone, generate_br_variants, InvalidPhoneError

Normalização

Converte qualquer formato de entrada para E.164 (+CCDDNNNNNNNNN):

normalize_phone("+55 (11) 99999-9999")  # → "+5511999999999"
normalize_phone("5511999999999")         # → "+5511999999999"
normalize_phone("+1 (202) 555-0123")    # → "+12025550123"

normalize_phone("11999999999")           # → raise InvalidPhoneError (sem DDI)
normalize_phone("abc")                   # → raise InvalidPhoneError

Validação

Verifica a estrutura do número sem lançar exceção:

validate_phone("+5511999999999")   # → True
validate_phone("+12025550123")     # → True
validate_phone("11999999999")      # → False
validate_phone("")                 # → False

Variantes brasileiras (regra do 9º dígito)

Gera todas as representações válidas de um número brasileiro considerando a presença ou ausência do 9º dígito:

# Com 9º dígito → gera variante sem
generate_br_variants("+5511999999999")
# → ["+5511999999999", "+551199999999"]

# Sem 9º dígito → gera variante com
generate_br_variants("+551199999999")
# → ["+5511999999999", "+551199999999"]

# Sem 9º dígito compatível (não começa com 9) → retorna só o número
generate_br_variants("+5511799999999")
# → ["+5511799999999"]

# Número internacional → retorna só o número normalizado
generate_br_variants("+12025550123")
# → ["+12025550123"]

Tratamento de erros

from phone_utils import InvalidPhoneError

try:
    normalized = normalize_phone("numero-invalido")
except InvalidPhoneError as e:
    print(f"Número inválido: {e}")

Formatos de entrada aceitos

Formato Exemplo
E.164 +5511999999999
Sem + (com DDI) 5511999999999
Com máscara +55 (11) 99999-9999
Com espaços +55 11 99999 9999
Internacional +1 (202) 555-0123

Escopo da biblioteca

Faz:

  • Normalizar números para E.164
  • Validar estrutura conforme regras do país
  • Gerar variantes BR para compatibilidade com bases legadas

Não faz:

  • Verificar se a linha existe ou está ativa
  • Consultar operadoras
  • Enriquecer dados
  • Registrar logs

Requisitos

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

phone_utils-0.1.0.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

phone_utils-0.1.0-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file phone_utils-0.1.0.tar.gz.

File metadata

  • Download URL: phone_utils-0.1.0.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for phone_utils-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b13f7969ae7feaf0a184526c8f6b0ae2aa310315e601624f54194fa04ba6b7ae
MD5 6add42c3eca6f82c4d2e5011898fd54e
BLAKE2b-256 4ca3f572acddaa077c0244a4376d82e87c02175facde8ca05d93fb6767c74589

See more details on using hashes here.

File details

Details for the file phone_utils-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: phone_utils-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 4.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for phone_utils-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 324d457cf8d9af3f12213d5332e4b9dd7518a664d207c55a37eafcf297076c81
MD5 6d2bb40232f44891f889ec3f4e586991
BLAKE2b-256 4e663b7450e5a2f144cf2d3b791518aa497f7b24eb849f1400a3cfc7104d75c0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page