You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
'''
Main runner entry point for Gooey. '''
import wx import os import sys import json import argparse
from functools import partial
from gooey.gui.lang import i18n from gooey.gui.windows.base_window import BaseWindow from gooey.gui.windows.advanced_config import ConfigPanel
from gooey.python_bindings import config_generator, source_parser
def main(): parser = argparse.ArgumentParser( description='Gooey turns your command line programs into beautiful, user friendly GUIs')
parser.add_argument( '-b', '--create-build-script', dest='build_script', help='Parse the supplied Python File and generate a runnable Gooey build script' )
parser.add_argument( '-r', '--run', dest='run', nargs='?', const='', help='Run Gooey with build_config in local dir OR via the supplied config path' )
args = parser.parse_args()
if args.build_script: do_build_script(args.build_script) elif args.run is not None: do_run(args)
def do_build_script(module_path): with open(module_path, 'r') as f: if not source_parser.has_argparse(f.read()): raise AssertionError('Argparse not found in module. Unable to continue')
gooey_config = config_generator.create_from_parser(module_path, show_config=True) outfile = os.path.join(os.getcwd(), 'gooey_config.json')
print 'Writing config file to: {}'.format(outfile)
with open(outfile, 'w') as f: f.write(json.dumps(gooey_config, indent=2))
def do_run(args): gooey_config = args.run or read_local_dir()
if not os.path.exists(gooey_config): raise IOError('Gooey Config not found')
with open(gooey_config, 'r') as f: build_spec = json.load(f) run(build_spec)
def run(build_spec): app = wx.App(False)
i18n.load(build_spec['language'])
frame = BaseWindow(build_spec) frame.Show(True) app.MainLoop()
def read_local_dir(): local_files = os.listdir(os.getcwd()) if 'gooey_config.json' not in local_files: print "Bugger! gooey_config.json not found!" sys.exit(1) return os.path.join(os.getcwd(), 'gooey_config.json')
if __name__ == '__main__': main()
|