mirror of https://github.com/chriskiehl/Gooey.git
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.
60 lines
1.7 KiB
60 lines
1.7 KiB
import os
|
|
import sys
|
|
import signal
|
|
import warnings
|
|
import textwrap
|
|
from gooey.python_bindings import argparse_to_json
|
|
from gooey.gui.util.quoting import quote
|
|
from gooey.python_bindings import constants
|
|
from gooey.python_bindings import gooey_decorator
|
|
from gooey.gui.util.functional import merge_dictionaries
|
|
|
|
default_layout = {
|
|
'widgets': [{
|
|
'type': 'CommandField',
|
|
'required': True,
|
|
'data': {
|
|
'display_name': 'Enter Commands',
|
|
'help': 'Enter command line arguments',
|
|
'nargs': '',
|
|
'commands': '',
|
|
'choices': [],
|
|
'default': None,
|
|
}
|
|
}],
|
|
}
|
|
|
|
# TODO: deprecate me
|
|
def create_from_parser(parser, source_path, **kwargs):
|
|
|
|
run_cmd = kwargs.get('target')
|
|
if run_cmd is None:
|
|
if hasattr(sys, 'frozen'):
|
|
run_cmd = quote(source_path)
|
|
else:
|
|
run_cmd = '{} -u {}'.format(quote(sys.executable), quote(source_path))
|
|
|
|
build_spec = {**kwargs, 'target': run_cmd}
|
|
|
|
if build_spec['monospace_display']:
|
|
warnings.warn('Gooey Option `monospace_display` is a legacy option.\n'
|
|
'See the terminal_font_x options for more flexible control '
|
|
'over Gooey\'s text formatting')
|
|
|
|
|
|
build_spec['program_description'] = build_spec['program_description'] or parser.description or ''
|
|
|
|
layout_data = (argparse_to_json.convert(parser, **build_spec)
|
|
if build_spec['advanced']
|
|
else default_layout.items())
|
|
|
|
build_spec.update(layout_data)
|
|
|
|
if len(build_spec['widgets']) > 1:
|
|
# there are subparsers involved
|
|
build_spec['show_sidebar'] = True
|
|
|
|
return build_spec
|
|
|
|
|
|
|