-
-
Notifications
You must be signed in to change notification settings - Fork 88
Open
Labels
Description
Função para validação e limpeza de CNH
Descrição
Adição das funções:
-
remove_symbols_cnh
responsável por limpar qualquer caractere não numérico de uma string de CNH. -
is_valid_cnh
para validar números de CNH. A função deve receber uma string ou valor convertível em string e indicar se a CNH é válida conforme regras de formatação e dígitos verificadores.
Especificações das Funções
-
Nome da função:
remove_symbols_cnh
-
Entradas:
cnh
(str | None
) — String contendo a CNH com ou sem símbolos.
-
Saída:
str | None
— String contendo apenas os dígitos da CNH ouNone
se a entrada não for uma string.
-
Nome da função:
is_valid_cnh
-
Entradas:
cnh
(str | Any) — Valor da CNH. Se não for string, a função deve tentar converter para string com segurança; se não for possível, tratar como inválido.
-
Saída:
bool | None
—True
se a CNH for válida,False
se for inválida,None
para entrada inválida (por exemplo,None
, string vazia, tipos irrecuperáveis).
-
Comportamento esperado:
- Remover espaços em branco nas extremidades.
- Permitir que a entrada contenha caracteres não numéricos comuns (pontos, hífens, espaços); a validação deve ocorrer sobre os dígitos.
- Verificar tamanho esperado (11 dígitos) antes de aplicar o algoritmo.
- Tratar casos evidentemente inválidos (por exemplo, todos os dígitos iguais) como inválidos.
Exemplos de Uso
from brutils.cnh import remove_symbols_cnh, is_valid_cnh
remove_symbols_cnh("123.456.789-00")
# Saída esperada: "12345678900"
remove_symbols_cnh(None)
# Saída esperada: None
is_valid_cnh("02650306461")
# Saída esperada: True
is_valid_cnh("00000000000")
# Saída esperada: False
is_valid_cnh("026.503.064-61")
# Saída esperada: True
is_valid_cnh("")
# Saída esperada: None
is_valid_cnh(None)
# Saída esperada: None
is_valid_cnh(2650306461)
# Saída esperada : False (tamanho incorreto)