Skip to content

Commit

Permalink
Merge pull request #903 from basedosdados/staging/cgu-licitacao-contrato
Browse files Browse the repository at this point in the history
[Data] br_cgu_licitacao_contrato
  • Loading branch information
tricktx authored Dec 10, 2024
2 parents 18df455 + e922171 commit 285f093
Show file tree
Hide file tree
Showing 8 changed files with 500 additions and 43 deletions.
1 change: 1 addition & 0 deletions pipelines/datasets/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,4 @@
from pipelines.datasets.br_ms_sinan.flows import *
from pipelines.datasets.br_cgu_emendas_parlamentares.flows import *
from pipelines.datasets.br_cgu_cartao_pagamento.flows import *
from pipelines.datasets.br_cgu_licitacao_contrato.flows import *
Empty file.
86 changes: 86 additions & 0 deletions pipelines/datasets/br_cgu_licitacao_contrato/flows.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# -*- coding: utf-8 -*-
"""
Flows for br_cgu_licitacao_contrato
"""

from copy import deepcopy, copy
from prefect.run_configs import KubernetesRun
from prefect.storage import GCS
from pipelines.utils.crawler_cgu.flows import flow_cgu_licitacao_contrato
from pipelines.constants import constants
from pipelines.datasets.br_cgu_licitacao_contrato.schedules import (
every_day_contrato_compra,
every_day_contrato_item,
every_day_contrato_termo_aditivo,
every_day_licitacao,
every_day_licitacao_empenho,
every_day_licitacao_item,
every_day_licitacao_participante
)

# ! ------------------ Contrato Compra --------------------

br_cgu_licitacao_contrato__contrato_compra = deepcopy(flow_cgu_licitacao_contrato)
br_cgu_licitacao_contrato__contrato_compra.name = ("br_cgu_licitacao_contrato.contrato_compra")
br_cgu_licitacao_contrato__contrato_compra.code_owners = ["trick"]
br_cgu_licitacao_contrato__contrato_compra.storage = GCS(constants.GCS_FLOWS_BUCKET.value)
br_cgu_licitacao_contrato__contrato_compra.run_config = KubernetesRun(image=constants.DOCKER_IMAGE.value)
br_cgu_licitacao_contrato__contrato_compra.schedule = every_day_contrato_compra


# ! ------------------ Contrato Item --------------------

br_cgu_licitacao_contrato__contrato_item = deepcopy(flow_cgu_licitacao_contrato)
br_cgu_licitacao_contrato__contrato_item.name = "br_cgu_licitacao_contrato.contrato_item"
br_cgu_licitacao_contrato__contrato_item.code_owners = ["trick"]
br_cgu_licitacao_contrato__contrato_item.storage = GCS(constants.GCS_FLOWS_BUCKET.value)
br_cgu_licitacao_contrato__contrato_item.run_config = KubernetesRun(image=constants.DOCKER_IMAGE.value)
br_cgu_licitacao_contrato__contrato_item.schedule = every_day_contrato_item

# ! ------------------ Contrato Termo Aditivo ------------------

br_cgu_licitacao_contrato__contrato_termo_aditivo = deepcopy(flow_cgu_licitacao_contrato)
br_cgu_licitacao_contrato__contrato_termo_aditivo.name = ("br_cgu_licitacao_contrato.contrato_termo_aditivo")
br_cgu_licitacao_contrato__contrato_termo_aditivo.code_owners = ["trick"]
br_cgu_licitacao_contrato__contrato_termo_aditivo.storage = GCS(constants.GCS_FLOWS_BUCKET.value)
br_cgu_licitacao_contrato__contrato_termo_aditivo.run_config = KubernetesRun(image=constants.DOCKER_IMAGE.value)
br_cgu_licitacao_contrato__contrato_termo_aditivo.schedule = (every_day_contrato_termo_aditivo)


# ! ------------------ Licitação ------------------

br_cgu_licitacao_contrato__licitacao = deepcopy(flow_cgu_licitacao_contrato)
br_cgu_licitacao_contrato__licitacao.name = ("br_cgu_licitacao_contrato.licitacao")
br_cgu_licitacao_contrato__licitacao.code_owners = ["trick"]
br_cgu_licitacao_contrato__licitacao.storage = GCS(constants.GCS_FLOWS_BUCKET.value)
br_cgu_licitacao_contrato__licitacao.run_config = KubernetesRun(image=constants.DOCKER_IMAGE.value)
br_cgu_licitacao_contrato__licitacao.schedule = (every_day_licitacao)


# ! ------------------ Licitação Empenho ------------------

br_cgu_licitacao_contrato__licitacao_empenho = deepcopy(flow_cgu_licitacao_contrato)
br_cgu_licitacao_contrato__licitacao_empenho.name = ("br_cgu_licitacao_contrato.licitacao_empenho")
br_cgu_licitacao_contrato__licitacao_empenho.code_owners = ["trick"]
br_cgu_licitacao_contrato__licitacao_empenho.storage = GCS(constants.GCS_FLOWS_BUCKET.value)
br_cgu_licitacao_contrato__licitacao_empenho.run_config = KubernetesRun(image=constants.DOCKER_IMAGE.value)
br_cgu_licitacao_contrato__licitacao_empenho.schedule = (every_day_licitacao_empenho)

# ! ------------------ Licitação Item ------------------

br_cgu_licitacao_contrato__licitacao_item = deepcopy(flow_cgu_licitacao_contrato)
br_cgu_licitacao_contrato__licitacao_item.name = ("br_cgu_licitacao_contrato.licitacao_item")
br_cgu_licitacao_contrato__licitacao_item.code_owners = ["trick"]
br_cgu_licitacao_contrato__licitacao_item.storage = GCS(constants.GCS_FLOWS_BUCKET.value)
br_cgu_licitacao_contrato__licitacao_item.run_config = KubernetesRun(image=constants.DOCKER_IMAGE.value)
br_cgu_licitacao_contrato__licitacao_item.schedule = (every_day_licitacao_item)


# ! ------------------ Licitação Participante ------------------

br_cgu_licitacao_contrato__licitacao_participante = deepcopy(flow_cgu_licitacao_contrato)
br_cgu_licitacao_contrato__licitacao_participante.name = ("br_cgu_licitacao_contrato.licitacao_participante")
br_cgu_licitacao_contrato__licitacao_participante.code_owners = ["trick"]
br_cgu_licitacao_contrato__licitacao_participante.storage = GCS(constants.GCS_FLOWS_BUCKET.value)
br_cgu_licitacao_contrato__licitacao_participante.run_config = KubernetesRun(image=constants.DOCKER_IMAGE.value)
br_cgu_licitacao_contrato__licitacao_participante.schedule = (every_day_licitacao_participante)
150 changes: 150 additions & 0 deletions pipelines/datasets/br_cgu_licitacao_contrato/schedules.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
# -*- coding: utf-8 -*-
"""
Schedules for br_cgu_licitacao_contrato
"""
# -*- coding: utf-8 -*-
from datetime import datetime
from prefect.schedules import Schedule
from prefect.schedules.clocks import CronClock, IntervalClock
from pipelines.constants import constants
from pipelines.utils.crawler_cgu.constants import constants as constants_cgu

every_day_contrato_compra = Schedule(
clocks=[
CronClock(
cron="0 21 * * *",
start_date=datetime(2021, 3, 31, 17, 11),
labels=[
constants.BASEDOSDADOS_PROD_AGENT_LABEL.value,
],
parameter_defaults={
"dataset_id": "br_cgu_licitacao_contrato",
"table_id": "contrato_compra",
"materialization_mode": "prod",
"materialize_after_dump": True,
"dbt_alias": True,
"update_metadata": True,
},
),
],
)

every_day_contrato_item = Schedule(
clocks=[
CronClock(
cron="15 20 * * *",
start_date=datetime(2021, 3, 31, 17, 11),
labels=[
constants.BASEDOSDADOS_PROD_AGENT_LABEL.value,
],
parameter_defaults={
"dataset_id": "br_cgu_licitacao_contrato",
"table_id": "contrato_item",
"materialization_mode": "prod",
"materialize_after_dump": True,
"dbt_alias": True,
"update_metadata": True,
},
),
],
)

every_day_contrato_termo_aditivo = Schedule(
clocks=[
CronClock(
cron="30 20 * * *",
start_date=datetime(2021, 3, 31, 17, 11),
labels=[
constants.BASEDOSDADOS_PROD_AGENT_LABEL.value,
],
parameter_defaults={
"dataset_id": "br_cgu_licitacao_contrato",
"table_id": "contrato_termo_aditivo",
"materialization_mode": "prod",
"materialize_after_dump": True,
"dbt_alias": True,
"update_metadata": True,
},
),
],
)

every_day_licitacao = Schedule(
clocks=[
CronClock(
cron="45 20 * * *",
start_date=datetime(2021, 3, 31, 17, 11),
labels=[
constants.BASEDOSDADOS_PROD_AGENT_LABEL.value,
],
parameter_defaults={
"dataset_id": "br_cgu_licitacao_contrato",
"table_id": "licitacao",
"materialization_mode": "prod",
"materialize_after_dump": True,
"dbt_alias": True,
"update_metadata": True,
},
),
],
)

every_day_licitacao_empenho = Schedule(
clocks=[
CronClock(
cron="0 21 * * *",
start_date=datetime(2021, 3, 31, 17, 11),
labels=[
constants.BASEDOSDADOS_PROD_AGENT_LABEL.value,
],
parameter_defaults={
"dataset_id": "br_cgu_licitacao_contrato",
"table_id": "licitacao_empenho",
"materialization_mode": "prod",
"materialize_after_dump": True,
"dbt_alias": True,
"update_metadata": True,
},
),
],
)

every_day_licitacao_item = Schedule(
clocks=[
CronClock(
cron="15 20 * * *",
start_date=datetime(2021, 3, 31, 17, 11),
labels=[
constants.BASEDOSDADOS_PROD_AGENT_LABEL.value,
],
parameter_defaults={
"dataset_id": "br_cgu_licitacao_contrato",
"table_id": "licitacao_item",
"materialization_mode": "prod",
"materialize_after_dump": True,
"dbt_alias": True,
"update_metadata": True,
},
),
],
)

every_day_licitacao_participante = Schedule(
clocks=[
CronClock(
cron="30 20 * * *",
start_date=datetime(2021, 3, 31, 17, 11),
labels=[
constants.BASEDOSDADOS_PROD_AGENT_LABEL.value,
],
parameter_defaults={
"dataset_id": "br_cgu_licitacao_contrato",
"table_id": "licitacao_participante",
"materialization_mode": "prod",
"materialize_after_dump": True,
"dbt_alias": True,
"update_metadata": True,
},
),
],
)
63 changes: 56 additions & 7 deletions pipelines/utils/crawler_cgu/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,34 +6,36 @@
from enum import Enum

class constants(Enum): # pylint: disable=c0103

# ! ================================ CGU - Cartão de Pagamento ===========================================
"""
Constant values for the br_cgu_cartao_pagamento project
"""

TABELA = {
"microdados_governo_federal" : {
"INPUT_DATA" : "/tmp/input/microdados_governo_federal",
"OUTPUT_DATA" : "/tmp/output/microdados_governo_federal",
"INPUT" : "/tmp/input/microdados_governo_federal",
"OUTPUT" : "/tmp/output/microdados_governo_federal",
"URL" : "https://portaldatransparencia.gov.br/download-de-dados/cpgf/",
"READ" : "_CPGF",
"ONLY_ONE_FILE" : False},

"microdados_compras_centralizadas" : {
"INPUT_DATA" : "/tmp/input/microdados_compras_centralizadas",
"OUTPUT_DATA" : "/tmp/output/microdados_compras_centralizadas",
"INPUT" : "/tmp/input/microdados_compras_centralizadas",
"OUTPUT" : "/tmp/output/microdados_compras_centralizadas",
"URL" : "https://portaldatransparencia.gov.br/download-de-dados/cpcc/",
"READ" : "_CPGFComprasCentralizadas",
"ONLY_ONE_FILE" : False},

"microdados_defesa_civil" : {
"INPUT_DATA" : "/tmp/input/microdados_defesa_civil",
"OUTPUT_DATA" : "/tmp/output/microdados_defesa_civil",
"INPUT" : "/tmp/input/microdados_defesa_civil",
"OUTPUT" : "/tmp/output/microdados_defesa_civil",
"URL" : "https://portaldatransparencia.gov.br/download-de-dados/cpdc/",
"READ" : "_CPDC",
"ONLY_ONE_FILE" : False}
}

# ! ============================================== CGU - Servidores Públicos do Executivo Federal ==============================================
# ! ================================ CGU - Servidores Públicos do Executivo Federal ===========================================
URL_SERVIDORES = "http://portaldatransparencia.gov.br/download-de-dados/servidores/"

TABELA_SERVIDORES = {
Expand Down Expand Up @@ -126,3 +128,50 @@ class constants(Enum): # pylint: disable=c0103
"OUTPUT": "/tmp/output/cgu_servidores/cadastro_servidores",
},
}

# ! ================================ CGU - Licitação e Contrato ===========================================

TABELA_LICITACAO_CONTRATO = {
"licitacao": {
"URL": "https://portaldatransparencia.gov.br/download-de-dados/licitacoes/",
"INPUT": "/tmp/input/cgu_licitacao_contrato/licitacao",
"OUTPUT": "/tmp/output/cgu_licitacao_contrato/licitacao",
"READ": "_Licitação.csv",
},
"licitacao_participante": {
"URL": "https://portaldatransparencia.gov.br/download-de-dados/licitacoes/",
"INPUT": "/tmp/input/cgu_licitacao_contrato/licitacao_participante",
"OUTPUT": "/tmp/output/cgu_licitacao_contrato/licitacao_participante",
"READ": "_ParticipantesLicitação.csv",
},
"licitacao_item": {
"URL": "https://portaldatransparencia.gov.br/download-de-dados/licitacoes/",
"INPUT": "/tmp/input/cgu_licitacao_contrato/licitacao_item",
"OUTPUT": "/tmp/output/cgu_licitacao_contrato/licitacao_item",
"READ": "_ItemLicitação.csv",
},
"licitacao_empenho": {
"URL": "https://portaldatransparencia.gov.br/download-de-dados/licitacoes/",
"INPUT": "/tmp/input/cgu_licitacao_contrato/licitacao_empenho",
"OUTPUT": "/tmp/output/cgu_licitacao_contrato/licitacao_empenho",
"READ": "_EmpenhosRelacionados.csv",
},
"contrato_compra": {
"URL": "https://portaldatransparencia.gov.br/download-de-dados/compras/",
"INPUT": "/tmp/input/cgu_licitacao_contrato/contrato_compra",
"OUTPUT": "/tmp/output/cgu_licitacao_contrato/contrato_compra",
"READ": "_Compras.csv",
},
"contrato_item": {
"URL": "https://portaldatransparencia.gov.br/download-de-dados/compras/",
"INPUT": "/tmp/input/cgu_licitacao_contrato/contrato_item",
"OUTPUT": "/tmp/output/cgu_licitacao_contrato/contrato_item",
"READ": "_ItemCompra.csv",
},
"contrato_termo_aditivo": {
"URL": "https://portaldatransparencia.gov.br/download-de-dados/compras/",
"INPUT": "/tmp/input/cgu_licitacao_contrato/contrato_termo_aditivo",
"OUTPUT": "/tmp/output/cgu_licitacao_contrato/contrato_termo_aditivo",
"READ": "_TermoAditivo.csv",
},
}
Loading

0 comments on commit 285f093

Please sign in to comment.