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

[Feature] Include CPF Field #2

Closed
wants to merge 8 commits into from
Closed

[Feature] Include CPF Field #2

wants to merge 8 commits into from

Conversation

SteffanoP
Copy link
Member

@SteffanoP SteffanoP commented Jun 18, 2022

This PR implements a new algorithm to fill {{cpf}} field on the template/model of certificates.

This PR closes #1 .

Implementation

  1. It was created a new optional flag (--cpf-enable) to let users choose if they want to include cpf;
    • In case you want to include a CPF, just run the program python --cpf-enable.
  2. A function to check if a CPF is valid or not (validate_cpf);
  3. Creates an algorithm to fill any {{cpf}} field based on names.txt.
    • It takes any number on names.txt that is valid and establish as a cpf;
    • If a CPF is not valid, not certificate will be generated and a warning will be logged.
    • Change generateCertificate to optionally receive a parameter called cpf.
  4. Update the current models/examples to include {{cpf}} field;
  5. A few things had to be changed to meet the requirements above.

Developer notes

A question that I had was if we should generate certificate if a cpf is not valid, I've put a #2 (comment) asking that. By now, it currently generates but does not fill the {{cpf}} field.

Also, I haven't implemented any formatter for CPF fields, if you feel that's necessary, please let me know.

Issues found

  • When using Full name, the name is including a \n, this will be fixed until the PR is ready to Merge;
    • That was a false negative Issue, due to the fact that the models/examples were not fully prepared for real data, that was worked in dac35af.
  • When two names are homonym, only one file will be created, I'm gonna fix that later;

By closing the file, we clear the memory to process things later
Check and validate if a number is a valid CPF
*This fixes a bug when there's homonym names only one file is generated;
*Only when `--cpf-enable` flag is active.
*A Frame box was enlarged in model to fill bigger names and cpf;
*Random names and random cpfs were included in names example that looks real.
@SteffanoP SteffanoP marked this pull request as ready for review June 19, 2022 03:13
except IndexError:
logger.error(f"{name} CPF is invalid!")
cpf = None
# TODO: Generate even if CPF is invalid?
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe this should be addressed by maintainers and specialists

@weltonfelix
Copy link
Member

Muito bom Steffano! Como o projeto ainda está bem no começo, ainda estamos arrumando a casa e acabou que fiz o push da feature (11492c6) antes mesmo de ver sua Pull Request.

Em compensação, adicionei você como coautor em um amend, já que a implementação segue o mesmo princípio.

Seria muito massa você adicionar algumas das features que foram implementadas no seu código, como fechar o arquivo antes do processamento (e6c8e9f) e atualizar os arquivos de exemplo para conterem dados reais (3f34a09).

Sobre a validação de dados, creio que não seria algo tão necessário já que o usuário teria em mãos a lista de dados das pessoas. Por enquanto acabaria apenas deixando a geração um pouco mais lenta, mas quem sabe no futuro?!

Mil desculpas pelo ocorrido. Suas contribuições são sempre muito importantes!

@SteffanoP
Copy link
Member Author

Em compensação, adicionei você como coautor em um amend, já que a implementação segue o mesmo princípio.

Opa @weltonfelix, não precisava, vi que sua implementação foi bem mais completinha do que eu estava pensando no projeto.

Seria muito massa você adicionar algumas das features que foram implementadas no seu código, como fechar o arquivo antes do processamento (e6c8e9f) e atualizar os arquivos de exemplo para conterem dados reais (3f34a09).

Quanto a isso, acho que vocês podem implementar durante o desenvolvimento de algumas coisas mais tarde, como por exemplo para resolver a #3.

Sobre a validação de dados, creio que não seria algo tão necessário já que o usuário teria em mãos a lista de dados das pessoas. Por enquanto acabaria apenas deixando a geração um pouco mais lenta, mas quem sabe no futuro?!

Sobre a validação, eu acho importante, pois como se trata de um certificado, um documento que valida algo para alguém, manter esse tipo de verificação pode evitar futuros problemas de certificados com erros desse tipo. Acho que no nível de implementação do que esse repositório pretende, tratar isso como uma flag (--validade-field ou --validate-cpf seja interessante).

Sobre o tempo de processamento, não há um impacto muito grande visto que a complexidade de processamento se mantém em tempo linear.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Inclusão de {{cpf}}
2 participants