Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

validate_list #16

Closed
alvarofpp opened this issue Sep 15, 2019 · 5 comments
Closed

validate_list #16

alvarofpp opened this issue Sep 15, 2019 · 5 comments
Labels
enhancement New feature or request good first issue Good for newcomers hacktoberfest Hacktoberfest

Comments

@alvarofpp
Copy link
Owner

Validar uma lista de documentos.

from validate_docbr import CPF

cpf = CPF()

# Validar CPFs
cpf.validate_list(["012.345.678-90", "012.345.678-91"])  # [True, False]
@alvarofpp alvarofpp added the enhancement New feature or request label Sep 15, 2019
@alvarofpp alvarofpp added good first issue Good for newcomers hacktoberfest Hacktoberfest labels Sep 26, 2019
@Jonatha-Varjao
Copy link
Contributor

Jonatha-Varjao commented Oct 1, 2019

Eu poderia ajudar com isso @alvarofpp , algum conselho em relação ao code-style, e aos requisitos que minha implementação precista ter ?

@alvarofpp
Copy link
Owner Author

Boa tarde, @Jonatha-Varjao.

O code-style seria o mais próximo do PEP. A implementação fica a seu critério, sendo que creio que a função iria executar o método validate da classe n vezes (n sendo o tamanho da lista passada). Como é um método mais geral, creio que seria ideal implementar na classe BaseDoc e não em cada uma das classes de documentos, como é feito com o método generate_list.

Após isso, seria interessante documentar o método no guia de uso.

@Jonatha-Varjao
Copy link
Contributor

Basicamente na classe ABC vai ter o método da validate_lista() onde meu objeto filho vai invocar o validate() dele e adiciono os retornos na lista e retorno ela

é nesse caminho ?

def validate_list(self, docs: List[str]) -> List[bool]:
        """Método para validar uma lista de documentos desejado."""
        bool_list = []
        
        for document in docs:
            bool_list.append(self.validate(document))
        
        return bool_list

@alvarofpp
Copy link
Owner Author

@Jonatha-Varjao

ABC é a forma que o Python tem para dizer que é uma classe abstrata. O método (validate_list) estaria na classe BaseDoc. Dessa forma, como todas as classes de documentos herdam de BaseDoc, o fluxo que você sugeriu funcionaria perfeitamente.

Seu código está correto, sendo que eu recomendo usar list comprehensions por ser mais rápido que o for normal. O código ficaria:

def validate_list(self, docs: List[str]) -> List[bool]:
    """Método para validar uma lista de documentos desejado."""
    return [ self.validate(doc) for doc in docs ]

@Jonatha-Varjao
Copy link
Contributor

Optei pela list comprehension sim, vou fazer o pull request adicionando a função na classe e atualizando a documentação

vlw @alvarofpp

alvarofpp added a commit that referenced this issue Oct 2, 2019
Adding validate_list function into BaseDoc class #16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers hacktoberfest Hacktoberfest
Projects
None yet
Development

No branches or pull requests

2 participants