pyboleto Package

pyboleto Package

data Module

pyboleto.data

Base para criação dos módulos dos bancos. Comtém funções genéricas relacionadas a geração dos dados necessários para o boleto bancário.

copyright:© 2011 - 2012 by Eduardo Cereto Carvalho
license:BSD, see LICENSE for more details.
class pyboleto.data.BoletoData(**kwargs)[código fonte]

Bases: object

Interface para implementações específicas de bancos

Esta classe geralmente nunca será usada diretamente. Geralmente o usuário irá usar uma das subclasses com a implementação específica de cada banco.

As classes dentro do pacote pyboleto.bank extendem essa classe para implementar as especificações de cada banco. Portanto as especificações dentro desta classe são genéricas seguindo as normas da FEBRABAN.

Todos os parâmetros devem ser passados como **kwargs para o construtor ou então devem ser passados depois, porém antes de imprimir o boleto.

eg:

bData = BoletoData(agencia='123', valor='650')
bData.cedente = u'João Ninguém'
bData.cedente_cidade = u'Rio de Janeiro'
bData.cedente_uf = u'RJ'
# Assim por diante até preencher todos os campos obrigatórios.

Parâmetros obrigatórios:

Parâmetros:
  • aceite – ‘N’ para o caixa não acetitar o boleto após a validade ou ‘A’ para aceitar. (default: ‘N’)
  • agencia_cedente – Tamanho pode variar com o banco.
  • carteira – Depende do Banco.
  • cedente – Nome do Cedente
  • cedente_cidade
  • cedente_uf
  • cedente_logradouro – Endereço do Cedente
  • cedente_bairro
  • cedente_cep
  • cedente_documento – CPF ou CNPJ do Cedente.
  • conta_cedente – Conta do Cedente sem o dígito verificador.
  • data_documento (datetime.date) –
  • data_processamento (datetime.date) –
  • data_vencimento (datetime.date) –
  • numero_documento – Número Customizado para controle. Pode ter até 13 caracteres dependendo do banco.
  • sacado_nome – Nome do Sacado
  • sacado_documento – CPF ou CNPJ do Sacado
  • sacado_cidade
  • sacado_uf
  • sacado_endereco – Endereco do Sacado
  • sacado_bairro
  • sacado_cep

Parâmetros não obrigatórios:

Parâmetros:
  • quantidade
  • especie – Nunca precisa mudar essa opção (default: ‘R$’)
  • especie_documento
  • local_pagamento(default: ‘Pagável em qualquer banco até o vencimento’)
  • moeda – Nunca precisa mudar essa opção (default: ‘9’)
agencia_cedente

Agência do Cedente geralmente tem 4 posições

Algumas subclasses podem alterar isso dependendo das normas do banco

agencia_conta_cedente
barcode

Essa função sempre é a mesma para todos os bancos. Então basta implementar o método barcode() para o pyboleto calcular a linha digitável.

Posição # Conteúdo 01 a 03 03 Número do banco 04 01 Código da Moeda - 9 para Real 05 01 Digito verificador do Código de Barras 06 a 09 04 Data de vencimento em dias partis de 07/10/1997 10 a 19 10 Valor do boleto (8 inteiros e 2 decimais) 20 a 44 25 Campo Livre definido por cada banco Total 44

calculate_dv_barcode(line)[código fonte]

Calcula DV para código de barras

Está é uma implementação genérica mas pode ser reimplementada pela classe derivada dependendo das definições de cada bancoGeralmente é implementado pela classe derivada.

campo_livre

Must be overriden by child class property

Levanta:NotImplementedError – Needs to be implemented by derived class
cedente_endereco

Endereço do Cedente com no máximo 80 caracteres

codigo_dv_banco
conta_cedente

Conta do Cedente geralmente tem 7 posições

Algumas subclasses podem alterar isso dependendo das normas do banco

demonstrativo

Texto que vai impresso no corpo do Recibo do Sacado

Máximo de 12 linhas com 90 caracteres cada.

format_nosso_numero()[código fonte]

Geralmente é implementado pela classe derivada. Usada para formatar como o noso número será impresso no boleto. Às vezes é o mesmo do numero_documento e às vezes contém outros campos juntos.

instrucoes

Instruções para o caixa do banco que recebe o bilhete

Máximo de 7 linhas com 90 caracteres cada. Geralmente contém instruções para aplicar multa ou não aceitar caso tenha passado a data de validade.

linha_digitavel

Monta a linha digitável a partir do barcode

Esta é a linha que o cliente pode utilizar para digitar se o código de barras não estiver legível.

static modulo10(num)[código fonte]
static modulo11(num, base=9, r=0)[código fonte]
nosso_numero

Nosso Número geralmente tem 13 posições

Algumas subclasses podem alterar isso dependendo das normas do banco

sacado

Campo sacado composto por até 3 linhas.

A primeira linha precisa ser o nome do sacado. As outras duas linhas devem ser usadas para o endereço do sacado.

valor

Valor convertido para Decimal.

Geralmente valor e valor_documento são o mesmo número.

Type:Decimal
valor_documento

Valor do Documento convertido para Decimal.

De preferência para passar um valor em Decimal, se não for passado outro tipo será feito um cast para Decimal.

exception pyboleto.data.BoletoException(message)[código fonte]

Bases: exceptions.Exception

Exceções para erros no pyboleto

class pyboleto.data.CustomProperty(name, length)[código fonte]

Bases: object

Função para criar propriedades nos boletos

Cria propriedades com getter, setter e delattr.

Propriedades criadas com essa função sempre são strings internamente.

O Setter sempre tentará remover qualquer digito verificador se existir.

Aceita um numero com ou sem DV e remove o DV caso exista. Então preenxe com zfill até o tamanho adequado. Note que sempre que possível não use DVs ao entrar valores no pyboleto. De preferência o pyboleto vai calcular todos os DVs quando necessário.

Parâmetros:
  • name (string) – O nome da propriedade.
  • length (integer) – Tamanho para preencher com ‘0’ na frente.

pdf Module

pyboleto.pdf

Classe Responsável por fazer o output do boleto em pdf usando Reportlab.

copyright:© 2011 - 2012 by Eduardo Cereto Carvalho
license:BSD, see LICENSE for more details.
class pyboleto.pdf.BoletoPDF(file_descr, landscape=False)[código fonte]

Bases: object

Geração do Boleto em PDF

Esta classe é responsável por imprimir o boleto em PDF. Outras classes podem ser implementadas no futuro com a mesma interface, para fazer output em HTML, LaTeX, ...

Esta classe pode imprimir boletos em formato de carnê (2 boletos por página) ou em formato de folha cheia.

Parâmetros:
  • file_descr – Um arquivo ou file-like class.
  • landscape – Formato da folha. Usar True para boleto tipo carnê.
drawBoleto(boleto_dados)[código fonte]

Imprime Boleto Convencional

Você pode chamar este método diversas vezes para criar um arquivo com várias páginas, uma por boleto.

Parâmetros:boleto_dados (pyboleto.data.BoletoData) – Objeto com os dados do boleto a ser preenchido. Deve ser subclasse de pyboleto.data.BoletoData
drawBoletoCarne(boleto_dados, y)[código fonte]

Imprime apenas dos boletos do carnê.

Esta função não deve ser chamada diretamente, ao invés disso use a drawBoletoCarneDuplo.

Parâmetros:boleto_dados (pyboleto.data.BoletoData) – Objeto com os dados do boleto a ser preenchido. Deve ser subclasse de pyboleto.data.BoletoData
drawBoletoCarneDuplo(boletoDados1, boletoDados2=None)[código fonte]

Imprime um boleto tipo carnê com 2 boletos por página.

Parâmetros:
nextPage()[código fonte]

Força início de nova página

save()[código fonte]

Fecha boleto e constroi o arquivo

pyboleto.pdf.load_image(logo_image)[código fonte]

Load Bank Image

html Module

pyboleto.html

Classe Responsável por fazer o output do boleto em html.

copyright:© 2012 by Artur Felipe de Sousa
license:BSD, see LICENSE for more details.
class pyboleto.html.BoletoHTML(file_descr, landscape=False)[código fonte]

Bases: object

Geração do Boleto em HTML

Esta classe é responsável por imprimir o boleto em HTML. Outras classes podem ser implementadas no futuro com a mesma interface, para fazer output em LaTeX, etc ...

Esta classe pode imprimir boletos em formato de carnê (2 boletos por página) ou em formato de folha cheia.

Parâmetros:
  • file_descr – Um arquivo ou file-like class.
  • landscape – Formato da folha. Usar True para boleto tipo carnê.
drawBoleto(boletoDados)[código fonte]

Imprime Boleto Convencional

Você pode chamar este método diversas vezes para criar um arquivo com várias páginas, uma por boleto.

Parâmetros:boletoDados (pyboleto.data.BoletoData) – Objeto com os dados do boleto a ser preenchido. Deve ser subclasse de pyboleto.data.BoletoData
drawBoletoCarneDuplo(boletoDados1, boletoDados2=None)[código fonte]

Imprime um boleto tipo carnê com 2 boletos por página.

Parâmetros:
nextPage()[código fonte]

Força início de nova página

save()[código fonte]

Fecha boleto e constroi o arquivo