def add_sss_scholars(process_list, affiliation): for name in process_list: words = name.split() # check if author has a running number if not words[len(words) - 1].isdigit(): sss_scholars.append(SSSScholar(name, -1, affiliation)) tmp_aff = SSSAffiliation(affiliation) if tmp_aff not in sss_affiliations: tmp_aff.nbr_scholars += 1 sss_affiliations.append(tmp_aff) else: curr = next( (x for x in sss_affiliations if affiliation == x.name), None) curr.nbr_scholars += 1 else: # author has a running number tmp_scholar = SSSScholar( ' '.join(map(str, words[0:len(words) - 1])), str(words[len(words) - 1]), affiliation) sss_scholars.append(tmp_scholar) tmp_aff = SSSAffiliation(affiliation) if tmp_aff not in sss_affiliations: tmp_aff.nbr_scholars += 1 sss_affiliations.append(tmp_aff) else: curr = next( (x for x in sss_affiliations if affiliation == x.name), None) curr.nbr_scholars += 1
def add_sss_scholars(self, process_list, affiliation): for person in process_list: name = person[0] running_number = person[1] url = person[2] # extract the pid from the url by substringing try: split1 = url.split("pid/") split2 = split1[1].split(".xml") pid = split2[0] except IndexError: print("Invalid format of input XML URL.") return self.scholars.append( SSSScholar(name, running_number, pid, url, affiliation, -1)) tmp_aff = SSSAffiliation(affiliation) if tmp_aff not in self.affiliations: tmp_aff.nbr_scholars += 1 self.affiliations.append(tmp_aff) else: curr = next( (x for x in self.affiliations if affiliation == x.name), None) curr.nbr_scholars += 1