code: def assertCategoricalLevelIn(self, level, levels, msg=None):
          '''Fail if ``level`` is not in ``levels``.
  
          This is equivalent to ``self.assertIn(level, levels)``.
  
          Parameters
          ----------
          level
          levels : iterable
          msg : str
              If not provided, the :mod:`marbles.mixins` or
              :mod:`unittest` standard message will be used.
  
          Raises
          ------
          TypeError
              If ``levels`` is not iterable.
          '''
          if not isinstance(levels, collections.Iterable):
              raise TypeError('Second argument is not iterable')
  
          self.assertIn(level, levels, msg=msgf assertCategoricalLevelIn(self, level, levels, msg=None):
          '''Fail if ``level`` is not in ``levels``.
  
          This is equivalent to ``self.assertIn(level, levels)``.
  
          Parameters
          ----------
          level
          levels : iterable
          msg : str
              If not provided, the :mod:`marbles.mixins` or
              :mod:`unittest` standard message will be used.
  
          Raises
          ------
          TypeError
              If ``levels`` is not iterable.
          '''
          if not isinstance(levels, collections.Iterable):
              raise TypeError('Second argument is not iterable')
  
          self.assertIn(level, levels, msg=msg)
docs: Fail if ``level`` is not in ``levels``.
  
          This is equivalent to ``self.assertIn(level, levels)``.
  
          Parameters
          ----------
          level
          levels : iterable
          msg : str
              If not provided, the :mod:`marbles.mixins` or
              :mod:`unittest` standard message will be used.
  
          Raises
          ------
          TypeError
              If ``levels`` is not iterable.