def contains_ignoring_case(self, *items):
if len(items) == <NUM_LIT:0>:<EOL><INDENT>raise ValueError('<STR_LIT>')<EOL><DEDENT>if isinstance(self.val, str_types):<EOL><INDENT>if len(items) == <NUM_LIT:1>:<EOL><INDENT>if not isinstance(items[<NUM_LIT:0>], str_types):<EOL><INDENT>raise TypeError('<STR_LIT>')<EOL><DEDENT>if items[<NUM_LIT:0>].lower() not in self.val.lower():<EOL><INDENT>self._err('<STR_LIT>' % (self.val, items[<NUM_LIT:0>]))<EOL><DEDENT><DEDENT>else:<EOL><INDENT>missing = []<EOL>for i in items:<EOL><INDENT>if not isinstance(i, str_types):<EOL><INDENT>raise TypeError('<STR_LIT>')<EOL><DEDENT>if i.lower() not in self.val.lower():<EOL><INDENT>missing.append(i)<EOL><DEDENT><DEDENT>if missing:<EOL><INDENT>self._err('<STR_LIT>' % (self.val, self._fmt_items(items), self._fmt_items(missing)))<EOL><DEDENT><DEDENT><DEDENT>elif isinstance(self.val, Iterable):<EOL><INDENT>missing = []<EOL>for i in items:<EOL><INDENT>if not isinstance(i, str_types):<EOL><INDENT>raise TypeError('<STR_LIT>')<EOL><DEDENT>found = False<EOL>for v in self.val:<EOL><INDENT>if not isinstance(v, str_types):<EOL><INDENT>raise TypeError('<STR_LIT>')<EOL><DEDENT>if i.lower() == v.lower():<EOL><INDENT>found = True<EOL>break<EOL><DEDENT><DEDENT>if not found:<EOL><INDENT>missing.append(i)<EOL><DEDENT><DEDENT>if missing:<EOL><INDENT>self._err('<STR_LIT>' % (self.val, self._fmt_items(items), self._fmt_items(missing)))<EOL><DEDENT><DEDENT>else:<EOL><INDENT>raise TypeError('<STR_LIT>')<EOL><DEDENT>return self<EOL>
Asserts that val is string and contains the given item or items.