-
-
Notifications
You must be signed in to change notification settings - Fork 62
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
base: main
Are you sure you want to change the base?
435 #464
Conversation
…ma string formatada do seu código de leitura
Codecov ReportAll modified and coverable lines are covered by tests ✅
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. |
There was a problem hiding this 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.
This function takes information from a boleto | ||
and turns it into a string. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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. |
Esta função pega as informações de um boleto | ||
e transforma em uma string |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"format_boleto", | |
"format_bank_slip", |
str: A string with the formatted boleto reading code | ||
|
||
**Example:** | ||
>>> boleto = Boleto( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
>>> boleto = Boleto( | |
>>> bank_slip = BankSlip( |
"maturity_factor":"3737", | ||
"document_value":"0000000100" | ||
} | ||
>>> format_boleto(boleto) |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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) |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
Descrição
Mudanças Propostas
Checklist de Revisão
Comentários Adicionais (opcional)
Issue Relacionada
Closes #<numero_da_issue>