code: def tomask(self, pores=None, throats=None):
          r
          if (pores is not None) and (throats is None):
              mask = self._tomask(element='pore', indices=pores)
          elif (throats is not None) and (pores is None):
              mask = self._tomask(element='throat', indices=throats)
          else:
              raise Exception('Cannot specify both pores and throats')
          return mask
docs: r"""
          Convert a list of pore or throat indices into a boolean mask of the
          correct length
  
          Parameters
          ----------
          pores or throats : array_like
              List of pore or throat indices.  Only one of these can be specified
              at a time, and the returned result will be of the corresponding
              length.
  
          Returns
          -------
          A boolean mask of length Np or Nt with True in the specified pore or
          throat locations.
  
          See Also
          --------
          toindices
  
          Examples
          --------
          >>> import openpnm as op
          >>> pn = op.network.Cubic(shape=[5, 5, 5])
          >>> mask = pn.tomask(pores=[0, 10, 20])
          >>> sum(mask)  # 3 non-zero elements exist in the mask (0, 10 and 20)
          3
          >>> len(mask)  # Mask size is equal to the number of pores in network
          125
          >>> mask = pn.tomask(throats=[0, 10, 20])
          >>> len(mask)  # Mask is now equal to number of throats in network
          300