16 from itertools
import chain
21 from .usererrorhandler
import UserErrorHandler
27 self.
_normal_normal = NormalizedDict(ignore=
'_')
30 def add(self, handler, embedded=False):
33 elif handler.name
not in self.
_normal_normal:
34 self.
_normal_normal[handler.name] = handler
36 error =
DataError(
'Keyword with same name defined multiple times.')
50 return any(template.matches(name)
for template
in self.
_embedded_embedded)
54 if len(handlers) == 1:
57 raise ValueError(f
"No handler with name '{name}' found.")
58 names =
seq2str([handler.name
for handler
in handlers])
59 raise ValueError(f
"Multiple handlers matching name '{name}' found: {names}")
63 return [self.
_normal_normal[name]]
64 return [template
for template
in self.
_embedded_embedded
if template.matches(name)]
def add(self, handler, embedded=False)
def __getitem__(self, name)
def get_handlers(self, name)
def __contains__(self, name)
Created if creating handlers fail – running raises DataError.
def seq2str(sequence, quote="'", sep=', ', lastsep=' and ')
Returns sequence in format ‘'item 1’, 'item 2' and 'item 3'`.