def parse_cvnitem_teaching_phd(node): entities = parse_entities(node.findall('Entity')) item = { 'titulo': parse_title(node), 'autor': parse_authors(node.findall('Author')), 'codirector': parse_authors(node.findall('Link/Author')), 'fecha': parse_date(node.find('Date')), 'universidad_que_titula': entities[st_cvn.Entity.PHD_UNIVERSITY.value] } return item
def parse_cvnitem_scientificexp_property(node): places = parse_places(node.findall("Place")) entities = parse_entities(node.findall("Entity")) num_solicitud = parse_produccion_id( node.findall('ExternalPK'))[st_cvn.PRODUCTION_ID_CODE['SOLICITUD']] item = { 'titulo': parse_title(node), 'num_solicitud': num_solicitud, 'lugar_prioritario': places[0], 'lugares': places[1], 'autores': parse_authors(node.findall('Author')), 'entidad_titular': entities[st_cvn.Entity.OWNER.value], 'empresas': entities[st_cvn.Entity.OPERATOR.value] } dates = node.findall('Date') for date in dates: # There can be 2 dates parsed_date = parse_date(date) date_type = date.find("Moment/Item").text if date_type == st_cvn.REGULAR_DATE_CODE: # Date of request item['fecha'] = parsed_date else: # And date of granting item['fecha_concesion'] = parsed_date return item
def parse_cvnitem_scientificact_production(node): pids = parse_produccion_id(node.findall('ExternalPK')) item = { 'titulo': parse_title(node), 'autores': parse_authors(node.findall('Author')), 'fecha': parse_date(node.find('Date')), 'issn': pids[st_cvn.PRODUCTION_ID_CODE['ISSN']], 'isbn': pids[st_cvn.PRODUCTION_ID_CODE['ISBN']], 'deposito_legal': pids[st_cvn.PRODUCTION_ID_CODE['DEPOSITO_LEGAL']] } if (node.find('Link/Title/Name') is not None and node.find('Link/Title/Name/Item').text): item[u'nombre_publicacion'] = unicode( node.find('Link/Title/Name/Item').text.strip()) item.update(parse_publicacion_location(node.find('Location'))) return item
def _parse_cvnitem_scientificexp(node): """Shared parser for project and agreement""" date_node = node.find('Date') date = parse_date_interval(date_node) item = { 'titulo': parse_title(node), 'fecha_de_inicio': date[0], 'fecha_de_fin': date[1], 'duracion': date[2], 'autores': parse_authors(node.findall('Author')) } item.update(parse_economic(node.findall('EconomicDimension'))) if node.find('ExternalPK/Code') is not None: item[u'cod_segun_financiadora'] = unicode( node.find('ExternalPK/Code/Item').text.strip()) item.update(parse_scope(node.find('Scope'))) return item
def parse_cvnitem_scientificact_congress(node): item = { 'titulo': parse_title(node), 'autores': parse_authors(node.findall('Author')) } for itemXML in node.findall('Link'): if itemXML.find('CvnItemID/CodeCVNItem/Item').text.strip( ) == st_cvn.DATA_CONGRESO: if (itemXML.find('Title/Name') is not None and itemXML.find('Title/Name/Item').text): item[u'nombre_del_congreso'] = unicode( itemXML.find('Title/Name/Item').text.strip()) date_node = itemXML.find('Date') (item['fecha_de_inicio'], item['fecha_de_fin'], duracion) = parse_date_interval(date_node) if itemXML.find('Place/City') is not None: item[u'ciudad_de_realizacion'] = unicode( itemXML.find('Place/City/Item').text.strip()) # Ámbito item.update(parse_scope(itemXML.find('Scope'))) return item