def __init__(self, master): self.valves = self.get_valves() self.master = master self.master.configure(bg='sky blue') self.password = '******' self.momentary = Momentary(self.master, self.valves) self.edit = Edit(self.master, self.valves) self.summary = Summary(self.master, self.valves) self.preferences = Preferences(self.master, self.valves) self.run_screen = RunScreen(self.master, self.valves) self.header = self.make_header(self.master) self.home = self.home_page(self.master) self.frame = self.home
def returnBook(self, account): BookClass(self.__content).displayBook_Acc(account) if len(account[-2]) != 0: book = int(input('Which book do you want to return?')) account[-2].pop(book - 1) for i in self.__content: if account[book - 1] == i[0]: Edit(i).editQty(str(int(i[2]) + 1))
def write(index): if index == -1: return [module_candidate_name, module_name] = resolvers[index]() settings = sublime.load_settings(SETTINGS) known_requires = settings.get('known_requires') module_candidate_name = known_requires.get(module_name, module_candidate_name) if module_candidate_name.find("-") != -1: upperWords = [ word.capitalize() for word in module_candidate_name.split("-")[1::] ] module_candidate_name = "".join( module_candidate_name.split("-")[0:1] + upperWords) region_to_insert = self.view.sel()[0] line = self.view.substr(self.view.lines(region_to_insert)[0]) line_is_empty = not line or line.isspace() clause_formats = { "source.js": { True: settings.get('source_js_new_line'), False: settings.get('source_js_existing_line') }, "source.js.jsx": { True: settings.get('source_js_new_line'), False: settings.get('source_js_existing_line') }, "source.coffee": { True: settings.get('source_coffee_new_line'), False: settings.get('source_coffee_existing_line') }, "text.html.riot": { True: settings.get('source_js_new_line'), False: settings.get('source_js_existing_line') }, "text.html.vue": { True: settings.get('source_vue_new_line'), False: settings.get('source_vue_existing_line') } } require_directive = clause_formats[current_lang][ line_is_empty].format(module_candidate_name, get_path(module_name)) with Edit(self.view) as edit: edit.insert(region_to_insert.a, require_directive)
def insert_class_reference(self, partial_name, original_file_extension, spaces_number): region = self.view.sel()[0] # TODO correctly calculate spaces before new_region spaces = [' ' for x in range(spaces_number)] if original_file_extension == 'html': new_region = ''.join( spaces) + "<%= render '" + partial_name + "' %>" else: new_region = ''.join(spaces) + "= render '" + partial_name + "'" with Edit(self.view) as edit: edit.replace(region, new_region)
def read_url_on_done(self, content, content_type): if content: window = sublime.active_window() view = window.new_file() with Edit(view) as edit: edit.insert(0, content) # TODO: convert to a dict and include in settings if content_type == 'text/html': view.settings().set('syntax', 'Packages/HTML/HTML.tmLanguage') elif content_type == 'text/css': view.settings().set('syntax', 'Packages/CSS/CSS.tmLanguage') elif content_type == 'text/javascript' or content_type == 'application/javascript' or content_type == 'application/x-javascript': view.settings().set('syntax', 'Packages/JavaScript/JavaScript.tmLanguage') elif content_type == 'application/json' or content_type == 'text/json': view.settings().set('syntax', 'Packages/JavaScript/JSON.tmLanguage') elif content_type == 'text/xml' or content_type == 'application/xml': view.settings().set('syntax', 'Packages/XML/XML.tmLanguage')
def borrowBook(self, account): book = input('Which book do you want to borrow?') for i in self.__content: if book.title() == i[0]: if int(i[-1]) > 0: while True: amt = int(input('How many book you want to borrow?')) if amt > 0: if amt <= int(i[-1]): Edit(i).editQty(str(int(i[-1]) - amt)) for a in range(amt): account[-2].append(i[0]) print( 'The book you have borrow is {0}.'.format( book.title())) break else: print('Sorry, We only got {0}.'.format(i[-1])) elif amt == 0: continue else: print('Book out off stock!')
def bookEdit(self): choose = input( 'Please choose between\n[1] Edit Title\n[2] Edit Content\n[3] Edit Quantity\n' ) if choose == '1': newTitle = input('Please input the Title Name! ') Edit.editTitle(self, newTitle) elif choose == '2': Edit.editContent(self) elif choose == '3': print('{0}\'s Quantity is {1}.'.format(self.__content[0], self.__content[-1])) while True: amt = input('Change the quantity to ') if amt.isdigit(): break Edit.editQty(self, amt)
def write(index): if index == -1: return [module_candidate_name, module_rel_path] = resolvers[index]() if module_candidate_name.find("-") != -1: upperWords = [ word.capitalize() for word in module_candidate_name.split("-")[1::] ] module_candidate_name = "".join( module_candidate_name.split("-")[0:1] + upperWords) region_to_insert = self.view.sel()[0] line_is_empty = self.view.lines(region_to_insert)[0].empty() require_directive = clause_formats[current_lang][ line_is_empty].format(module_candidate_name, get_path(module_rel_path)) with Edit(self.view) as edit: edit.insert(region_to_insert.a, require_directive)
class GUI: def __init__(self, master): self.valves = self.get_valves() self.master = master self.master.configure(bg='sky blue') self.password = '******' self.momentary = Momentary(self.master, self.valves) self.edit = Edit(self.master, self.valves) self.summary = Summary(self.master, self.valves) self.preferences = Preferences(self.master, self.valves) self.run_screen = RunScreen(self.master, self.valves) self.header = self.make_header(self.master) self.home = self.home_page(self.master) self.frame = self.home def make_header(self, master): header = Frame(master, bg='sky blue') self.label = StringVar() self.label.set('NONE') self.start_label = StringVar() self.start_label.set('START') self.lock_label = StringVar() self.lock_label.set('LOCKED') self.title = Label(header, textvariable=self.label, pady=20, font=('Lucida Console', 50)) self.title.config(bg='sky blue', fg='RoyalBlue4') self.run_image = PhotoImage(file="img/animate.png").subsample(x=5, y=5) self.run_button = Button(header, image=self.run_image, command=self.run, bg='SkyBlue4', activebackground='midnight blue', border=5) self.start_button = Button(header, textvariable=self.start_label, font=('Lucida Console', 30), command=self.start_stop, height=5) self.start_button.config(bg='brown3', activebackground='brown4', fg='white', activeforeground='white', width=10, border=5) self.save_image = PhotoImage(file="img/save.png").subsample(x=5, y=5) self.save_button = Button(header, image=self.save_image, command=self.save, bg='SkyBlue4', activebackground='midnight blue', border=5) self.save_button.config(state='disabled') self.reset_image = PhotoImage(file="img/reset.png").subsample(x=5, y=5) self.reset_button = Button(header, image=self.reset_image, command=self.reset, bg='SkyBlue4', activebackground='midnight blue', border=5) self.home_image = PhotoImage(file="img/home.png").subsample(x=5, y=5) self.home_button = Button(header, image=self.home_image, command=self.to_home, bg='SkyBlue4', activebackground='midnight blue', border=5) self.locked_image = PhotoImage(file="img/lock.png").subsample(x=5, y=5) self.unlocked_image = PhotoImage(file="img/unlock.png").subsample(x=5, y=5) self.lock_button = Button(header, image=self.locked_image, command=self.lock, bg='SkyBlue4', activebackground='midnight blue', border=5, textvariable=self.lock_label) return header def home_page(self, master): frame = Frame(master) frame.grid(row=0, column=0) image = PhotoImage(file="img/guido.gif") bg = Label(frame, image=image) bg.image = image bg.grid(row=0, column=0, rowspan=4, columnspan=2) index = 0 while index < 3: frame.grid_columnconfigure(index, minsize=200) frame.grid_rowconfigure(index, minsize=80) index += 1 summary_button = HomeButton(frame, self.to_summary, 'img/summary.png') summary_button.grid(row=0, column=0, sticky='w') edit_button = HomeButton(frame, self.to_edit, 'img/edit.png') edit_button.grid(row=0, column=1, sticky='e') momentary_button = HomeButton(frame, self.to_momentary, 'img/momentary.png') momentary_button.grid(row=1, column=0, sticky='w') preferences_button = HomeButton(frame, self.to_pref, 'img/preferences.png') preferences_button.grid(row=1, column=1, sticky='e') music = HomeButton(frame, self.to_summary, 'img/music.png') music.grid(row=2, column=0, sticky='w') info = HomeButton(frame, self.to_summary, 'img/info.png') info.grid(row=2, column=1, sticky='e') return frame # CSV file input def get_valves(self): valves = [Valve('VALVE 1', 'DEFAULT', 'Action A', 'Action B', [0, 0]), Valve('VALVE 2', 'DEFAULT', 'Action A', 'Action B', [0, 0]), Valve('VALVE 3', 'DEFAULT', 'Action A', 'Action B', [0, 0]), Valve('VALVE 4', 'DEFAULT', 'Action A', 'Action B', [0, 0]), Valve('VALVE 5', 'DEFAULT', 'Action A', 'Action B', [0, 0]), Valve('VALVE 6', 'DEFAULT', 'Action A', 'Action B', [0, 0]), Valve('VALVE 7', 'DEFAULT', 'Action A', 'Action B', [0, 0]), Valve('VALVE 8', 'DEFAULT', 'Action A', 'Action B', [0, 0])] file = open('data.csv', 'rt', newline='') try: reader = csv.reader(file, lineterminator='\n') index = 0 for row in reader: if index == 0: index += 1 continue else: run = int(row[4]) delay = int(row[5]) interval = [run, delay] valves[index - 1] = Valve(row[0], row[1], row[2], row[3], interval) index += 1 finally: file.close() return valves def lock(self): if self.lock_label.get() == 'LOCKED': window = Toplevel() window.geometry('318x550') self.keypad = Keypad(window, self, self.password) else: self.save_button.config(state='disabled') self.edit.lock() self.preferences.lock() self.lock_label.set('LOCKED') self.lock_button.config(image=self.locked_image) def save(self): self.save_pref() self.save_edit() def save_edit(self): file = open('data.csv', 'w') interval = self.edit.get_intervals() try: writer = csv.writer(file, lineterminator='\n') writer.writerow(('Name', 'Setting', 'Action A', 'Action B', 'Runtime', 'Delaytime')) index = 0 for i in self.valves: i.set_interval([interval[index].get(), interval[index + 8].get()]) valve_interval = i.get_interval() if self.edit.plusInterval[index].cget('state') == 'disabled' and self.edit.motor[index].cget('state') != 'disabled': i.set_setting('MOTOR') writer.writerow((i.get_name().get(), i.get_setting(), i.get_action_a().get(), i.get_action_b().get(), 0, 0)) elif interval[index].get() is 0: i.set_setting('INACTIVE') writer.writerow((i.get_name().get(), i.get_setting(), 'NONE', 'NONE', 0, 0)) else: i.set_setting('DEFAULT') writer.writerow((i.get_name().get(), i.get_setting(), i.get_action_a().get(), i.get_action_b().get(), valve_interval[0], valve_interval[1])) index += 1 finally: file.close() # must fix def save_pref(self): index = 0 for i in self.valves: num = index * 3 if self.preferences.entry_field[num].get(): i.set_name(self.preferences.entry_field[num].get()) self.preferences.entry_field[num].delete(0, 'end') if self.preferences.entry_field[num + 1].get(): i.set_action_a(self.preferences.entry_field[num + 1].get()) self.preferences.entry_field[num + 1].delete(0, 'end') if self.preferences.entry_field[num + 2].get(): i.set_action_b(self.preferences.entry_field[num + 2].get()) self.preferences.entry_field[num + 2].delete(0, 'end') index += 1 def start_stop(self): if self.start_label.get() == 'START': self.start_label.set('STOP') self.master.update() self.run_screen.run_all(True) self.home_button.config(state='disabled') else: self.start_label.set('START') self.run_screen.run_all(False) self.home_button.config(state='normal') def run(self): self.summary.grid_remove() self.run_button.pack_forget() self.run_screen.make_frame() self.frame = self.run_screen self.frame.grid(row=0, column=0) self.header.grid(row=0, column=1) self.label.set('RUN') self.title.pack(side='top') self.start_button.pack() self.home_button.pack(side='bottom') def to_home(self): self.momentary.end_all() self.momentary.delete_frame() self.lock_button.pack_forget() self.run_button.pack_forget() self.save_button.pack_forget() self.reset_button.pack_forget() self.home_button.pack_forget() self.start_button.pack_forget() self.preferences.grid_remove() self.frame.grid_remove() self.header.grid_remove() self.frame = self.home self.frame.grid(row=0, column=0) def to_summary(self): self.frame.grid_remove() self.label.set('SUMMARY') self.home_button.pack(side='right') self.run_button.pack(side='right') self.header.grid(row=0, column=0, columnspan=1, sticky='nsew') self.title.pack(side='left') self.summary = Summary(self.master, self.valves) self.frame = self.summary self.frame.grid(row=1, column=0) def to_edit(self): self.frame.grid_remove() self.label.set('EDIT PROGRAM') self.header.grid(row=0, column=0, columnspan=1, sticky='nsew') self.home_button.pack(side='right') self.save_button.pack(side='right') self.lock_button.pack(side='right') self.reset_button.pack(side='right') self.title.pack(side='left') self.frame = self.edit self.frame.grid(row=1, column=0) def to_momentary(self): self.frame.grid_forget() self.label.set('MOMENTARY') self.header.grid(row=0, column=0, columnspan=12, sticky='ew') self.title.pack(side='left') self.home_button.pack(side='right') self.momentary.make_frame() def to_pref(self): self.frame.grid_remove() self.label.set('PREFERENCES') self.header.grid(row=0, column=0, columnspan=1, sticky='nsew') self.home_button.pack(side='right') self.save_button.pack(side='right') self.lock_button.pack(side='right') self.reset_button.pack(side='right') self.title.pack(side='left') self.frame = self.preferences self.frame.grid(row=1, column=0) def reset(self): self.master.quit() def access_granted(self): self.lock_label.set('UNLOCKED') self.lock_button.config(image=self.unlocked_image) self.save_button.config(state='normal') index = 0 while index < 8: self.edit.minusInterval[index].config(state='normal') self.edit.minusDelay[index].config(state='normal') self.edit.plusInterval[index].config(state='normal') self.edit.plusDelay[index].config(state='normal') self.edit.motor[index].config(state='normal') self.edit.adv[index].config(state='normal') index += 1 for each in self.preferences.entry_field: each.config(state='normal') self.edit.set_seconds() self.save_button.config(state='normal')
def insert_class_reference(self, class_name, source): region = self.view.sel()[0] with Edit(self.view) as edit: edit.replace(region, ' ' + class_name + '.new()\n')
def __init__(self, book_content): self.__content = book_content Add.__init__(self, self.__content) Edit.__init__(self, self.__content)
def __init__(self, content): self.__content = content Add.__init__(self, self.__content) Edit.__init__(self, self.__content)
def on_done(self, repeat): global faker repeat = int(repeat or 0) if repeat > 0: view = View() faker = self._faker() if Pref.seed: faker.seed(Pref.seed) def index(_counter_index=-1): if not _counter_index in index.counter: index.counter[_counter_index] = -1 index.counter[_counter_index] += 1 return index.counter[_counter_index] index.counter = {} faker.index = index try: from .Edit import Edit as Edit except: from Edit import Edit as Edit with Edit(view) as edit: for region in reversed(view.sel()): if region.empty(): continue content = view.substr(region) * repeat functions_and_modifiers = re.findall( '{{(.*?)(\|[^}]+)?}}', content, re.U | re.I) for function, modifiers in functions_and_modifiers: find_for = str('{{' + function + modifiers + '}}') modifiers = modifiers.split('|') modifiers.pop(0) callable = lambda: self.value(lambda: eval('faker.' + function)) value = None if not modifiers: try: value = callable() except Exception as e: print( 'FakeDataGenerator: Error evaluating faker expression "' + function + '" : ' + str(e).strip()) else: for modifier in modifiers: if not value: # the first modifier receive the faker object, and may whish to call it multiple times. pass else: # faker object already applied, just send the value callable = lambda: self._return(value) try: value = eval('self.' + (modifier.replace( '(', '(callable,', 1))) except Exception as e: print( 'FakeDataGenerator: Error evaluating modifier expression "' + modifier + '", or faker expression : ' + str(e).strip()) content = content.replace(find_for, value, 1) edit.replace(region, content)
class GUI: def __init__(self, master): self.valves = self.get_valves() self.master = master self.master.configure(bg='sky blue') self.password = '******' self.momentary = Momentary(self.master, self.valves) self.edit = Edit(self.master, self.valves) self.summary = Summary(self.master, self.valves) self.preferences = Preferences(self.master, self.valves) self.run_screen = RunScreen(self.master, self.valves) self.header = self.make_header(self.master) self.home = self.home_page(self.master) self.frame = self.home def make_header(self, master): header = Frame(master, bg='sky blue') self.label = StringVar() self.label.set('NONE') self.start_label = StringVar() self.start_label.set('START') self.lock_label = StringVar() self.lock_label.set('LOCKED') self.title = Label(header, textvariable=self.label, pady=20, font=('Lucida Console', 50)) self.title.config(bg='sky blue', fg='RoyalBlue4') self.run_image = PhotoImage(file="img/animate.png").subsample(x=5, y=5) self.run_button = Button(header, image=self.run_image, command=self.run, bg='SkyBlue4', activebackground='midnight blue', border=5) self.start_button = Button(header, textvariable=self.start_label, font=('Lucida Console', 30), command=self.start_stop, height=5) self.start_button.config(bg='brown3', activebackground='brown4', fg='white', activeforeground='white', width=10, border=5) self.save_image = PhotoImage(file="img/save.png").subsample(x=5, y=5) self.save_button = Button(header, image=self.save_image, command=self.save, bg='SkyBlue4', activebackground='midnight blue', border=5) self.save_button.config(state='disabled') self.reset_image = PhotoImage(file="img/reset.png").subsample(x=5, y=5) self.reset_button = Button(header, image=self.reset_image, command=self.reset, bg='SkyBlue4', activebackground='midnight blue', border=5) self.home_image = PhotoImage(file="img/home.png").subsample(x=5, y=5) self.home_button = Button(header, image=self.home_image, command=self.to_home, bg='SkyBlue4', activebackground='midnight blue', border=5) self.locked_image = PhotoImage(file="img/lock.png").subsample(x=5, y=5) self.unlocked_image = PhotoImage(file="img/unlock.png").subsample(x=5, y=5) self.lock_button = Button(header, image=self.locked_image, command=self.lock, bg='SkyBlue4', activebackground='midnight blue', border=5, textvariable=self.lock_label) return header def home_page(self, master): frame = Frame(master) frame.grid(row=0, column=0) image = PhotoImage(file="img/guido.gif") bg = Label(frame, image=image) bg.image = image bg.grid(row=0, column=0, rowspan=4, columnspan=2) index = 0 while index < 3: frame.grid_columnconfigure(index, minsize=200) frame.grid_rowconfigure(index, minsize=80) index += 1 summary_button = HomeButton(frame, self.to_summary, 'img/summary.png') summary_button.grid(row=0, column=0, sticky='w') edit_button = HomeButton(frame, self.to_edit, 'img/edit.png') edit_button.grid(row=0, column=1, sticky='e') momentary_button = HomeButton(frame, self.to_momentary, 'img/momentary.png') momentary_button.grid(row=1, column=0, sticky='w') preferences_button = HomeButton(frame, self.to_pref, 'img/preferences.png') preferences_button.grid(row=1, column=1, sticky='e') music = HomeButton(frame, self.to_summary, 'img/music.png') music.grid(row=2, column=0, sticky='w') info = HomeButton(frame, self.to_summary, 'img/info.png') info.grid(row=2, column=1, sticky='e') return frame # CSV file input def get_valves(self): valves = [ Valve('VALVE 1', 'DEFAULT', 'Action A', 'Action B', [0, 0]), Valve('VALVE 2', 'DEFAULT', 'Action A', 'Action B', [0, 0]), Valve('VALVE 3', 'DEFAULT', 'Action A', 'Action B', [0, 0]), Valve('VALVE 4', 'DEFAULT', 'Action A', 'Action B', [0, 0]), Valve('VALVE 5', 'DEFAULT', 'Action A', 'Action B', [0, 0]), Valve('VALVE 6', 'DEFAULT', 'Action A', 'Action B', [0, 0]), Valve('VALVE 7', 'DEFAULT', 'Action A', 'Action B', [0, 0]), Valve('VALVE 8', 'DEFAULT', 'Action A', 'Action B', [0, 0]) ] file = open('data.csv', 'rt', newline='') try: reader = csv.reader(file, lineterminator='\n') index = 0 for row in reader: if index == 0: index += 1 continue else: run = int(row[4]) delay = int(row[5]) interval = [run, delay] valves[index - 1] = Valve(row[0], row[1], row[2], row[3], interval) index += 1 finally: file.close() return valves def lock(self): if self.lock_label.get() == 'LOCKED': window = Toplevel() window.geometry('318x550') self.keypad = Keypad(window, self, self.password) else: self.save_button.config(state='disabled') self.edit.lock() self.preferences.lock() self.lock_label.set('LOCKED') self.lock_button.config(image=self.locked_image) def save(self): self.save_pref() self.save_edit() def save_edit(self): file = open('data.csv', 'w') interval = self.edit.get_intervals() try: writer = csv.writer(file, lineterminator='\n') writer.writerow(('Name', 'Setting', 'Action A', 'Action B', 'Runtime', 'Delaytime')) index = 0 for i in self.valves: i.set_interval( [interval[index].get(), interval[index + 8].get()]) valve_interval = i.get_interval() if self.edit.plusInterval[index].cget( 'state') == 'disabled' and self.edit.motor[index].cget( 'state') != 'disabled': i.set_setting('MOTOR') writer.writerow( (i.get_name().get(), i.get_setting(), i.get_action_a().get(), i.get_action_b().get(), 0, 0)) elif interval[index].get() is 0: i.set_setting('INACTIVE') writer.writerow((i.get_name().get(), i.get_setting(), 'NONE', 'NONE', 0, 0)) else: i.set_setting('DEFAULT') writer.writerow( (i.get_name().get(), i.get_setting(), i.get_action_a().get(), i.get_action_b().get(), valve_interval[0], valve_interval[1])) index += 1 finally: file.close() # must fix def save_pref(self): index = 0 for i in self.valves: num = index * 3 if self.preferences.entry_field[num].get(): i.set_name(self.preferences.entry_field[num].get()) self.preferences.entry_field[num].delete(0, 'end') if self.preferences.entry_field[num + 1].get(): i.set_action_a(self.preferences.entry_field[num + 1].get()) self.preferences.entry_field[num + 1].delete(0, 'end') if self.preferences.entry_field[num + 2].get(): i.set_action_b(self.preferences.entry_field[num + 2].get()) self.preferences.entry_field[num + 2].delete(0, 'end') index += 1 def start_stop(self): if self.start_label.get() == 'START': self.start_label.set('STOP') self.master.update() self.run_screen.run_all(True) self.home_button.config(state='disabled') else: self.start_label.set('START') self.run_screen.run_all(False) self.home_button.config(state='normal') def run(self): self.summary.grid_remove() self.run_button.pack_forget() self.run_screen.make_frame() self.frame = self.run_screen self.frame.grid(row=0, column=0) self.header.grid(row=0, column=1) self.label.set('RUN') self.title.pack(side='top') self.start_button.pack() self.home_button.pack(side='bottom') def to_home(self): self.momentary.end_all() self.momentary.delete_frame() self.lock_button.pack_forget() self.run_button.pack_forget() self.save_button.pack_forget() self.reset_button.pack_forget() self.home_button.pack_forget() self.start_button.pack_forget() self.preferences.grid_remove() self.frame.grid_remove() self.header.grid_remove() self.frame = self.home self.frame.grid(row=0, column=0) def to_summary(self): self.frame.grid_remove() self.label.set('SUMMARY') self.home_button.pack(side='right') self.run_button.pack(side='right') self.header.grid(row=0, column=0, columnspan=1, sticky='nsew') self.title.pack(side='left') self.summary = Summary(self.master, self.valves) self.frame = self.summary self.frame.grid(row=1, column=0) def to_edit(self): self.frame.grid_remove() self.label.set('EDIT PROGRAM') self.header.grid(row=0, column=0, columnspan=1, sticky='nsew') self.home_button.pack(side='right') self.save_button.pack(side='right') self.lock_button.pack(side='right') self.reset_button.pack(side='right') self.title.pack(side='left') self.frame = self.edit self.frame.grid(row=1, column=0) def to_momentary(self): self.frame.grid_forget() self.label.set('MOMENTARY') self.header.grid(row=0, column=0, columnspan=12, sticky='ew') self.title.pack(side='left') self.home_button.pack(side='right') self.momentary.make_frame() def to_pref(self): self.frame.grid_remove() self.label.set('PREFERENCES') self.header.grid(row=0, column=0, columnspan=1, sticky='nsew') self.home_button.pack(side='right') self.save_button.pack(side='right') self.lock_button.pack(side='right') self.reset_button.pack(side='right') self.title.pack(side='left') self.frame = self.preferences self.frame.grid(row=1, column=0) def reset(self): self.master.quit() def access_granted(self): self.lock_label.set('UNLOCKED') self.lock_button.config(image=self.unlocked_image) self.save_button.config(state='normal') index = 0 while index < 8: self.edit.minusInterval[index].config(state='normal') self.edit.minusDelay[index].config(state='normal') self.edit.plusInterval[index].config(state='normal') self.edit.plusDelay[index].config(state='normal') self.edit.motor[index].config(state='normal') self.edit.adv[index].config(state='normal') index += 1 for each in self.preferences.entry_field: each.config(state='normal') self.edit.set_seconds() self.save_button.config(state='normal')