Exemple #1
0
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
Exemple #2
0
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
Exemple #3
0
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
Exemple #4
0
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
Exemple #5
0
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