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