Mercurial > repos > guerler > springsuite
diff planemo/lib/python3.7/site-packages/networkx/generators/triads.py @ 1:56ad4e20f292 draft
"planemo upload commit 6eee67778febed82ddd413c3ca40b3183a3898f1"
author | guerler |
---|---|
date | Fri, 31 Jul 2020 00:32:28 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/planemo/lib/python3.7/site-packages/networkx/generators/triads.py Fri Jul 31 00:32:28 2020 -0400 @@ -0,0 +1,79 @@ +# triads.py - generators for triad graphs +# +# Copyright 2015 NetworkX developers. +# Copyright 2011 Reya Group <http://www.reyagroup.com> +# Copyright 2011 Alex Levenson <alex@isnotinvain.com> +# Copyright 2011 Diederik van Liere <diederik.vanliere@rotman.utoronto.ca> +# +# This file is part of NetworkX. +# +# NetworkX is distributed under a BSD license; see LICENSE.txt for more +# information. +"""Functions that generate the triad graphs, that is, the possible +digraphs on three nodes. + +""" +from networkx.classes import DiGraph + +__all__ = ['triad_graph'] + +#: Dictionary mapping triad name to list of directed edges in the +#: digraph representation of that triad (with nodes 'a', 'b', and 'c'). +TRIAD_EDGES = {'003': [], + '012': ['ab'], + '102': ['ab', 'ba'], + '021D': ['ba', 'bc'], + '021U': ['ab', 'cb'], + '021C': ['ab', 'bc'], + '111D': ['ac', 'ca', 'bc'], + '111U': ['ac', 'ca', 'cb'], + '030T': ['ab', 'cb', 'ac'], + '030C': ['ba', 'cb', 'ac'], + '201': ['ab', 'ba', 'ac', 'ca'], + '120D': ['bc', 'ba', 'ac', 'ca'], + '120U': ['ab', 'cb', 'ac', 'ca'], + '120C': ['ab', 'bc', 'ac', 'ca'], + '210': ['ab', 'bc', 'cb', 'ac', 'ca'], + '300': ['ab', 'ba', 'bc', 'cb', 'ac', 'ca'] + } + + +def triad_graph(triad_name): + """Returns the triad graph with the given name. + + Each string in the following tuple is a valid triad name:: + + ('003', '012', '102', '021D', '021U', '021C', '111D', '111U', + '030T', '030C', '201', '120D', '120U', '120C', '210', '300') + + Each triad name corresponds to one of the possible valid digraph on + three nodes. + + Parameters + ---------- + triad_name : string + The name of a triad, as described above. + + Returns + ------- + :class:`~networkx.DiGraph` + The digraph on three nodes with the given name. The nodes of the + graph are the single-character strings 'a', 'b', and 'c'. + + Raises + ------ + :exc:`ValueError` + If `triad_name` is not the name of a triad. + + See also + -------- + triadic_census + + """ + if triad_name not in TRIAD_EDGES: + raise ValueError('unknown triad name "{}"; use one of the triad names' + ' in the TRIAD_NAMES constant'.format(triad_name)) + G = DiGraph() + G.add_nodes_from('abc') + G.add_edges_from(TRIAD_EDGES[triad_name]) + return G