Testando a função format_numero(), obtive erros de formatação para números de celular com código de país em 2 dígitos.
Sendo o código que define a função:
def format_numero(self):
padrao_telefone = "([0-9]{2,3})?([0-9]{2})([0-9]{4,5})([0-9]{4})"
resposta = re.search(padrao_telefone,self.numero)
numero_formatado = "+{} {} {}-{}".format(resposta.group(1),resposta.group(2),resposta.group(3),resposta.group(4))
return numero_formatado
Chamando a str de TelefonesBr retorna a função format_numero(), ou seja, a variável numero_formatado:
telefone = TelefonesBr('5511951523945')
print(telefone)
Recebemos o seguinte resultado: +551 19 5152-3945 quando o esperado seria +55 11 95152-3945
Como contornar essa situação mantendo a possibilidade de formatação com código de país em 2 e 3 dígitos??