Overview
| Comment: | add some vague permissive: score for modules (error tolerancy/ignorance) |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
d8df8b1ba2d83942747ad5af12060398 |
| User & Date: | mario on 2022-10-28 22:40:48 |
| Other Links: | manifest | tags |
Context
|
2022-10-28
| ||
| 23:40 | add images check-in: fec21b6643 user: mario tags: trunk | |
| 22:40 | add some vague permissive: score for modules (error tolerancy/ignorance) check-in: d8df8b1ba2 user: mario tags: trunk | |
| 22:31 | introduce ConfigList() for config: key access check-in: fec593dcbd user: mario tags: trunk | |
Changes
Modified pluginconf/__init__.py from [f4eabf5fc1] to [4be8e0326c].
| ︙ | ︙ | |||
12 13 14 15 16 17 18 19 20 21 22 23 24 25 | # license: PD # priority: core # api-docs: https://fossil.include-once.org/pluginspec/doc/trunk/html/index.html # docs: https://fossil.include-once.org/pluginspec/ # url: http://fossil.include-once.org/streamtuner2/wiki/plugin+meta+data # config: - # format: off # pylint: disable=invalid-name # console-scripts: flit-pluginconf=pluginconf.flit:main, pluginconf.flit=pluginconf.flit:main # # Provides plugin lookup and meta data extraction utility functions. # It's used to abstract module+option management in applications. # For consolidating internal use and external/tool accessibility. # | > | 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | # license: PD # priority: core # api-docs: https://fossil.include-once.org/pluginspec/doc/trunk/html/index.html # docs: https://fossil.include-once.org/pluginspec/ # url: http://fossil.include-once.org/streamtuner2/wiki/plugin+meta+data # config: - # format: off # permissive: 0.75 # pylint: disable=invalid-name # console-scripts: flit-pluginconf=pluginconf.flit:main, pluginconf.flit=pluginconf.flit:main # # Provides plugin lookup and meta data extraction utility functions. # It's used to abstract module+option management in applications. # For consolidating internal use and external/tool accessibility. # |
| ︙ | ︙ | |||
107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
except ImportError:
import zlib
def gzip_decode(bytestr):
""" haphazard workaround """
return zlib.decompress(bytestr, 16 + zlib.MAX_WBITS)
import zipfile
import argparse
__all__ = [
"plugin_meta", "get_data", "module_list", "add_plugin_defaults",
"PluginMeta", "all_plugin_meta",
]
# Injectables
# ‾‾‾‾‾‾‾‾‾‾‾
""" injectable callback function for logging """
| > | | 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
except ImportError:
import zlib
def gzip_decode(bytestr):
""" haphazard workaround """
return zlib.decompress(bytestr, 16 + zlib.MAX_WBITS)
import zipfile
import argparse
import logging
__all__ = [
"plugin_meta", "get_data", "module_list", "add_plugin_defaults",
"PluginMeta", "all_plugin_meta",
]
# Injectables
# ‾‾‾‾‾‾‾‾‾‾‾
""" injectable callback function for logging """
log = logging.getLogger("pluginconf")
"""
File lookup relation for get_data(), should name a top-level package.
(Equivalent PluginBase(package=…))
"""
module_base = "config"
|
| ︙ | ︙ | |||
195 196 197 198 199 200 201 |
data = pkgutil.get_data(file_base or module_base, filename)
if gzip:
data = gzip_decode(data)
if decode:
return data.decode("utf-8", errors='ignore')
return str(data)
except:
| | | 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 |
data = pkgutil.get_data(file_base or module_base, filename)
if gzip:
data = gzip_decode(data)
if decode:
return data.decode("utf-8", errors='ignore')
return str(data)
except:
log.error("get_data() didn't find:", fn, "in", file_base)
pass
# Plugin name lookup
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
def module_list(extra_paths=None):
"""
|
| ︙ | ︙ | |||
351 352 353 354 355 356 357 |
}
# Extract coherent comment block
src = src.replace("\r", "")
if not literal:
src = rx.comment.search(src)
if not src:
| | | 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 |
}
# Extract coherent comment block
src = src.replace("\r", "")
if not literal:
src = rx.comment.search(src)
if not src:
log.error("Couldn't read source meta information:", filename)
return meta
src = src.group(0)
src = rx.hash.sub("", src).strip()
# Split comment block
if src.find("\n\n") > 0:
src, meta["doc"] = src.split("\n\n", 1)
|
| ︙ | ︙ |
Modified pluginconf/depends.py from [9f3c7d2302] to [f7f101f5bf].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | # encoding: utf-8 # api: pluginconf ##type: class # category: config # title: Dependency verification # description: Check depends: lines # depends: pluginconf >= 0.7 # version: 0.5 # state: beta # license: PD # priority: optional # # This is a rather basic depends: checker, mostly for local and # installable modules. It's largely built around streamtuner2 # requirements, and should be customized. # # Check().depends()/.valid() # ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ | > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | # encoding: utf-8 # api: pluginconf ##type: class # category: config # title: Dependency verification # description: Check depends: lines # depends: pluginconf >= 0.7 # version: 0.5 # state: beta # license: PD # priority: optional # permissive: 0.8 # # This is a rather basic depends: checker, mostly for local and # installable modules. It's largely built around streamtuner2 # requirements, and should be customized. # # Check().depends()/.valid() # ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ |
| ︙ | ︙ |
Modified pluginconf/flit.py from [fd547f8d0f] to [555cf6a6b4].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # encoding: utf-8 # api: pep517 # title: flit backend # description: wraps flit_core.buildapi # version: 0.3 # depends: python:flit (>=3.0, <4.0) # license: BSD-3-Clause # priority: extra # pylint: disable=unused-import, wrong-import-position, wrong-import-order # # As alternative to pluginconf.setup, this module is using flit as # pep517 build backend. But adding automagic field lookup of course. # # Injecting attributes between ini reading and parameter collection # turned out easier than expanding on flit_core.buildapi functions. | > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | # encoding: utf-8 # api: pep517 # title: flit backend # description: wraps flit_core.buildapi # version: 0.3 # depends: python:flit (>=3.0, <4.0) # license: BSD-3-Clause # priority: extra # permissive: 0.1 # pylint: disable=unused-import, wrong-import-position, wrong-import-order # # As alternative to pluginconf.setup, this module is using flit as # pep517 build backend. But adding automagic field lookup of course. # # Injecting attributes between ini reading and parameter collection # turned out easier than expanding on flit_core.buildapi functions. |
| ︙ | ︙ |
Modified pluginconf/gui.py from [70ac617c4f] to [309455414c].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# encoding: UTF-8
# api: python
##type: gui
# category: io
# title: Config GUI
# description: Display plugins + options in setup window
# version: 0.8
# depends: python:pysimplegui (>= 4.0)
# priority: optional
# config: -
# pylint: disable=line-too-long
#
# Creates a PySimpleGUI options list. Scans a given list of *.py files
# for meta data, then populates a config{} dict and (optionally) a state
# map for plugins themselves.
#
# jsoncfg = {}
| > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# encoding: UTF-8
# api: python
##type: gui
# category: io
# title: Config GUI
# description: Display plugins + options in setup window
# version: 0.8
# depends: python:pysimplegui (>= 4.0)
# priority: optional
# config: -
# permissive: 0.5
# pylint: disable=line-too-long
#
# Creates a PySimpleGUI options list. Scans a given list of *.py files
# for meta data, then populates a config{} dict and (optionally) a state
# map for plugins themselves.
#
# jsoncfg = {}
|
| ︙ | ︙ |
Modified pluginconf/setup.py from [87ccea3a82] to [2c993b00fe].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # encoding: utf-8 # api: setuptools ##type: functions # title: setup() wrapper # description: utilizes PMD to populate some package fields # version: 0.5 # license: PD # pylint: disable=line-too-long # # Utilizes plugin meta data to cut down setup.py incantations # to basically just: # # from pluginconf.setup import setup # setup( | > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # encoding: utf-8 # api: setuptools ##type: functions # title: setup() wrapper # description: utilizes PMD to populate some package fields # version: 0.5 # license: PD # permissive: 0.3 # pylint: disable=line-too-long # # Utilizes plugin meta data to cut down setup.py incantations # to basically just: # # from pluginconf.setup import setup # setup( |
| ︙ | ︙ |