Tool for Brazilian Reais monetary adjustment/correction
Project description
Calculadora do Cidadão
Pacote em Python para correção de valores.
Instalação
$ pip install calculadora-do-cidadao
Uso
Adaptadores disponíveis
Índice | Módulo |
---|---|
IGP-M | calculadora_do_cidadao.Igpm |
INPC | calculadora_do_cidadao.Inpc |
IPCA | calculadora_do_cidadao.Ipca |
IPCA-15 | calculadora_do_cidadao.Ipca15 |
IPCA-E | calculadora_do_cidadao.IpcaE |
Selic | calculadora_do_cidadao.Selic |
Todos os adaptadores fazem o download dos dados na hora que a classe é instanciada. Esses dados ficam no atributo data
da instância da classe do adaptador. Ou seja, criar uma instância demora e é recomendado que sua aplicação faça isso na inicialização, e não a cada uso.
Utilizando um adaptador
Todos os adaptadores tem o método adjust
que recebe três argumentos:
Argumento | Obrigatório | Tipo | Descrição | Valor padrão |
---|---|---|---|---|
original_date |
✅ | datetime.date |
Data original do valor a ser corrigido. | |
value |
❌ | decimal.Decimal , float ou int |
Valor a ser corrigido. | decimal.Decimal('1') |
target_date |
❌ | datetime.date |
Data para quando o valor tem que ser corrigido. | datetime.date.today() |
Exemplo de uso
In [1]: from datetime import date
...: from decimal import Decimal
...: from calculadora_do_cidadao import Ipca
In [2]: ipca = Ipca()
In [3]: ipca.adjust(date(2018, 7, 6))
Out[3]: Decimal('1.051202206630561280035407253')
In [4]: ipca.adjust(date(2014, 7, 8), 7)
Out[4]: Decimal('9.407523138792336916983267321')
In [5]: ipca.adjust(date(1998, 7, 12), 3, date(2006, 7, 1))
Out[5]: Decimal('5.279855889296777979447848574')
Desenvolvendo novos adaptadores
Todos os adaptadores herdam de calculadora_do_cidadao.adapters.Adapter
.
Método obrigatório
Todo adaptador precisa de um método serialize
. Esse método sempre recebe uma linha da tabela (NamedTuple
instanciada pela rows
) e é um gerador que devolve:
- ou
None
(caso seja uma linha inválida) - ou uma tupla contendo um
datetime.date
e umdecimal.Decimal
Variáveis obrigatórias
Variável | Descrição |
---|---|
url |
URL da fonte para baixar os dados. |
file_type |
"html" ou "xls" , indicando o formato dos dados na fonte. |
Variáveis opcionais
Variável | Descrição |
---|---|
COOKIES |
No caso de a URL usar o protocolo HTTP, essa variável pode ser um dicionário que será incluído como cookies da sessão na requisição HTTP. |
SHOULD_UNZIP |
Um booleano informando se o arquivo baixado da URL precisa ser descompactado ou não (apenas .zip é suportado por enquanto). |
SHOULD_AGGREGATE |
Um booleano informando se os dados estão desagregados (por exemplo, 0,42%) ou se eles já representam o acumulado desde o início da série (1,0042, por exemplo). |
IMPORT_KWARGS |
Argumentos nomeados que serem passados passados para a função de leitura dos dados (rows.import_from_html , por exemplo).Essa variável pode ser um dicionário e, nesse caso, a função de leitura será chamada apenas uma vez, desempacotando o dicionário como argumentos nomeados; Ainda, essa variável pode ser uma sequência de dicionários e, nesse caso, a função de leitura será chamada várias vezes, uma vez para cada dicionário da sequência. |
Testes
A suíte de testes roda com tox
. Se você não tiver instalado, pip install tox
deve resolver.
$ tox
Para limpar os arquivos gerados automaticamente, existe o atalho make clean
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for calculadora-do-cidadao-0.1.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 472ec3e50fcc4de215002df597b12c1ca85bc00f6cb2fe26197ab80f2881475a |
|
MD5 | 23dc0f9259b791c629ba16829a0ce355 |
|
BLAKE2b-256 | 5c234e3433ed3fd9983a3323f737c66c3d4aae17aa7c2f259182fd0d8ac64bbc |