cement.core.hook
¶
Cement core hooks module.
-
class
cement.core.hook.
HookManager
(use_backend_globals=False)¶ Bases:
object
Manages the hook system to define, get, run, etc hooks within the the Cement Framework and applications Built on Cement (tm).
Parameters: use_backend_globals – Whether to use backend globals (backward compatibility and deprecated). -
define
(name)¶ Define a hook namespace that the application and plugins can register hooks in.
Parameters: name – The name of the hook, stored as hooks[‘name’] Raises: cement.core.exc.FrameworkError Usage:
from cement.core.foundation import CementApp with CementApp('myapp') as app: app.hook.define('my_hook_name')
-
defined
(hook_name)¶ Test whether a hook name is defined.
Parameters: hook_name – The name of the hook. I.e. my_hook_does_awesome_things
.Returns: True if the hook is defined, False otherwise. Return type: boolean
Usage:
from cement.core.foundation import CementApp with CementApp('myapp') as app: app.hook.defined('some_hook_name'): # do something about it pass
-
register
(name, func, weight=0)¶ Register a function to a hook. The function will be called, in order of weight, when the hook is run.
Parameters: - name – The name of the hook to register too.
I.e.
pre_setup
,post_run
, etc. - func – The function to register to the hook. This is an un-instantiated, non-instance method, simple function.
- weight (
int
) – The weight in which to order the hook function.
Usage:
from cement.core.foundation import CementApp def my_hook_func(app): # do something with app? return True with CementApp('myapp') as app: app.hook.define('my_hook_name') app.hook.register('my_hook_name', my_hook_func)
- name – The name of the hook to register too.
I.e.
-
run
(name, *args, **kwargs)¶ Run all defined hooks in the namespace. Yields the result of each hook function run.
Parameters: - name – The name of the hook function.
- args – Additional arguments to be passed to the hook functions.
- kwargs – Additional keyword arguments to be passed to the hook functions.
Raises: FrameworkError
Usage:
from cement.core.foundation import CementApp def my_hook_func(app): # do something with app? return True with CementApp('myapp') as app: app.hook.define('my_hook_name') app.hook.register('my_hook_name', my_hook_func) for res in app.hook.run('my_hook_name', self): # do something with the result? pass
-
-
cement.core.hook.
define
(name)¶ DEPRECATION WARNING: This function is deprecated as of Cement 2.7.x and will be removed in future versions of Cement. Use
CementApp.hook.define()
instead.—
Define a hook namespace that plugins can register hooks in.
Parameters: name – The name of the hook, stored as hooks[‘name’] Raises: cement.core.exc.FrameworkError Usage:
from cement.core import hook hook.define('myhookname_hook')
-
cement.core.hook.
defined
(hook_name)¶ DEPRECATION WARNING: This function is deprecated as of Cement 2.7.x and will be removed in future versions of Cement. Use
CementApp.hook.defined()
instead.—
Test whether a hook name is defined.
Parameters: hook_name – The name of the hook. I.e. my_hook_does_awesome_things
.Returns: True if the hook is defined, False otherwise. Return type: boolean
-
cement.core.hook.
register
(name, func, weight=0)¶ DEPRECATION WARNING: This function is deprecated as of Cement 2.7.x and will be removed in future versions of Cement. Use
CementApp.hook.register()
instead.—
Register a function to a hook. The function will be called, in order of weight, when the hook is run.
Parameters: - name – The name of the hook to register too. I.e.
pre_setup
,post_run
, etc. - func – The function to register to the hook. This is an un-instantiated, non-instance method, simple function.
- weight (
int
) – The weight in which to order the hook function.
Usage:
from cement.core import hook def my_hook(*args, **kwargs): # do something here res = 'Something to return' return res hook.register('post_setup', my_hook)
- name – The name of the hook to register too. I.e.
-
cement.core.hook.
run
(name, *args, **kwargs)¶ DEPRECATION WARNING: This function is deprecated as of Cement 2.7.x and will be removed in future versions of Cement. Use
CementApp.hook.run()
instead.—
Run all defined hooks in the namespace. Yields the result of each hook function run.
Parameters: - name – The name of the hook function.
- args – Additional arguments to be passed to the hook functions.
- kwargs – Additional keyword arguments to be passed to the hook functions.
Raises: FrameworkError
Usage:
from cement.core import hook for result in hook.run('hook_name'): # do something with result from each hook function ...