Exemple #1
0
 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 ")))
Exemple #3
0
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)))
Exemple #4
0
    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)))