Esempio n. 1
0
 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
Esempio n. 2
0
 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 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)
Esempio n. 4
0
    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