def parse_line(self, line): line = line.strip() if line != '': fields = line.split('\t') item = dict() item['dni'] = fields[0] item['postulacion_departamento'] = fields[1] item['postulacion_provincia'] = fields[2] item['postulacion_distrito'] = fields[3] item['candidato_jne_id'] = fields[4] item['org_politica'] = fields[5] item['postulacion_cargo'] = fields[6] item['postulacion_designacion'] = fields[7] item['apellido_paterno'] = fields[8] item['apellido_materno'] = fields[9] item['nombres'] = fields[10] item['sexo'] = fields[11] item['email'] = fields[12] item['nacimiento_departamento'] = fields[13] item['nacimiento_provincia'] = fields[14] item['nacimiento_distrito'] = fields[15] try: item['nacimiento_fecha'] = datetime.datetime.strptime(fields[16], '%Y%m%d').date() except ValueError: item['nacimiento_fecha'] = None item['residencia_departamento'] = get_item_from_list(fields, 17) item['residencia_provincia'] = get_item_from_list(fields, 18) item['residencia_distrito'] = get_item_from_list(fields, 19) item['residencia_lugar'] = get_item_from_list(fields, 20) item['residencia_tiempo'] = get_item_from_list(fields, 21) if item['dni'] != 'DNI': return item return None
def construct_education_obj(self, fields, type): candidato = self.get_candidato(fields) institucion_ed_obj = self.get_inst_ed(fields, type) if type == 'superior': educacion_inicio, educacion_fin = get_superior_rango(fields) if fields[5] == 'TECNICO': tipo_de_estudio = 'tecnica' elif fields[5] == 'UNIVERSITARIO': tipo_de_estudio = 'universitaria' elif fields[5] == 'POST-GRADO': tipo_de_estudio = 'postgrado' else: tipo_de_estudio = '' type = tipo_de_estudio curso = get_item_from_list(fields, 8) carrera = get_item_from_list(fields, 9) if fields[11] == 'SI': concluido = True else: concluido = False tipo_de_grado = get_item_from_list(fields, 14) codigo_anr = get_item_from_list(fields, 15) tipo_postgrado = get_item_from_list(fields, 16) otro_tipo_documento = get_item_from_list(fields, 17) e = Estudio(candidato=candidato, institucion_educativa=institucion_ed_obj, tipo_de_estudio=type, inicio=educacion_inicio, fin=educacion_fin, curso=curso, carrera=carrera, concluido=concluido, tipo_de_grado=tipo_de_grado, codigo_anr=codigo_anr, tipo_postgrado=tipo_postgrado, otro_tipo_documento=otro_tipo_documento) return e if type == 'primaria': educacion_inicio, educacion_fin = self.get_primaria_rango(fields) elif type == 'secundaria': educacion_inicio, educacion_fin = self.get_secundaria_rango(fields) e = Estudio(candidato=candidato, institucion_educativa=institucion_ed_obj, tipo_de_estudio=type, inicio=educacion_inicio, fin=educacion_fin) return e
def get_institucion_superior(fields): nombre = get_item_from_list(fields, 10) departamento = get_item_from_list(fields, 18) provincia = get_item_from_list(fields, 19) distrito = get_item_from_list(fields, 20) extranjero = get_item_from_list(fields, 6) pais = get_item_from_list(fields, 7) item = { 'nombre': nombre, 'departamento': departamento, 'provincia': provincia, 'distrito': distrito, } this_inst_edu = { 'sha1': make_sha1(item), 'nombre': nombre, 'departamento': departamento, 'provincia': provincia, 'distrito': distrito, 'extranjero': extranjero, 'pais': pais, } return this_inst_edu
def get_institucion_secundaria(fields): nombre_secundaria = get_item_from_list(fields, 6) departamento_secundaria = get_item_from_list(fields, 17) provincia_secundaria = get_item_from_list(fields, 18) distrito_secundaria = get_item_from_list(fields, 19) extranjero = get_item_from_list(fields, 20) pais = get_item_from_list(fields, 21) item = { 'nombre': nombre_secundaria, 'departamento': departamento_secundaria, 'provincia': provincia_secundaria, 'distrito': distrito_secundaria, } this_inst_edu = { 'sha1': make_sha1(item), 'nombre': nombre_secundaria, 'departamento': departamento_secundaria, 'provincia': provincia_secundaria, 'distrito': distrito_secundaria, 'extranjero': extranjero, 'pais': pais, } return this_inst_edu
def test_get_item_from_list(self): my_list = ['', 'MIGUEL GRAU'] expected = 'MIGUEL GRAU' result = get_item_from_list(my_list, 1) self.assertEqual(expected, result)
def get_superior_rango(fields): inicio = get_item_from_list(fields, 12) fin = get_item_from_list(fields, 13) return inicio, fin
def get_secundaria_rango(self, fields): inicio = get_item_from_list(fields, 9) fin = get_item_from_list(fields, 10) return inicio, fin
def get_primaria_rango(self, fields): inicio = get_item_from_list(fields, 7) fin = get_item_from_list(fields, 8) return inicio, fin