Skip to main content

Python client for the Open Data API of the Pernambuco Court of Accounts (TCE-PE)

Project description

tcepepy

PyPI version Python versions tests docs Downloads License: MIT Code style: black

Python client for the TCE-PE (Tribunal de Contas do Estado de Pernambuco) Open Data API. It is the Python counterpart of the R package tceper.

tcepepy wraps 71 API endpoints into friendly functions that accept snake_case parameter names and return pandas DataFrames. A built-in catalog lets you discover endpoints and inspect their parameters and output fields — all offline, without leaving Python.

⚠️ Geo-restriction. The API host (sistemas.tcepe.tc.br) only accepts connections from Brazilian IP addresses. From outside Brazil, queries time out. The discovery helpers (catalog(), params(), fields()) work offline anywhere, as they read from the bundled catalog.

Language note. Wrapper functions are named in English, but the underlying API is in Portuguese — so you pass parameters in Portuguese, e.g. state_revenues(AnoReferencia=2025). See the official endpoint list.

Installation

pip install tcepepy            # core (httpx + pandas)
pip install "tcepepy[rich]"    # prettier console output

Quick start

import tcepepy as tce

# 1. Discover endpoints (offline)
tce.catalog()
tce.catalog(search="contrat")

# 2. Inspect parameters and output fields (offline)
tce.params("Contratos")
tce.fields("Contratos")

# 3. Query (needs a Brazilian IP) — snake_case or the original API names both work
tce.contracts(codigo_efisco_ug="510101")
tce.contracts(CodigoEfiscoUG="510101", ano_contrato="2025")

Explore the API

tce.catalog()
#       endpoint      group                title  url
# 0  ReceitasEstaduais  Receitas  Relação das Receitas Estaduais  ...

tce.params("Contratos")    # api_name, r_name, required, type, description
tce.fields("Contratos")    # name, r_name, type, description

Use snake_case (r_name) or the original API names — both are accepted.

Cache

Every wrapper caches results in memory, keyed by endpoint + parameters (default TTL: 1 hour).

tce.contracts(codigo_efisco_ug="510101")                 # hits the API
tce.contracts(codigo_efisco_ug="510101")                 # cache hit (instant)
tce.contracts(codigo_efisco_ug="510101", cache=False)    # force fresh

tce.cache_info()    # inspect cached entries
tce.cache_clear()   # clear all

Parameter validation

Parameters are validated against the catalog. Passing an unknown parameter raises an error listing the allowed ones:

tce.contracts(xyz="foo")
# tcepepy.catalog.UnknownParameterError: Unknown query parameter(s) for
# endpoint 'Contratos': xyz.
# Allowed parameters:
#   - unidade_gestora (UnidadeGestora)
#   - codigo_efisco_ug (CodigoEfiscoUG)
#   ...

Configuration

tce.config.verbose = True      # print the final API URL on every call
tce.config.progress = False    # silence status messages
tce.config.cache_ttl = 7200    # cache TTL in seconds

Or via environment variables: TCEPEPY_VERBOSE, TCEPEPY_PROGRESS, TCEPEPY_CACHE_TTL.

Direct access

To call any endpoint (including ones without a dedicated wrapper) using API parameter names directly:

tce.request("Contratos", CodigoEfiscoUG="510101", AnoContrato="2025")

API limits

The API returns at most 100,000 records per request; tcepepy warns when this limit is hit. Use filters to narrow your query.

License

MIT. This package is an unofficial client; the data belongs to TCE-PE.

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

tcepepy-0.1.1.tar.gz (64.7 kB view details)

Uploaded Source

Built Distribution

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

tcepepy-0.1.1-py3-none-any.whl (40.5 kB view details)

Uploaded Python 3

File details

Details for the file tcepepy-0.1.1.tar.gz.

File metadata

  • Download URL: tcepepy-0.1.1.tar.gz
  • Upload date:
  • Size: 64.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tcepepy-0.1.1.tar.gz
Algorithm Hash digest
SHA256 633b5bc435df513deeb6f4e44312dfa3633fc5f3c4d0c512b59e3a113f656a41
MD5 371f05027dae2df4e379e68e37ac517b
BLAKE2b-256 dd014d0b79049ff3ce7253896ac152460cf9ad144a78ad9e9bb1bf5097115f54

See more details on using hashes here.

Provenance

The following attestation bundles were made for tcepepy-0.1.1.tar.gz:

Publisher: publish.yml on StrategicProjects/tcepepy

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

File details

Details for the file tcepepy-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: tcepepy-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 40.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tcepepy-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 26cd72a0afbd6335dff4bedea95c12e72e623fce5f39b751091d45cb001af60c
MD5 9885da9242b7d39e64a4941f90d7130a
BLAKE2b-256 ac898582e1345f7f49af015f82d138a64ab11fca8c2e7783238a6a601be383f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for tcepepy-0.1.1-py3-none-any.whl:

Publisher: publish.yml on StrategicProjects/tcepepy

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

Supported by

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