diff options
author | Jarrod Millman <jarrod.millman@gmail.com> | 2021-05-18 11:12:54 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-18 11:12:54 -0700 |
commit | d30bd7f25de53a8de47df326613f2681cf5e171a (patch) | |
tree | 06074875a195a977334045ec2804b446fa71a691 | |
parent | 44680a2466c3c429d9c01f55d71952efbb09b25c (diff) | |
download | networkx-d30bd7f25de53a8de47df326613f2681cf5e171a.tar.gz |
Restructure documentation (#4744)
* Move credit to dev guide
* Simplify menu
* Reclaim empty sidebar space
* Simplify release log
* Cleanup bibliography
* Clean up
30 files changed, 476 insertions, 279 deletions
diff --git a/LICENSE.txt b/LICENSE.txt index 0ad3043e..d5638c79 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,6 +1,3 @@ -License -======= - NetworkX is distributed with the 3-clause BSD license. :: diff --git a/doc/bibliography.rst b/doc/bibliography.rst deleted file mode 100644 index f619091a..00000000 --- a/doc/bibliography.rst +++ /dev/null @@ -1,63 +0,0 @@ -Bibliography -============ - -.. [BA02] R. Albert and A.-L. Barabási, "Statistical mechanics of complex - networks", Reviews of Modern Physics, 74, pp. 47-97, 2002. - https://arxiv.org/abs/cond-mat/0106096 - -.. [Bollobas01] B. Bollobás, "Random Graphs", Second Edition, - Cambridge University Press, 2001. - -.. [BE05] U. Brandes and T. Erlebach, "Network Analysis: - Methodological Foundations", Lecture Notes in Computer Science, - Volume 3418, Springer-Verlag, 2005. - -.. [CL1996] G. Chartrand and L. Lesniak, "Graphs and Digraphs", - Chapman and Hall/CRC, 1996. - -.. [choudum1986] S.A. Choudum. "A simple proof of the Erdős-Gallai theorem on - graph sequences." Bulletin of the Australian Mathematical Society, 33, - pp 67-70, 1986. https://doi.org/10.1017/S0004972700002872 - -.. [Diestel97] R. Diestel, "Graph Theory", Springer-Verlag, 1997. - http://diestel-graph-theory.com/index.html - -.. [DM03] S.N. Dorogovtsev and J.F.F. Mendes, "Evolution of Networks", - Oxford University Press, 2003. - -.. [EppsteinPads] David Eppstein. - PADS, A library of Python Algorithms and Data Structures. - http://www.ics.uci.edu/~eppstein/PADS - -.. [EG1960] Erdős and Gallai, Mat. Lapok 11 264, 1960. - -.. [hakimi1962] Hakimi, S. "On the Realizability of a Set of Integers as - Degrees of the Vertices of a Graph." SIAM J. Appl. Math. 10, 496-506, 1962. - -.. [havel1955] Havel, V. "A Remark on the Existence of Finite Graphs" - Casopis Pest. Mat. 80, 477-480, 1955. - -.. [Langtangen04] H.P. Langtangen, "Python Scripting for Computational - Science.", Springer Verlag Series in Computational Science and - Engineering, 2004. - -.. [Martelli03] A. Martelli, "Python in a Nutshell", O'Reilly Media - Inc, 2003. - -.. [Newman03] M.E.J. Newman, "The Structure and Function of Complex - Networks", SIAM Review, 45, pp. 167-256, 2003. - http://epubs.siam.org/doi/abs/10.1137/S003614450342480 - -.. [Sedgewick02] R. Sedgewick, "Algorithms in C: Parts 1-4: - Fundamentals, Data Structure, Sorting, Searching", Addison Wesley - Professional, 3rd ed., 2002. - -.. [Sedgewick01] R. Sedgewick, "Algorithms in C, Part 5: Graph Algorithms", - Addison Wesley Professional, 3rd ed., 2001. - -.. [West01] D. B. West, "Introduction to Graph Theory", Prentice Hall, - 2nd ed., 2001. - -.. [vanRossum98] Guido van Rossum. Python Patterns - Implementing Graphs, 1998. - https://www.python.org/doc/essays/graphs - diff --git a/doc/citing.rst b/doc/citing.rst deleted file mode 100644 index ce818cc3..00000000 --- a/doc/citing.rst +++ /dev/null @@ -1,18 +0,0 @@ -Citing -====== - -To cite NetworkX please use the following publication: - -Aric A. Hagberg, Daniel A. Schult and Pieter J. Swart, -`"Exploring network structure, dynamics, and function using NetworkX" -<http://conference.scipy.org/proceedings/SciPy2008/paper_2/>`_, -in -`Proceedings of the 7th Python in Science Conference (SciPy2008) -<http://conference.scipy.org/proceedings/SciPy2008/index.html>`_, Gäel -Varoquaux, Travis Vaught, and Jarrod Millman (Eds), (Pasadena, CA -USA), pp. 11--15, Aug 2008 - -.. only:: html - - `PDF <http://conference.scipy.org/proceedings/SciPy2008/paper_2/full_text.pdf>`_ - `BibTeX <http://conference.scipy.org/proceedings/SciPy2008/paper_2/reference.bib>`_ diff --git a/doc/conf.py b/doc/conf.py index 64b815f0..3b373dac 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -124,7 +124,7 @@ html_baseurl = "https://networkx.org/documentation/stable/" html_theme = "pydata_sphinx_theme" html_theme_options = { "collapse_navigation": True, - "navigation_depth": 3, + "navigation_depth": 2, "show_prev_next": False, "icon_links": [ { @@ -139,8 +139,15 @@ html_theme_options = { }, ], "navbar_end": ["navbar-icon-links", "version"], + "page_sidebar_items": ["search-field", "page-toc", "edit-this-page"], +} +html_sidebars = { + "**": ["sidebar-nav-bs", "sidebar-ethical-ads"], + "index": [], + "install": [], + "tutorial": [], + "auto_examples/index": [], } - html_logo = "_static/networkx_banner.svg" # The style sheet to use for HTML and HTML Help pages. A file of that name diff --git a/doc/credits.rst b/doc/developer/about_us.rst index 425b334f..425b334f 100644 --- a/doc/credits.rst +++ b/doc/developer/about_us.rst diff --git a/doc/developer/index.rst b/doc/developer/index.rst index 3d971d4d..1888ae99 100644 --- a/doc/developer/index.rst +++ b/doc/developer/index.rst @@ -3,9 +3,15 @@ Developer Guide *************** +.. only:: html + + :Release: |version| + :Date: |today| + .. toctree:: :maxdepth: 2 + about_us code_of_conduct values contribute diff --git a/doc/team.rst b/doc/developer/team.rst index 1b974647..1b974647 100644 --- a/doc/team.rst +++ b/doc/developer/team.rst diff --git a/doc/index.rst b/doc/index.rst index 832e021e..c9f98fec 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -3,10 +3,14 @@ Software for Complex Networks ============================= +.. only:: html + + :Release: |version| + :Date: |today| + NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks. - -NetworkX provides: +It provides: - tools for the study of the structure and dynamics of social, biological, and infrastructure networks; @@ -23,6 +27,25 @@ formats, generate many types of random and classic networks, analyze network structure, build network models, design new network algorithms, draw networks, and much more. +Citing +------ + +To cite NetworkX please use the following publication: + +Aric A. Hagberg, Daniel A. Schult and Pieter J. Swart, +`"Exploring network structure, dynamics, and function using NetworkX" +<http://conference.scipy.org/proceedings/SciPy2008/paper_2/>`_, +in +`Proceedings of the 7th Python in Science Conference (SciPy2008) +<http://conference.scipy.org/proceedings/SciPy2008/index.html>`_, Gäel +Varoquaux, Travis Vaught, and Jarrod Millman (Eds), (Pasadena, CA +USA), pp. 11--15, Aug 2008 + +.. only:: html + + `PDF <http://conference.scipy.org/proceedings/SciPy2008/paper_2/full_text.pdf>`_ + `BibTeX <http://conference.scipy.org/proceedings/SciPy2008/paper_2/reference.bib>`_ + Audience -------- @@ -47,48 +70,55 @@ to write basic programs in Python. Among the many guides to Python, we recommend the `Python documentation <https://docs.python.org/3/>`_ and the text by Alex Martelli [Martelli03]_. -Free software -------------- +License +------- -NetworkX is free software; you can redistribute it and/or modify it under the -terms of the :doc:`3-clause BSD License </license>`. We welcome contributions. -Join us on `GitHub <https://github.com/networkx/networkx>`_. +.. include:: ../LICENSE.txt -History -------- +Bibliography +------------ -NetworkX was born in May 2002. The original version was designed and written by -Aric Hagberg, Dan Schult, and Pieter Swart in 2002 and 2003. The first public -release was in April 2005. -Many people have contributed to the success of NetworkX. Some of the -contributors are listed in the :doc:`credits. <credits>` +.. [BA02] R. Albert and A.-L. Barabási, "Statistical mechanics of complex + networks", Reviews of Modern Physics, 74, pp. 47-97, 2002. + https://arxiv.org/abs/cond-mat/0106096 -Documentation -------------- +.. [Bollobas01] B. Bollobás, "Random Graphs", Second Edition, + Cambridge University Press, 2001. -.. only:: html +.. [BE05] U. Brandes and T. Erlebach, "Network Analysis: + Methodological Foundations", Lecture Notes in Computer Science, + Volume 3418, Springer-Verlag, 2005. - :Release: |version| - :Date: |today| +.. [Diestel97] R. Diestel, "Graph Theory", Springer-Verlag, 1997. + http://diestel-graph-theory.com/index.html + +.. [DM03] S.N. Dorogovtsev and J.F.F. Mendes, "Evolution of Networks", + Oxford University Press, 2003. + +.. [Martelli03] A. Martelli, "Python in a Nutshell", O'Reilly Media + Inc, 2003. + +.. [Newman03] M.E.J. Newman, "The Structure and Function of Complex + Networks", SIAM Review, 45, pp. 167-256, 2003. + http://epubs.siam.org/doi/abs/10.1137/S003614450342480 + +.. [Sedgewick02] R. Sedgewick, "Algorithms in C: Parts 1-4: + Fundamentals, Data Structure, Sorting, Searching", Addison Wesley + Professional, 3rd ed., 2002. + +.. [Sedgewick01] R. Sedgewick, "Algorithms in C, Part 5: Graph Algorithms", + Addison Wesley Professional, 3rd ed., 2001. + +.. [West01] D. B. West, "Introduction to Graph Theory", Prentice Hall, + 2nd ed., 2001. .. toctree:: :maxdepth: 1 + :hidden: install tutorial auto_examples/index reference/index developer/index - news - license - credits - citing - bibliography - -Indices and tables ------------------- - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` -* :ref:`glossary` + release/index diff --git a/doc/license.rst b/doc/license.rst deleted file mode 100644 index 6e4c3433..00000000 --- a/doc/license.rst +++ /dev/null @@ -1 +0,0 @@ -.. include:: ../LICENSE.txt diff --git a/doc/release/api_0.99.rst b/doc/release/api_0.99.rst index e2d4f07b..27c0f322 100644 --- a/doc/release/api_0.99.rst +++ b/doc/release/api_0.99.rst @@ -1,6 +1,33 @@ -************************ -Version 0.99 API changes -************************ +NetworkX 0.99 +============= + +Release date: 18 November 2008 + +See: https://networkx.lanl.gov/trac/timeline + +New features +------------ +This release has significant changes to parts of the graph API. +See http://networkx.lanl.gov/reference/api_changes.html + + - Update Graph and DiGraph classes to use weighted graphs as default + Change in API for performance and code simplicity. + - New MultiGraph and MultiDiGraph classes (replace XGraph and XDiGraph) + - Update to use Sphinx documentation system http://networkx.lanl.gov/ + - Developer site at https://networkx.lanl.gov/trac/ + - Experimental LabeledGraph and LabeledDiGraph + - Moved package and file layout to subdirectories. + +Bug fixes +--------- + - handle root= option to draw_graphviz correctly + +Examples +-------- + - Update to work with networkx-0.99 API + - Drawing examples now use matplotlib.pyplot interface + - Improved drawings in many examples + - New examples - see http://networkx.lanl.gov/examples/ The version networkx-0.99 is the penultimate release before networkx-1.0. We have bumped the version from 0.37 to 0.99 to @@ -16,7 +43,7 @@ Please send comments and questions to the networkx-discuss mailing list. http://groups.google.com/group/networkx-discuss Changes in base classes -======================= +----------------------- The most significant changes are in the graph classes. We have redesigned the Graph() and DiGraph() classes @@ -294,7 +321,7 @@ Used internally - now called nbunch_iter and returns an iterator. Converting your old code to Version 0.99 -======================================== +---------------------------------------- Mostly you can just run the code and python will raise an exception for features that changed. Common places for changes are diff --git a/doc/release/api_1.0.rst b/doc/release/api_1.0.rst index 0da87897..2446a707 100644 --- a/doc/release/api_1.0.rst +++ b/doc/release/api_1.0.rst @@ -1,20 +1,41 @@ -********************************* -Version 1.0 notes and API changes -********************************* +NetworkX 1.0 +============ -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 :doc:`Version 0.99 API changes <api_0.99>`. +Release date: 8 Jan 2010 Version 1.0 requires Python 2.4 or greater. -Please send comments and questions to the networkx-discuss mailing list: -http://groups.google.com/group/networkx-discuss . + +New features +------------ +This release has significant changes to parts of the graph API +to allow graph, node, and edge attributes. +See http://networkx.lanl.gov/reference/api_changes.html + + - Update Graph, DiGraph, and MultiGraph classes to allow attributes. + - Default edge data is now an empty dictionary (was the integer 1) + - Difference and intersection operators + - Average shortest path + - A* (A-Star) algorithm + - PageRank, HITS, and eigenvector centrality + - Read Pajek files + - Line graphs + - Minimum spanning tree (Kruskal's algorithm) + - Dense and sparse Fruchterman-Reingold layout + - Random clustered graph generator + - Directed scale-free graph generator + - Faster random regular graph generator + - Improved edge color and label drawing with Matplotlib + - and much more, see https://networkx.lanl.gov/trac/query?status=closed&group=milestone&milestone=networkx-1.0 + +Examples +-------- + - Update to work with networkx-1.0 API + - Graph subclass example Version numbering -================= +----------------- In the future we will use a more standard release numbering system with major.minor[build] labels where major and minor are numbers and @@ -28,7 +49,7 @@ bugs or other defects in the existing classes, until networkx-2.0 is released at some time in the future. Changes in base classes -======================= +----------------------- The most significant changes in are in the graph classes. All of the graph classes now allow optional graph, node, and edge attributes. Those @@ -36,7 +57,7 @@ attributes are stored internally in the graph classes as dictionaries and can be accessed simply like Python dictionaries in most cases. Graph attributes ----------------- +^^^^^^^^^^^^^^^^ 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 @@ -48,7 +69,7 @@ keyword arguments. {'region': 'Africa', 'color': 'green'} Node attributes ---------------- +^^^^^^^^^^^^^^^ Each node has a corresponding dictionary of attributes. Adding attributes to nodes is optional. @@ -63,7 +84,7 @@ Add node attributes using add_node(), add_nodes_from() or G.node [(1, {'room': 714, 'time': '5pm'}), (3, {'time': '2pm'})] Edge attributes ---------------- +^^^^^^^^^^^^^^^ 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. @@ -247,7 +268,7 @@ UbiGraph Additional functions/generators -=============================== +------------------------------- ego_graph, stochastic_graph, PageRank algorithm, HITS algorithm, GraphML writer, freeze, is_frozen, A* algorithm, @@ -255,10 +276,10 @@ directed scale-free generator, random clustered graph. Converting your existing code to networkx-1.0 -============================================= +--------------------------------------------- Weighted edges --------------- +^^^^^^^^^^^^^^ Edge information is now stored in an attribution dictionary so all edge data must be given a key to identify it. diff --git a/doc/release/api_1.10.rst b/doc/release/api_1.10.rst index d5412c89..caa32d6f 100644 --- a/doc/release/api_1.10.rst +++ b/doc/release/api_1.10.rst @@ -1,12 +1,39 @@ -********************************** -Version 1.10 notes and API changes -********************************** - -This page includes more detailed release information and API changes from -NetworkX 1.9 to NetworkX 1.10. - -Please send comments and questions to the networkx-discuss mailing list: -<http://groups.google.com/group/networkx-discuss>. +NetworkX 1.10 +============= + +Release date: 2 August 2015 + +Support for Python 2.6 is dropped in this release. + +Highlights +~~~~~~~~~~ + +- Connected components now return generators +- new functions including + + + enumerate_all_cliques, greedy_coloring, edge_dfs, find_cycle + immediate_dominators, harmonic_centrality + + Hopcraft--Karp algorithm for maximum matchings + + optimum branchings and arborescences. + + all_simple_paths + +- pyparsing dependence removed from GML reader/parser +- improve flow algorithms +- new generators related to expander graphs. +- new generators for multipartite graphs, nonisomorphic trees, + circulant graphs +- allow graph subclasses to use dict-like objects in place of dicts +- added ordered graph subclasses +- pandas dataframe read/write added. +- data keyword in G.edges() allows requesting edge attribute directly +- expanded layout flexibility for node subsets +- Kanesky's algorithm for cut sets and k_components +- power function for graphs +- approximation of node connectivity +- transitive closure, triadic census and antichains +- quotient graphs and minors +- longest_path for DAGS +- modularity matrix routines API changes ----------- diff --git a/doc/release/api_1.11.rst b/doc/release/api_1.11.rst index 6a0520a1..73269c7e 100644 --- a/doc/release/api_1.11.rst +++ b/doc/release/api_1.11.rst @@ -1,12 +1,18 @@ -********************************** -Version 1.11 notes and API changes -********************************** +NetworkX 1.11 +============= -This page includes more detailed release information and API changes from -NetworkX 1.10 to NetworkX 1.11. +Release date: 30 January 2016 -Please send comments and questions to the networkx-discuss mailing list: -<http://groups.google.com/group/networkx-discuss>. +Support for Python 3.5 added, drop support for Python 3.2. + +Highlights +~~~~~~~~~~ + +Pydot features now use pydotplus. +Fixes installation on some machines and test with appveyor. +Restores default center and scale of layout routines. +Fixes various docs including no symbolic links in examples. +Docs can now build using autosummary on readthedocs.org. API changes ----------- diff --git a/doc/release/api_1.4.rst b/doc/release/api_1.4.rst index 0f809860..b4bd25b2 100644 --- a/doc/release/api_1.4.rst +++ b/doc/release/api_1.4.rst @@ -1,14 +1,30 @@ -********************************* -Version 1.4 notes and API changes -********************************* +NetworkX 1.4 +============ -We have made some API changes, detailed below, to add clarity. -This page reflects changes from networkx-1.3 to networkx-1.4. -For changes from earlier versions to networkx-1.0 see -:doc:`Version 1.0 API changes <api_1.0>`. +Release date: 23 January 2011 -Please send comments and questions to the networkx-discuss mailing list: -http://groups.google.com/group/networkx-discuss . +New features +------------ + - :mod:`k-shell,k-crust,k-corona <networkx.algorithms.core>` + - :mod:`read GraphML files from yEd <networkx.readwrite.graphml>` + - :mod:`read/write GEXF format files <networkx.readwrite.gexf>` + - :mod:`find cycles in a directed graph <networkx.algorithms.cycles>` + - :mod:`DFS <networkx.algorithms.traversal.depth_first_search>` and :mod:`BFS <networkx.algorithms.traversal.breadth_first_search>` algorithms + - :mod:`chordal graph functions <networkx.algorithms.chordal.chordal_alg>` + - :mod:`Prim's algorithm for minimum spanning tree <networkx.algorithms.mst>` + - :mod:`r-ary tree generator <networkx.generators.classic>` + - :mod:`rich club coefficient <networkx.algorithms.richclub>` + - NumPy matrix version of :mod:`Floyd's algorithm for all-pairs shortest path <networkx.algorithms.shortest_paths.dense>` + - :mod:`read GIS shapefiles <networkx.readwrite.nx_shp>` + - :mod:`functions to get and set node and edge attributes <networkx.classes.function>` + - and more, see https://networkx.lanl.gov/trac/query?status=closed&group=milestone&milestone=networkx-1.4 + +API changes +----------- + - :mod:`gnp_random_graph() <networkx.generators.random_graphs>` now takes a + directed=True|False keyword instead of create_using + - :mod:`gnm_random_graph() <networkx.generators.random_graphs>` now takes a + directed=True|False keyword instead of create_using Algorithms changed diff --git a/doc/release/api_1.5.rst b/doc/release/api_1.5.rst index bda3d36a..9eeb87c2 100644 --- a/doc/release/api_1.5.rst +++ b/doc/release/api_1.5.rst @@ -1,11 +1,35 @@ -********************************* -Version 1.5 notes and API changes -********************************* +NetworkX 1.5 +============ -This page reflects API changes from networkx-1.4 to networkx-1.5. +Release date: 4 June 2011 -Please send comments and questions to the networkx-discuss mailing list: -http://groups.google.com/group/networkx-discuss . +Highlights +~~~~~~~~~~ + +New features +~~~~~~~~~~~~ + - Algorithms for :mod:`generating <networkx.generators.bipartite>` + and :mod:`analyzing <networkx.algorithms.bipartite>` bipartite graphs + - :mod:`Maximal independent set <networkx.algorithms.mis>` algorithm + - :mod:`Erdős-Gallai graphical degree sequence test <networkx.generators.degree_seq>` + - :mod:`Negative edge cycle test <networkx.algorithms.shortest_paths.weighted>` + - More memory efficient :mod:`Dijkstra path length <networkx.algorithms.shortest_paths.weighted>` with cutoff parameter + - :mod:`Weighted clustering coefficient <networkx.algorithms.cluster>` + - Read and write version 1.2 of :mod:`GEXF reader <networkx.readwrite.gexf>` format + - :mod:`Neighbor degree correlation <networkx.algorithms.neighbor_degree>` + that handle subsets of nodes + - :mod:`In-place node relabeling <networkx.relabel>` + - Many 'weighted' graph algorithms now take optional parameter to use + specified edge attribute (default='weight') + (ticket https://networkx.lanl.gov/trac/ticket/509) + + - Test for :mod:`distance regular <networkx.algorithms.distance_regular>` graphs + - Fast :mod:`directed Erdős-Renyi graph <networkx.generators.random_graphs>` generator + - Fast :mod:`expected degree graph <networkx.generators.degree_seq>` generator + - :mod:`Navigable small world <networkx.generators.geometric>` generator + - :mod:`Waxman model <networkx.generators.geometric>` generator + - :mod:`Geographical threshold graph <networkx.generators.geometric>` generator + - :mod:`Karate Club, Florentine Families, and Davis' Women's Club <networkx.generators.social>` graphs Weighted graph algorithms ------------------------- @@ -45,3 +69,33 @@ The random geometric graph generator has been simplified. It no longer supports the create_using, repel, or verbose parameters. An optional pos keyword was added to allow specification of node positions. +Bug fixes +~~~~~~~~~ + - Fix edge handling for multigraphs in networkx/graphviz interface + (ticket https://networkx.lanl.gov/trac/ticket/507) + - Update networkx/pydot interface for new versions of pydot + (ticket https://networkx.lanl.gov/trac/ticket/506) + (ticket https://networkx.lanl.gov/trac/ticket/535) + - Fix negative cycle handling in Bellman-Ford + (ticket https://networkx.lanl.gov/trac/ticket/502) + - Write more attributes with GraphML and GML formats + (ticket https://networkx.lanl.gov/trac/ticket/480) + - Handle white space better in read_edgelist + (ticket https://networkx.lanl.gov/trac/ticket/513) + - Better parsing of Pajek format files + (ticket https://networkx.lanl.gov/trac/ticket/524) + (ticket https://networkx.lanl.gov/trac/ticket/542) + - Isolates functions work with directed graphs + (ticket https://networkx.lanl.gov/trac/ticket/526) + - Faster conversion to numpy matrices + (ticket https://networkx.lanl.gov/trac/ticket/529) + - Add graph['name'] and use properties to access Graph.name + (ticket https://networkx.lanl.gov/trac/ticket/544) + - Topological sort confused None and 0 + (ticket https://networkx.lanl.gov/trac/ticket/546) + - GEXF writer mishandled weight=0 + (ticket https://networkx.lanl.gov/trac/ticket/550) + - Speedup in SciPy version of PageRank + (ticket https://networkx.lanl.gov/trac/ticket/554) + - Numpy PageRank node order incorrect + speedups + (ticket https://networkx.lanl.gov/trac/ticket/555) diff --git a/doc/release/api_1.6.rst b/doc/release/api_1.6.rst index bf992d3d..5832dd31 100644 --- a/doc/release/api_1.6.rst +++ b/doc/release/api_1.6.rst @@ -1,11 +1,20 @@ -********************************* -Version 1.6 notes and API changes -********************************* +NetworkX 1.6 +============ -This page reflects API changes from networkx-1.5 to networkx-1.6. +Release date: 20 November 2011 -Please send comments and questions to the networkx-discuss mailing list: -http://groups.google.com/group/networkx-discuss . +Highlights +~~~~~~~~~~ + +New functions for finding articulation points, generating random bipartite graphs, constructing adjacency matrix representations, forming graph products, computing assortativity coefficients, measuring subgraph centrality and communicability, finding k-clique communities, and writing JSON format output. + +New examples for drawing with D3 Javascript library, and ordering matrices with the Cuthill-McKee algorithm. + +More memory efficient implementation of current-flow betweenness and new approximation algorithms for current-flow betweenness and shortest-path betweenness. + +Simplified handling of "weight" attributes for algorithms that use weights/costs/values. + +Updated all code to work with the PyPy Python implementation http://pypy.org which produces faster performance on many algorithms. Graph Classes ------------- diff --git a/doc/release/api_1.7.rst b/doc/release/api_1.7.rst index c1bc96f4..be8ca3bb 100644 --- a/doc/release/api_1.7.rst +++ b/doc/release/api_1.7.rst @@ -1,12 +1,22 @@ -********************************* -Version 1.7 notes and API changes -********************************* +NetworkX 1.7 +============ -This page reflects API changes from networkx-1.6 to networkx-1.7. +Release date: 4 July 2012 -Please send comments and questions to the networkx-discuss mailing list: -http://groups.google.com/group/networkx-discuss . +Highlights +~~~~~~~~~~ +- New functions for k-clique community finding, flow hierarchy, + union, disjoint union, compose, and intersection operators that work on + lists of graphs, and creating the biadjacency matrix of a bipartite graph. + +- New approximation algorithms for dominating set, edge dominating set, + independent set, max clique, and min-weighted vertex cover. + +- Many bug fixes and other improvements. + +For full details of the tickets closed for this release (added features and bug fixes) see: +https://networkx.lanl.gov/trac/query?status=closed&group=milestone&milestone=networkx-1.7 Other ----- diff --git a/doc/release/api_1.8.rst b/doc/release/api_1.8.rst index b7bcb772..d118afb3 100644 --- a/doc/release/api_1.8.rst +++ b/doc/release/api_1.8.rst @@ -1,11 +1,30 @@ -********************************* -Version 1.8 notes and API changes -********************************* +NetworkX 1.8 +============ -This page reflects API changes from networkx-1.7 to networkx-1.8. +Release date: 28 July 2013 -Please send comments and questions to the networkx-discuss mailing list: -http://groups.google.com/group/networkx-discuss . +Highlights +~~~~~~~~~~ +- Faster (linear-time) graphicality tests and Havel-Hakimi graph generators +- Directed Laplacian matrix generator +- Katz centrality algorithm +- Functions to generate all simple paths +- Improved shapefile reader +- More flexible weighted projection of bipartite graphs +- Faster topological sort, descendants and ancestors of DAGs +- Scaling parameter for force-directed layout + +Bug fixes +~~~~~~~~~ +- Error with average weighted connectivity for digraphs, correct normalized laplacian with self-loops, load betweenness for single node graphs, isolated nodes missing from dfs/bfs trees, normalize HITS using l1, handle density of graphs with self loops + +- Cleaner handling of current figure status with Matplotlib, Pajek files now don't write troublesome header line, default alpha value for GEXF files, read curved edges from yEd GraphML + + +For full details of the issues closed for this release (added features and bug fixes) see: https://github.com/networkx/networkx/issues?milestone=1&page=1&state=closed + +API changes +~~~~~~~~~~~ * Laplacian functions now all return matrices. To get a numpy array from a matrix use L = nx.laplacian_matrix(G).A diff --git a/doc/release/api_1.9.rst b/doc/release/api_1.9.rst index fec61eb0..bc73e8f4 100644 --- a/doc/release/api_1.9.rst +++ b/doc/release/api_1.9.rst @@ -1,11 +1,22 @@ -********************************* -Version 1.9 notes and API changes -********************************* - -This page reflects API changes from NetworkX 1.8 to NetworkX 1.9. +NetworkX 1.9 +============ -Please send comments and questions to the networkx-discuss mailing list: -<http://groups.google.com/group/networkx-discuss>. +Release date: 21 June 2014 + +Support for Python 3.1 is dropped in this release. + +Highlights +---------- +- Completely rewritten maximum flow and flow-based connectivity algorithms with + backwards incompatible interfaces +- Community graph generators +- Stoer–Wagner minimum cut algorithm +- Linear-time Eulerian circuit algorithm +- Linear algebra package changed to use SciPy sparse matrices +- Algebraic connectivity, Fiedler vector, spectral ordering algorithms +- Link prediction algorithms +- Goldberg–Radzik shortest path algorithm +- Semiconnected graph and tree recognition algorithms Flow package ------------ diff --git a/doc/release/index.rst b/doc/release/index.rst index 48f76df2..5935a94b 100644 --- a/doc/release/index.rst +++ b/doc/release/index.rst @@ -1,6 +1,3 @@ -:orphan: - -*********** API changes *********** @@ -34,3 +31,4 @@ period. api_1.4 api_1.0 api_0.99 + old_release_log diff --git a/doc/news.rst b/doc/release/old_release_log.rst index f8955e06..02ff64e3 100644 --- a/doc/news.rst +++ b/doc/release/old_release_log.rst @@ -1,7 +1,7 @@ .. currentmodule:: networkx -Release Log -=========== +Old Release Log +=============== NetworkX 2.5 ------------ @@ -12,7 +12,7 @@ Supports Python 3.6, 3.7, and 3.8. Release notes ~~~~~~~~~~~~~ -See :doc:`release/release_2.5`. +See :doc:`release_2.5`. NetworkX 2.4 @@ -25,7 +25,7 @@ This is the last release to support Python 3.5. Release notes ~~~~~~~~~~~~~ -See :doc:`release/release_2.4`. +See :doc:`release_2.4`. NetworkX 2.3 @@ -38,7 +38,7 @@ This is our first Python 3 only release. Release notes ~~~~~~~~~~~~~ -See :doc:`release/release_2.3`. +See :doc:`release_2.3`. NetworkX 2.2 @@ -51,7 +51,7 @@ This is the last release to support Python 2. Release notes ~~~~~~~~~~~~~ -See :doc:`release/release_2.2`. +See :doc:`release_2.2`. NetworkX 2.1 @@ -63,7 +63,7 @@ Supports Python 2.7, 3.4, 3.5, and 3.6. Release notes ~~~~~~~~~~~~~ -See :doc:`release/release_2.1`. +See :doc:`release_2.1`. NetworkX 2.0 @@ -72,12 +72,12 @@ Release date: 20 September 2017 Support for Python 3.6 added, drop support for Python 3.3. -See :doc:`release/migration_guide_from_1.x_to_2.0`. +See :doc:`migration_guide_from_1.x_to_2.0`. Release notes ~~~~~~~~~~~~~ -See :doc:`release/release_2.0`. +See :doc:`release_2.0`. NetworkX 1.11 ------------- @@ -133,7 +133,7 @@ Highlights API changes ~~~~~~~~~~~ -See :doc:`release/api_1.10`. +See :doc:`api_1.10`. NetworkX 1.9.1 -------------- @@ -162,7 +162,7 @@ Highlights API changes ~~~~~~~~~~~ -See :doc:`release/api_1.9`. +See :doc:`api_1.9`. NetworkX 1.8.1 -------------- @@ -198,7 +198,7 @@ For full details of the issues closed for this release (added features and bug f API changes ~~~~~~~~~~~ -See :doc:`release/api_1.8` +See :doc:`api_1.8` NetworkX 1.7 @@ -222,7 +222,7 @@ https://networkx.lanl.gov/trac/query?status=closed&group=milestone&milestone=net API changes ~~~~~~~~~~~ -See :doc:`release/api_1.7` +See :doc:`api_1.7` NetworkX 1.6 @@ -239,7 +239,7 @@ New examples for drawing with D3 Javascript library, and ordering matrices with More memory efficient implementation of current-flow betweenness and new approximation algorithms for current-flow betweenness and shortest-path betweenness. -Simplified handling of "weight" attributes for algorithms that use weights/costs/values. See :doc:`release/api_1.6`. +Simplified handling of "weight" attributes for algorithms that use weights/costs/values. See :doc:`api_1.6`. Updated all code to work with the PyPy Python implementation http://pypy.org which produces faster performance on many algorithms. @@ -248,7 +248,7 @@ https://networkx.lanl.gov/trac/query?status=closed&group=milestone&milestone=net API changes ~~~~~~~~~~~ -See :doc:`release/api_1.6` +See :doc:`api_1.6` NetworkX 1.5 @@ -290,7 +290,7 @@ New features API changes ~~~~~~~~~~~ -See :doc:`release/api_1.5` +See :doc:`api_1.5` Bug fixes diff --git a/doc/release/release_2.0.rst b/doc/release/release_2.0.rst index c2aa8792..8f27a91a 100644 --- a/doc/release/release_2.0.rst +++ b/doc/release/release_2.0.rst @@ -1,7 +1,12 @@ -Announcement: NetworkX 2.0 -========================== +NetworkX 2.0 +============ + +Release date: 20 September 2017 + +Support for Python 3.6 added, drop support for Python 3.3. + +See :doc:`migration_guide_from_1.x_to_2.0`. -We're happy to announce the release of NetworkX 2.0! NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks. @@ -216,8 +221,8 @@ The following deprecated functions will be removed in 2.1. deprecated in favor of ``to_pandas_adjacency``, ``from_pandas_adjacency``, ``to_pandas_edgelist``, and ``from_pandas_edgelist``. -Contributors to this release ----------------------------- +Contributors +------------ - Niels van Adrichem - Kevin Arvai @@ -307,8 +312,8 @@ Contributors to this release - yash14123 - Neil Girdhar -Pull requests merged in this release ------------------------------------- +Merged PRs +---------- - Gml read fix. (#1962) - Small changes leftover from #1847 (#1966) diff --git a/doc/release/release_2.1.rst b/doc/release/release_2.1.rst index 5ad26aba..16e80ebd 100644 --- a/doc/release/release_2.1.rst +++ b/doc/release/release_2.1.rst @@ -1,7 +1,10 @@ -Announcement: NetworkX 2.1 -========================== +NetworkX 2.1 +============ + +Release date: 22 January 2018 + +Supports Python 2.7, 3.4, 3.5, and 3.6. -We're happy to announce the release of NetworkX 2.1! NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks. @@ -114,8 +117,8 @@ Deprecations ``weakly_connected_component_subgraphs``. Instead use: ``[G.subgraph(c) for c in *_components]`` -Contributors to this release ----------------------------- +Contributors +------------ - Jack Amadeo - Boskovits @@ -156,8 +159,8 @@ Contributors to this release - talhum -Pull requests merged in this release ------------------------------------- +Merged PRs +---------- - Update Release Notes for v2.1 (#2839) - Update release notes (#2838) diff --git a/doc/release/release_2.2.rst b/doc/release/release_2.2.rst index 9394c189..82b2651b 100644 --- a/doc/release/release_2.2.rst +++ b/doc/release/release_2.2.rst @@ -1,7 +1,11 @@ -Announcement: NetworkX 2.2 -========================== +NetworkX 2.2 +============ + +Release date: 19 September 2018 + +Supports Python 2.7, 3.5, 3.6 and 3.7. +This is the last release to support Python 2. -We're happy to announce the release of NetworkX 2.2! NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks. @@ -103,8 +107,8 @@ And `GraphView`, `DiGraphView`, `MultiGraphView`, `MultiDiGraphView` are derecated in favor of `generic_graph_view(graph, create_using)`. -Contributors to this release ----------------------------- +Contributors +------------ - Luca Baldesi - William Bernoudy diff --git a/doc/release/release_2.3.rst b/doc/release/release_2.3.rst index 64a42604..0b24258d 100644 --- a/doc/release/release_2.3.rst +++ b/doc/release/release_2.3.rst @@ -1,5 +1,10 @@ -Announcement: NetworkX 2.3 -========================== +NetworkX 2.3 +============ + +Release date: 11 April 2019 + +Supports Python 3.5, 3.6 and 3.7. +This is our first Python 3 only release. We're happy to announce the release of NetworkX 2.3! NetworkX is a Python package for the creation, manipulation, and study of the @@ -53,8 +58,8 @@ Deprecations - The Graph.fresh_copy() method should now use Graph.__class__() - ReverseView class removed in favor of reverse_view() function. -Contributors to this release ----------------------------- +Contributors +------------ - Mike Babst - Jonathan Barnoud diff --git a/doc/release/release_2.4.rst b/doc/release/release_2.4.rst index fe7c5bb6..8fee1029 100644 --- a/doc/release/release_2.4.rst +++ b/doc/release/release_2.4.rst @@ -1,7 +1,11 @@ -Announcement: NetworkX 2.4 -========================== +NetworkX 2.4 +============ + +Release date: 16 October 2019 + +Supports Python 3.5, 3.6, 3.7, and 3.8. +This is the last release to support Python 3.5. -We're happy to announce the release of NetworkX 2.4! NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks. @@ -118,8 +122,8 @@ Remove old names for graphview functions. - MultiReverseView - Use reverse_view, subgraph_view and generic_graph_view. -Pull requests and commits merged in this release ------------------------------------------------- +Merged PRs +---------- A total of 205 changes have been committed. @@ -337,8 +341,8 @@ It contained the following 5 merges: - Test Python 3.8 with AppVeyor (#3648) - Cleanup and speedup CI (#3652) -Contributors to this release ----------------------------- +Contributors +------------ - Rajendra Adhikari - Antoine Allard diff --git a/doc/release/release_2.5.rst b/doc/release/release_2.5.rst index 25cdebd1..36331528 100644 --- a/doc/release/release_2.5.rst +++ b/doc/release/release_2.5.rst @@ -1,7 +1,10 @@ -Announcement: NetworkX 2.5 -========================== +NetworkX 2.5 +============ + +Release date: 22 August 2020 + +Supports Python 3.6, 3.7, and 3.8. -We're happy to announce the release of NetworkX 2.5! NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks. @@ -125,8 +128,8 @@ Deprecations - [`#4161 <https://github.com/networkx/networkx/pull/4161>`_] Rename `_naive_greedy_modularity_communities` as `naive_greedy_modularity_communities`. -Pull requests merged in this release ------------------------------------- +Merged PRs +---------- A total of 256 changes have been committed. @@ -392,8 +395,9 @@ It contained the following 3 merges: - MAINT: Replace internal usage of to_numpy_matrix and from_numpy_matrix (#4093) -Contributors to this release ----------------------------- +Contributors +------------ + - Adnan Abdulmuttaleb - Abhi - Antoine-H diff --git a/doc/release/release_dev.rst b/doc/release/release_dev.rst index 04952af4..0fdce5dd 100644 --- a/doc/release/release_dev.rst +++ b/doc/release/release_dev.rst @@ -1,7 +1,10 @@ -Announcement: NetworkX 2.6 -========================== +Next Release +============ + +Release date: TBD + +Supports Python 3.7, 3.8, and 3.9. -We're happy to announce the release of NetworkX 2.6! NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks. @@ -107,14 +110,13 @@ Deprecations Deprecate the ``Ordered`` graph classes. - -Contributors to this release ----------------------------- +Contributors +------------ <output of contribs.py> -Pull requests merged in this release ------------------------------------- +Merged PRs +---------- <output of contribs.py> diff --git a/doc/release/release_template.rst b/doc/release/release_template.rst index c267a067..b6c5c48a 100644 --- a/doc/release/release_template.rst +++ b/doc/release/release_template.rst @@ -1,7 +1,10 @@ -Announcement: NetworkX 2.X -========================== +Next Release +============ + +Release date: TBD + +Supports Python ... -We're happy to announce the release of NetworkX 2.X! NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks. @@ -30,13 +33,13 @@ Deprecations ------------ -Contributors to this release ----------------------------- +Contributors +------------ <output of contribs.py> -Pull requests merged in this release ------------------------------------- +Merged PRs +---------- <output of contribs.py> diff --git a/networkx/algorithms/graphical.py b/networkx/algorithms/graphical.py index 1931db5c..842afdb9 100644 --- a/networkx/algorithms/graphical.py +++ b/networkx/algorithms/graphical.py @@ -25,8 +25,10 @@ def is_graphical(sequence, method="eg"): method : "eg" | "hh" (default: 'eg') The method used to validate the degree sequence. - "eg" corresponds to the Erdős-Gallai algorithm, and - "hh" to the Havel-Hakimi algorithm. + "eg" corresponds to the Erdős-Gallai algorithm + [EG1960]_, [choudum1986]_, and + "hh" to the Havel-Hakimi algorithm + [havel1955]_, [hakimi1962]_, [CL1996]_. Returns ------- @@ -42,11 +44,16 @@ def is_graphical(sequence, method="eg"): References ---------- - Erdős-Gallai - [EG1960]_, [choudum1986]_ - - Havel-Hakimi - [havel1955]_, [hakimi1962]_, [CL1996]_ + .. [EG1960] Erdős and Gallai, Mat. Lapok 11 264, 1960. + .. [choudum1986] S.A. Choudum. "A simple proof of the Erdős-Gallai theorem on + graph sequences." Bulletin of the Australian Mathematical Society, 33, + pp 67-70, 1986. https://doi.org/10.1017/S0004972700002872 + .. [havel1955] Havel, V. "A Remark on the Existence of Finite Graphs" + Casopis Pest. Mat. 80, 477-480, 1955. + .. [hakimi1962] Hakimi, S. "On the Realizability of a Set of Integers as + Degrees of the Vertices of a Graph." SIAM J. Appl. Math. 10, 496-506, 1962. + .. [CL1996] G. Chartrand and L. Lesniak, "Graphs and Digraphs", + Chapman and Hall/CRC, 1996. """ if method == "eg": valid = is_valid_degree_sequence_erdos_gallai(list(sequence)) @@ -81,7 +88,8 @@ def _basic_graphical_tests(deg_sequence): def is_valid_degree_sequence_havel_hakimi(deg_sequence): r"""Returns True if deg_sequence can be realized by a simple graph. - The validation proceeds using the Havel-Hakimi theorem. + The validation proceeds using the Havel-Hakimi theorem + [havel1955]_, [hakimi1962]_, [CL1996]_. Worst-case run time is $O(s)$ where $s$ is the sum of the sequence. Parameters @@ -108,9 +116,12 @@ def is_valid_degree_sequence_havel_hakimi(deg_sequence): ---------- .. [1] I.E. Zverovich and V.E. Zverovich. "Contributions to the theory of graphic sequences", Discrete Mathematics, 105, pp. 292-303 (1992). - - [havel1955]_, [hakimi1962]_, [CL1996]_ - + .. [havel1955] Havel, V. "A Remark on the Existence of Finite Graphs" + Casopis Pest. Mat. 80, 477-480, 1955. + .. [hakimi1962] Hakimi, S. "On the Realizability of a Set of Integers as + Degrees of the Vertices of a Graph." SIAM J. Appl. Math. 10, 496-506, 1962. + .. [CL1996] G. Chartrand and L. Lesniak, "Graphs and Digraphs", + Chapman and Hall/CRC, 1996. """ try: dmax, dmin, dsum, n, num_degs = _basic_graphical_tests(deg_sequence) |