Example #1
0
def decode_browse_report(browse_report_elem):
    """ Parsing function to return a BrowseReport object from an
        ElementTree.Element node.
    """

    logger.info("Start parsing browse report.")

    try:
        browse_report_elem = browse_report_elem.getroot()
    except AttributeError:
        pass

    expected_tags = ns_bsi("ingestBrowse"), ns_rep("browseReport"), ns_rep_old(
        "browseReport")
    if browse_report_elem.tag not in expected_tags:
        raise DecodingException(
            "Invalid root tag '%s'. Expected one of '%s'." %
            (browse_report_elem.tag, expected_tags))

    if browse_report_elem.find(ns_rep_old("browseType")) is not None:
        ns = ns_rep_old
    else:
        ns = ns_rep

    browse_report_decoder = XMLDecoder(
        {
            "date_time": ("rep:dateTime/text()", getDateTime),
            "browse_type":
            "rep:browseType/text()",
            "responsible_org_name":
            "rep:responsibleOrgName/text()",
            "browses":
            ("rep:browse", lambda browse: decode_browse(browse, ns), "*")
        }, {"rep": ns.uri})

    browse_report = data.BrowseReport(
        **browse_report_decoder.decode(browse_report_elem))

    logger.info("Finished decoding browse report.")

    return browse_report
Example #2
0
def decode_browse_report(browse_report_elem):
    """ Parsing function to return a BrowseReport object from an
        ElementTree.Element node.
    """

    logger.info("Start parsing browse report.")

    try:
        browse_report_elem = browse_report_elem.getroot()
    except AttributeError:
        pass

    expected_tags = ns_bsi("ingestBrowse"), ns_rep("browseReport"), ns_rep_old("browseReport")
    if browse_report_elem.tag not in expected_tags:
        raise DecodingException("Invalid root tag '%s'. Expected one of '%s'."
                               % (browse_report_elem.tag, expected_tags))

    if browse_report_elem.find(ns_rep_old("browseType")) is not None:
        ns = ns_rep_old
    else:
        ns = ns_rep

    browse_report_decoder = XMLDecoder({
        "date_time": ("rep:dateTime/text()", getDateTime),
        "browse_type": "rep:browseType/text()",
        "responsible_org_name": "rep:responsibleOrgName/text()",
        "browses": ("rep:browse", lambda browse: decode_browse(browse, ns), "*")
    }, {"rep": ns.uri})

    browse_report = data.BrowseReport(
        **browse_report_decoder.decode(browse_report_elem)
    )

    logger.info("Finished decoding browse report.")

    return browse_report
Example #3
0
def decode_browse_report(browse_report_elem):
    """ Parsing function to return a BrowseReport object from an 
        ElementTree.Element node.
    """
    
    logger.info("Start parsing browse report.")
    
    try:
        browse_report_elem = browse_report_elem.getroot()
    except AttributeError:
        pass
    
    expected_tags = ns_bsi("ingestBrowse"), ns_rep("browseReport")
    if browse_report_elem.tag not in expected_tags:
        raise DecodingException("Invalid root tag '%s'. Expected one of '%s'."
                               % (browse_report_elem.tag, expected_tags))
    
    browse_report = data.BrowseReport(
        **browse_report_decoder.decode(browse_report_elem)
    )
    
    logger.info("Finished decoding browse report.")

    return browse_report