Ejemplo n.º 1
0
def read_file(path):
    ged = open(path)
    ged_lines = ged.readlines()
    person_date_tags = ["BIRT", "DEAT"]
    fam_date_tags = ["MARR","DIV"]
    fam_flag=False
    date_type=''
    individuals={}
    ind_id = ""
    families={}
    #Makes individual and family dicts
    for ged_line in ged_lines:
        status, tag, args = check(strip(ged_line))
        if(status == True):
            if (tag == "FAMC"):
                individuals[ind_id]["FAMC"] = args
            if (tag == "FAMS"):
                if tag not in individuals[ind_id].keys():
                    individuals[ind_id]["FAMS"] = [args]
                else:
                    individuals[ind_id]['FAMS'].append(args)
            if(tag == "INDI"):
                ind_id = args
                individuals[ind_id] = {}
                individuals[ind_id]["ID"] = args
                fam_flag = False
            #Gets name and sex
            if(tag == "NAME" or tag == "SEX"):
                individuals[ind_id][tag] = args
            #gets date 
            if(tag in person_date_tags):
                date_type = tag
            if(tag == "DATE"):
                if(fam_flag == False):
                    individuals[ind_id][date_type] = args
                else:
                    families[ind_id][date_type] = args
            #Indetifies family
            if(tag == "FAM"):
                ind_id = args
                fam_flag = True
                families[ind_id] = {}
                families[ind_id]["ID"] = args
            #gets husband wife and child IDS
            if(tag in fam_date_tags):
                date_type = tag
            if(tag == "HUSB" or tag == "WIFE"):
                families[ind_id][tag]=args
            if(tag == "CHIL"):
                if( tag not in families[ind_id].keys() ):
                    families[ind_id][tag] = [args]
                else:
                    families[ind_id][tag].append(args)

    ged.close
    individuals = UsefulFunctions.age_bank(families, individuals)
    return(individuals, families)
Ejemplo n.º 2
0
                ind_id = args
                fam_flag = True
                families[ind_id] = {}
                families[ind_id]["ID"] = args
            #gets husband wife and child IDS
            if (tag in fam_date_tags):
                date_type = tag
            if (tag == "HUSB" or tag == "WIFE"):
                families[ind_id][tag] = args
            if (tag == "CHIL"):
                if (tag not in families[ind_id].keys()):
                    families[ind_id][tag] = [args]
                else:
                    families[ind_id][tag].append(args)

    ged.close
    return (individuals, families)


#reads information from file
individuals, families = read_file('./test.ged')
#calculates and stores useful data, mostly ages
individuals = UsefulFunctions.age_bank(families, individuals)

#printing in table format
ind_table = pd.DataFrame(individuals).transpose()
print(tabulate(ind_table, headers='keys', tablefmt='psql'))

fam_table = pd.DataFrame(families).transpose()
print(tabulate(fam_table, headers='keys', tablefmt='psql'))