Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > e5ddaa4c8aef3b801d60a051db101461 > files > 1389

python-networkx-1.8.1-3.mga4.noarch.rpm



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>Version 1.0 notes and API changes &mdash; NetworkX 1.8.1 documentation</title>
    
    <link rel="stylesheet" href="../_static/networkx.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '../',
        VERSION:     '1.8.1',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  false
      };
    </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>
    <link rel="search" type="application/opensearchdescription+xml"
          title="Search within NetworkX 1.8.1 documentation"
          href="../_static/opensearch.xml"/>
    <link rel="top" title="NetworkX 1.8.1 documentation" href="../index.html" />
    <link rel="up" title="API changes" href="api_changes.html" />
    <link rel="next" title="Version 0.99 API changes" href="api_0.99.html" />
    <link rel="prev" title="Version 1.4 notes and API changes" href="api_1.4.html" /> 
  </head>
  <body>
<div style="color: black;background-color: white; font-size: 3.2em; text-align: left; padding: 15px 10px 10px 15px">
NetworkX
</div>

    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="../py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="api_0.99.html" title="Version 0.99 API changes"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="api_1.4.html" title="Version 1.4 notes and API changes"
             accesskey="P">previous</a> |</li>
        <li><a href="http://networkx.github.com/">NetworkX Home </a> |&nbsp;</li>
        <li><a href="http://networkx.github.com/documentation.html">Documentation </a>|&nbsp;</li>
        <li><a href="http://networkx.github.com/download.html">Download </a> |&nbsp;</li>
        <li><a href="http://github.com/networkx">Developer (Github)</a></li>



          <li><a href="history.html" >History</a> &raquo;</li>
          <li><a href="api_changes.html" accesskey="U">API changes</a> &raquo;</li> 
      </ul>
    </div>



      <div class="sphinxsidebar">
        <div class="sphinxsidebarwrapper">
  <h3><a href="../index.html">Table Of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">Version 1.0 notes and API changes</a><ul>
<li><a class="reference internal" href="#version-numbering">Version numbering</a></li>
<li><a class="reference internal" href="#changes-in-base-classes">Changes in base classes</a><ul>
<li><a class="reference internal" href="#graph-attributes">Graph attributes</a></li>
<li><a class="reference internal" href="#node-attributes">Node attributes</a></li>
<li><a class="reference internal" href="#edge-attributes">Edge attributes</a></li>
<li><a class="reference internal" href="#methods-changed">Methods changed</a><ul>
<li><a class="reference internal" href="#graph-digraph-multigraph-multidigraph">Graph(), DiGraph(), MultiGraph(), MultiDiGraph()</a></li>
<li><a class="reference internal" href="#add-node">add_node()</a></li>
<li><a class="reference internal" href="#add-nodes-from">add_nodes_from()</a></li>
<li><a class="reference internal" href="#add-edge">add_edge()</a></li>
<li><a class="reference internal" href="#add-edges-from">add_edges_from()</a></li>
<li><a class="reference internal" href="#nodes-and-nodes-iter">nodes() and nodes_iter()</a></li>
<li><a class="reference internal" href="#copy">copy()</a></li>
<li><a class="reference internal" href="#to-directed-to-undirected">to_directed(), to_undirected()</a></li>
<li><a class="reference internal" href="#subgraph">subgraph()</a></li>
<li><a class="reference internal" href="#add-cycle-add-path-add-star">add_cycle(), add_path(), add_star()</a></li>
</ul>
</li>
<li><a class="reference internal" href="#methods-removed">Methods removed</a><ul>
<li><a class="reference internal" href="#delete-node">delete_node()</a></li>
<li><a class="reference internal" href="#delete-nodes-from">delete_nodes_from()</a></li>
<li><a class="reference internal" href="#delete-edge">delete_edge()</a></li>
<li><a class="reference internal" href="#delete-edges-from">delete_edges_from()</a></li>
<li><a class="reference internal" href="#get-edge">get_edge()</a></li>
</ul>
</li>
<li><a class="reference internal" href="#members-removed">Members removed</a><ul>
<li><a class="reference internal" href="#directed-multigraph-weighted">directed, multigraph, weighted</a></li>
</ul>
</li>
<li><a class="reference internal" href="#methods-added">Methods added</a><ul>
<li><a class="reference internal" href="#add-weighted-edges-from">add_weighted edges_from()</a></li>
<li><a class="reference internal" href="#get-edge-data">get_edge_data()</a></li>
<li><a class="reference internal" href="#is-directed">is_directed()</a></li>
<li><a class="reference internal" href="#is-multigraph">is_multigraph()</a></li>
</ul>
</li>
<li><a class="reference internal" href="#classes-removed">Classes Removed</a><ul>
<li><a class="reference internal" href="#labeledgraph-labeleddigraph">LabeledGraph, LabeledDiGraph</a></li>
<li><a class="reference internal" href="#ubigraph">UbiGraph</a></li>
</ul>
</li>
</ul>
</li>
<li><a class="reference internal" href="#additional-functions-generators">Additional functions/generators</a></li>
<li><a class="reference internal" href="#converting-your-existing-code-to-networkx-1-0">Converting your existing code to networkx-1.0</a><ul>
<li><a class="reference internal" href="#weighted-edges">Weighted edges</a></li>
</ul>
</li>
</ul>
</li>
</ul>

  <h4>Previous topic</h4>
  <p class="topless"><a href="api_1.4.html"
                        title="previous chapter">Version 1.4 notes and API changes</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="api_0.99.html"
                        title="next chapter">Version 0.99 API changes</a></p>
<div id="searchbox" style="display: none">
  <h3>Quick search</h3>
    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" />
      <input type="submit" value="Go" />
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
    <p class="searchtip" style="font-size: 90%">
    Enter search terms or a module, class or function name.
    </p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <div class="section" id="version-1-0-notes-and-api-changes">
<h1>Version 1.0 notes and API changes<a class="headerlink" href="#version-1-0-notes-and-api-changes" title="Permalink to this headline">¶</a></h1>
<p>We have made some significant API changes, detailed below, to add
functionality and clarity.  This page reflects changes from
networkx-0.99 to networkx-1.0.  For changes from earlier versions to
networkx-0.99 see <a class="reference internal" href="api_0.99.html"><em>Version 0.99 API changes</em></a>.</p>
<p>Version 1.0 requires Python 2.4 or greater.</p>
<p>Please send comments and questions to the networkx-discuss mailing list:
<a class="reference external" href="http://groups.google.com/group/networkx-discuss">http://groups.google.com/group/networkx-discuss</a> .</p>
<div class="section" id="version-numbering">
<h2>Version numbering<a class="headerlink" href="#version-numbering" title="Permalink to this headline">¶</a></h2>
<p>In the future we will use a more standard release numbering system
with major.minor[build] labels where major and minor are numbers and
[build] is a label such as &#8220;dev1379&#8221; to indicate a development version
or &#8220;rc1&#8221; to indicate a release candidate.</p>
<p>We plan on sticking closer to a time-based release schedule with smaller
incremental changes released on a roughly quarterly basis.  The graph
classes API will remain fixed, unless we determine there are serious
bugs or other defects in the existing classes, until networkx-2.0 is
released at some time in the future.</p>
</div>
<div class="section" id="changes-in-base-classes">
<h2>Changes in base classes<a class="headerlink" href="#changes-in-base-classes" title="Permalink to this headline">¶</a></h2>
<p>The most significant changes in are in the graph classes.  All of the
graph classes now allow optional graph, node, and edge attributes.  Those
attributes are stored internally in the graph classes as dictionaries
and can be accessed simply like Python dictionaries in most cases.</p>
<div class="section" id="graph-attributes">
<h3>Graph attributes<a class="headerlink" href="#graph-attributes" title="Permalink to this headline">¶</a></h3>
<p>Each graph keeps a dictionary of key=value attributes
in the member G.graph.  These attributes can be accessed
directly using G.graph or added at instantiation using
keyword arguments.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">=</span><span class="n">nx</span><span class="o">.</span><span class="n">Graph</span><span class="p">(</span><span class="n">region</span><span class="o">=</span><span class="s">&#39;Africa&#39;</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">graph</span><span class="p">[</span><span class="s">&#39;color&#39;</span><span class="p">]</span><span class="o">=</span><span class="s">&#39;green&#39;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">graph</span>
<span class="go">{&#39;color&#39;: &#39;green&#39;, &#39;region&#39;: &#39;Africa&#39;}</span>
</pre></div>
</div>
</div>
<div class="section" id="node-attributes">
<h3>Node attributes<a class="headerlink" href="#node-attributes" title="Permalink to this headline">¶</a></h3>
<p>Each node has a corresponding dictionary of attributes.
Adding attributes to nodes is optional.</p>
<p>Add node attributes using add_node(), add_nodes_from() or G.node</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">add_node</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">time</span><span class="o">=</span><span class="s">&#39;5pm&#39;</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">add_nodes_from</span><span class="p">([</span><span class="mi">3</span><span class="p">],</span> <span class="n">time</span><span class="o">=</span><span class="s">&#39;2pm&#39;</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">node</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
<span class="go">{&#39;time&#39;: &#39;5pm&#39;}</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">node</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="s">&#39;room&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">714</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">nodes</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
<span class="go">[(1, {&#39;room&#39;: 714, &#39;time&#39;: &#39;5pm&#39;}), (3, {&#39;time&#39;: &#39;2pm&#39;})]</span>
</pre></div>
</div>
</div>
<div class="section" id="edge-attributes">
<h3>Edge attributes<a class="headerlink" href="#edge-attributes" title="Permalink to this headline">¶</a></h3>
<p>Each edge has a corresponding dictionary of attributes.
The default edge data is now an empty dictionary of attributes
and adding attributes to edges is optional.</p>
<p>A common use case is to add a weight attribute to an edge:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">add_edge</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="n">weight</span><span class="o">=</span><span class="mf">3.14159</span><span class="p">)</span>
</pre></div>
</div>
<p>Add edge attributes using add_edge(), add_edges_from(), subscript
notation, or G.edge.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">add_edge</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="n">weight</span><span class="o">=</span><span class="mf">4.7</span> <span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">add_edges_from</span><span class="p">([(</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">),(</span><span class="mi">4</span><span class="p">,</span><span class="mi">5</span><span class="p">)],</span> <span class="n">color</span><span class="o">=</span><span class="s">&#39;red&#39;</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">add_edges_from</span><span class="p">([(</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,{</span><span class="s">&#39;color&#39;</span><span class="p">:</span><span class="s">&#39;blue&#39;</span><span class="p">}),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">,{</span><span class="s">&#39;weight&#39;</span><span class="p">:</span><span class="mi">8</span><span class="p">})])</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">2</span><span class="p">][</span><span class="s">&#39;weight&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="mf">4.7</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">edge</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">2</span><span class="p">][</span><span class="s">&#39;weight&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">4</span>
</pre></div>
</div>
</div>
<div class="section" id="methods-changed">
<h3>Methods changed<a class="headerlink" href="#methods-changed" title="Permalink to this headline">¶</a></h3>
<div class="section" id="graph-digraph-multigraph-multidigraph">
<h4>Graph(), DiGraph(), MultiGraph(), MultiDiGraph()<a class="headerlink" href="#graph-digraph-multigraph-multidigraph" title="Permalink to this headline">¶</a></h4>
<blockquote>
<div><p>Now takes optional keyword=value attributes on initialization.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">=</span><span class="n">nx</span><span class="o">.</span><span class="n">Graph</span><span class="p">(</span><span class="n">year</span><span class="o">=</span><span class="s">&#39;2009&#39;</span><span class="p">,</span><span class="n">city</span><span class="o">=</span><span class="s">&#39;New York&#39;</span><span class="p">)</span>
</pre></div>
</div>
</div></blockquote>
</div>
<div class="section" id="add-node">
<h4>add_node()<a class="headerlink" href="#add-node" title="Permalink to this headline">¶</a></h4>
<blockquote>
<div><p>Now takes optional keyword=value attributes or a dictionary of attributes.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">add_node</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">room</span><span class="o">=</span><span class="mi">714</span><span class="p">)</span>
</pre></div>
</div>
</div></blockquote>
</div>
<div class="section" id="add-nodes-from">
<h4>add_nodes_from()<a class="headerlink" href="#add-nodes-from" title="Permalink to this headline">¶</a></h4>
<blockquote>
<div><p>Now takes optional keyword=value attributes or a dictionary of
attributes applied to all affected nodes.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">add_nodes_from</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">],</span><span class="n">time</span><span class="o">=</span><span class="s">&#39;2pm&#39;</span><span class="p">)</span>  <span class="c"># all nodes have same attribute</span>
</pre></div>
</div>
</div></blockquote>
</div>
<div class="section" id="add-edge">
<h4>add_edge()<a class="headerlink" href="#add-edge" title="Permalink to this headline">¶</a></h4>
<blockquote>
<div><p>Now takes optional keyword=value attributes or a dictionary of attributes.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">add_edge</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="n">weight</span><span class="o">=</span><span class="mf">4.7</span> <span class="p">)</span>
</pre></div>
</div>
</div></blockquote>
</div>
<div class="section" id="add-edges-from">
<h4>add_edges_from()<a class="headerlink" href="#add-edges-from" title="Permalink to this headline">¶</a></h4>
<blockquote>
<div><p>Now takes optional keyword=value attributes or a dictionary of
attributes applied to all affected edges.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">add_edges_from</span><span class="p">([(</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">),(</span><span class="mi">4</span><span class="p">,</span><span class="mi">5</span><span class="p">)],</span> <span class="n">color</span><span class="o">=</span><span class="s">&#39;red&#39;</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">add_edges_from</span><span class="p">([(</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,{</span><span class="s">&#39;color&#39;</span><span class="p">:</span><span class="s">&#39;blue&#39;</span><span class="p">}),</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">,{</span><span class="s">&#39;weight&#39;</span><span class="p">:</span><span class="mi">8</span><span class="p">})])</span>
</pre></div>
</div>
</div></blockquote>
</div>
<div class="section" id="nodes-and-nodes-iter">
<h4>nodes() and nodes_iter()<a class="headerlink" href="#nodes-and-nodes-iter" title="Permalink to this headline">¶</a></h4>
<blockquote>
<div><p>New keyword data=True|False keyword determines whether to return
two-tuples (n,dict) (True) with node attribution dictionary</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">=</span><span class="n">nx</span><span class="o">.</span><span class="n">Graph</span><span class="p">([(</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">),(</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">)])</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">nodes</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
<span class="go">[(1, {}), (2, {}), (3, {}), (4, {})]</span>
</pre></div>
</div>
</div></blockquote>
</div>
<div class="section" id="copy">
<h4>copy()<a class="headerlink" href="#copy" title="Permalink to this headline">¶</a></h4>
<blockquote>
<div><p>Now returns a deep copy of the graph (copies all underlying
data and attributes for nodes and edges).  Use the class
initializer to make a shallow copy:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">=</span><span class="n">nx</span><span class="o">.</span><span class="n">Graph</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">G_shallow</span><span class="o">=</span><span class="n">nx</span><span class="o">.</span><span class="n">Graph</span><span class="p">(</span><span class="n">G</span><span class="p">)</span> <span class="c"># shallow copy</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">G_deep</span><span class="o">=</span><span class="n">G</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="c"># deep copy</span>
</pre></div>
</div>
</div></blockquote>
</div>
<div class="section" id="to-directed-to-undirected">
<h4>to_directed(), to_undirected()<a class="headerlink" href="#to-directed-to-undirected" title="Permalink to this headline">¶</a></h4>
<blockquote>
<div><p>Now returns a deep copy of the graph (copies all underlying
data and attributes for nodes and edges).  Use the class
initializer to make a shallow copy:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">=</span><span class="n">nx</span><span class="o">.</span><span class="n">Graph</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">D_shallow</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">G</span><span class="p">)</span> <span class="c"># shallow copy</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">D_deep</span><span class="o">=</span><span class="n">G</span><span class="o">.</span><span class="n">to_directed</span><span class="p">()</span> <span class="c"># deep copy</span>
</pre></div>
</div>
</div></blockquote>
</div>
<div class="section" id="subgraph">
<h4>subgraph()<a class="headerlink" href="#subgraph" title="Permalink to this headline">¶</a></h4>
<blockquote>
<div><p>With copy=True now returns a deep copy of the graph
(copies all underlying data and attributes for nodes and edges).</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">=</span><span class="n">nx</span><span class="o">.</span><span class="n">Graph</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c"># note: copy keyword deprecated in networkx&gt;1.0</span>
<span class="gp">&gt;&gt;&gt; </span><span class="c"># H=G.subgraph([],copy=True) # deep copy of all data</span>
</pre></div>
</div>
</div></blockquote>
</div>
<div class="section" id="add-cycle-add-path-add-star">
<h4>add_cycle(), add_path(), add_star()<a class="headerlink" href="#add-cycle-add-path-add-star" title="Permalink to this headline">¶</a></h4>
<blockquote>
<div><p>Now take optional keyword=value attributes or a dictionary of
attributes which are applied to all edges affected by the method.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">=</span><span class="n">nx</span><span class="o">.</span><span class="n">Graph</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">add_path</span><span class="p">([</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">],</span><span class="n">width</span><span class="o">=</span><span class="mf">3.2</span><span class="p">)</span>
</pre></div>
</div>
</div></blockquote>
</div>
</div>
<div class="section" id="methods-removed">
<h3>Methods removed<a class="headerlink" href="#methods-removed" title="Permalink to this headline">¶</a></h3>
<div class="section" id="delete-node">
<h4>delete_node()<a class="headerlink" href="#delete-node" title="Permalink to this headline">¶</a></h4>
<blockquote>
<div>The preferred name is now remove_node().</div></blockquote>
</div>
<div class="section" id="delete-nodes-from">
<h4>delete_nodes_from()<a class="headerlink" href="#delete-nodes-from" title="Permalink to this headline">¶</a></h4>
<blockquote>
<div>No longer raises an exception on an attempt to delete a node not in
the graph.  The preferred name is now remove_nodes_from().</div></blockquote>
</div>
<div class="section" id="delete-edge">
<h4>delete_edge()<a class="headerlink" href="#delete-edge" title="Permalink to this headline">¶</a></h4>
<blockquote>
<div>Now raises an exception on an attempt to delete an edge not in the graph.
The preferred name is now remove_edge().</div></blockquote>
</div>
<div class="section" id="delete-edges-from">
<h4>delete_edges_from()<a class="headerlink" href="#delete-edges-from" title="Permalink to this headline">¶</a></h4>
<blockquote>
<div>The preferred name is now remove_edges_from().</div></blockquote>
<p>has_neighbor():</p>
<blockquote>
<div>Use has_edge()</div></blockquote>
</div>
<div class="section" id="get-edge">
<h4>get_edge()<a class="headerlink" href="#get-edge" title="Permalink to this headline">¶</a></h4>
<blockquote>
<div><p>Renamed to get_edge_data().  Returns the edge attribute dictionary.</p>
<p>The fastest way to get edge data for edge (u,v) is to use G[u][v]
instead of G.get_edge_data(u,v)</p>
</div></blockquote>
</div>
</div>
<div class="section" id="members-removed">
<h3>Members removed<a class="headerlink" href="#members-removed" title="Permalink to this headline">¶</a></h3>
<div class="section" id="directed-multigraph-weighted">
<h4>directed, multigraph, weighted<a class="headerlink" href="#directed-multigraph-weighted" title="Permalink to this headline">¶</a></h4>
<blockquote>
<div>Use methods G.is_directed() and G.is_multigraph().
All graphs are weighted graphs now if they have numeric
values in the &#8216;weight&#8217; edge attribute.</div></blockquote>
</div>
</div>
<div class="section" id="methods-added">
<h3>Methods added<a class="headerlink" href="#methods-added" title="Permalink to this headline">¶</a></h3>
<div class="section" id="add-weighted-edges-from">
<h4>add_weighted edges_from()<a class="headerlink" href="#add-weighted-edges-from" title="Permalink to this headline">¶</a></h4>
<blockquote>
<div>Convenience method to add weighted edges to graph using a list of
3-tuples (u,v,weight).</div></blockquote>
</div>
<div class="section" id="get-edge-data">
<h4>get_edge_data()<a class="headerlink" href="#get-edge-data" title="Permalink to this headline">¶</a></h4>
<blockquote>
<div><p>Renamed from get_edge().</p>
<p>The fastest way to get edge data for edge (u,v) is to use G[u][v]
instead of G.get_edge_data(u,v)</p>
</div></blockquote>
</div>
<div class="section" id="is-directed">
<h4>is_directed()<a class="headerlink" href="#is-directed" title="Permalink to this headline">¶</a></h4>
<blockquote>
<div>replaces member G.directed</div></blockquote>
</div>
<div class="section" id="is-multigraph">
<h4>is_multigraph()<a class="headerlink" href="#is-multigraph" title="Permalink to this headline">¶</a></h4>
<blockquote>
<div>replaces member G.multigraph</div></blockquote>
</div>
</div>
<div class="section" id="classes-removed">
<h3>Classes Removed<a class="headerlink" href="#classes-removed" title="Permalink to this headline">¶</a></h3>
<div class="section" id="labeledgraph-labeleddigraph">
<h4>LabeledGraph, LabeledDiGraph<a class="headerlink" href="#labeledgraph-labeleddigraph" title="Permalink to this headline">¶</a></h4>
<blockquote>
<div>These classes have been folded into the regular classes.</div></blockquote>
</div>
<div class="section" id="ubigraph">
<h4>UbiGraph<a class="headerlink" href="#ubigraph" title="Permalink to this headline">¶</a></h4>
<blockquote>
<div>Removed as the ubigraph platform is no longer being supported.</div></blockquote>
</div>
</div>
</div>
<div class="section" id="additional-functions-generators">
<h2>Additional functions/generators<a class="headerlink" href="#additional-functions-generators" title="Permalink to this headline">¶</a></h2>
<p>ego_graph, stochastic_graph, PageRank algorithm, HITS algorithm,
GraphML writer, freeze, is_frozen, A* algorithm,
directed scale-free generator, random clustered graph.</p>
</div>
<div class="section" id="converting-your-existing-code-to-networkx-1-0">
<h2>Converting your existing code to networkx-1.0<a class="headerlink" href="#converting-your-existing-code-to-networkx-1-0" title="Permalink to this headline">¶</a></h2>
<div class="section" id="weighted-edges">
<h3>Weighted edges<a class="headerlink" href="#weighted-edges" title="Permalink to this headline">¶</a></h3>
<p>Edge information is now stored in an attribution dictionary
so all edge data must be given a key to identify it.</p>
<p>There is currently only one standard/reserved key, &#8216;weight&#8217;, which is
used by algorithms and functions that use weighted edges.  The
associated value should be numeric.  All other keys are available for
users to assign as needed.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">=</span><span class="n">nx</span><span class="o">.</span><span class="n">Graph</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="o">.</span><span class="n">add_edge</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="n">weight</span><span class="o">=</span><span class="mf">3.1415</span><span class="p">)</span> <span class="c"># add the edge 1-2 with a weight</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">G</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">2</span><span class="p">][</span><span class="s">&#39;weight&#39;</span><span class="p">]</span><span class="o">=</span><span class="mf">2.3</span> <span class="c"># set the weight to 2.3</span>
</pre></div>
</div>
<p>Similarly, for direct access the edge data, use
the key of the edge data to retrieve it.</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">w</span> <span class="o">=</span> <span class="n">G</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">2</span><span class="p">][</span><span class="s">&#39;weight&#39;</span><span class="p">]</span>
</pre></div>
</div>
<p>All NetworkX algorithms that require/use weighted edges now use the
&#8216;weight&#8217; edge attribute.  If you have existing algorithms that assumed
the edge data was numeric, you should replace G[u][v] and
G.get_edge(u,v) with G[u][v][&#8216;weight&#8217;].</p>
<p>An idiom for getting a weight for graphs with or without an assigned
weight key is</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">w</span><span class="o">=</span> <span class="n">G</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;weight&#39;</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>  <span class="c"># set w to 1 if there is no &#39;weight&#39; key</span>
</pre></div>
</div>
</div>
</div>
</div>


          </div>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="../py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="api_0.99.html" title="Version 0.99 API changes"
             >next</a> |</li>
        <li class="right" >
          <a href="api_1.4.html" title="Version 1.4 notes and API changes"
             >previous</a> |</li>
        <li><a href="http://networkx.github.com/">NetworkX Home </a> |&nbsp;</li>
        <li><a href="http://networkx.github.com/documentation.html">Documentation </a>|&nbsp;</li>
        <li><a href="http://networkx.github.com/download.html">Download </a> |&nbsp;</li>
        <li><a href="http://github.com/networkx">Developer (Github)</a></li>



          <li><a href="history.html" >History</a> &raquo;</li>
          <li><a href="api_changes.html" >API changes</a> &raquo;</li> 
      </ul>
    </div>
    <div class="footer">
        &copy; Copyright 2013, NetworkX Developers.
      Last updated on Oct 23, 2013.
      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
    </div>
  </body>
</html>