Implementar formatação de boletos
Título: Implementar formatação de boletos
Descrição:
Proponho a criação de uma nova função, format_boleto, para formatar strings de boletos de acordo com padrões definidos.
Justificativa:
A formatação de boletos é uma tarefa comum em diversas aplicações financeiras e contábeis. Ao incluir essa funcionalidade na biblioteca, facilitamos o desenvolvimento de soluções que envolvam o processamento de boletos.
Funcionalidades:
- Formatação: Converter um objeto boleto em uma linha digitável.
- Validação: Verificar se a entrada é válida de acordo com as regras do formato escolhido.
- Tratamento de erros: Retornar
Nonepara entradas inválidas.
Documentação:
A função terá uma docstring detalhada, incluindo:
- Descrição da função.
- Parâmetros de entrada.
- Valor de retorno.
- Exemplos de uso.
- Casos de uso.
Testes unitários:
Serão criados testes unitários para cobrir os seguintes cenários:
- Entradas válidas: Diferentes formatos de boletos válidos.
- Entradas inválidas: Boletos com dados faltantes, inválidos ou em formatos não suportados.
- Limites: Testar os limites da função (e.g., tamanho máximo da string, valores numéricos).
Exemplo de implementação (inicial):
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.
**Exemplo:**
>>> boleto = Boleto(
... data_documento = datetime.date(2000, 7, 4)
... data_vencimento = datetime.date(2000, 7, 4)
... data_processamento = datetime.date(2012, 7, 11)
... valor_documento = 550
... agencia_cedente = '1102'
... conta_cedente = '9000150'
... convenio = 7777777
... nosso_numero = str(22832563 + i)
... numero_documento = str(22832563 + i)
... )
>>> format_boleto(boleto)
'04192.11107 29000.150226 83256.340593 8 10010000055000'
"""
# Implementar a lógica da função aqui
raise NotImplementedError
bora!
Issue 435 atribuida a luizcarlosom :rocket:" "Verifique o guia de contribuição para mais informações sobre como submeter sua Pull Request."
:warning: [PT-BR] Esta issue está inativa há 97 dias. Os assignees serão removidos em 7 dias caso não haja atualizações.
:warning: [EN] This issue has been inactive for 97 days. The assignees will be removed in 7 days if there are no updates.
bora
🇧🇷 Português ✅ Issue #435 atribuída a @Fontebasso-JV. Verifique o guia de contribuição para instruções sobre como submeter sua Pull Request.
🇬🇧 English ✅ Issue #435 assigned to @Fontebasso-JV. Check the contributing guide for instructions on submitting your Pull Request.
Fala @ramiroluz , só para confirmar o entendimento da feature, o parâmetro a ser passado é o código de barras (44 dígitos) e o output esperado é a linha digitavel (47 dígitos) ?
Eu acho que a implementação modelo está incorreta. Pela descrição está que deve receber um objeto boleto. Então imagino que o object boleto possa ser criado a partir de uma string, mas não necessariamente, pode ser criado como está na docstring. Aí quando mandar formatar ele deve gerar a linha digitável para colar no campo de pagamento do banco.
Foi isso que entendi relendo a descrição.
Boa noite pessoal! Vou deixar essa mensagem como info pois vou fechar essa issue pra gente pesquisar um pouco melhor a regra de negócio e evitar de criar algo que não esteja de acordo e pra que ninguém puxe essa issue até que a gente tenha tudo documentado certinho sobre a regra, beleza? Obrigado galera 🫶