Skip to main content
Emolumentos PR Banner

CI PyPI Python License: MIT Ruff

Biblioteca Python para cálculo de emolumentos de cartório do Paraná, indexados por VRCext, conforme a Lei Estadual PR nº 21.869/2023 (FUNREJUS).

Entra o tipo de ato e o valor da transação; sai o emolumento detalhado, com o breakdown de cada componente — não apenas o total.

Status: 0.1.0 — alpha. O motor de cálculo está pronto; as tabelas da lei e o valor da VRCext ainda são placeholders (veja Roadmap). Os números só têm validade legal depois de preenchidos os dados oficiais.

Por que isto não é trivial

Calcular emolumento não é "multiplicar por uma alíquota". A regra do PR envolve faixas de valor do ato, indexação por uma unidade estadual (VRCext) que é reajustada periodicamente, e componentes acessórios (FUNREJUS, ISS, taxas). O mesmo conjunto de documentos apresentado por um cliente pode servir a atos diferentes, com emolumentos diferentes. Traduzir esse emaranhado jurídico-financeiro em código correto e testado é o objetivo desta biblioteca.

Instalação

pip install emolumentos-pr        # (após publicação no PyPI)
# ou, em desenvolvimento:
pip install -e ".[dev]"

Uso

Como biblioteca:

from decimal import Decimal
from emolumentos_pr import Ato, TipoAto, calcular
from emolumentos_pr.tabelas import tabela_de
from emolumentos_pr.vrcext import VRCEXT_ATUAL

ato = Ato(tipo=TipoAto.COMPRA_E_VENDA, valor=Decimal("250000.00"))
resultado = calcular(ato, tabela_de(ato.tipo), VRCEXT_ATUAL)

print(resultado.total)
for componente in resultado.componentes:
    print(componente.nome, componente.valor)

Pela linha de comando:

emolpr calcular --tipo compra_e_venda --valor 250000.00

Decisões de design

Escolhas deliberadas — cada uma tem um porquê que vale saber explicar:

  • Decimal em todo valor monetário, nunca float. Float acumula erro de arredondamento; inaceitável em cálculo financeiro/legal.
  • Núcleo sem dependências. O pacote instala e roda só com a biblioteca padrão. A CLI usa argparse.
  • Cálculo em funções puras. A regra de negócio não faz I/O e não guarda estado — mesma entrada, mesma saída. Isso é o que torna a suíte de testes confiável.
  • Resultado sempre auditável. O retorno traz o breakdown de componentes, não só a soma — dá para ver de onde veio cada centavo.
  • Dados da lei isolados. Tabelas e VRCext ficam em módulos próprios; atualizar a lei é editar dado, não caçar número mágico no meio da lógica.

Roadmap

v0.1 (COMPLETO):

  • Motor de cálculo (faixas, indexação por VRCext, truncamento, breakdown)
  • Empacotamento, CI e testes do motor
  • Tabela XI completa de faixas (valor -> VRCext) em tabelas.py
  • VRCext oficial (0,277) em vrcext.py
  • Componentes: Funrejus (0,2% e 25%), FUNDEP, ISSQN, Selo, Distribuidor
  • Compra e venda, doação (com/sem usufruto), escritura sem valor, procuração
  • Multiobjeto em CEV/doação (100% por imóvel)
  • Casos oficiais reconciliando à casa do milésimo em tests/

Todos os atos do escopo v1 reproduzem o sistema do cartório, para qualquer valor.

Atos previstos para o v1.1 (a estrutura já suporta; falta o dado e um exemplo real para reconciliar cada um):

  • Partilha (divórcio/inventário) — item X.b: bem de maior valor a 100%, cada adicional (até nove) a 80%.
  • Apartamento + garagem com matrícula autônoma — item X.c: garagem a 50%.
  • Demais atos da Tabela XI: reconhecimento de firma, autenticação, testamentos, atas notariais, certidões, pública forma, buscas.

Resíduo conhecido: o total da procuração fecha a ~0,003 (os exemplos de sem-valor e procuração discordam na 3ª casa do arredondamento do Funrejus de 25%). Um printout novo do sistema pina a regra.

Fora do escopo (propositalmente): interface web, front-end, banco de dados, múltiplos estados.

Licença

MIT — veja LICENSE.

Download files

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

Source Distribution

emolumentos_pr-0.3.0.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

emolumentos_pr-0.3.0-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

Details for the file emolumentos_pr-0.3.0.tar.gz.

File metadata

  • Download URL: emolumentos_pr-0.3.0.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for emolumentos_pr-0.3.0.tar.gz
Algorithm Hash digest
SHA256 6a2c2c688fd7f947949cafa03408a842ce6d58dfc88601cbf80b1790a1f4096e
MD5 fea909ca5eb43aec470f7bc6b8b75606
BLAKE2b-256 3800aafb7680b64c4a638f9174d94a7f24c2baded8992cbcff36571ba820721e

See more details on using hashes here.

Provenance

The following attestation bundles were made for emolumentos_pr-0.3.0.tar.gz:

Publisher: ci.yml on jefersonbraine/emolumentos-pr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file emolumentos_pr-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: emolumentos_pr-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 15.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for emolumentos_pr-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2a7ef9dfc4ca273d6d756ee45cd166dd7587fdb8a27caf606183f8776ba6c83a
MD5 933eefadba8a24e2eea318e57a10a2b8
BLAKE2b-256 fc8e8ddeba393dc214e26ffd5610508e4b330173998fb8cb93547445e633043c

See more details on using hashes here.

Provenance

The following attestation bundles were made for emolumentos_pr-0.3.0-py3-none-any.whl:

Publisher: ci.yml on jefersonbraine/emolumentos-pr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.4.0

2 files

This release

0.3.0 This release

2 files

0.2.1

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page