Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

name is not defined

Ao tentar instanciar a classe Documento, estou com erro para acessar CPF ou CNPJ . Estou com o seguinte erro: NameError: name 'DocCpf' is not defined ou NameError: name 'DocCnpj' is not defined.

from validate_docbr import CPF,CNPJ


class Documento:
  @staticmethod 
  def criaDocumento(documento):
    if len(documento) == 11:
      return DocCpf(documento)
    elif len(documento) == 14:
      return DocCnpj(documento)
    else:
      raise ValueError("Quantidade de dígitos está incorreta")

  class DocCpf:
    def __init__(self,documento):
      if self.valida(documento):
        self.cpf = documento
      else:
        raise ValueError("Cpf inválido")

    def valida(self, documento):
      cpf = CPF()
      return cpf.validate(documento)

    def format(self):
      mascara = CPF()
      return mascara.mask(self.cpf)

    def __str__(self):
      return self.format()



  class DocCnpj:
    def __init__(self,documento):
      if self.valida(documento):
        self.cnpj = documento
      else:
        raise ValueError("CNPJ inválido")

    def valida(self, documento):
      cnpj = CNPJ()
      return cnpj.validate(documento)

    def format(self):
      mascara = CNPJ()
      return mascara.mask(self.cnpj)

    def __str__(self):
      return self.format()
1 resposta
solução!

Pessoal, era indentação. As classes DocCpf e DocCnpj estão com um "tab" a mais, por isso, o código não estava achando.