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

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