pluginconf

Is a Python implementation of plugin meta data. It's somewhat fault tolerant (syntax/format variations supported), and adds a module loader.

proejct info
Repo /tree/pluginconf/
API /doc/trunk/html/
pypi https://pypi.org/project/pluginconf/
depends re, pysimplegui, setuptools, flit
compat Python ≥2.7
testing 0.5, infreq
contrib mail, fossil
announce -

It originated in streamtuner2. But has since gained some config dialog implementation of its own (for modseccfg and other small tools). Simplifies configuration management, and has a pretty terse API.

  • Primarily supports Python # comments. (Other syntax variants coming.)
  • Additionally works from within pyz/zip packages.
  • And adds setup() and flit package build wrappers.

sample

# api: python
# title: example
# description: shows plugin_meta() reading
##type: main
# version: 0.1
# 
# Imagine this being a real Python script.

import pluginconf
meta = pluginconf.plugin_meta(filename=__file__)
print(meta.title)

pluginconf.plugin_base = ["plugins", "contrib"]
print(pluginconf.all_plugin_meta())

There's also a simplified interface now (pluginconf.bind) for most common use cases. Though of course it makes most sense if there are actual script/extension downloads.

The double-escaped ##type: is a concession to pylint. It's not actually required, espcially if #category: or #class: could alternatively be used for extension grouping.