code: def _parse_mode(self, mode, allowed=None, single=False):
          r
          if type(mode) is str:
              mode = [mode]
          for item in mode:
              if (allowed is not None) and (item not in allowed):
                  raise Exception('\'mode\' must be one of the following: ' +
                                  allowed.__str__())
          # Remove duplicates, if any
          [mode.remove(L) for L in mode if mode.count(L) > 1]
          if single:
              if len(mode) > 1:
                  raise Exception('Multiple modes received when only one mode ' +
                                  'allowed')
              else:
                  mode = mode[0]
          return mode
docs: r"""
          This private method is for checking the \'mode\' used in the calling
          method.
  
          Parameters
          ----------
          mode : string or list of strings
              The mode(s) to be parsed
  
          allowed : list of strings
              A list containing the allowed modes.  This list is defined by the
              calling method.  If any of the received modes are not in the
              allowed list an exception is raised.
  
          single : boolean (default is False)
              Indicates if only a single mode is allowed.  If this argument is
              True than a string is returned rather than a list of strings, which
              makes it easier to work with in the caller method.
  
          Returns
          -------
          A list containing the received modes as strings, checked to ensure they
          are all within the allowed set (if provoided).  Also, if the ``single``
          argument was True, then a string is returned.