def edges(self, nodes=None):
        """
        Returns a ``tuple`` of all edges in the ``DictGraph`` an edge is a pair
        of **node objects**.
        
        Arguments:
        
          - nodes(iterable) [default: ``None``] iterable of **node objects** if 
            specified the edges will be limited to those outgoing from one of 
            the specified nodes.
            
        """
        # If a Node has been directly updated (__not__ recommended)
        # then the Graph will not know the added nodes and therefore will
        # miss half of their edges.
        edges = set()
        for node in (nodes or self.iterkeys()):
            ends = self[node].nodes()
            edges.update([(node, end) for end in ends])
        return tuple(edges)
def edges ( self , nodes = None ) : edges = set ( ) for node in ( nodes or self . iterkeys ( ) ) : ends = self [ node ] . nodes ( ) edges . update ( [ ( node , end ) for end in ends ] ) return tuple ( edges )
Returns a ``tuple`` of all edges in the ``DictGraph`` an edge is a pair
        of **node objects**.
        
        Arguments:
        
          - nodes(iterable) [default: ``None``] iterable of **node objects** if 
            specified the edges will be limited to those outgoing from one of 
            the specified nodes.