def get_most_frequent_name_from_pid(person_id= -1, allow_none=False): ''' Finds the most frequent name of a person to be representative for this person. @param person_id: the person ID to look at @type person_id: int @return: returns the most frequent normalized name of a person @rtype: string ''' pid = wash_integer_id(person_id) if (not pid > -1) or (not isinstance(pid, int)): if allow_none: return None else: return "'%s' doesn't look like a person ID!" % person_id person_id = pid mf_name = "" try: nn = dbapi.get_person_names_count(person_id) mf_name = sorted(nn, key=lambda k:k[1], reverse=True)[0][0] except IndexError: pass if mf_name: return mf_name else: if allow_none: return None else: return "This person does not seem to have a name!"
def get_person_names_from_id(person_id= -1): ''' Finds and returns the names associated with this person along with the frequency of occurrence (i.e. the number of papers) @param person_id: an id to find the names for @type person_id: int @return: name and number of occurrences of the name @rtype: tuple of tuple ''' # #retrieve all rows for the person if (not person_id > -1) or (not isinstance(person_id, (int, long))): return [] return dbapi.get_person_names_count(person_id)
def get_longest_name_from_pid(person_id= -1): ''' Finds the longest name of a person to be representative for this person. @param person_id: the person ID to look at @type person_id: int @return: returns the longest normalized name of a person @rtype: string ''' if (not person_id > -1) or (not isinstance(person_id, (int, long))): return "This doesn't look like a person ID!" longest_name = "" for name in dbapi.get_person_names_count(person_id): if name and len(name[0]) > len(longest_name): longest_name = name[0] if longest_name: return longest_name else: return "This person does not seem to have a name!"