Skip to main content

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:

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.adapter 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

$ python setup.py test

Project details


Download files

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

Source Distribution

calculadora-do-cidadao-0.0.2.tar.gz (7.5 kB view details)

Uploaded Source

File details

Details for the file calculadora-do-cidadao-0.0.2.tar.gz.

File metadata

  • Download URL: calculadora-do-cidadao-0.0.2.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.3

File hashes

Hashes for calculadora-do-cidadao-0.0.2.tar.gz
Algorithm Hash digest
SHA256 e602c347fcaa02add5c7e8e61bcd2f11637ad5de699d992eb6ef7e40fac4bb45
MD5 8ce2bb35719ce2bb4f991ead7de75a13
BLAKE2b-256 9ba51cbfbd12505ec271feec7e8d2843e1fb869e62e2019c55ecaca6099b7cbb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page