-
Notifications
You must be signed in to change notification settings - Fork 94
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #27 from pnnl/develop
updated documentation, added link back to repos
- Loading branch information
Showing
112 changed files
with
30,271 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
# Sphinx build info version 1 | ||
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. | ||
config: 673a2b0b26a4af3560f6f8e3e7022acd | ||
tags: 645f666f9bcd5a90fca523b33c5a78b7 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,300 @@ | ||
|
||
|
||
<!DOCTYPE html> | ||
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> | ||
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> | ||
<head> | ||
<meta charset="utf-8"> | ||
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
|
||
<title>drawing.util — HyperNetX 0.3.0 documentation</title> | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<script type="text/javascript" src="../../_static/js/modernizr.min.js"></script> | ||
|
||
|
||
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script> | ||
<script type="text/javascript" src="../../_static/jquery.js"></script> | ||
<script type="text/javascript" src="../../_static/underscore.js"></script> | ||
<script type="text/javascript" src="../../_static/doctools.js"></script> | ||
<script type="text/javascript" src="../../_static/language_data.js"></script> | ||
<script type="text/javascript" src="../../_static/copybutton.js"></script> | ||
<script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS-MML_HTMLorMML"></script> | ||
|
||
<script type="text/javascript" src="../../_static/js/theme.js"></script> | ||
|
||
|
||
|
||
|
||
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> | ||
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> | ||
<link rel="index" title="Index" href="../../genindex.html" /> | ||
<link rel="search" title="Search" href="../../search.html" /> | ||
</head> | ||
|
||
<body class="wy-body-for-nav"> | ||
|
||
|
||
<div class="wy-grid-for-nav"> | ||
|
||
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> | ||
<div class="wy-side-scroll"> | ||
<div class="wy-side-nav-search" > | ||
|
||
|
||
|
||
<a href="../../index.html" class="icon icon-home"> HyperNetX | ||
|
||
|
||
|
||
|
||
<img src="../../_static/hnx_logo_smaller.png" class="logo" alt="Logo"/> | ||
|
||
</a> | ||
|
||
|
||
|
||
|
||
<div class="version"> | ||
0.3 | ||
</div> | ||
|
||
|
||
|
||
|
||
<div role="search"> | ||
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> | ||
<input type="text" name="q" placeholder="Search docs" /> | ||
<input type="hidden" name="check_keywords" value="yes" /> | ||
<input type="hidden" name="area" value="default" /> | ||
</form> | ||
</div> | ||
|
||
|
||
</div> | ||
|
||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> | ||
|
||
|
||
|
||
|
||
|
||
|
||
<ul> | ||
<li class="toctree-l1"><a class="reference internal" href="../../overview/index.html">Overview</a></li> | ||
<li class="toctree-l1"><a class="reference internal" href="../../install.html">Installing HyperNetX</a></li> | ||
<li class="toctree-l1"><a class="reference internal" href="../../glossary.html">Glossary</a></li> | ||
<li class="toctree-l1"><a class="reference internal" href="../../classes/modules.html">Hypergraphs</a></li> | ||
<li class="toctree-l1"><a class="reference internal" href="../../algorithms/modules.html">Algorithms</a></li> | ||
<li class="toctree-l1"><a class="reference internal" href="../../drawing/modules.html">Drawing</a></li> | ||
<li class="toctree-l1"><a class="reference internal" href="../../reports/modules.html">Reports</a></li> | ||
<li class="toctree-l1"><a class="reference internal" href="../../license.html">License</a></li> | ||
</ul> | ||
|
||
|
||
|
||
</div> | ||
</div> | ||
</nav> | ||
|
||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> | ||
|
||
|
||
<nav class="wy-nav-top" aria-label="top navigation"> | ||
|
||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> | ||
<a href="../../index.html">HyperNetX</a> | ||
|
||
</nav> | ||
|
||
|
||
<div class="wy-nav-content"> | ||
|
||
<div class="rst-content"> | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div role="navigation" aria-label="breadcrumbs navigation"> | ||
|
||
<ul class="wy-breadcrumbs"> | ||
|
||
<li><a href="../../index.html">Docs</a> »</li> | ||
|
||
<li><a href="../index.html">Module code</a> »</li> | ||
|
||
<li>drawing.util</li> | ||
|
||
|
||
<li class="wy-breadcrumbs-aside"> | ||
|
||
</li> | ||
|
||
</ul> | ||
|
||
|
||
<hr/> | ||
</div> | ||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> | ||
<div itemprop="articleBody"> | ||
|
||
<h1>Source code for drawing.util</h1><div class="highlight"><pre> | ||
<span></span><span class="c1"># Copyright © 2018 Battelle Memorial Institute</span> | ||
<span class="c1"># All rights reserved.</span> | ||
|
||
<span class="kn">from</span> <span class="nn">itertools</span> <span class="k">import</span> <span class="n">combinations</span> | ||
|
||
<span class="kn">import</span> <span class="nn">networkx</span> <span class="k">as</span> <span class="nn">nx</span> | ||
|
||
<div class="viewcode-block" id="get_frozenset_label"><a class="viewcode-back" href="../../drawing/drawing.html#drawing.util.get_frozenset_label">[docs]</a><span class="k">def</span> <span class="nf">get_frozenset_label</span><span class="p">(</span><span class="n">S</span><span class="p">,</span> <span class="n">count</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> | ||
<span class="sd">'''</span> | ||
<span class="sd"> Helper function for rendering the labels of possibly collapsed nodes and edges</span> | ||
|
||
<span class="sd"> Parameters</span> | ||
<span class="sd"> ----------</span> | ||
<span class="sd"> S: iterable</span> | ||
<span class="sd"> list of entities to be labeled</span> | ||
<span class="sd"> count: bool</span> | ||
<span class="sd"> True if labels should be counts of entities instead of list</span> | ||
|
||
<span class="sd"> Returns</span> | ||
<span class="sd"> -------</span> | ||
<span class="sd"> dict</span> | ||
<span class="sd"> mapping of entity to its string representation</span> | ||
<span class="sd"> '''</span> | ||
<span class="k">def</span> <span class="nf">helper</span><span class="p">(</span><span class="n">v</span><span class="p">):</span> | ||
<span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="o">==</span> <span class="nb">frozenset</span><span class="p">:</span> | ||
<span class="k">if</span> <span class="n">count</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> | ||
<span class="k">return</span> <span class="n">f</span><span class="s1">'x {len(v)}'</span> | ||
<span class="k">elif</span> <span class="n">count</span><span class="p">:</span> | ||
<span class="k">return</span> <span class="s1">''</span> | ||
<span class="k">else</span><span class="p">:</span> | ||
<span class="k">return</span> <span class="s1">', '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="nb">str</span><span class="p">,</span> <span class="n">v</span><span class="p">))</span> | ||
<span class="k">return</span> <span class="nb">str</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> | ||
|
||
<span class="k">return</span> <span class="p">{</span><span class="n">v</span><span class="p">:</span> <span class="n">helper</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">S</span><span class="p">}</span></div> | ||
|
||
<div class="viewcode-block" id="get_line_graph"><a class="viewcode-back" href="../../drawing/drawing.html#drawing.util.get_line_graph">[docs]</a><span class="k">def</span> <span class="nf">get_line_graph</span><span class="p">(</span><span class="n">H</span><span class="p">,</span> <span class="n">collapse</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> | ||
<span class="sd">'''</span> | ||
<span class="sd"> Computes the line graph, a directed graph, where a directed edge (u, v)</span> | ||
<span class="sd"> exists if the edge u is a subset of the edge v in the hypergraph.</span> | ||
|
||
<span class="sd"> Parameters</span> | ||
<span class="sd"> ----------</span> | ||
<span class="sd"> H: Hypergraph</span> | ||
<span class="sd"> the entity to be drawn </span> | ||
<span class="sd"> collapse: bool</span> | ||
<span class="sd"> True if edges should be added if hyper edges are identical</span> | ||
|
||
<span class="sd"> Returns</span> | ||
<span class="sd"> -------</span> | ||
<span class="sd"> networkx.DiGraph</span> | ||
<span class="sd"> A directed graph</span> | ||
<span class="sd"> '''</span> | ||
<span class="n">D</span> <span class="o">=</span> <span class="n">nx</span><span class="o">.</span><span class="n">DiGraph</span><span class="p">()</span> | ||
|
||
<span class="n">V</span> <span class="o">=</span> <span class="p">{</span><span class="n">edge</span><span class="p">:</span> <span class="nb">set</span><span class="p">(</span><span class="n">nodes</span><span class="p">)</span> | ||
<span class="k">for</span> <span class="n">edge</span><span class="p">,</span> <span class="n">nodes</span> <span class="ow">in</span> <span class="n">H</span><span class="o">.</span><span class="n">edges</span><span class="o">.</span><span class="n">elements</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span> | ||
|
||
<span class="n">D</span><span class="o">.</span><span class="n">add_nodes_from</span><span class="p">(</span><span class="n">V</span><span class="p">)</span> | ||
|
||
<span class="k">for</span> <span class="n">u</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">combinations</span><span class="p">(</span><span class="n">V</span><span class="p">,</span> <span class="mi">2</span><span class="p">):</span> | ||
<span class="k">if</span> <span class="n">V</span><span class="p">[</span><span class="n">u</span><span class="p">]</span> <span class="o">!=</span> <span class="n">V</span><span class="p">[</span><span class="n">v</span><span class="p">]</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">collapse</span><span class="p">:</span> | ||
<span class="k">if</span> <span class="n">V</span><span class="p">[</span><span class="n">u</span><span class="p">]</span><span class="o">.</span><span class="n">issubset</span><span class="p">(</span><span class="n">V</span><span class="p">[</span><span class="n">v</span><span class="p">]):</span> | ||
<span class="n">D</span><span class="o">.</span><span class="n">add_edge</span><span class="p">(</span><span class="n">u</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span> | ||
<span class="k">elif</span> <span class="n">V</span><span class="p">[</span><span class="n">v</span><span class="p">]</span><span class="o">.</span><span class="n">issubset</span><span class="p">(</span><span class="n">V</span><span class="p">[</span><span class="n">u</span><span class="p">]):</span> | ||
<span class="n">D</span><span class="o">.</span><span class="n">add_edge</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span> | ||
|
||
<span class="k">return</span> <span class="n">D</span></div> | ||
|
||
<div class="viewcode-block" id="get_set_layering"><a class="viewcode-back" href="../../drawing/drawing.html#drawing.util.get_set_layering">[docs]</a><span class="k">def</span> <span class="nf">get_set_layering</span><span class="p">(</span><span class="n">H</span><span class="p">,</span> <span class="n">collapse</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> | ||
<span class="sd">'''</span> | ||
<span class="sd"> Computes a layering of the edges in the hyper graph.</span> | ||
|
||
<span class="sd"> In this layering, each edge is assigned a level. An edge u will be above</span> | ||
<span class="sd"> (e.g., have a smaller level value) another edge v if v is a subset of u.</span> | ||
|
||
<span class="sd"> Parameters</span> | ||
<span class="sd"> ----------</span> | ||
<span class="sd"> H: Hypergraph</span> | ||
<span class="sd"> the entity to be drawn </span> | ||
<span class="sd"> collapse: bool</span> | ||
<span class="sd"> True if edges should be added if hyper edges are identical</span> | ||
|
||
<span class="sd"> Returns</span> | ||
<span class="sd"> -------</span> | ||
<span class="sd"> dict</span> | ||
<span class="sd"> a mapping of vertices in H to integer levels</span> | ||
<span class="sd"> '''</span> | ||
|
||
<span class="n">D</span> <span class="o">=</span> <span class="n">get_line_graph</span><span class="p">(</span><span class="n">H</span><span class="p">,</span> <span class="n">collapse</span><span class="o">=</span><span class="n">collapse</span><span class="p">)</span> | ||
|
||
<span class="n">levels</span> <span class="o">=</span> <span class="p">{}</span> | ||
|
||
<span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">nx</span><span class="o">.</span><span class="n">topological_sort</span><span class="p">(</span><span class="n">D</span><span class="p">):</span> | ||
<span class="n">parent_levels</span> <span class="o">=</span> <span class="p">[</span><span class="n">levels</span><span class="p">[</span><span class="n">u</span><span class="p">]</span> <span class="k">for</span> <span class="n">u</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="n">D</span><span class="o">.</span><span class="n">in_edges</span><span class="p">(</span><span class="n">v</span><span class="p">)]</span> | ||
<span class="n">levels</span><span class="p">[</span><span class="n">v</span><span class="p">]</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="n">parent_levels</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">parent_levels</span><span class="p">)</span> <span class="k">else</span> <span class="mi">0</span> | ||
|
||
<span class="k">return</span> <span class="n">levels</span></div> | ||
</pre></div> | ||
|
||
</div> | ||
|
||
</div> | ||
<footer> | ||
|
||
|
||
<hr/> | ||
|
||
<div role="contentinfo"> | ||
<p> | ||
© Copyright 2018 Battelle Memorial Institute | ||
|
||
</p> | ||
</div> | ||
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. | ||
|
||
</footer> | ||
|
||
</div> | ||
</div> | ||
|
||
</section> | ||
|
||
</div> | ||
|
||
|
||
|
||
<script type="text/javascript"> | ||
jQuery(function () { | ||
SphinxRtdTheme.Navigation.enable(true); | ||
}); | ||
</script> | ||
|
||
|
||
|
||
|
||
|
||
|
||
</body> | ||
</html> |
Oops, something went wrong.