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

435 #464

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

435 #464

wants to merge 2 commits into from

Conversation

luizcarlosom
Copy link

@luizcarlosom luizcarlosom commented Jan 5, 2025

Descrição

Mudanças Propostas

Checklist de Revisão

  • Eu li o Contributing.md
  • Os testes foram adicionados ou atualizados para refletir as mudanças (se aplicável).
  • Foi adicionada uma entrada no changelog / Meu PR não necessita de uma nova entrada no changelog.
  • A documentação em português foi atualizada ou criada, se necessário.
  • Se feita a documentação, a atualização do arquivo em inglês.
  • Eu documentei as minhas mudanças no código, adicionando docstrings e comentários. Instruções
  • O código segue as diretrizes de estilo e padrões de codificação do projeto.
  • Todos os testes passam. Instruções
  • O Pull Request foi testado localmente. Instruções
  • Não há conflitos de mesclagem.

Comentários Adicionais (opcional)

Issue Relacionada

Closes #<numero_da_issue>

@luizcarlosom luizcarlosom requested review from a team as code owners January 5, 2025 00:26
Copy link

codecov bot commented Jan 5, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 99.84%. Comparing base (60c8937) to head (d7e3f1c).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #464   +/-   ##
=======================================
  Coverage   99.83%   99.84%           
=======================================
  Files          21       23    +2     
  Lines         612      641   +29     
=======================================
+ Hits          611      640   +29     
  Misses          1        1           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Contributor

@BeneBr BeneBr left a comment

Choose a reason for hiding this comment

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

Opa passei aqui para comentar seu código para auxiliar o pessoal do brutils.
O ponto principal de mudança aqui é no tipo de dado que deve ser passado para a função. A função deve receber uma string, e não um dicionário. Cabendo a função tratar de maneira adequada a string passada e retornando um boleto corretamente formatado. A issue que você pegou trata exatamente disso, passar uma string.

Comment on lines +1203 to +1204
This function takes information from a boleto
and turns it into a string.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
This function takes information from a boleto
and turns it into a string.
This function takes information from a bank slip (in brazilian portuguese, boleto)
and turns it into a string.

Comment on lines +1199 to +1200
Esta função pega as informações de um boleto
e transforma em uma string
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
Esta função pega as informações de um boleto
e transforma em uma string
Esta função obtém as informações de um boleto
e as transforma em uma string.

and turns it into a string.

**Args:**
boleto (Boleto): A dictionary with boleto information
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
boleto (Boleto): A dictionary with boleto information
boleto (Boleto): A dictionary with a bank slip information

boleto (Boleto): A dictionary with boleto information

**Returns:**
str: A string with the formatted boleto reading code
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
str: A string with the formatted boleto reading code
str: A string with the formatted bank slip reading code

@@ -183,4 +185,6 @@
"convert_code_to_uf",
"get_municipality_by_code",
"get_code_by_municipality_name",
# Boleto
"format_boleto",
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
"format_boleto",
"format_bank_slip",

str: A string with the formatted boleto reading code

**Example:**
>>> boleto = Boleto(
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
>>> boleto = Boleto(
>>> bank_slip = BankSlip(

"maturity_factor":"3737",
"document_value":"0000000100"
}
>>> format_boleto(boleto)
Copy link
Contributor

Choose a reason for hiding this comment

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

É esperado uma string ser passada para o parâmetro e não um dicionário:

def format_boleto(boleto_string: str) -> str:
    """Formata uma string de boleto.

    **Args:**
        boleto_string (str): A string representando o boleto.

    **Returns:**
        str: A string formatada, ou None se a entrada for inválida.

    **Raises:**
        NotImplementedError: A implementação da lógica ainda está pendente.

Pense em você como um usuário dessa função. Você tem uma string que foi lida de algum lugar, você não se perguntaria o porquê de ter que criar um objeto nesse formato ao invés de simplesmente passar uma string? Então, a função format_boleto (que deve se chamar format_bank_slip) deve receber uma string apenas contendo a informação do código de barras.

and turns it into a string.

**Args:**
boleto (Boleto): A dictionary with boleto information
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
boleto (Boleto): A dictionary with boleto information
bank_slip: A string with the bank slip information.

Como uma boa prática de documentação, utilize pontos no final de cada linha.

+ boleto["document_value"]
)

boleto_array = list(boleto)
Copy link
Contributor

Choose a reason for hiding this comment

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

Aqui faz ainda mais sentido recber uma string ao invés de um dicionário. Você está obtendo cada elemento de um dicionário e o transformando em uma tupla para depois o transformar em uma lista? Não faz muito sentido não. Aqui se for utilizado apenas string, você poderia muito bem obter cada uma das partes do boleto, apenas utilizando o seu código abaixo:

bank_slip = "00190500954014481606906809350314337370000000100"

first_piece = bank_slip[:5]
second_piece = bank_slip[5:10]
>>>>  00190 50095

Exatamente o que você precisa.

Copy link
Contributor

Choose a reason for hiding this comment

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

Esse arquivo não é necessário uma vez que a entrada da função é uma string.

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.

2 participants