def test_drop_white_space_method_returns_correct_result(self): u = DameUtils() self.assertEqual("In", u.drop_white_space("In ")) self.assertEqual("Ines", u.drop_accents(u.drop_white_space("Inés ")))
def test_drop_white_space(self): u = DameUtils() self.assertEqual("In", u.drop_white_space("In ")) self.assertEqual("Ines", u.drop_accents(u.drop_white_space("Inés "))) self.assertEqual("JuanCarlosI", u.drop_accents(u.drop_white_space("Juan Carlos I ")))
if (len(sys.argv) > 1): cmd = 'grep -i " ' + args.name + ' " files/names/nam_dict.txt > files/grep.tmp' print(cmd) os.system(cmd) results = [i for i in open('files/grep.tmp', 'r').readlines()] males = [] females = [] both = [] for rowres in results: regex = "(M|F|=|\?|1)( |M|F)?( )(\w+)( )?(\w+)?( )?(\w+)?" n = re.match(regex, rowres) if (n.group(6)): string = n.group(4) + n.group(5) + str(n.group(6)) else: string = n.group(4) + n.group(5) if (du.drop_white_space(args.name) == du.drop_white_space(string)): for i in range(30, 84): if (exists_in_country(int(i), rowres)): if (rowres[0].title() == "M"): males.append(keyscountries[str(i)]) elif (rowres[0].title() == "F"): females.append(keyscountries[str(i)]) elif (rowres[0].title() == "="): both.append(keyscountries[str(i)]) print("males: " + (str(sorted(males)))) print("females: " + str(sorted(females))) print("both: " + str(sorted(both)))
def name_frec(self, name, dataset='ine'): if (dataset == 'ine'): du = DameUtils() name = du.drop_accents(name) file_males = open('files/names/names_es/masculinos_original.csv', 'r') inereader_males = csv.reader(file_males, delimiter=',', quotechar='|') males = 0 for row in inereader_males: if ((len(row) > 1) and (row[1].lower() == name.lower())): males = row[2] males = du.drop_dots(males) file_females = open('files/names/names_es/femeninos_original.csv', 'r') inereader_females = csv.reader(file_females, delimiter=',', quotechar='|') females = 0 for row in inereader_females: if ((len(row) > 1) and (row[1].lower() == name.lower())): females = row[2] females = du.drop_dots(females) dicc = {"females": females, "males": males} elif (dataset == 'uscensus'): du = DameUtils() usfile = open('files/names/yob2017.txt', 'r') usreader = csv.reader(usfile, delimiter=',', quotechar='|') males = 0 females = 0 for row in usreader: if ((len(row) > 1) and (row[0].lower() == name.lower())): if (row[1] == 'F'): females = row[2] elif (row[1] == 'M'): males = row[2] dicc = {"females": females, "males": males} elif (dataset == 'ukcensus'): du = DameUtils() name = du.drop_accents(name) file_males = open('files/names/2017boysnames-uk.csv', 'r') reader_males = csv.reader(file_males, delimiter=',', quotechar='|') males = 0 for row in reader_males: if (len(row) > 1): ukname = du.drop_accents(du.drop_white_space( row[1])).lower() if (ukname == name.lower()): ukname = du.drop_accents(du.drop_white_space( row[1])).lower() males = row[2] males = du.drop_dots(males) file_females = open('files/names/2017girlsnames-uk.csv', 'r') reader_females = csv.reader(file_females, delimiter=',', quotechar='|') females = 0 for row in reader_females: if (len(row) > 1): ukname = du.drop_accents(du.drop_white_space( row[1])).lower() if (ukname == name.lower()): females = row[2] females = du.drop_dots(females) dicc = {"females": females, "males": males} return dicc
if (len(sys.argv) > 1): cmd = 'grep -i " ' + args.name + ' " files/names/nam_dict.txt > files/logs/grep.tmp' print(cmd) os.system(cmd) results = [i for i in open('files/logs/grep.tmp', 'r').readlines()] males = [] females = [] both = [] for rowres in results: regex = "(M|F|=|\?|1)( |M|F)?( )(\w+)( )?(\w+)?( )?(\w+)?" n = re.match(regex, rowres) if (n.group(6)): string = str(n.group(4)) + str(n.group(5)) + str(n.group(6)) else: string = str(n.group(4)) + str(n.group(5)) if (du.drop_white_space( args.name.capitalize()) == du.drop_white_space(string)): twochars = rowres[0] + rowres[1] for i in range(30, 84): if (exists_in_country(int(i), rowres)): if ((rowres[0].title() == "M") | (twochars.title() == "1M") | (twochars.title() == "?M")): males.append(keyscountries[str(i)]) elif ( (rowres[0].title() == "F") | (twochars.title() == "1F") | (twochars.title() == "?F")): females.append(keyscountries[str(i)]) elif (rowres[0].title() == "="): both.append(keyscountries[str(i)]) print("males: " + (str(sorted(males)))) print("females: " + str(sorted(females)))