Ich schreibe gerade an einem kleinen importscript, das mir ein paar Plugins importiert.
Aussehen tut es zur Zeit so:
Code: Alles auswählen
root = self.ctx.cfg.get('root_path', '')
views_path = os.path.abspath(join(root, 'shoxms', 'views'))
sys.path.append(views_path)
for view in os.listdir(views_path):
if not view.endswith('~'):
if view in sys.modules:
continue
view = view.split('.')[0]
fp, pathname, description = imp.find_module(view)
self.mods[view] = imp.load_module(view, fp, pathname, description)
Das Ziel ist es, alle Klassen im Modul `default`, die von einer bestimmten Klasse `View` erben aufzuzeichnen.
Die Metaklassen und alles drum und dran existiert und funktioniert.
Aber wie mache ich es nun, das `imp` alles aus dem Modul `default` importiert, damit die Metaklasse `ViewMeta` die von `View` erbenden Klassen aufzeichnen kann?
Ich hoffe ich habe es halbwegs verständlich ausgedrückt
MfG EnTeQuAk
€dit:
Vielleicht auch ganz interessant, was in `self.mods` später drinne steht:
Code: Alles auswählen
{'default': <module 'default' from '/home/ente/development/webshox-svn/shoxms/trunk/shoxms/views/default.pyc'>,
'': <module '' from '/home/ente/development/webshox-svn/shoxms/trunk/shoxms/views/__init__.pyc'>,
'__init__': <module '__init__' from '/home/ente/development/webshox-svn/shoxms/trunk/shoxms/views/__init__.pyc'>}