Skip to main content

Tool for Brazilian Reais monetary adjustment/correction

Project description

Calculadora do Cidadão

GitHub Workflow Status Code Climate maintainability Code Climate coverage PyPI - Python Version PyPI

Pacote em Python para correção de valores.

Instalação

$ pip install calculadora-do-cidadao

Uso

Os adaptadores disponíveis são:

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 um decimal.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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for calculadora-do-cidadao, version 0.0.3
Filename, size File type Python version Upload date Hashes
Filename, size calculadora-do-cidadao-0.0.3.tar.gz (8.1 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page