Skip to content

Commit

Permalink
Extracao de metodo #6
Browse files Browse the repository at this point in the history
  • Loading branch information
lopes05 committed Jun 11, 2018
1 parent 5fd3ead commit dd7d73f
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 27 deletions.
75 changes: 49 additions & 26 deletions radar_parlamentar/analises/grafico.py
Original file line number Diff line number Diff line change
Expand Up @@ -123,13 +123,9 @@ def _dict_cp2(self, ap):
def _dict_cp(self, ap, idx):
"""ap -- AnalisePeriodo; idx == 0 para cp1 and idx == 1 para cp2"""
dict_cp = {}
theta = self._set_theta(ap)
try:
theta = round(ap.theta, 0) % 180 + 90 * idx
except AttributeError:
theta = 0
try:
var_explicada = round(
ap.pca.eigen[idx] / ap.pca.eigen.sum() * 100, 1)
var_explicada = self.calculate_var_explicada(ap, idx)
if ap.pca.Vt is not None:
composicao = [round(el, 2)
for el in 100 * ap.pca.Vt[idx, :] ** 2]
Expand All @@ -143,6 +139,18 @@ def _dict_cp(self, ap, idx):
# o JsonGenerator não deveria entender dessas cosias.
return dict_cp

@classmethod
def calculate_var_explicada(self, ap, idx):
return round(ap.pca.eigen[idx] / ap.pca.eigen.sum() * 100, 1)

@classmethod
def _set_theta(self, ap):
try:
theta = round(ap.theta, 0) % 180 + 90 * idx
except AttributeError:
theta = 0
return theta

@classmethod
def _list_votacoes_do_periodo(self, ap):
list_votacoes = []
Expand Down Expand Up @@ -189,38 +197,53 @@ def _dict_partido(self, partido):
dict_partido["r"] = []
dict_partido["x"] = []
dict_partido["y"] = []
self._fill_dict_partido(partido, dict_partido)

return dict_partido

def _fill_dict_partido(self, partido, dict_partido):
for ap in self.analise_temporal.analises_periodo:
label_periodo = str(ap.periodo)
cache_coords_key = label_periodo
coordenadas = self.partidosScaler.scale(ap.coordenadas_partidos,
cache_coords_key)
try:
x = round(coordenadas[partido][0], 2)
y = round(coordenadas[partido][1], 2)
self.max_partido_radius_calculator.add_point(x, y)
if not isnan(x):
dict_partido["x"].append(round(x, 2))
dict_partido["y"].append(round(y, 2))
else:
dict_partido["x"].append(0.)
dict_partido["y"].append(0.)
except KeyError as error:
logger.error("KeyError: %s", error)
dict_partido["x"].append(0.)
dict_partido["y"].append(0.)
tamanho = ap.tamanhos_partidos[partido]
dict_partido["t"].append(tamanho)
raio = self.raio_partido_calculator.get_raio(
partido, label_periodo)
dict_partido["r"].append(raio)
self._fill_dict_partido_coordinates(partido, dict_partido, coordenadas)
self._append_dimensions(ap, label_periodo, partido, dict_partido)

self._append_parlamentares(partido, dict_partido)

def _append_dimensions(self, ap, label_periodo, partido, dict_partido):
tamanho = ap.tamanhos_partidos[partido]
dict_partido["t"].append(tamanho)
raio = self.raio_partido_calculator.get_raio(
partido, label_periodo)
dict_partido["r"].append(raio)

def _append_parlamentares(self, partido, dict_partido):
dict_partido["parlamentares"] = []
parlamentares = \
self.analise_temporal.casa_legislativa.parlamentares().filter(
partido=partido).select_related('partido')

for parlamentar in parlamentares:
dict_partido["parlamentares"].append(
self._dict_parlamentar(parlamentar))
return dict_partido

def _fill_dict_partido_coordinates(self, partido, dict_partido, coordenadas):
try:
x = round(coordenadas[partido][0], 2)
y = round(coordenadas[partido][1], 2)
self.max_partido_radius_calculator.add_point(x, y)
if not isnan(x):
dict_partido["x"].append(round(x, 2))
dict_partido["y"].append(round(y, 2))
else:
dict_partido["x"].append(0.)
dict_partido["y"].append(0.)
except KeyError as error:
logger.error("KeyError: %s", error)
dict_partido["x"].append(0.)
dict_partido["y"].append(0.)

def _dict_parlamentar(self, parlamentar):
leg_id = parlamentar.id
Expand Down
3 changes: 2 additions & 1 deletion radar_parlamentar/importadores/sen.py
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ def _create_parlamentar(self, parlamentar_list_info):
senador.partido = parlamentar_list_info[3]
senador.localidade = parlamentar_list_info[4]
senador.save()
return senador

def _find_parlamentar(self, voto_parlamentar_tree):
nome_senador = voto_parlamentar_tree.find('NomeParlamentar').text
Expand Down Expand Up @@ -309,7 +310,7 @@ def _add_votacao_to_model(self, votacao_tree):

if self._save_votacao(votacao_tree, votacao):
return True, votacao

def _save_votacoes_in_db(self, xml_text):
tree = etree.fromstring(xml_text)

Expand Down

0 comments on commit dd7d73f

Please sign in to comment.