Module pluginconf.gui
PySimpleGUI window to populate config dict via plugin options
Functions
def option_entry(opt, config)
-
widgets for single config option
def plugin_entry(pmd, plugin_states)
-
checkbox for plugin name
def plugin_layout(pmd_list, config, plugin_states, opt_label=False)
-
craft list of widgets for each read plugin
def read_options(files)
-
read files, return dict of {id:pmd} for all plugins
def window(config, plugin_states, files=['*/*.py'], **kwargs)
-
Reads *.py files and crafts a settings dialog from meta data.
Where
plugin_states{}
is usually an entry inconfig{}
itself. Depending on plugin and option names, it might even be a flat/shared namespace for both. Per default you'd setfiles=["plugins/*.py", __file__]
to be read. But withfiles=[]
it's possible to provide aplugins=pluginconf.get_plugin_meta()
or prepared plugin/options dict instead.Parameters
config
:dict 🔁
- Config settings, updated after dialog completion
plugin_states
:dict 🔁
- Plugin activation states, also input/output
files
:list
- Glob list of *.py files to extract meta definitions from
plugins
:dict
- Alternatively to files=[] list, a preparsed list of pluginmeta+config dicts can be injected
opt_label
:bool
- Show config name= as label
theme
:str
- Set PSG window theme.
**kwargs
:dict
- Other options are passed on to PySimpleGUI
Returns
True
:if changed config{} values are to be saved (the dict will be updated in any case)
def wrap(text, width=50)
-
textwrap for
description
andhelp
option fields
Classes
class Cast
-
map option types (from strings)
Static methods
def bool(val)
-
map boolean literals
def fromtype(val, opt)
-
cast according to option type
def int(val)
-
verify integer