The starting point for each extenion is a class extending AbstractExtension:
-
class
vispa.server.AbstractExtension(server)¶ Base class for Extensions
-
add_controller(controller)¶ Mount a CherryPy controller using the extension name for path.
Parameters: controller – filename relative to extension directory
-
add_workspace_directoy(directory='workspace')¶ Add files to be transferred to the worker.
Parameters: directoy – directory relative to extension directory
-
clear_workspace_instance(name, key=None, user=None, workspace=None, db=None)¶
-
config()¶
-
create_topic(topic='', view_id=None)¶
-
dependencies()¶ Return a list of Extension names this Extension depends on.
-
get_workspace_instance(name, key=None, user=None, workspace=None, db=None, **kwargs)¶
-
name()¶ Return the name of the Extension. This name is used as part of the URL.
-
setup()¶ Setup the extension.
-
A minimal example looks like this:
from vispa.server import AbstractExtension
class MyExtension(AbstractExtension):
def name(self):
return "myext"
def dependencies(self):
return []
def setup(self):
pass
- Directories from which extensions are loaded:
- vispa/extensions
- $(var_dir)/extensions
- global packages starting with vispa_
In our example, the code above could be placed in a __init__.py file in a global package/directory named vispa_myext-1.0. By default VISPA loads all extensions it finds, but extensions listed in vispa.ini, section extensions, option ignore will be ignored:
[extensions]
ignore = myext
Controller¶
AbstractController
-
class
vispa.controller.AbstractController(mount_static=True)¶ -
cache(workspace_id, key)¶
-
convert(value, flag)¶
-
get(key, *args, **kwargs)¶
-
mount_static(path=None, url='static')¶
-
release()¶
-
release_database()¶
-
release_session()¶
-
set_cache(workspace_id, item, key=None)¶
-
add_controller
every exposed function is visible
parameters need to be present or 404, or default
cherrypy.tools.ajax()
return values, sring, objects
available cherrypy.request variables
Workspace¶
self.get_workspace_instance()
Client¶
TODO