Releases: igraph/python-igraph
igraph 0.10.5
Added
-
The
plot()function now takes abackendkeyword argument that can be used to specify the plotting backend explicitly. -
The
VertexClusteringobject returned fromGraph.community_leiden()now contains an extra property namedqualitythat stores the value of the internal quality function optimized by the algorithm. -
Graph.Adjacency()andGraph.Weighted_Adjacency()now supportsloops="once",loops="twice"andloops="ignore"to control how loop edges are handled in a more granular way.loops=Trueandloops=Falsekeep on working as in earlier versions. -
Added
Graph.get_shortest_path()as a convenience function for cases when only one shortest path is needed between a given source and target vertices. -
Added
Graph.get_shortest_path_astar()to calculate the shortest path between two vertices using the A-star algorithm and an appropriate heuristic function. -
Added
Graph.count_automorphisms()to count the number of automorphisms of a graph andGraph.automorphism_group()to calculate the generators of the automorphism group of a graph. -
The
VertexCoverconstructor now allows referring to vertices by names instead of IDs.
Fixed
-
resolutionparameter is now correctly taken into account when callingGraph.modularity() -
VertexClustering.giant()now accepts the null graph. The giant component of a null graph is the null graph according to our conventions. -
Graph.layout_reingold_tilford()now accepts vertex names in theroots=...keyword argument. -
The plotting of curved directed edges with the Cairo backend is now fixed; arrowheads were placed at the wrong position before this fix.
Changed
- The C core of igraph was updated to version 0.10.5.
Removed
- Removed defunct
Graph.community_leading_eigenvector_naive()method. Not a breaking change because it was already removed from the C core a long time ago so the function in the Python interface did not do anything useful either.
igraph 0.10.4
Added
- Added
Graph.vertex_coloring_greedy()to calculate a greedy vertex coloring for the graph. - Betweenness and edge betweenness scores can now be calculated for a subset of the shortest paths originating from or terminating in a certain set of vertices only.
Fixed
- Fixed the drawing of
VertexDendrograminstances, both in the Cairo and the Matplotlib backends. - The
cutoffandnormalizedarguments ofGraph.closeness()did not function correctly.
igraph 0.10.3
Changed
-
The C core of igraph was updated to version 0.10.3.
-
UMAP layout now exposes the computation of the symmetrized edge weights via
umap_compute_weights(). The layout function,Graph.layout_umap(), can now be called either on a directed graph with edge distances, or on an undirected graph with edge weights, typically computed viaumap_compute_weights()or precomputed by the user. Moreover, thesampling_probargument was faulty and has been removed. See PR #613 for details. -
The
resolution_parameterargument ofGraph.community_leiden()was renamed toresolutionfor sake of consistency. The old variant still works with a deprecation warning, but will be removed in a future version.
Fixed
-
Graph.Data_Frame()now handles theInt64data type frompandas, thanks to @Adriankhl. See PR #609 for details. -
Graph.layout_lgl()rootargument is now optional (as it should have been). -
The
VertexClusteringclass now handles partial dendrograms correctly.
igraph 0.10.2
Added
python-igraphis now tested in Python 3.11.- Added
Graph.modularity_matrix()to calculate the modularity matrix of a graph. - Added
Graph.get_k_shortest_paths(), thanks to @sombreslames. See PR #577 for details. - The
setup.pyscript now also accepts environment variables instead of command line arguments to configure several aspects of the build process (i.e. whether a fully static extension is being built, or whether it is allowed to usepkg-configto retrieve the compiler and linker flags for an externaligraphlibrary instead of the vendored one). The environment variables are named similarly to the command line arguments but in uppercase, dashes replaced with underscores, and they are prefixed withIGRAPH_(i.e.--use-pkg-configbecomesIGRAPH_USE_PKG_CONFIG).
Changed
- The C core of igraph was updated to version 0.10.2, fixing a range of bugs originating from the C core.
Fixed
- Fixed a crash in
Graph.decompose()that was accidentally introduced in 0.10.0 during the transition toigraph_graph_list_tin the C core. Clustering.sizes()now works correctly even if the membership vector containsNoneitems.Graph.modularity()andGraph.community_multilevel()now correctly expose theresolutionparameter.- Fixed a reference leak in
Graph.is_chordal()that decreased the reference count of Python's built-inTrueandFalseconstants unnecessarily. - Unit tests updated to get rid of deprecation warnings in Python 3.11.
igraph 0.10.1
Added
- Added
Graph.minimum_cycle_basis()andGraph.fundamental_cycles() Graph.average_path_length()now supports edge weights.
Fixed
- Restored missing exports from
igraph.__all__that used to be in the mainigraphpackage before 0.10.0.
igraph 0.10.0
Added
-
More robust support for Matplotlib and initial support for plotly as graph plotting backends, controlled by a configuration option. See PR #425 for more details.
-
Added support for additional ways to construct a graph, such as from a dictionary of dictionaries, and to export a graph object back to those data structures. See PR #434 for more details.
-
Graph.list_triangles()lists all triangles in a graph. -
Graph.reverse_edges()reverses some or all edges of a graph. -
Graph.Degree_Sequence()now supports the"no_multiple_uniform"generation method, which generates simple graphs, sampled uniformly, using rejection sampling. -
Graph.Lattice()now supports per-dimension periodicity control. -
Graph.get_adjacency()now allows the user to specify whether loop edges should be counted once or twice, or not at all. -
Graph.get_laplacian()now supports left-, right- and symmetric normalization.
Changed
-
The C core of igraph was updated to version 0.10.0.
-
We now publish
abi3wheels on PyPI from CPython 3.9 onwards, making it possible to use an already-built Python wheel with newer minor Python releases (and also reducing the number of wheels we actually need to publish). Releases for CPython 3.7 and 3.8 still use version-specific wheels because the code of the C part of the extension contains conditional macros for CPython 3.7 and 3.8. -
Changed default value of the
use_vids=...argument ofGraph.DataFrame()toTrue, thanks to @fwitter. -
Graph.Degree_Sequence()now accepts all sorts of sequences as inputs, not only lists.
Fixed
- The Matplotlib backend now allows
edge_colorandedge_widthto be set
on an edge-by-edge basis.
Removed
-
Dropped support for Python 3.6.
-
Removed deprecated
UbiGraphDrawer. -
Removed deprecated
show()method ofPlotinstances as well as the feature that automatically shows the plot whenplot()is called with no target. -
Removed the
eidskeyword argument ofget_adjacency().
Deprecated
-
Graph.clusters()is now deprecated; useGraph.connected_components()or its already existing shorter alias,Graph.components(). -
Graph.shortest_paths()is now deprecated; useGraph.distances()instead.
igraph 0.9.11
Added
- We now publish
musllinuxwheels on PyPI.
Changed
- Vendored igraph was updated to version 0.9.9.
Fixed
-
Graph union and intersection (by name) operators now verify that there are no duplicate names within the individual graphs.
-
Fixed a memory leak in
Graph.union()when edge maps were used; see #534 for details. -
Fixed a bug in the Cairo and Matplotlib backends that prevented edges with labels from being drawn properly; see #535 for details.
igraph 0.9.10
Changed
- Vendored igraph was updated to version 0.9.8.
Fixed
-
Fixed plotting of curved edges in the Cairo plotting backend.
-
setup.pynow looks forigraph.pcrecursively invendor/install; this fixes building igraph from source in certain Linux distributions -
Graph.shortest_paths()does not crash with zero-length weight vectors any more -
Fix a memory leak in
Graph.delete_vertices()and other functions that convert a list of vertex IDs internally to anigraph_vs_tobject, see #503 for details. -
Fixed potential memory leaks in
Graph.maximum_cardinality_search(),Graph.get_all_simple_paths(),Graph.get_subisomorphisms_lad(),Graph.community_edge_betweenness(), as well as theunionandintersectionoperators. -
Fix a crash that happened when subclassing
Graphand overriding__new__()in the subclass; see #496 for more details. -
Documentation now mentions that we now support graphs of size 5 or 6 for isomorphism / motif calculations if the graph is undirected
igraph 0.9.9
Changed
- Vendored igraph was updated to version 0.9.6.
Fixed
-
Fixed a performance bottleneck in
VertexSeq.select()andEdgeSeq.select()for the case when theVertexSeqor theEdgeSeqrepresents the whole graph. See #494 for more details. -
Edge labels now take the curvature of the edge into account, thanks to @Sriram-Pattabiraman. (#457)
igraph 0.9.8
🎉 python-igraph is now simply igraph, at least on PyPI.
❗ If you use python-igraph in the dependencies of any of your projects, please replace it with igraph instead. python-igraph is now a stub package on PyPI that depends on the matching version of the Python package named igraph. We will keep on updating python-igraph until Sep 1, 2022, after which python-igraph will not receive any updates.
🙏🏼 Many thanks to @patrickfuller for allowing us to useigraph as the package name on PyPI.
Other than that, the only change in this release compared to python-igraph 0.9.7 is that the setup script does not use distutils any more.