seit längerem auch mal wieder eine Frage von mir.
Ich möchte, das andere Leute Plugins und Erweiterungen für Bottle schreiben und diese (ohne mein Zutun) unter einem einheitlichen Namensraum veröffentlichen können. Flask löst das mit "flaskext" Namespace-Paketen. Dummerweise ist dieses Feature eine Eigenart von setuptools (und das ist, auch wenn es fast überall vorhanden ist, eine externe Abhängigkeit die ich vermeiden will) und ist auch sonst mit recht vielen Fallstricken verbunden. Zum Beispiel müssen Plugins dann Pakete sein (keine single-file Plugins möglich) und peinlich genau darauf achten, das ihre __init__.py und setup.py korrekt sind. Wenn nicht, fliegt einem das ganze Paket-Management um die Ohren.
Daher tüftle ich gerade an einem kleinen PEP 302 Import-Hook, der ...
Code: Alles auswählen
import bottle.ext.sqlite
from bottle.ext import some_plugin
Die Frage ist nun: Ist das zu viel Magie? Es ist alles Python- und PEP-konform und läuft zuverlässig, aber könnte das zu Verwirrung führen? Was meint ihr?