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
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
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