lib/actions.py
author fabien@tzone.org
Wed, 31 Dec 2008 16:26:22 -0500
changeset 75 4f6b7b48322f
parent 74 6784c4350b41
child 76 147eddb3826c
permissions -rw-r--r--
A lot of fix again, for folder view, bookmark editing and removal and some error handling.

import imp
import sys
import os


class ActionsLoader:
	def __init__(self):
		self._actions = {}
	def keys(self):
		return self._actions.keys()
	def _getmodule(self, name):
		modpath = os.path.join(os.path.dirname(__file__), 'actions')
		fp, pathname, description = imp.find_module(name, [modpath])
		try:
			return imp.load_module(name, fp, pathname, description)
		finally:
			if fp:
				fp.close()
	def __getitem__(self, item):
		mname, fname = self._actions[item]
		return self._getmodule(mname).__dict__[fname]
	def __setitem__(self, key, value):
		self._actions[key] = value
		

actions = ActionsLoader()
actions['index'] = ('index', 'do_it')
actions['import'] = ('imp_xbel', 'do_it')
actions['bookmark'] = ('bookmark', 'do_it')
actions['keywords'] = ('editkw', 'do_it')
actions['prefs'] = ('edit_prefs', 'do_it')
actions['folder'] = ('folder', 'do_it')

actions['default'] = actions['index']