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.

Source Distribution

calculadora-do-cidadao-0.0.4.tar.gz (8.3 kB view details)

Uploaded Source

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

Hashes for calculadora-do-cidadao-0.0.4.tar.gz
Algorithm Hash digest
SHA256 13640ebf57bb6550e3f896e970d91a0199c32f930dc191bd4839e596b59a5aef
MD5 d2888f064eeb2beae5132ef7afe72969
BLAKE2b-256 b40549a6181b89b3e69ce6dad145ea4267d6974173e7ffd56967c08bb21a8420

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