Skip to main content

Obtém contratos públicos do conjunto de dados BASE/IMPIC em dados.gov.pt

Project description

base-contratos — Contratos públicos do BASE/IMPIC, em acesso aberto.

base-contratos

Obtém contratos públicos do conjunto de dados BASE/IMPIC em dados.gov.pt.

O conjunto de dados cobre todos os contratos públicos adjudicados em Portugal desde 2012, com atualização quinzenal. Esta biblioteca filtra por uma ou mais entidades adjudicantes (NIF) e devolve registos estruturados.

Instalação

pip install base-contratos

Utilização

Como biblioteca

from base_contratos import fetch_all, fetch_year

# Todos os contratos de uma entidade em todos os anos disponíveis
records = fetch_all("505279460")

# Um único ano
records = fetch_year("505279460", 2024)

# Múltiplas entidades
records = fetch_all(["505279460", "500754011"])

# Com cache local para evitar re-descarregamentos
records = fetch_all("505279460", cache_dir="~/.cache/base-contratos")

# Anos disponíveis no conjunto de dados
from base_contratos import list_available_years
print(list_available_years())  # [2012, 2013, ..., 2025]

Cada registo é um dict com os seguintes campos:

Campo Descrição
year Ano do contrato
contracting_entity_nif NIF da entidade adjudicante
contractor_name Nome da entidade adjudicatária
contractor_nif NIF da entidade adjudicatária (se disponível)
contract_type works, services ou goods
description Objeto do contrato
amount Preço contratual (€)
awarded_date Data de celebração do contrato (ISO 8601)
external_id ID do contrato no BASE
procedure_type Tipo de procedimento
cpv Código CPV
base_price Preço base do procedimento (€)
effective_price Preço total efetivo (€)
execution_days Prazo de execução em dias
direct_award_justification Fundamentação do ajuste direto (se aplicável)
competitors Concorrentes (se disponível)

Como ferramenta de linha de comandos

# Listar anos disponíveis
base-contratos --list-years

# Imprimir contratos como JSON (stdout)
base-contratos --nif 505279460

# Guardar em CSV
base-contratos --nif 505279460 --output contratos.csv

# Anos específicos, com cache local
base-contratos --nif 505279460 --year 2023 --year 2024 --cache-dir ~/.cache/base-contratos

# Múltiplas entidades, formato JSONL
base-contratos --nif 505279460 --nif 500754011 --format jsonl

Como funciona

O conjunto de dados é publicado como um ficheiro XLSX por ano com todos os contratos do país. Esta biblioteca:

  1. Obtém os metadados do conjunto de dados via API do dados.gov.pt para descobrir os URLs dos XLSX
  2. Descarrega o XLSX de cada ano pretendido
  3. Filtra as linhas em que o campo adjudicante contém o(s) NIF(s) pedido(s)
  4. Devolve registos estruturados

Os ficheiros XLSX são grandes (dezenas de MB por ano). Use cache_dir para evitar re-descarregamentos em execuções repetidas.

Como encontrar o NIF da sua entidade

Os NIFs dos municípios portugueses são públicos. Alguns exemplos:

Município NIF
Lousada 505279460
Porto 500754011
Lisboa 500731076
Braga 500726760

Licença

MIT. Os dados do dados.gov.pt são de domínio público.

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

base_contratos-0.1.1.tar.gz (92.6 kB view details)

Uploaded Source

Built Distribution

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

base_contratos-0.1.1-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: base_contratos-0.1.1.tar.gz
  • Upload date:
  • Size: 92.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for base_contratos-0.1.1.tar.gz
Algorithm Hash digest
SHA256 9aaa5bb1d088371fdb31ac0a78f45952d1bd2e7a2da6840ea1ebca54c5a5b0bc
MD5 f848791871369e4003481901b2511b9e
BLAKE2b-256 98dd3c17fb010e209b8d1bc2013bb3d72aff11288dbd5d22efc1979753355516

See more details on using hashes here.

File details

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

File metadata

  • Download URL: base_contratos-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 9.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for base_contratos-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9cf720000b7494e5153f73e0ee4f33b4af9959b841cb93f2bf12822f8354b89e
MD5 ccb664c40f3ecea3022ee76ba34b3f9a
BLAKE2b-256 63d166fbd0e4599d4b7e66662e7af002fc3367c4707db039903571a0d4b782e5

See more details on using hashes here.

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