Exemplo n.º 1
0
 def remove_subgraph(self, name):
     """Remove subgraph with given name."""  
     try:
         handle=gv.agsubg(self.handle,name,_Action.find)
     except TypeError:
         raise TypeError("Subgraph name must be a string: %s"%name)
     if handle is None: 
         raise KeyError("Subgraph %s not in graph."%name)
     gv.agdelsubg(self.handle,handle)
Exemplo n.º 2
0
    def get_subgraph(self,name):
        """Return existing subgraph with specified name or None if it
        doesn't exist.
        """
        try:
            handle=gv.agsubg(self.handle,name,_Action.find)
        except TypeError:
            raise TypeError("Subgraph name must be a string: %s"%name)

        if handle is None: return None
        H=self.__class__(strict=self.strict,
                         directed=self.directed,
                         handle=handle)
        return H
Exemplo n.º 3
0
    def add_subgraph(self, nbunch=None, name=None, **attr):
        """Return subgraph induced by nodes in nbunch.
        """
        try:
            handle=gv.agsubg(self.handle,name,_Action.create)
        except TypeError:
            raise TypeError("Subgraph name must be a string: %s"%name)

        H=self.__class__(strict=self.strict,
                         directed=self.directed,
                         handle=handle,name=name,**attr)
        if nbunch is None: return H
        # add induced subgraph on nodes in nbunch
        bunch=self.prepare_nbunch(nbunch)
        H.add_nodes_from(bunch)
        for (u,v) in self.edges():
            if u in H and v in H: 
                H.add_edge(u,v)

        return H