def com_votacao(proposicoes): votadas = [] for prop in proposicoes: vot = camaraws.obter_votacao(prop['id'], prop['tipo'], prop['num'], prop['ano']) if vot != None: votadas.append(prop) return votadas
def com_votacao(proposicoes): """Verifica quais proposições possuem votações no web service da câmara É somente sobre essas proposições que faremos nossas análises Essa verificação é feita invocando o web service da câmara Argumentos: proposicoes -- lista de proposições; cada proposição é um dicionário com chaves \in {id, tipo, num, ano}; chaves e valores são strings Retorna: Lista com proposições que apresentam lista de votações Cada proposição é um dicionário com chaves \in {id, tipo, num, ano}; chaves e valores são strings """ votadas = [] for prop in proposicoes: print "requisitando " + prop['id'] vot = camaraws.obter_votacao(prop['tipo'], prop['num'], prop['ano']) if vot != None: votadas.append(prop) return votadas
def cria_bd_camara_deputados(arquivo_ids=IDS_VOTADAS): """Cria o banco de dados da câmara dos deputados em 'resultados/camara.db' Argumentos: arquivo_ids -- arquivo com a listagem de "id: tipo num/ano" (uma entrada por linha, suportando comentários com #) a função utilizará esses ids para realizar chamadas ao web service da câmara e obter as votações o valor defualt é o arquivo IDS_VOTADAS; outro arquivo útil é o IDS_QUE_EXISTEM (que pode ser criado com o módulo ids_que_existem) """ props = [] lista_proposicoes = ids_que_existem.parse_txt(arquivo_ids) for iprop in lista_proposicoes: print "AVALIANDO %s %s %s" % (iprop["tipo"], iprop["num"], iprop["ano"]) p = camaraws.obter_votacao( iprop["tipo"], iprop["num"], iprop["ano"] ) # Obtém proposição e suas votações do web service if p != None: props.append(p) print "Agora sim gerando o banco" gerador = GeradorBD(props, "resultados/camara.db") gerador.gera_bd()
def cria_bd_camara_deputados(arquivo_ids=IDS_VOTADAS): """Cria o banco de dados da câmara dos deputados em 'resultados/camara.db' Argumentos: arquivo_ids -- arquivo com a listagem de "id: tipo num/ano" (uma entrada por linha, suportando comentários com #) a função utilizará esses ids para realizar chamadas ao web service da câmara e obter as votações o valor defualt é o arquivo IDS_VOTADAS; outro arquivo útil é o IDS_QUE_EXISTEM (que pode ser criado com o módulo ids_que_existem) """ props = [] lista_proposicoes = ids_que_existem.parse_txt(arquivo_ids) for iprop in lista_proposicoes: print 'AVALIANDO %s %s %s' % (iprop['tipo'], iprop['num'], iprop['ano']) p = camaraws.obter_votacao( iprop['tipo'], iprop['num'], iprop['ano']) # Obtém proposição e suas votações do web service if p != None: props.append(p) print 'Agora sim gerando o banco' gerador = GeradorBD(props, 'resultados/camara.db') gerador.gera_bd()
def cria_bd_camara_deputados(arquivo_ids=IDS_VOTADAS): """Creates the Chamber od Deputies's database on 'resultados/camara.db' Arguments: arquivo_ids -- > File with the list of "id: tipo num/ano" (one entry per line, supporting comments with #). > The function will use these ids to make calls to the web service and get the camera polls. > The default value is the IDS_VOTADAS file. > Another useful file is IDS_QUE_EXISTEM (which can be created with ids_que_existem module). """ props = [] lista_proposicoes = ids_que_existem.parse_txt(arquivo_ids) for iprop in lista_proposicoes: print 'AVALIANDO %s %s %s' % (iprop['tipo'],iprop['num'],iprop['ano']) # Proposition and get their votes from the web service: p = camaraws.obter_votacao(iprop['tipo'], iprop['num'],iprop['ano']) if p != None: props.append(p) print 'Agora sim gerando o banco' gerador = GeradorBD(props, 'resultados/camara.db') gerador.gera_bd()
import proposicoes import camaraws import partidos import sys party1 = sys.argv[1] party2 = sys.argv[2] # Identification of propositions voted on in 2011 voted = proposicoes.parse() # List of propositions with their respective votes proposicoes = [] # Total analyzed votes votes_number = 0 for propositions in voted: print('Analisando proposição ' + propositions['id']) # Get voting web service votes_propositions = camaraws.obter_votacao(propositions['tipo'], propositions['num'], propositions['ano']) votes_number += len(votes_propositions.votacoes) proposicoes.append(votes_propositions) similarity = partidos.semelhanca(party1, party2, proposicoes) print('Semelhança entre %s e %s = %.2f%s, baseado em %s votações de 2011' % (party1, party2, similarity*100, '%', votes_number))
# -*- coding: utf-8 -*- # # Pequeno script que baixa as PECs de 2011 # Mostra votos agregados por partido import camaraws pecs = [] # PEC da música (isenção fiscal para músicas e artistas brasileiros) # http://www.camara.gov.br/proposicoesWeb/fichadetramitacao?idProposicao=357094 # (a primeira vista me parece absurdo que algo assim deva estar na constituição) prop_id = '357094' tipo = 'pec' num = '98' ano = '2007' pecs.append(camaraws.obter_votacao(prop_id, tipo, num, ano)) # prorroga a vigência da DRU até 31 de dezembro de 2015 # http://www.camara.gov.br/proposicoesWeb/fichadetramitacao?idProposicao=513496 prop_id = '513496' tipo = 'pec' num = '61' ano = '2011' pecs.append(camaraws.obter_votacao(prop_id, tipo, num, ano)) for prop in pecs: print(prop) for votacao in prop.votacoes: print('************') print(votacao) dic = votacao.por_partido() for partido, voto in dic.items():
#!/usr/bin/python3.2 # -*- coding: utf-8 -*- # # Verifica a diferença entre dois partidos baseado nas proposições votadas em 2011 import proposicoes import camaraws import partidos import sys partido1 = sys.argv[1] partido2 = sys.argv[2] votadas = proposicoes.parse() # identificação das proposições votadas em 2011 proposicoes = [] # listagem das proposições com suas respectivas votações n_vot = 0 # total de votações analisadas for prop in votadas: print('Analisando proposição ' + prop['id']) prop_vot = camaraws.obter_votacao(prop['id'], prop['tipo'], prop['num'], prop['ano']) # obtêm votação do web service n_vot += len(prop_vot.votacoes) proposicoes.append(prop_vot) sem = partidos.semelhanca(partido1, partido2, proposicoes) print('Semelhança entre %s e %s = %.2f%s, baseado em %s votações de 2011' % (partido1, partido2, sem*100, '%', n_vot))
import camaraws import partidos import sys party1 = sys.argv[1] party2 = sys.argv[2] # Identification of propositions voted on in 2011 voted = proposicoes.parse() # List of propositions with their respective votes proposicoes = [] # Total analyzed votes votes_number = 0 for propositions in voted: print('Analisando proposição ' + propositions['id']) # Get voting web service votes_propositions = camaraws.obter_votacao(propositions['tipo'], propositions['num'], propositions['ano']) votes_number += len(votes_propositions.votacoes) proposicoes.append(votes_propositions) similarity = partidos.semelhanca(party1, party2, proposicoes) print('Semelhança entre %s e %s = %.2f%s, baseado em %s votações de 2011' % (party1, party2, similarity * 100, '%', votes_number))
import partidos import sys from partidos import PARTIDOS length = len(PARTIDOS) # PRTB, PRP, PMN, PSL, PHS deram problema, pois não aparecem em algumas votações # TODO: o que fazer nesses casos? length = len(PARTIDOS) # recuperação das proposições votadas = proposicoes.parse() # identificação das proposições votadas em 2011 proposicoes = [] # listagem das proposições com suas respectivas votações n_vot = 0 # total de votações analisadas for prop in votadas: print('Analisando proposição ' + prop['id']) prop_vot = camaraws.obter_votacao( prop['tipo'], prop['num'], prop['ano']) # obtêm votação do web service n_vot += len(prop_vot.votacoes) proposicoes.append(prop_vot) # análise das semelhanças print( 'Análise baseada em %d votações de %d proposições, votadas na camâra em 2011' % (n_vot, len(votadas))) for i in range(0, length): for j in range(i + 1, length): sem = partidos.semelhanca(PARTIDOS[i], PARTIDOS[j], proposicoes) print('Semelhança entre %s e %s = %.2f%s' % (PARTIDOS[i], PARTIDOS[j], sem * 100, '%'))
# along with this program. If not, see <http://www.gnu.org/licenses/>. """Script pecs Download the PECs 2011 Shows aggregate votes by party""" from __future__ import unicode_literals import camaraws pecs = [] # PEC music (tax exemption for music and Brazilian artists) # http://www.camara.gov.br/proposicoesWeb/fichadetramitacao?idProposicao=357094 type = 'pec' number = '98' year = '2007' pecs.append(camaraws.obter_votacao(type, number, year)) # Extending the validity of DRU until December 31, 2015 # http://www.camara.gov.br/proposicoesWeb/fichadetramitacao?idProposicao=513496 type = 'pec' number = '61' year = '2011' pecs.append(camaraws.obter_votacao(type, number, year)) # Print propositions for propositions in pecs: print(propositions) for voting in propositions.votacoes: print('************') print(voting)
"""Script pecs Download the PECs 2011 Shows aggregate votes by party""" from __future__ import unicode_literals import camaraws pecs = [] # PEC music (tax exemption for music and Brazilian artists) # http://www.camara.gov.br/proposicoesWeb/fichadetramitacao?idProposicao=357094 type = 'pec' number = '98' year = '2007' pecs.append(camaraws.obter_votacao(type, number, year)) # Extending the validity of DRU until December 31, 2015 # http://www.camara.gov.br/proposicoesWeb/fichadetramitacao?idProposicao=513496 type = 'pec' number = '61' year = '2011' pecs.append(camaraws.obter_votacao(type, number, year)) # Print propositions for propositions in pecs: print(propositions) for voting in propositions.votacoes: print('************') print(voting)
"PSC", "PTB", "PDT", "PSB", "PSB", "PPS", "PRB", ] # PRTB, PRP, PMN, PSL, PHS deram problema, pois não aparecem em algumas votações # TODO: o que fazer nesses casos? length = len(PARTIDOS) # recuperação das proposições votadas = proposicoes.parse() # identificação das proposições votadas em 2011 proposicoes = [] # listagem das proposições com suas respectivas votações n_vot = 0 # total de votações analisadas for prop in votadas: print("Analisando proposição " + prop["id"]) prop_vot = camaraws.obter_votacao( prop["id"], prop["tipo"], prop["num"], prop["ano"] ) # obtêm votação do web service n_vot += len(prop_vot.votacoes) proposicoes.append(prop_vot) # análise das semelhanças print("Análise baseada em %d votações de %d proposições, votadas na camâra em 2011" % (n_vot, len(votadas))) for i in range(0, length): for j in range(i + 1, length): sem = partidos.semelhanca(PARTIDOS[i], PARTIDOS[j], proposicoes) print("Semelhança entre %s e %s = %.2f%s" % (PARTIDOS[i], PARTIDOS[j], sem * 100, "%"))
"""Script florestal Download voting forest code Shows aggregate votes by party If you flag -uf shows votes by UF""" from __future__ import unicode_literals import camaraws import sys # Forest Code # http://www.camara.gov.br/proposicoesWeb/fichadetramitacao?idProposicao=17338 type = 'pl' number = '1876' year = '1999' proposition = camaraws.obter_votacao(type, number, year) txt = str(proposition) print type(txt) # Print propositions for votations in proposition.votacoes: print('************') print(votations) if (len(sys.argv)>1 and sys.argv[1] == '-uf'): dic = votations.por_uf() else: dic = votations.by_party() for key, vote in dic.items():
Baixa as PECs de 2011 Mostra votos agregados por partido """ from __future__ import unicode_literals import camaraws pecs = [] # PEC da música (isenção fiscal para músicas e artistas brasileiros) # http://www.camara.gov.br/proposicoesWeb/fichadetramitacao?idProposicao=357094 # (a primeira vista me parece absurdo que algo assim deva estar na constituição) tipo = 'pec' num = '98' ano = '2007' pecs.append(camaraws.obter_votacao(tipo, num, ano)) # prorroga a vigência da DRU até 31 de dezembro de 2015 # http://www.camara.gov.br/proposicoesWeb/fichadetramitacao?idProposicao=513496 tipo = 'pec' num = '61' ano = '2011' pecs.append(camaraws.obter_votacao(tipo, num, ano)) for prop in pecs: print(prop) for votacao in prop.votacoes: print('************') print(votacao) dic = votacao.por_partido() for partido, voto in dic.items(): print("%s: \t Sim: %s \t Não: %s \t Abstenções: %s" % (partido, voto.sim, voto.nao, voto.abstencao))
#!/usr/bin/python3.2 # -*- coding: utf-8 -*- # # Pequeno script que baixa a votação do código florestal # Mostra votos agregados por partido # Se tiver flag -uf, mostra votos por UF import camaraws import sys # código florestal # http://www.camara.gov.br/proposicoesWeb/fichadetramitacao?idProposicao=17338 prop_id = '17338' tipo = 'pl' num = '1876' ano = '1999' prop = camaraws.obter_votacao(prop_id, tipo, num, ano) print(prop) for votacao in prop.votacoes: print('************') print(votacao) if (len(sys.argv)>1 and sys.argv[1] == '-uf'): dic = votacao.por_uf() else: dic = votacao.por_partido() for key, voto in dic.items(): print("%s: \t Sim: %s \t Não: %s \t Abstenções: %s" % (key, voto.sim, voto.nao, voto.abstencao))
"""Script florestal Baixa a votação do código florestal Mostra votos agregados por partido Se tiver flag -uf, mostra votos por UF """ from __future__ import unicode_literals import camaraws import sys # código florestal # http://www.camara.gov.br/proposicoesWeb/fichadetramitacao?idProposicao=17338 tipo = 'pl' num = '1876' ano = '1999' prop = camaraws.obter_votacao(tipo, num, ano) txt = str(prop) print type(txt) #print prop for votacao in prop.votacoes: print('************') print(votacao) if (len(sys.argv) > 1 and sys.argv[1] == '-uf'): dic = votacao.por_uf() else: dic = votacao.por_partido() for key, voto in dic.items(): sim = voto.sim nao = voto.nao abst = voto.abstencao
# along with this program. If not, see <http://www.gnu.org/licenses/>. """Script florestal Download voting forest code Shows aggregate votes by party If you flag -uf shows votes by UF""" from __future__ import unicode_literals import camaraws import sys # Forest Code # http://www.camara.gov.br/proposicoesWeb/fichadetramitacao?idProposicao=17338 type = 'pl' number = '1876' year = '1999' proposition = camaraws.obter_votacao(type, number, year) txt = str(proposition) print type(txt) # Print propositions for votations in proposition.votacoes: print('************') print(votations) if (len(sys.argv) > 1 and sys.argv[1] == '-uf'): dic = votations.por_uf() else: dic = votations.by_party() for key, vote in dic.items():
"""Script florestal Baixa a votação do código florestal Mostra votos agregados por partido Se tiver flag -uf, mostra votos por UF """ from __future__ import unicode_literals import camaraws import sys # código florestal # http://www.camara.gov.br/proposicoesWeb/fichadetramitacao?idProposicao=17338 tipo = 'pl' num = '1876' ano = '1999' prop = camaraws.obter_votacao(tipo, num, ano) txt = str(prop) print type(txt) #print prop for votacao in prop.votacoes: print('************') print(votacao) if (len(sys.argv)>1 and sys.argv[1] == '-uf'): dic = votacao.por_uf() else: dic = votacao.por_partido() for key, voto in dic.items(): sim = voto.sim nao = voto.nao abst = voto.abstencao
Baixa as PECs de 2011 Mostra votos agregados por partido """ from __future__ import unicode_literals import camaraws pecs = [] # PEC da música (isenção fiscal para músicas e artistas brasileiros) # http://www.camara.gov.br/proposicoesWeb/fichadetramitacao?idProposicao=357094 # (a primeira vista me parece absurdo que algo assim deva estar na constituição) tipo = 'pec' num = '98' ano = '2007' pecs.append(camaraws.obter_votacao(tipo, num, ano)) # prorroga a vigência da DRU até 31 de dezembro de 2015 # http://www.camara.gov.br/proposicoesWeb/fichadetramitacao?idProposicao=513496 tipo = 'pec' num = '61' ano = '2011' pecs.append(camaraws.obter_votacao(tipo, num, ano)) for prop in pecs: print(prop) for votacao in prop.votacoes: print('************') print(votacao) dic = votacao.por_partido() for partido, voto in dic.items(): print("%s: \t Sim: %s \t Não: %s \t Abstenções: %s" %