Closed cuducos closed 5 years ago
Olá, Cuducos!
Você poderia, por favor, esclarecer quais são exatamente os arquivos em que você encontra esse problema? Dei uma olhada no CSV de 2018, que talvez seja esse do qual você fez o screenshot, mas não consegui achar os campos em branco...
Abraço!
Fabricio Rocha Equipe Dados Abertos - Câmara
Dei uma olhada no CSV de 2018, que talvez seja esse do qual você fez o screenshot, mas não consegui achar os campos em branco...
O do screenshot é o de 2019. Nesse arquivo nuLegislatura
está em branco nas seguintes linhas:
Salve, Cuducos!
Desculpe a demora na resposta. Estive em atestado médico na semana passada.
O problema óbvio que só consegui enxergar agora é que o nome do campo nuLegislatura
é um erro, e vindo da própria base de dados. Já existe um campo codLegislatura
, no qual é colocado como esperado o número da legislatura (e era ele que eu estava olhando). Esse campo nuLegislatura
não traz o identificador da legislatura, como o nome indica, e na base está com valor 0 em vários registros, aparentemente sem um critério claro.
Consultando a base diretamente, vimos que quando o nuLegislatura
é 0 o codLegislatura
vem como 56 ou nulo -- e esses casos de nulo são de despesas registradas em nome de lideranças partidárias. Fora isso, não parecem claros os critérios.
Vou encaminhar a questão ao pessoal responsável pelos dados, e quando tiver informações atualizo aqui.
Obrigado e abraço!
Fabricio Rocha Equipe Dados Abertos - Câmara
Opa, espero que estejas melhor, Fabricio! Ficamos no aguardo aqui, muito obrigado : )
Obrigado, Cuducos!
Consegui umas respostas da área responsável pelo sistema de registro das despesas cobertas pela Cota.
1 - O nuLegislatura
está realmente com um problema na carga de dados. Foi detectado e corrigido hoje (quinta) pela manhã graças ao seu questionamento, com efeitos sobre os dados disponíveis a partir desta sexta-feira. Não temos aqui na equipe acesso à base da qual saem esses dados, apenas a uma tabela, nem somos nós que definimos as queries que a alimentam. Se você perceber algum problema ou tiver alguma observação sobre essa atualização, por favor avise outra vez!
2 - Observei que no arquivo de 2018 havia despesas em que o codLegislatura
já vinha como 56 (a atual legislatura, iniciada em 02/02/2019). Perguntei sobre isso e a explicação é que os dados de legislatura que são expostos nos arquivos de despesas parlamentares vêm, exclusivamente, de uma view com dados sobre deputados, na qual a legislatura exibida é sempre a última em que aquele deputado esteve em exercício. É por isso, também, que não há informação sobre legislatura nos registros de despesas de lideranças.
Espero que as informações ajudem em alguma coisa. Obrigado mais uma vez e abraço!
Fabricio Rocha Equipe Dados Abertos - Câmara
Muito obrigado, Fabricio. Amanhã testo e se estiver tudo certo fechamos essa issue!
Oi, Fabricio. Desculpe a demora.
Dei uma olhada por amostragem e parecia tudo ok. No entanto, testei aqui com um script e aparentemente ainda existem linhas que tem nuCarteiraParlamentar
(ou seja, não é gasto de liderança/bancada), mas não tem nuLegislatura
:
for path in (f'data/Ano-{year}.csv' for year in range(2009, 2019 + 1):
with open(path) as fobj:
reader = csv.DictReader(fobj, delimiter=';')
for line_number, line in enumerate(reader, 2): # line 1 is the header
if line['nuCarteiraParlamentar'] and not line['nuLegislatura']:
with open('log.txt', 'w') as log:
log.write(f'{path} {line_number}\n')
Esse código produziu o seguinte arquivo, contendo o nome do CSV e a linha que tem nuCarteiraParlamentar
mas não tem nuLegislatura
: log.txt
Resumindo, considerando todos os CSVs (de 2009 até 2019), ainda existem mais de 1 milhão de registros (para ser preciso, 1.182.075 registros) que ao nosso entender eram para ter nuLegislatura
, mas não e não tem, como por exemplo a linha 218.343 do Ano-2013.csv
:
"LINCOLN PORTELA";"74585";"243";"";"MG";"PR";"56";"3";"COMBUSTÍVEIS E LUBRIFICANTES.";"1";"Veículos Automotores";"ACK COM. DE COMBUSTÍVEIS E CONVENIENCIA LTDA";"039.729.420/0063-4";"236403";"0";"2013-12-10T00:00:00";"100";"0";"100";"12";"2013";"0";"";"";"1082457";"";"";"1355";"5305721"
Se trata do gasto de responsabilidade de um parlamentar, com nuCarteiraParlamentar
234, mas sem nuLegislatura
.
Salve de novo, Cuducos!
Enviei novamente seu relato ao pessoal que cuida da base. A resposta foi de que existem 7 registros das legislaturas 51 e 52 que estão com a coluna em NULL
porque o procedimento usado para carga de dados na tabela só estava considerando registros a partir da legislatura 53. Foi feita uma nova alteração nesse procedimento, que deverá se refletir nos arquivos publicados a partir desta sexta-feira (15/03).
(Esses mais de 1 milhão de registros que você apontou não foram mencionados na resposta. Não sei a qual coluna a resposta se referiu; apenas presumo que seja a mesma nuLegislatura
que, como eu disse, tem cara de ser um erro na base, pois já existe outra coluna com o dado de legislatura).
Como diria o ex-presidente, mantê-lo-ei avisado! Abraço!
Fabricio Rocha Equipe Dados Abertos - Câmara
(Esses mais de 1 milhão de registros que você apontou não foram mencionados na resposta. Não sei a qual coluna a resposta se referiu; apenas presumo que seja a mesma nuLegislatura que, como eu disse, tem cara de ser um erro na base, pois já existe outra coluna com o dado de legislatura).
Sim, como o título da issue diz, aqui estou falando única e exclusivamente do campo nuLegislatura
. Mas, discordo em partes de ti quanto tu diz já existe outra coluna com o dado de legislatura. Herdando a documentação da época dos XMLs eu entendia que codLegislatura
e nuLegislatura
seriam dados diferentes (por mais que ambos sejam referentes à legislatura):
Elemento de Dado Nome do Dado Definição do Dado nuLegislatura Número da Legislatura Legislatura: Período de quatro anos coincidente com o mandato parlamentar dos Deputados Federais. No contexto da cota CEAP, representa o ano base de início da legislatura e é utilizado para compor a Carteira Parlamentar, pois esta poderá ser alterada à medida que se muda de Legislatura. codLegislatura Código da Legislatura Legislatura: Período de quatro anos coincidente com o mandato parlamentar dos Deputados Federais. No contexto da cota CEAP, o seu conteúdo representa o código identificador da Legislatura, que um número ordinal sequencial, alterado de um em um, a cada início de uma nova Legislatura (por exemplo, a Legislatura que iniciou em 2011 é a 54ª Legislatura).
O que não ficou claro: é um erro o campo nuLegislatura
vir em branco (ou com 0
) ou é uma mudança intentional?
Digo isso, pois seria uma pena ser uma mudança intencional: seguindo o exemplo de vocês mesmo, 2011 diz mais sobre uma legislatura do que 54, entende? 54 é código sequencial pouco significativo para humanos (mas muito útil para sistemas, eu sei), enquanto 2011 remete exatamente ao que o usuário da API/dados abertos quer saber.
Explorando a relação desses dois campos, ainda identifiquei diversas inconsistências. Analisando todos os CSVs, de 2009 até 2019, baixados no dia de hoje, reparei que existem os seguintes pares únicos de nuLegislatura
e codLegislatura
:
nuLegislatura |
codLegislatura |
---|---|
2007 | 41 |
2007 | 51 |
2015 | 51 |
2019 | 51 |
2011 | 51 |
2007 | 52 |
2015 | 52 |
2019 | 52 |
2011 | 52 |
1999 | 53 |
2011 | 53 |
2003 | 53 |
2019 | 53 |
2007 | 53 |
2015 | 53 |
2019 | 54 |
2007 | 54 |
2011 | 54 |
2015 | 54 |
54 | |
2019 | 55 |
2015 | 55 |
55 | |
2011 | 55 |
2019 | 56 |
56 | |
2007 | 56 |
2011 | 56 |
2015 | 56 |
Pelo meu entendimento, faria sentido ter os campos em branco (dada a discussão nessa issue), mas somente um par nuLegislatura
mais codLegislatura
para cada legislatura. Como vemos, não é o que acontece…
Salve, Cuducos!
54 é código sequencial pouco significativo para humanos (mas muito útil para sistemas, eu sei), enquanto 2011 remete exatamente ao que o usuário da API/dados abertos quer saber.
Não, não é só um "id". O "54", no caso, é o número oficial da legislatura, usado nas documentações e títulos oficiais das reuniões e etc, e denota exatamente o período que vai entre o dia seguinte ao da posse de uma turma de parlamentares eleitos e o último dia de mandato dessa turma. Nem sempre esse período foi de 4 anos. Essas datas são fornecidas pelo endpoint /legislaturas
. Na verdade, a inclusão desse campo nuLegislatura é que tem a finalidade de "id", ou, mais precisamente, de parte de um identificador, que é a carteira parlamentar. E há no mínimo um problema semântico com esse campo. Se ele se chamasse anoInicioLegislatura
teria um sentido mais claro (sem deixar de ser redundante).
Pelo meu entendimento, faria sentido ter os campos em branco (dada a discussão nessa issue), mas somente um par nuLegislatura mais codLegislatura para cada legislatura. Como vemos, não é o que acontece…
Essa lista que você fez tem discrepâncias realmente imensas. Essa questão eu também vou ter que repassar para o pessoal do sistema de Cotas e talvez até o Centro de Documentação, porque há claramente um problema com os dados em si.
é um erro o campo nuLegislatura vir em branco (ou com 0) ou é uma mudança intentional?
Se houve alguma decisão de zerar esses campos, eu não estou sabendo. Aparentemente é mesmo um erro (descontada a explicação sobre os registros referentes a lideranças). Vou aproveitar a mesma forma explícita que você usou para reencaminhar a questão...
Abraço!
Fabricio Rocha Equipe Dados Abertos - Câmara
O "54", no caso, é o número oficial da legislatura, usado nas documentações e títulos oficiais das reuniões e etc, e denota exatamente o período que vai entre o dia seguinte ao da posse de uma turma de parlamentares eleitos e o último dia de mandato dessa turma.
É isso que eu quis dizer. Ele denota. Como bom pythonista, denotar é um problema: _implícito é melhor do que explícito hahaha… Mas enfim, obrigado pela explicação, aprendi coisa nova : )
Sobre o erro então, aguardemos.
Salve de novo, Cuducos!
Cara, precisamos saber exatamente de quais arquivos ou endpoints você está obtendo esses dados.
Na base de dados que temos utilizado, um SELECT DISTINCT só listou os seguintes pares de codLegislatura
e nuLegislatura
:
codLegislatura | nuLegislatura |
---|---|
54 | 2011 |
53 | 2007 |
51 | 1999 |
0 | |
52 | 2003 |
56 | 2019 |
55 | 2015 |
Também não conseguimos encontrar, na mesma base, algum registro que não seja identificado como sendo de alguma liderança e que ainda assim tenha o campo nuLegislatura
vazio.
Você poderia verificar isso pra gente, por favor?
Abraço e obrigado!
Fabricio Rocha Equipe Dados Abertos - Câmara
Cara, precisamos saber exatamente de quais arquivos ou endpoints você está obtendo esses dados.
Esses:
Salve, Cuducos!
Obrigado pela informação. De fato havia um problema na query geradora dos arquivos: o codLegislatura vinha sendo calculado com base na data de ocorrência da despesa, mas o campo nuLegislatura não passava por esse recálculo.
A correção desse problema vai vir com uma alteração que talvez impacte o uso dos dados por vocês: os campos codLegislatura e nuLegislatura vão passar a corresponder à legislatura em curso quando a despesa foi/é compensada pela Câmara. Isto é, não vão mais ser os dados da última legislatura para a qual o deputado do registro foi eleito, o que nunca nos pareceu ter coerência e sentido. E assim que nos for possível, vamos corrigir também o partido e a UF do deputado, também para o momento em que a despesa foi ressarcida pela CEAP.
É possível que a correção da query diminua muito também o número de nulls no campo nuLegislatura nos registros de deputados e também resolva o problema dos nulls nas despesas feitas por lideranças. Por favor nos avise se detectar algo estranho. E se quiser discutir também a alteração dos dados de legislatura, claro.
Nessa revisão, também descobrimos 117 registros em que as datas de emissão do documento comprovante das despesas parecem ter sido registradas com erro. Pela base, descobrimos que já houve deputados que passaram dez anos esperando o ressarcimento, enquanto outros que já foram reembolsados por despesas que ainda vão acontecer daqui a nove milênios... Contactei a área de negócio, que demonstrou disposição em revisar esses registros.
Obrigado mais uma vez! Abraço!
Fabricio Rocha Equipe Dados Abertos - Câmara
Perfeito! Muito obrigado por todos os esclarecimentos. Existe uma data pra essa alteração, assim testo os novos CSVs e já fechamos essa issue ; )
Salve, Cuducos!
Os arquivos publicados hoje já estão alterados! Se você puder fazer os testes e dar o feedback, agradeço!!
Abraço!
Fabricio Rocha Equipe Dados Abertos - Câmara
Oi, Fabricio. Me desculpe a demora, semanas corridas por aqui. Testei e parece estar tudo ok agora!
Não temos mais registros com nuLegislatira
em branco 🎉
Muuuito obrigado pelo suporte : )
Bom dia,
Reparei que nos arquivos CSV da CEAP muitos parlamentares aparecem sem o campo
nuLegislatura
, como relatei em uma issue de um projeto do qual faço parte:Existe algum motivo para esse dado estar ausente?
Segue a lista de deputados (em todos os anos) que aparecem sem esse campo: