def try_merge(edition, ekey, thing): thing_type = thing['type']['key'] if 'isbn_10' not in edition: print(edition) asin = edition.get('isbn_10', None) or edition['asin'] if 'authors' in edition: authors = [i['name'] for i in edition['authors']] else: authors = [] a = amazon_merge.build_amazon(edition, authors) assert isinstance(asin, str) assert thing_type == '/type/edition' # print edition['asin'], ekey if 'source_records' in thing: if 'amazon:' + asin in thing['source_records']: return True return source_records_match(a, thing) # print 'no source records' mc = get_mc(ekey) # print 'mc:', mc if mc == 'amazon:' + asin: return True if not mc: return False data = get_from_local(mc) e1 = build_marc(fast_parse.read_edition(data)) return amazon_merge.attempt_merge(a, e1, threshold, debug=False)
def try_amazon(key): thing = withKey(key) if 'isbn_10' not in thing: return None if 'authors' in thing: authors = [] for a in thing['authors']: author_thing = withKey(a['key']) if 'name' in author_thing: authors.append(author_thing['name']) else: authors = [] return amazon.build_amazon(thing, authors)
def try_amazon(thing): if 'isbn_10' not in thing: return None if 'authors' in thing: authors = [] for a in thing['authors']: # this is a hack # the type of thing['authors'] should all be the same type if isinstance(a, dict): akey = a['key'] else: assert isinstance(a, six.string_types) akey = a author_thing = withKey(akey) if 'name' in author_thing: authors.append(author_thing['name']) else: authors = [] return amazon.build_amazon(thing, authors)
def try_amazon(thing): if 'isbn_10' not in thing: return None if 'authors' in thing: authors = [] for a in thing['authors']: # this is a hack # the type of thing['authors'] should all be the same type if isinstance(a, dict): akey = a['key'] else: assert isinstance(a, basestring) akey = a author_thing = withKey(akey) if 'name' in author_thing: authors.append(author_thing['name']) else: authors = [] return amazon.build_amazon(thing, authors)