O PyCharm me retorna o erro "return DocumentCnpj(document) TypeError: object() takes no parameters" como se a classe não estivesse definida para receber o documento, porém ao realizar o teste seguindo a mesma lógica no CPF o programa executa sem falhas, normalmente.
Poderiam me ajudar, me informando onde está o meu erro?
Segue os dois arquivos que estou utilizando neste caso:
from cpf_and_cnpj import Document
test_cpf = "12354367996"
test_cnpj = "15436940000103"
document_cnpj = Document.create_document(test_cnpj)
document_cpf = Document.create_document(test_cpf)
print(document_cnpj)
print(document_cpf)
from validate_docbr import CPF, CNPJ
class Document:
@staticmethod
def create_document(document):
if len(document) == 11:
return DocumentCpf(document)
elif len(document) == 14:
return DocumentCnpj(document)
else:
raise ValueError("Quantidade de dígitos está incorreta")
class DocumentCpf:
def __init__(self, document):
if self.authenticate_cpf(document):
self.cpf = document
else:
raise ValueError("CPF inválido")
def __str__(self):
return self.format_cpf()
def authenticate_cpf(self, document):
validator = CPF()
return validator.validate(document)
def format_cpf(self):
cpf_mask = CPF()
return cpf_mask.mask(self.cpf)
class DocumentCnpj:
def __int__(self, document):
if self.authenticate_cnpj(document):
self.cnpj = document
else:
raise ValueError("CNPJ inválido")
def __str__(self):
return self.format_cnpj()
def authenticate_cnpj(self, document):
validator = CNPJ()
return validator.validate(document)
def format_cnpj(self):
cnpj_mask = CNPJ()
return cnpj_mask.mask(self.cnpj)