code: def cnpj(numero):
      
      _digitos = [int(c) for c in numero if c.isdigit()]
  
      if len(_digitos) != 14 or len(numero) != 14:
          raise NumeroCNPJError('Nao possui 14 digitos: {!r}'.format(numero))
  
      if numero == numero[0] * 14:
          raise NumeroCNPJError('Todos os digitos iguais: {!r}'.format(numero))
  
      multiplicadores = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]
  
      soma1 = sum([_digitos[i] * multiplicadores[i+1] for i in range(12)])
      soma2 = sum([_digitos[i] * multiplicadores[i] for i in range(13)])
      digito1 = 11 - (soma1 % 11)
      digito2 = 11 - (soma2 % 11)
  
      if digito1 >= 10:
          digito1 = 0
  
      if digito2 >= 10:
          digito2 = 0
  
      if _digitos[12] != digito1 or _digitos[13] != digito2:
          raise NumeroCNPJError('Digitos verificadores invalidos: {!r}'.format(numero))
docs: Valida um número de CNPJ. O número deverá ser informado como uma string
      contendo 14 dígitos numéricos. Se o número informado for inválido será
      lançada a exceção :exc:`NumeroCNPJError`. Esta implementação da validação
      foi delicadamente copiada de `python-sped <http://git.io/vfuGW>`.