Olá, fiz o código sem problemas, porém me surgiu uma dúvida, no código do pais o primeiro grupo da mascara, pode conter de dois a três dígitos, se eu coloco um numero brasileiro e dou como código do país 055, a mascara funciona normalmente, pórem se eu coloco apenas o 55 a formatação não sai como planejada e "puxa" um dígito do telefone para o código do país. Teria alguma forma de otimizar isso??
def format_numero(self):
padrao = '([0-9]{2,3})?([0-9]{2})([0-9]{4,5})([0-9]{4})'
resposta = re.search(padrao,self.numero)
numero_formatado = '+{}({}){}-{}'.format(resposta.group(1), resposta.group(2),
resposta.group(3),
resposta.group(4))
return numero_formatado