Statistics
| Branch: | Revision:

## iof-tools / networkxMiCe / networkx-master / networkx / algorithms / operators / unary.py @ 5cef0f13

History | View | Annotate | Download (1.61 KB)

 1 ```"""Unary operations on graphs""" ``` ```# Copyright (C) 2004-2019 by ``` ```# Aric Hagberg ``` ```# Dan Schult ``` ```# Pieter Swart ``` ```# All rights reserved. ``` ```# BSD license. ``` ```import networkx as nx ``` ```from networkx.utils import not_implemented_for ``` ```__author__ = """\n""".join(['Aric Hagberg ', ``` ``` 'Pieter Swart (swart@lanl.gov)', ``` ``` 'Dan Schult(dschult@colgate.edu)']) ``` ```__all__ = ['complement', 'reverse'] ``` ```def complement(G): ``` ``` """Returns the graph complement of G. ``` ``` ``` ``` Parameters ``` ``` ---------- ``` ``` G : graph ``` ``` A NetworkX graph ``` ``` ``` ``` Returns ``` ``` ------- ``` ``` GC : A new graph. ``` ``` ``` ``` Notes ``` ``` ------ ``` ``` Note that complement() does not create self-loops and also ``` ``` does not produce parallel edges for MultiGraphs. ``` ``` ``` ``` Graph, node, and edge data are not propagated to the new graph. ``` ``` """ ``` ``` R = G.__class__() ``` ``` R.add_nodes_from(G) ``` ``` R.add_edges_from(((n, n2) ``` ``` for n, nbrs in G.adjacency() ``` ``` for n2 in G if n2 not in nbrs ``` ``` if n != n2)) ``` ``` return R ``` ```def reverse(G, copy=True): ``` ``` """Returns the reverse directed graph of G. ``` ``` ``` ``` Parameters ``` ``` ---------- ``` ``` G : directed graph ``` ``` A NetworkX directed graph ``` ``` copy : bool ``` ``` If True, then a new graph is returned. If False, then the graph is ``` ``` reversed in place. ``` ``` ``` ``` Returns ``` ``` ------- ``` ``` H : directed graph ``` ``` The reversed G. ``` ``` ``` ``` """ ``` ``` if not G.is_directed(): ``` ``` raise nx.NetworkXError("Cannot reverse an undirected graph.") ``` ``` else: ``` ``` return G.reverse(copy=copy) ```