Overview

Artifact ID: 3e4d9074a242b326a3ee59e8aa5c5d8761e3a8a05489908da586d84110d4c32a
Page Name:pluginconf
Date: 2022-10-31 12:07:15
Original User: mario
Mimetype:text/x-markdown
Parent: 2f210d8bb33543bbc24dd425d00ef558c2941baca9009b12ef9f8462a38a3b4a (diff)
Next f4c9b0c9dc430d2b32c7b456a747f7de1b077f3cc28d6b69a370f7617c06f968
Content

pluginconf

Is a Python implementation of PMD.

Project URL
Repo https://fossil.include-once.org/pluginspec/tree/pluginconf
API https://fossil.include-once.org/pluginspec/doc/tip/html/index.html
pypi https://pypi.org/project/pluginconf/
freshcode -

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.

  • 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) 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.