Changelogs » Python-graph

PyUp Safety actively tracks 266,777 Python packages for vulnerabilities and notifies you when to upgrade.



  The find_cycle function now accepts instances of any subtype of graph and digraph.
  Release 1.8.1	[Jan 08, 2012]
  Shortest-path now executes in O(n*log(n)) instead of O(n^2).
  Shortest-path raises KeyError when the source node is not on the graph;
  Bellman-Ford algorithm now works for unconnected graphs (Issue 87);
  Linking, unlinking and relinking a hypernode to hyperedge now works as expected (Issue 86);
  Graph comparison does not raise exceptions anymore (Issue 88);
  Fixed undesired sharing of attribute lists (Issue 92);
  Fixed reading of XML-stored graphs with edge attributes;
  Fixed calculation of minimal spanning trees of graphs with negative-weighted edges (Issue 102).
  Release 1.8.0	[Oct 01, 2010]
  Added Pagerank algorithm;
  Added Gomory-Hu cut-tree algorithm.
  Edges from one node to itself are no longer duplicated (Issue 75).
  Release 1.7.0	[Mar 20, 2010]
  Added equality test for graphs, digraphs and hypergraphs;
  Added has_edge() and has_hyperedge() methods to hypergraph objects;
  Accepting subtypes of graph, digraph and hypergraph in dot-language output (Issue 64);
  Added Bellman-Ford algorithm;
  Added Edmonds-Karp Maximum-Flow algorithm.
  Adding an edge with a label to a digraph now works again;
  Deleting an edge of a hypergraph now deletes its attributes;
  Node attributes on hypergraphs work now;
  Checking for node equality correctly in find_cycle;
  Avoiding errors caused by deep recursion on many algorithms (Issue 66).
  Release 1.6.3	[Dec 13, 2009]
  Added Python3 support (support for Python 2.5 and lower was dropped).
  Adding a graph to a digraph now works (Issue 39);
  Fixed the reading of graphs and digraphs stored in XML.
  Important API Changes:
  Edges are now passed around as generic objects. In the case of graph / digraph this is a tuple;
  Removed traversal() method from graph and digraph classes;
  Removed accessibility, connected_components, cut_nodes and cut_hyperedges from hypergraph class;
  Functions for reading a hypergraph doesn't take an empty hypergraph as argument anymore.
  Release 1.6.2	[Sep 30, 2009]
  Important API Changes:
  Adding an arrow to an non existing node on a digraph now fails sanely (Issue 35);
  Adding an already added node to a graph or digraph now raises an exception (AdditionError);
  Adding an already added edge to a graph or digraph now raises an exception (AdditionError);
  pygraph.classes.Classname.classname classes were renamed to pygraph.classes.classname.classname;
  pygraph.algorithms.filters.Filtername.filtername filters were renamed to pygraph.algorithms.filters.filtername.filtername;
  pygraph.algorithms.heuristics.Heuristicname.heuristicname heuristics were renamed to pygraph.algorithms.heuristics.heuristicname.heuristicname;
  hypergraph's read() and write() methods were removed.
  Release 1.6.1	[Jul 04, 2009]
  Added reverse method to the digraph class.
  Important API Changes:
  Removed methods calling algorithms from graph and digraph classes;
  pygraph.algorithms.cycles.find_cycle does not take argument directed anymore;
  Removed methods read, write and generate from graph and digraph classes;
  Functions for writing and reading graphs now in pygraph.readwrite.
  Release 1.6.0	[Jun 06, 2009]
  Important API Changes:
  Module name was renamed to pygraph;
  python_graph_exception was renamed to GraphError;
  Exception unreachable was renamed to NodeUnreachable;
  get_edge_weight was renamed to edge_weight;
  get_edge_label was renamed to edge_label;
  get_edge_attributes was renamed to edge_attributes;
  get_node_attributes was renamed to node_attributes;
  degree was renamed to node_degree;
  order was renamed to node_order.
  Release 1.5.0	[May 03, 2009]
  Assymptotically faster Mutual Accessibility (now using Tarjan's algorithm);
  DOT-Language importing;
  Transitive edge detection;
  Critical path algorithm.
  Cycle detection algorithm was reporting wrong results on some digraphs;
  Removed Minimal Spanning Tree from Digraphs as Prim's algorithm does not work on them (Issue 28).
  Deletion of A--A edge raised an exception;
  Deletion of an node with an A--A edge raised an exception.
  Important API Changes:
  Removed minimal_spanning_tree() method from the digraph class.
  Release 1.4.2	[Feb 22, 2009]
  find_cycle() trapped itself in infinite recursion in some digraphs (Issue 22).
  Release 1.4.1	[Feb 09, 2009]
  graph.algorithms.filters was not being installed (Issue 20).
  Release 1.4.0	[Feb 07, 2009]
  Added Asearch algorithm (as heuristic_search);
  Added Chow's and Euclidean heuristics for A*;
  Added filtered depth-first and breadth-first search;
  Added 'find' search filter (stops the search after reaching a target node);
  Added 'radius' search filter (radial limit for searching);
  Moved to setuptools.
  Breadth first search was omitting the first node in level ordering when no root was specified.
  Release 1.3.1	[Oct 27, 2008]
  Graph and digraph inverse was not working;
  Node removal in digraphs was not deleting all relevant edges (Issue 13).
  Important API Changes:
  Deprecated methods were removed.
  Release 1.3.0	[Sep 28, 2008]
  Tree traversals (preorder and postorder).
  Node insertion is much faster now (Issue 11).
  Hypernode/hyperedge insertion also much faster.
  Important API Changes:
  get_nodes() is now nodes();
  get_edges() is now edges();
  get_neighbors() is now neighbors();
  get_incidents() is now incidents();
  get_order() is now order();
  get_degree() is now degree().
  (Former method names are deprecated and will be removed in the next release.)
  Release 1.2.0	[Sep 09, 2008]
  Moved to new class style;
  Graphs and digraphs are separated classes now;
  Added level-based ordering to breadth first search;
  Graph object is now iterable;
  Graph object is now a container and graphobj[nodeid] iterates too;
  Support for node and edge attributes (Issue 5);
  Node deletion.
  Install now works with a prefix (Issue 10);
  Shortest path spanning trees did not had an explicit root.
  Important API Changes:
  breadth_first_search() now returns a tuple;
  Arrow methods are gone. Use class digraph + edge methods for directed graphs now.
  Release 1.1.1	[Sep 04, 2008]
  Improved install script.
  DOT Language output now works for nodes/edges labelled with spaces.
  Important API Changes:
  get_neighbours() is now get_neighbors() (Issue 9).
  Release 1.1.0	[Aug 31, 2008]
  Hypergraph support (Issue 4);
  Complete and complement graph generation;
  Weights in random generated graphs (Issue 8).
  Fixed bug in cut-node identification;
  Fixed bug causing wrong results for graphs with nodes labelled with values that evaluate to False (Issue 7).
  Important API Changes:
  get_edges() now return all edges in the graph;
  get_neighbours() has the former behaviour of get_edges().
  Release 1.0.0	[Aug 01, 2008]
  Adds some operations;
  Random graph generation;
  Cut-vertex/cut-edge identification.
  Release 0.85	[Jul 27, 2008]
  Adds DOT-Language output (Issue 1);
  Install script included (Issue 3).
  Release 0.75	[Jul 06, 2008]
  Added XML import/export;
  Docs are bundled now.
  Release 0.65	[Jun 25, 2008]
  DFS, BFS and MST can be generated for given roots;
  Added Dijkstra's shortest path algorithm (Issue 2).
  Release 0.50	[May 13, 2008]
  Some API changes;
  Nodes can now be arbitrary names/objects.
  Release 0.45	[May 12, 2008]
  Adds Prim's minimal spanning tree.
  Release 0.40	[Mar 09, 2008]
  Adds topological sorting;
  Support for weighted graphs.
  Release 0.30	[Aug 30, 2007]
  Adds algorithms for accessibility and mutual accessibility.
  Release 0.20	[Jul 16, 2007]
  Adds breadth-first search;
  API documentation.
  Release 0.10	[Jul 10, 2007]
  First release;
  Feat. basic operations and depth-first searching.