def ia_match(e1, ia): loc, rec = get_ia(ia) try: e2 = build_marc(rec) except TypeError: print rec raise return attempt_merge(e1, e2, threshold, debug=False)
def try_merge(e1, edition_key, thing): thing_type = thing['type']['key'] if thing_type == '/type/delete': # return False assert thing_type == '/type/edition' if 'source_records' in thing: if fix_source_records(edition_key, thing): thing = withKey(edition_key) # reload return source_records_match(e1, thing) ia = thing.get('ocaid', None) print edition_key mc = get_mc(edition_key) print mc if mc: if mc.startswith('ia:'): ia = mc[3:] elif mc.endswith('.xml') or mc.endswith('.mrc'): ia = mc[:mc.find('/')] if '_meta.mrc:' in mc: assert 'ocaid' in thing ia = thing['ocaid'] rec2 = None if ia: if is_dark_or_bad(ia): return False try: loc2, rec2 = get_ia(ia) except xml.parsers.expat.ExpatError: return False except urllib2.HTTPError, error: print error.code assert error.code in (404, 403) if not rec2: return True