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
Os adaptadores disponíveis são:
- IPCA:
calcladora_do_cidadao.adapters.ibge.Ipca
- IPCA-15:
calcladora_do_cidadao.adapters.ibge.Ipca15
- INPC:
calcladora_do_cidadao.adapters.ibge.Inpc
- Selic:
calcladora_do_cidadao.adapters.selic.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.
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.adapters 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 calcladora_do_cidadao.base.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
url
: URL da fonte para baixar os dados.file_type
:"html"
ou"xls"
, indicando o formato dos dados na fonte.
Variáveis opcionais
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;
- 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
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
File details
Details for the file calculadora-do-cidadao-0.0.4.tar.gz
.
File metadata
- Download URL: calculadora-do-cidadao-0.0.4.tar.gz
- Upload date:
- Size: 8.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.0.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13640ebf57bb6550e3f896e970d91a0199c32f930dc191bd4839e596b59a5aef |
|
MD5 | d2888f064eeb2beae5132ef7afe72969 |
|
BLAKE2b-256 | b40549a6181b89b3e69ce6dad145ea4267d6974173e7ffd56967c08bb21a8420 |