19
19
from __future__ import absolute_import
25
from .lazy_import import lazy_import
25
from bzrlib.lazy_import import lazy_import
26
26
lazy_import(globals(), """
30
30
_format_version_tuple,
33
from breezy.i18n import gettext
34
from bzrlib.i18n import gettext
37
class UnknownHook(errors.BzrError):
39
_fmt = "The %(type)s hook '%(hook)s' is unknown in this version of breezy."
41
def __init__(self, hook_type, hook_name):
42
errors.BzrError.__init__(self)
47
38
class KnownHooksRegistry(registry.Registry):
48
39
# known_hooks registry contains
49
40
# tuple of (module, member name) which is the hook point
74
65
:return: The parent_object of the hook and the name of the attribute on
75
66
that parent object where the hook is kept.
77
parent_mod, parent_member, attr = pyutils.calc_parent_name(*key)
68
parent_mod, parent_member, attr = pyutils.calc_parent_name(module_name,
78
70
return pyutils.get_named_object(parent_mod, parent_member), attr
81
73
_builtin_known_hooks = (
82
('breezy.branch', 'Branch.hooks', 'BranchHooks'),
83
('breezy.controldir', 'ControlDir.hooks', 'ControlDirHooks'),
84
('breezy.commands', 'Command.hooks', 'CommandHooks'),
85
('breezy.config', 'ConfigHooks', '_ConfigHooks'),
86
('breezy.info', 'hooks', 'InfoHooks'),
87
('breezy.lock', 'Lock.hooks', 'LockHooks'),
88
('breezy.merge', 'Merger.hooks', 'MergeHooks'),
89
('breezy.msgeditor', 'hooks', 'MessageEditorHooks'),
90
('breezy.mutabletree', 'MutableTree.hooks', 'MutableTreeHooks'),
91
('breezy.bzr.smart.client', '_SmartClient.hooks', 'SmartClientHooks'),
92
('breezy.bzr.smart.server', 'SmartTCPServer.hooks', 'SmartServerHooks'),
93
('breezy.status', 'hooks', 'StatusHooks'),
94
('breezy.transport', 'Transport.hooks', 'TransportHooks'),
95
('breezy.version_info_formats.format_rio', 'RioVersionInfoBuilder.hooks',
74
('bzrlib.branch', 'Branch.hooks', 'BranchHooks'),
75
('bzrlib.controldir', 'ControlDir.hooks', 'ControlDirHooks'),
76
('bzrlib.commands', 'Command.hooks', 'CommandHooks'),
77
('bzrlib.config', 'ConfigHooks', '_ConfigHooks'),
78
('bzrlib.info', 'hooks', 'InfoHooks'),
79
('bzrlib.lock', 'Lock.hooks', 'LockHooks'),
80
('bzrlib.merge', 'Merger.hooks', 'MergeHooks'),
81
('bzrlib.msgeditor', 'hooks', 'MessageEditorHooks'),
82
('bzrlib.mutabletree', 'MutableTree.hooks', 'MutableTreeHooks'),
83
('bzrlib.smart.client', '_SmartClient.hooks', 'SmartClientHooks'),
84
('bzrlib.smart.server', 'SmartTCPServer.hooks', 'SmartServerHooks'),
85
('bzrlib.status', 'hooks', 'StatusHooks'),
86
('bzrlib.transport', 'Transport.hooks', 'TransportHooks'),
87
('bzrlib.version_info_formats.format_rio', 'RioVersionInfoBuilder.hooks',
96
88
'RioVersionInfoBuilderHooks'),
97
('breezy.merge_directive', 'BaseMergeDirective.hooks',
89
('bzrlib.merge_directive', 'BaseMergeDirective.hooks',
98
90
'MergeDirectiveHooks'),