def family_of(self,surname,given): """Show matching records sharing a family with a person who matches the surname and given name substrings. """ self.print_header('Family of %s %s' % (given,surname)) for e in self.g.element_list(): q = gedcom.Query(e) if q.individual(): if q.surname_match(surname) and q.given_match(given): for f in q.families(): for e in gedcom.Query(f).get_family(): self.print_record(e)
def marriage_range(self,year1,year2): """Show matching records for a marriage year range.""" self.print_header('Married %d - %d' % (year1,year2)) for e in self.g.element_list(): q = gedcom.Query(e) if q.individual(): if q.marriage_range_match(year1,year2): self.print_record(e)
def death(self,year): """Show matching records for a death year.""" self.print_header('Died %d' %(year)) for e in self.g.element_list(): q = gedcom.Query(e) if q.individual(): if q.death_year_match(year): self.print_record(e)
def birth_range(self,year1,year2): """Show matching records for a birth year range.""" self.print_header('Born %d - %d' % (year1,year2)) for e in self.g.element_list(): q = gedcom.Query(e) if q.individual(): if q.birth_range_match(year1,year2): self.print_record(e)
def given(self,match): """Show matching records for a given name substring.""" self.print_header('Given - %s' % (match)) for e in self.g.element_list(): q = gedcom.Query(e) if q.individual(): if q.given_match(match): self.print_record(e)
def surname(self,match): """Show matching records for a surname substring.""" self.print_header('Surname - %s' % (match)) for e in self.g.element_list(): q = gedcom.Query(e) if q.individual(): if q.surname_match(match): self.print_record(e)
def print_record(self,e): """Print an element.""" if self.info == 'names': q = gedcom.Query(e) (first,last) = q.name() try: print (first, last) except UnicodeEncodeError: pass elif self.info == 'gedcom': print (e.get_individual())
def criteria_match(self,criteria): """Show matching records using a general criteria. The format is [field1]=[value2]:[field2]=[value2]... Valid fields are: surname, name, birth, birthrange, death, deathrange, marriage, marriagerange """ self.print_header('Criteria Matching: %s' % (criteria)) for e in self.g.element_list(): q = gedcom.Query(e) if q.individual(): if q.criteria_match(criteria): self.print_record(e)