def __init__(self, *searchers):
super(SearcherCollection, self).__init__()<EOL>self.extend(_flatten(searchers))<EOL>if not self:<EOL><INDENT>raise ValueError(self.__class__.__name__ + '<STR_LIT>'<EOL>'<STR_LIT>')<EOL><DEDENT>for searcher in self:<EOL><INDENT>try:<EOL><INDENT>getattr(searcher, '<STR_LIT>')<EOL><DEDENT>except AttributeError:<EOL><INDENT>raise TypeError('<STR_LIT>')<EOL><DEDENT>try:<EOL><INDENT>getattr(searcher, '<STR_LIT>')<EOL><DEDENT>except AttributeError:<EOL><INDENT>raise TypeError('<STR_LIT>')<EOL><DEDENT><DEDENT>match_type = self[<NUM_LIT:0>].match_type<EOL>if not all(map(lambda x: x.match_type == match_type, self)):<EOL><INDENT>raise ValueError(self.__class__.__name__ + '<STR_LIT>'<EOL>'<STR_LIT>')<EOL><DEDENT>self._match_type = match_type<EOL>
:param searchers: One or more :class:`Searcher` implementations.