def get_instance(args): return TextEditor(args)
''' Author: Elijah Sawyers Date: 11/11/2019 Overview: Creates the main window, adds the TextEditor widget to the window, and starts the event loop. ''' import tkinter as tk from texteditor import TextEditor if __name__ == '__main__': root = tk.Tk() root.title('escode') root.columnconfigure(0, weight=1) root.rowconfigure(0, weight=1) root.option_add('*tearOff', tk.FALSE) text_editor = TextEditor(root).grid(column=0, row=0, sticky='NSEW') root.mainloop()
def main(): import sys import argparse import colorama from config_store import ConfigStore, ConfigLoadError from mininote import Mininote from texteditor import TextEditor, TextEditorError class NotLoggedInError(Exception): """Error for user not logged in.""" def get_mn(config_store): """ :param ConfigStore config_store: User configuration :returns: Mininote instance """ try: auth_token = config_store.auth_token except ConfigLoadError: raise NotLoggedInError() try: notebook_guid = config_store.notebook_guid except ConfigLoadError: notebook_guid = None login_time0 = time.time() mn = Mininote(auth_token, notebook_guid) logger.debug('Login time: {}'.format(time.time() - login_time0)) return mn colorama.init() root_logger = logging.getLogger() root_logger.setLevel('WARNING') root_logger.addHandler(logging.StreamHandler()) config_store = ConfigStore() parser = argparse.ArgumentParser() parser.add_argument('-v', '--verbose', default=False, action='store_true', help=argparse.SUPPRESS) if len(sys.argv) > 1: subparsers = parser.add_subparsers() addnote = subparsers.add_parser('add') addnote.add_argument('note', help='Note text') addnote.set_defaults(handler=add_note, authorized=True) searchnote = subparsers.add_parser('search') searchnote.add_argument('note', help='Note search filter') searchnote.set_defaults(handler=query_notes, authorized=True) loginopt = subparsers.add_parser('login') loginopt.set_defaults(handler=login, authorized=False) editnote = subparsers.add_parser('edit') editnote.add_argument('note', help='Note search filter') editnote.set_defaults(handler=edit_notes, authorized=True, text_editor=TextEditor(config_store.text_editor)) editor = subparsers.add_parser('set-editor') editor.add_argument('text_editor', help='Name of text editor') editor.set_defaults(handler=set_editor, authorized=False) else: # default is add note parser.set_defaults(handler=add_note, authorized=True, note=None) args = parser.parse_args() if args.verbose: root_logger.setLevel('DEBUG') try: mn = get_mn(config_store) if args.authorized else None args.handler(mn, config_store, args) except NotLoggedInError: logger.error('Please login using \'mn login\'') except TextEditorError: logger.error( 'Error opening text editor\n' + 'Please specify an editor with \'mn set-editor "<path-to-editor>"\'' ) except KeyboardInterrupt: pass