def __init__(self, master):
        super().__init__(master, controller=None)
        self.gender_radio_group = CustomRadioGroup(self.frame, None)
        self.gender_radio_group.add("male", "male")
        self.gender_radio_group.add("female", "female")
        self.lbl_fname = LabelAndValue(self.frame, None, "name", label_length=10, value_length=40)
        self.lbl_falias = LabelAndValue(self.frame, None, "alias", label_length=10, value_length=40)
        self.btn_rnd = ttk.Button(self.frame, text="random", command=self.random_name)

        self.gender_radio_group.frame.grid(column=0, row=0, sticky=(W, N))
        self.lbl_fname.frame.grid(column=0, row=1)
        self.lbl_falias.frame.grid(column=0, row=2)
        self.btn_rnd.grid(column=0, row=3)
        self.frame.grid(row=0, column=0, sticky = (N, E, W, S))

        self.male_fnames = TableModel()
        self.female_fnames = TableModel()
        self.last_names = TableModel()
        self.first_aliases = TableModel()
        self.last_aliases = TableModel()

        self.male_fnames.load_table('first_names', 'male', 'default')
        self.female_fnames.load_table('first_names', 'female', 'default')
        self.first_aliases.load_table('first_aliases', 'all', 'default')
        self.last_aliases.load_table('last_aliases', 'all', 'default')
        self.last_names.load_table('last_names', 'all', 'default')

        self.db = dbManager()
    def __init__(self, master):
        super().__init__(master, controller=None)
        self.elements = {}
        db = dbManager()
        row_num = 0
        for key, value in db.databases.items():
            self.elements[key] = ttk.Label(self.frame, text=key)
            self.elements[key].grid(column=0, row=row_num)
            number_of_names = len(db.databases[key].get_all())
            self.elements[key + 'value'] = ttk.Label(self.frame, text=str(number_of_names))
            self.elements[key + 'value'].grid(column=1, row=row_num)
            row_num += 1

        self.females = ttk.Label(self.frame, text='female names')
        self.males = ttk.Label(self.frame, text='male names')
        fems = str(len(db.databases['first_names'].filter_by(group='default', gender='female')))
        males = str(len(db.databases['first_names'].filter_by(group='default', gender='male')))
        self.fem_count = ttk.Label(self.frame, text=fems)
        self.men_count = ttk.Label(self.frame, text=males)
        self.females.grid(column=0, row=row_num + 1)
        self.fem_count.grid(column=1, row=row_num + 1)
        self.males.grid(column=0, row=row_num + 2)
        self.men_count.grid(column=1, row=row_num + 2)
 def save_last(self):
     db = dbManager()
     db.last_aliases.add_name(self.lbl_lalias.variable.get(), group='default', gender='all')
     self.search_last()
 def search_last(self):
     db = dbManager()
     instance = db.last_aliases.search(self.lbl_lalias.variable.get(), group='default', gender='all',
                                       case_sensitive=False)
     self.lbl_lresult.variable.set(instance)
 def import_names(self):
     names = self.read_file(self.lbl_filepath.get())
     db = dbManager()
     db.databases[self.lbl_db_name.get()].add_all(names, group=self.lbl_group.get(), gender=self.lbl_gender.get())