def subtess(self, vertices, tag=None):
vertices = np.asarray(vertices)<EOL>if len(vertices) != self.vertex_count ornot np.array_equal(vertices, np.asarray(vertices, np.bool)):<EOL><INDENT>tmp = self.index(vertices)<EOL>vertices = np.zeros(self.vertex_count, dtype=np.bool)<EOL>vertices[tmp] = <NUM_LIT:1><EOL><DEDENT>vidcs = self.indices[vertices]<EOL>if len(vidcs) == self.vertex_count: return self<EOL>fsum = np.sum([vertices[f] for f in self.indexed_faces], axis=<NUM_LIT:0>)<EOL>fids = np.where(fsum == <NUM_LIT:3>)[<NUM_LIT:0>]<EOL>faces = self.faces[:,fids]<EOL>vidcs = self.index(np.unique(faces))<EOL>props = self._properties<EOL>if props is not None and len(props) > <NUM_LIT:1>: props = props[vidcs]<EOL>md = self.meta_data.set(tag, self) if pimms.is_str(tag)   elseself.meta_data.set('<STR_LIT>', self) if tag is True elseself.meta_data<EOL>dat = {'<STR_LIT>': faces}<EOL>if props is not self._properties: dat['<STR_LIT>'] = props<EOL>if md is not self.meta_data: dat['<STR_LIT>'] = md<EOL>return self.copy(**dat)<EOL>
tess.subtess(vertices) yields a sub-tesselation of the given tesselation object that only
  contains the given vertices, which may be specified as a boolean vector or as a list of
  vertex labels. Faces and edges are trimmed automatically, but the vertex labels for the
  new vertices remain the same as in the original graph.
The optional argument tag may be set to True, in which case the new tesselation's meta-data
will contain the key 'supertess' whose value is the original tesselation tess; alternately
tag may be a string in which case it is used as the key name in place of 'supertess'.