def salvar_no_bd(self): """Salva uma instância de AnalisadorTemporal no banco de dados. Este método poderá ser excluído quando o json antigo não for mais usado.""" # 'modat' é o modelo análise temporal que vou salvar. modat = AnaliseTemporal() modat.casa_legislativa = self.casa_legislativa modat.periodicidade = self.periodicidade modat.data_inicio = self.ini modat.data_fim = self.fim modat.votacoes = self.votacoes modat.partidos = self.partidos modat.area_total = self.area_total # Criar um hash para servir de primary key desta análise temporal: modat.hash_id = self._calcula_hash() # Salvar no bd, ainda sem as análises modat.save() # Salvar as análises por período no bd: for ap in self.analisadores_periodo: modap = AnalisePeriodo() modap.casa_legislativa = ap.casa_legislativa modap.data_inicio = ap.ini.strftime("%Y-%m-%d") modap.data_fim = ap.fim.strftime("%Y-%m-%d") # votacoes = self.votacoes # partidos = self.partidos modap.analiseTemporal = modat posicoes = [] for part, coord in ap.coordenadas.items(): posicao = PosicaoPartido() # Cria PosicaoPartido no bd posicao.x = coord[0] posicao.y = coord[1] posicao.partido = models.Partido.objects.filter(nome=part)[0] posicao.tamanho = ap.tamanhos_partidos.get(part, 0) posicao.presenca = 0 # TODO: incluir presença aqui. posicao.save() # Salva PosicaoPartido no bd posicoes.append(posicao) modap.save() modap.posicoes = posicoes modap.save() # Salva a análise do período no bd, associada a uma AnalisadorTemporal
def analisa(self): """Retorna instância de AnalisePeriodo""" self._calcula_legislaturas_2d() self._analisa_partidos() analisePeriodo = AnalisePeriodo() analisePeriodo.casa_legislativa = self.casa_legislativa analisePeriodo.periodo = self.periodo analisePeriodo.partidos = self.partidos analisePeriodo.votacoes = self.votacoes analisePeriodo.num_votacoes = self.num_votacoes analisePeriodo.pca = self.pca analisePeriodo.tamanhos_partidos = self.tamanhos_partidos analisePeriodo.coordenadas_legislaturas = self.coordenadas_legislaturas analisePeriodo.coordenadas_partidos = self.coordenadas_partidos analisePeriodo.legislaturas_por_partido = self.legislaturas_por_partido return analisePeriodo
def analisa(self): """Retorna AnalisePeriodo""" self._calcula_partidos_2d() analisePeriodo = AnalisePeriodo() analisePeriodo.casa_legislativa = self.casa_legislativa analisePeriodo.periodo = self.periodo analisePeriodo.partidos = self.partidos analisePeriodo.votacoes = self.votacoes analisePeriodo.num_votacoes = self.num_votacoes analisePeriodo.tamanhos_partidos = self.tamanhos_partidos analisePeriodo.presencas_partidos = self.presencas_partidos analisePeriodo.soma_dos_tamanhos_dos_partidos = self.soma_dos_tamanhos_dos_partidos analisePeriodo.pca_partido = self.pca_partido analisePeriodo.coordenadas = self.coordenadas return analisePeriodo
def setUp(self): self.casa = models.CasaLegislativa.objects.get(nome_curto='conv') for partido in JsonAnaliseGeneratorTest.importer.partidos: if partido.nome == convencao.GIRONDINOS: self.girondinos = partido if partido.nome == convencao.JACOBINOS: self.jacobinos = partido if partido.nome == convencao.MONARQUISTAS: self.monarquistas = partido self.analiseTemporal = AnaliseTemporal() self.analiseTemporal.casa_legislativa = self.casa self.analiseTemporal.periodicidade = models.BIENIO self.analiseTemporal.area_total = 1 self.analiseTemporal.analises_periodo = [] ap1 = AnalisePeriodo() periodos_retriever = utils.PeriodosRetriever(self.casa, models.BIENIO) periodos = periodos_retriever.get_periodos() ap1.casa_legislativa = None ap1.periodo = periodos[0] ap1.partidos = [ self.girondinos, self.jacobinos, self.monarquistas ] ap1.votacoes = [] ap1.num_votacoes = 0 ap1.tamanhos_partidos = {self.girondinos : 3, self.jacobinos : 3, self.monarquistas : 3} ap1.soma_dos_tamanhos_dos_partidos = 3*3 ap1.pca = PCAStub() ap1.coordenadas_partidos = {} ap1.coordenadas_partidos[convencao.JACOBINOS] = [-0.4,0.3] ap1.coordenadas_partidos[convencao.GIRONDINOS] = [0.9,-0.3] ap1.coordenadas_partidos[convencao.MONARQUISTAS] = [0.2,0.1] ap1.legislaturas_por_partido = JsonAnaliseGeneratorTest.importer.legs ap1.coordenadas_legislaturas = {} # legislatura.id => [x,y] for p, legs in ap1.legislaturas_por_partido.items(): for leg in legs: ap1.coordenadas_legislaturas[leg.id] = [random(), random()] self.analiseTemporal.analises_periodo.append(ap1)
def analisa(self): """Retorna instância de AnalisePeriodo""" self._calcula_parlamentares_2d() self._analisa_partidos() analisePeriodo = AnalisePeriodo() analisePeriodo.casa_legislativa = self.casa_legislativa analisePeriodo.periodo = self.periodo analisePeriodo.partidos = self.partidos analisePeriodo.votacoes = self.votacoes analisePeriodo.num_votacoes = self.num_votacoes analisePeriodo.pca = self.pca analisePeriodo.tamanhos_partidos = self.tamanhos_partidos analisePeriodo.coordenadas_parlamentares = \ self.coordenadas_parlamentares analisePeriodo.coordenadas_partidos = self.coordenadas_partidos analisePeriodo.parlamentares_por_partido = \ self.parlamentares_por_partido return analisePeriodo
def analisa(self): """Returns instance of AnalisePeriodo""" self._calcula_legislaturas_2d() self._analisa_partidos() analisePeriodo = AnalisePeriodo() analisePeriodo.casa_legislativa = self.casa_legislativa analisePeriodo.periodo = self.periodo analisePeriodo.partidos = self.partidos analisePeriodo.votacoes = self.votacoes analisePeriodo.num_votacoes = self.num_votacoes analisePeriodo.pca = self.pca analisePeriodo.tamanhos_partidos = self.tamanhos_partidos analisePeriodo.coordenadas_legislaturas = self.coordenadas_legislaturas analisePeriodo.coordenadas_partidos = self.coordenadas_partidos analisePeriodo.legislaturas_por_partido = self.legislaturas_por_partido return analisePeriodo
def salvar_no_bd(self): """Salva uma instância de AnalisadorTemporal no banco de dados. Este método poderá ser excluído quando o json antigo não for mais usado.""" # 'modat' é o modelo análise temporal que vou salvar. modat = AnaliseTemporal() modat.casa_legislativa = self.casa_legislativa modat.periodicidade = self.periodicidade modat.data_inicio = self.ini modat.data_fim = self.fim modat.votacoes = self.votacoes modat.partidos = self.partidos modat.area_total = self.area_total # Criar um hash para servir de primary key desta análise temporal: modat.hash_id = self._calcula_hash() # Salvar no bd, ainda sem as análises modat.save() # Salvar as análises por período no bd: for ap in self.analisadores_periodo: modap = AnalisePeriodo() modap.casa_legislativa = ap.casa_legislativa modap.data_inicio = ap.ini.strftime('%Y-%m-%d') modap.data_fim = ap.fim.strftime('%Y-%m-%d') #votacoes = self.votacoes #partidos = self.partidos modap.analiseTemporal = modat posicoes = [] for part, coord in ap.coordenadas.items(): posicao = PosicaoPartido() # Cria PosicaoPartido no bd posicao.x = coord[0] posicao.y = coord[1] posicao.partido = models.Partido.objects.filter(nome=part)[0] posicao.tamanho = ap.tamanhos_partidos.get(part,0) posicao.presenca = 0 # TODO: incluir presença aqui. posicao.save() # Salva PosicaoPartido no bd posicoes.append(posicao) modap.save() modap.posicoes = posicoes modap.save() # Salva a análise do período no bd, associada a uma AnalisadorTemporal
def analisa(self): """Retorna instância de AnalisePeriodo""" self._calcula_legislaturas_2d() self._calcula_centroides_partidos() analisePeriodo = AnalisePeriodo() analisePeriodo.casa_legislativa = self.casa_legislativa analisePeriodo.periodo = self.periodo analisePeriodo.partidos = self.partidos analisePeriodo.votacoes = self.votacoes analisePeriodo.num_votacoes = self.num_votacoes analisePeriodo.pca = self.pca analisePeriodo.tamanhos_partidos = self.tamanhos_partidos analisePeriodo.soma_dos_tamanhos_dos_partidos = self.soma_dos_tamanhos_dos_partidos analisePeriodo.coordenadas_legislaturas = self.coordenadas_legislaturas analisePeriodo.coordenadas_partidos = self.coordenadas_partidos analisePeriodo.legislaturas_por_partido = self.legislaturas_por_partido return analisePeriodo
def setUp(self): self.casa = models.CasaLegislativa.objects.get(nome_curto='conv') for partido in JsonAnaliseGeneratorTest.importer.partidos: if partido.nome == convencao.GIRONDINOS: self.girondinos = partido if partido.nome == convencao.JACOBINOS: self.jacobinos = partido if partido.nome == convencao.MONARQUISTAS: self.monarquistas = partido self.analiseTemporal = AnaliseTemporal() self.analiseTemporal.casa_legislativa = self.casa self.analiseTemporal.periodicidade = models.BIENIO self.analiseTemporal.area_total = 1 self.analiseTemporal.analises_periodo = [] ap1 = AnalisePeriodo() periodos_retriever = utils.PeriodosRetriever(self.casa, models.BIENIO) periodos = periodos_retriever.get_periodos() ap1.casa_legislativa = None ap1.periodo = periodos[0] ap1.partidos = [self.girondinos, self.jacobinos, self.monarquistas] ap1.votacoes = [] ap1.num_votacoes = 0 ap1.tamanhos_partidos = { self.girondinos: 3, self.jacobinos: 3, self.monarquistas: 3 } ap1.soma_dos_tamanhos_dos_partidos = 3 * 3 ap1.pca = PCAStub() ap1.coordenadas_partidos = {} ap1.coordenadas_partidos[convencao.JACOBINOS] = [-0.4, 0.3] ap1.coordenadas_partidos[convencao.GIRONDINOS] = [0.9, -0.3] ap1.coordenadas_partidos[convencao.MONARQUISTAS] = [0.2, 0.1] ap1.legislaturas_por_partido = JsonAnaliseGeneratorTest.importer.legs ap1.coordenadas_legislaturas = {} # legislatura.id => [x,y] for p, legs in ap1.legislaturas_por_partido.items(): for leg in legs: ap1.coordenadas_legislaturas[leg.id] = [random(), random()] self.analiseTemporal.analises_periodo.append(ap1)