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

Source Distribution

calculadora-do-cidadao-0.1.0.tar.gz (11.2 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: calculadora-do-cidadao-0.1.0.tar.gz
  • Upload date:
  • Size: 11.2 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

Hashes for calculadora-do-cidadao-0.1.0.tar.gz
Algorithm Hash digest
SHA256 86b9b20f597afd7da63246e873539a9e4fe1c90ca31bf603b735c0f4906bd27c
MD5 25dcd56157bb1e39ba6dae230adffa41
BLAKE2b-256 00c82c5b8f962d851c5fe7b3fa0735860571b9747556c27122aaa9a0f3d631bc

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