Package pluginconf

Plugin meta extraction and module lookup.

  • Main function plugin_meta() unpacks meta fields into dictionaries.
  • Other utility code is about module listing, relative to plugin_base anchors.
  • //
  • //
  • Sub-modules


    Basic plugin loader implementation. Plugins are assumed to reside in a flat namespace (main difference to module imports). This ties together …


    Dependency validation and consistency checker for updates


    Hijacks flit to use pluginconf sources. (It's a hack, but builds work.) …


    PySimpleGUI window to populate config dict via plugin options …


    Expands setuptools.setup() with automatic package description lookup

    Implements a rudimentary JSON config store, and convenient dict with .property access (PluginMeta). Though you might simply use the …

    Global variables

    var config_opt_type_map

    normalize config type: names to str, text, bool, int, select, dict

    var data_root

    File lookup relation for get_data(), should name a top-level package. (Equivalent to PluginBase(package=…))

    var plugin_base

    Package/module names (or directories) for module_list() and plugin_meta() lookups. Associated paths (__path__) will be scanned for module/plugin basenames. (Similar to PluginBase(searchpath=…))


    def add_plugin_defaults(conf_options, conf_plugins, meta, module='')

    Utility function to collect defaults from plugin meta data to a config dict/store.

    conf_options dict 🔁 storage for amassed #config: options
    conf_plugins dict 🔁 activation status derived from state/priority:
    meta dict input plugin meta data (invoke once per plugin)
    module str basename of meta: blocks plugin file
    Returns None -
    def all_plugin_meta()

    This is a trivial wrapper to assemble a complete dictionary of available/installed plugins. It associates each plugin name with a its meta{} fields.

    Returns dict names to PluginMeta dict
    def get_data(filename, decode=False, gzip=False, file_root=None, warn=True)

    Fetches file content from install path or from within PYZ archive. This is just an alias and convenience wrapper for pkgutil.get_data(). Utilizes the data_root as top-level reference.

    filename str filename in pyz or bundle
    decode bool text file decoding utf-8
    gzip bool automatic gzdecode
    file_root list alternative base module (application or pyz root)
    Returns str file contents
    def module_list(extra_paths=None)

    Search through ./plugins/ (and other configured plugin_base names → paths) and get module basenames.

    extra_paths list in addition to plugin_base list
    Returns list names of found plugins
    def plugin_meta(filename=None, src=None, module=None, frame=1, **kwargs)

    Extract plugin meta data block from specified source.

    filename str Read literal files, or .pyz contents.
    src str From already uncovered script code.
    module str Lookup per pkgutil, relative to plugin_base
    frame int Extract comment header of caller (default).
    extra_base list Additional search directories.
    max_length list Maximum size to read from files (6K default).
    🔙 dict Extracted comment fields, with config: preparsed

    The result dictionary (PluginMeta) has fields accessible as e.g. meta["title"] or meta.version. The documentation block after all fields: is called meta["doc"]. And meta.config already parsed as a list (OptionList) of dictionaries.


    class OptionList (*args, **kwargs)

    List of config: options, with alernative .name access (lookup by name= from option entry).


    • builtins.list
    class PluginMeta (*args, **kwargs)

    Plugin meta data as dictionary{}, or alternatively .property access. Returned for each plugin_meta() result, and individual config: options. Absent .field access resolves to "".


    • builtins.dict