GitHub

igraph 1.0.0

@ntamas ntamas released this

23 Oct 12:22

Added

  • Added Graph.Nearest_Neighbor_Graph().

  • Added node_in_weights argument to Graph.community_leiden().

  • Added align_layout() to align the principal axes of a layout nicely with screen dimensions.

  • Added Graph.commnity_voronoi().

  • Added Graph.commnity_fluid_communities().

Changed

  • The C core of igraph was updated to version 1.0.0.

  • Most layouts are now auto-aligned using align_layout().

  • Dropped support for PyPy 3.9 and PyPy 3.10 as they are now EOL.

Miscellaneous

  • Documentation improvements.

  • This is the last version that supports Python 3.9 as it will reach its end of life at the end of October 2025.

Full Changelog: 0.11.9...1.0.0

igraph 0.11.9

@ntamas ntamas released this

11 Jun 09:22

Changed

  • Dropped support for Python 3.8 as it has now reached its end of life.

  • The C core of igraph was updated to version 0.10.16.

  • Added Graph.simple_cycles() to find simple cycles in the graph.

igraph 0.11.8

@ntamas ntamas released this

28 Oct 12:48

Added

  • Added Graph.feedback_vertex_set() to calculate a feedback vertex set of the graph.
  • Added new methods to Graph.feedback_arc_set() that allows the user to select the specific integer problem formulation used by the underlying solver.

Changed

  • Ensured compatibility with Python 3.13.
  • The C core of igraph was updated to version 0.10.14.

Fixed

  • Fixed a potential memory leak in the Graph.get_shortest_path_astar() heuristic function callback.

Full Changelog: 0.11.6...0.11.8

igraph 0.11.6

@ntamas ntamas released this

08 Jul 23:36

Added

  • Added Graph.Hypercube() for creating n-dimensional hypercube graphs.
  • Added Graph.Chung_Lu() for sampling from the Chung-Lu model as well as several related models.
  • Added Graph.is_complete() to test if there is a connection between all distinct pairs of vertices.
  • Added Graph.is_clique() to test if a set of vertices forms a clique.
  • Added Graph.is_independent_vertex_set() to test if some vertices form an independent set.
  • Added Graph.mean_degree() for a convenient way to compute the average degree of a graph.

Changed

  • The C core of igraph was updated to version 0.10.13.
  • Graph.rewire() now attempts to perform edge swaps 10 times the number of edges by default.
  • Error messages issued when an attribute is not found now mention the name and type of that attribute.

Full Changelog: 0.11.5...0.11.6

igraph 0.11.5

@ntamas ntamas released this

07 May 17:45

Added

  • Added a prefixattr=... keyword argument to Graph.write_graphml() that allows the user to strip the g_, v_ and e_ prefixes from GraphML files written by igraph.

Changed

  • Graph.are_connected() has now been renamed to Graph.are_adjacent(), following up a similar change in the C core. The old name of the function is deprecated but will be kept around until at least 0.12.0.

  • The C core of igraph was updated to version 0.10.12.

  • Deprecated PyCObject API calls in the C code were replaced by calls to PyCapsule, thanks to @DavidRConnell in #763

  • get_shortest_path() documentation was clarified by @JDPowell648 in #764

  • It is now possible to link to an existing igraph C core on MSYS2, thanks to @Kreijstal in #770

Fixed

  • Bugfix in the NetworkX graph conversion code by @rmmaf in #767

New Contributors

Full Changelog: 0.11.4...0.11.5

igraph 0.11.4

@ntamas ntamas released this

13 Feb 22:29

Added

  • Added Graph.Prufer() to construct a graph from a Prüfer sequence.

  • Added Graph.Bipartite_Degree_Sequence() to construct a bipartite graph from a bidegree sequence.

Fixed

  • Fixed import of graph-tool graphs for vertex properties where each property has a vector value.

  • Graph.Adjacency() now accepts Matrix instances and other sequences as an input, it is not limited to lists-of-lists-of-ints any more.

igraph 0.11.3

@ntamas ntamas released this

20 Nov 11:06

Added

  • Added Graph.__invalidate_cache() for debugging and benchmarking purposes.

Changed

  • The C core of igraph was updated to version 0.10.8.

Fixed

  • Removed incorrectly added loops=... argument of Graph.is_bigraphical().
  • Fixed a bug in the Matplotlib graph drawing backend that filled the interior of undirected curved edges.

igraph 0.11.2

@ntamas ntamas released this

12 Oct 21:28

Added

  • python-igraph is now tested in Python 3.12.

  • Added weights=... keyword argument to Graph.layout_kamada_kawai().

Changed

  • The matplotlib plotting infrastructure underwent major surgery and is now able to show consistent vertex and edge drawings at any level of zoom, including with animations, and for any aspect ratio.
  • As a consequence of the restructuring at the previous point, vertex sizes are now specified in figure points and are not affected by axis limits or zoom. With the current conventions, vertex_size=25 is a reasonable size for igraph.plot.
  • As another consequence of the above, vertex labels now support offsets from the vertex center, in figure point units.
  • As another consequence of the above, self loops are now looking better and their size can be controlled using the edge_loop_size argument in igraph.plot.
  • As another consequence of the above, if using the matplotlib backend when plotting a graph, igraph.plot now does not return the Axes anymore. Instead, it returns a container artist called GraphArtist, which contains as children the elements of the graph plot: a VertexCollection for the vertices, and EdgeCollection for the edges, and so on. These objects can be used to modify the plot after the initial rendering, e.g. inside a Jupyter notebook, to fine tune the appearance of the plot. While documentation on specific graphic elements is still scant, more descriptive examples will follow in the future.

Fixed

  • Fixed drawing order of vertices in the Plotly backend (#691).

  • Fixed plotting of null graphs with the Matplotlib backend.

Removed

  • Dropped support for Python 3.7 as it has reached its end of life.

igraph 0.10.8

@ntamas ntamas released this

12 Sep 20:44

Yes, the version number is correct - igraph 0.10.7 has never made it to PyPI. It is tagged in the repository, but it has never been released officially. The changelog below lists the changes between igraph 0.10.6 and 0.10.8.

Added

  • Added is_bigraphical() to test whether a pair of integer sequences can be the degree sequence of some bipartite graph.

  • Added weights=... keyword argument to Graph.radius() and Graph.eccentricity().

  • Graph.distances(), Graph.get_shortest_path() and Graph.get_shortest_paths() now allow the user to select the algorithm to be used explicitly.

Changed

  • The C core of igraph was updated to version 0.10.7.

  • Graph.distances() now uses Dijkstra's algorithm when there are zero weights but no negative weights. Earlier versions switched to Bellman-Ford or Johnson in the presence of zero weights unnecessarily.

Fixed

  • Fixed a bug in EdgeSeq.select(_incident=...) for undirected graphs.

  • Fixed a memory leak in Graph.distances() when attempting to use Johnson's algorithm with mode != "out"

igraph 0.10.6

@ntamas ntamas released this

13 Jul 14:24

Changed

  • The C core of igraph was updated to version 0.10.6.

  • Graph.Incidence() is now deprecated in favour of Graph.Biadjacency() as it constructs a bipartite graph from a bipartite adjacency matrix. (The previous name was a mistake). Future versions might re-introduce Graph.Incidence() to construct a graph from its incidence matrix.

  • Graph.get_incidence() is now deprecated in favour of Graph.get_biadjacency() as it returns the bipartite adjacency matrix of a graph and not its incidence matrix. (The previous name was a mistake). Future versions might re-introduce Graph.get_incidence() to return the incidence matrix of a graph.

  • Reverted the change in 0.10.5 that prevented adding vertices with integers as vertex names. Now we show a deprecation warning instead, and the addition of vertices with integer names will be prevented from version 0.11.0 only.

Fixed

  • Fixed a minor memory leak in Graph.decompose().

  • The default vertex size of the Plotly backend was fixed so the vertices are now visible by default without specifying an explicit size for them.

Read the original on github.com ↗