code: def _parse_element(self, element, single=False):
          r
          if element is None:
              element = ['pore', 'throat']
          # Convert element to a list for subsequent processing
          if type(element) is str:
              element = [element]
          # Convert 'pore.prop' and 'throat.prop' into just 'pore' and 'throat'
          element = [item.split('.')[0] for item in element]
          # Make sure all are lowercase
          element = [item.lower() for item in element]
          # Deal with an plurals
          element = [item.rsplit('s', maxsplit=1)[0] for item in element]
          for item in element:
              if item not in ['pore', 'throat']:
                  raise Exception('Invalid element received: '+item)
          # Remove duplicates if any
          [element.remove(L) for L in element if element.count(L) > 1]
          if single:
              if len(element) > 1:
                  raise Exception('Both elements recieved when single element ' +
                                  'allowed')
              else:
                  element = element[0]
          return element
docs: r"""
          This private method is used to parse the keyword \'element\' in many
          of the above methods.
  
          Parameters
          ----------
          element : string or list of strings
              The element argument to check.  If is None is recieved, then a list
              containing both \'pore\' and \'throat\' is returned.
  
          single : boolean (default is False)
              When set to True only a single element is allowed and it will also
              return a string containing the element.
  
          Returns
          -------
          When ``single`` is False (default) a list contain the element(s) is
          returned.  When ``single`` is True a bare string containing the element
          is returned.