code: def shutdown(self):
          ''' shutdown operations on exit, this is run by
          a finaly statement after the tkinter mainloop ends
          call root.quit to get here,
          Note you will still need to call sys.exit()
          '''
          logging.info('Shutdown procedures being run!')
          for func in self.shutdown_cleanup.values():
              func()
          session_time = round((time.time() - self.start_time)/60, 0)
          logging.info('session time: {0} minutes'.format(session_time))
          logging.info('End..'f shutdown(self):
          ''' shutdown operations on exit, this is run by
          a finaly statement after the tkinter mainloop ends
          call root.quit to get here,
          Note you will still need to call sys.exit()
          '''
          logging.info('Shutdown procedures being run!')
          for func in self.shutdown_cleanup.values():
              func()
          session_time = round((time.time() - self.start_time)/60, 0)
          logging.info('session time: {0} minutes'.format(session_time))
          logging.info('End..')
docs: shutdown operations on exit, this is run by
          a finaly statement after the tkinter mainloop ends
          call root.quit to get here,
          Note you will still need to call sys.exit()