Show More
@@ -73,6 +73,25 b' class _funcregistrarbase(object):' | |||
|
73 | 73 | |
|
74 | 74 | return func |
|
75 | 75 | |
|
76 | def _merge(self, registrarbase): | |
|
77 | """Merge the entries of the given registrar object into this one. | |
|
78 | ||
|
79 | The other registrar object must not contain any entries already in the | |
|
80 | current one, or a ProgrammmingError is raised. Additionally, the types | |
|
81 | of the two registrars must match. | |
|
82 | """ | |
|
83 | if type(self) != type(registrarbase): | |
|
84 | msg = "cannot merge different types of registrar" | |
|
85 | raise error.ProgrammingError(msg) | |
|
86 | ||
|
87 | dups = set(registrarbase._table.keys()).intersection(self._table.keys()) | |
|
88 | ||
|
89 | if dups: | |
|
90 | msg = 'duplicate registration for names: "%s"' % '", "'.join(dups) | |
|
91 | raise error.ProgrammingError(msg) | |
|
92 | ||
|
93 | self._table.update(registrarbase._table) | |
|
94 | ||
|
76 | 95 | def _parsefuncdecl(self, decl): |
|
77 | 96 | """Parse function declaration and return the name of function in it |
|
78 | 97 | """ |
General Comments 0
You need to be logged in to leave comments.
Login now