D 2022-11-01T18:05:03.811 L pluginconf N text/x-markdown P 3e4d9074a242b326a3ee59e8aa5c5d8761e3a8a05489908da586d84110d4c32a U mario W 1780 ## pluginconf Is a Python implementation of [PMD](wiki/Plugin+Meta+Data). | proejct | info | |---------|-------------------------------------------| | Repo | [/tree/pluginconf/](tree/pluginconf) | | API docs| [/doc/trunk/html/](doc/trunk/html/) | | pypi | | | depends | re, pysimplegui, setuptools, flit | | compat | Python ≥2.7, | |compliancy| pep8, !man, !doap, self | | system usage| - | | permissive | 0.75 | | testing | 0.5 | | activity | infreq | | state | stable | | support | email | | contrib | mail, fossil | | announce| - | It [originated](http://fossil.include-once.org/streamtuner2/wiki/plugin+meta+data) 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. * Only supports Python `#` comments. * Works from within pyz/zip packages. * Additionally wraps setup() and flit package builds. ### 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](doc/tip/html/bind.html)) 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. Z 9d13ac21c2bc1ddfe7a3bffde9a3d9a7