Upgrading networkx 2 to 3
Breaking2.8.8 → 3.7Breaking82Platform5Deprecated14New109Changed185Fixed186Other702
BreakingUpgrade verdict
81 breaking changes and 5 platform requirement changes.
In plain terms
- Removes the deprecated _hits_scipy code.
- The swap_d helper in the threshold module is gone.
- The forceatlas2 layout no longer accepts a dissuade_hubs argument.
- Two deprecated functions are gone; use the replacement d-separation APIs instead.
Must act Top 5 of 100 that need code or config changes
Python requirement changed in 3.7rc0: >=3.8 → !=3.14.1,>=3.12.
What you must change
Breaking81
Removes the deprecated _hits_scipy code.
_hits_scipyRemoves networkx.algorithms.threshold.swap_d.
networkx.algorithms.threshold.swap_dRemoves the unused dissuade_hubs kwarg from forceatlas2.
forceatlas2dissuade_hubsRemoves the expired d_separated and minimum_d_separator functions.
d_separatedminimum_d_separatorRemoves the expired all_triplets deprecation.
all_tripletsRemoves the expired random_triad deprecation.
random_triadRemoves the expired total_spanning_tree_weight deprecation.
total_spanning_tree_weightRemoves the deprecated create kwarg from nonisomorphic_trees.
nonisomorphic_treesRemoves the deprecated normalized param from s_metric.
s_metricnormalizedRemoves the deprecated Edmonds class for 3.4.
EdmondsRemoves deprecated MultiDiGraph_EdgeKey for 3.4.
MultiDiGraph_EdgeKeyRenames
LoopbackDispatcher to LoopbackBackendInterface and dispatcher to backend_interface.LoopbackDispatcherLoopbackBackendInterfacedispatcherbackend_interfaceRemoves usage of __networkx_plugin__ in favor of __networkx_backend__.
__networkx_plugin____networkx_backend__Removes the "networkx.plugins" and "networkx.plugin_info" entry-points.
networkx.pluginsnetworkx.plugin_infoRemoves the deprecated maxcardinality parameter from min_weight_matching.
min_weight_matchingmaxcardinalityRemoves the deprecated find_cores function.
find_coresRemoves the deprecated project function from the bipartite package.
projectRemoves the deprecated function is_string_like.
is_string_likeRemoves the deprecated function make_str.
make_strRemoves the unused 'name' parameter from /operators/binary.py.
Removes the deprecated function is_iterator.
is_iteratorRemoves euclidean from geometric.py.
euclideanRemoves the deprecated function utils.consume.
utils.consumeRemoves to_numpy_recarray.
to_numpy_recarrayRemoves the deprecated function utils.empty_generator.
utils.empty_generatorRemoves jit.py.
jitRemoves deprecated context managers.
Removes the deprecated function utils.to_tuple.
utils.to_tupleRemoves display_pygraphviz.
display_pygraphvizRemoves to_numpy_matrix and from_numpy_matrix.
to_numpy_matrixfrom_numpy_matrixRemoves the deprecated decorator preserve_random_state.
preserve_random_stateRemoves the deprecated function is_list_of_ints.
is_list_of_intsRemoves the random_state decorator.
random_stateRemoves adj_matrix from linalg/graphmatrix.py.
adj_matrixRemoves betweenness_centrality_source.
betweenness_centrality_sourceRemoves the deprecated simrank_similarity_numpy.
simrank_similarity_numpyRemoves the deprecated numeric_mixing_matrix function.
numeric_mixing_matrixRemoves deprecated functions make_small_graph and make_small_undirected_graph.
make_small_graphmake_small_undirected_graphRemoves _naive_greedy_modularity_communities.
_naive_greedy_modularity_communitiesUpdates cytoscape functions to drop the old signature.
Removes deprecated functions dict_to_numpy_array2 and dict_to_numpy_array1.
dict_to_numpy_array2dict_to_numpy_array1Removes deprecated function utils.default_opener.
utils.default_openerRemoves deprecated function iterable.
iterableRemoves the old attr keyword from json_graph/tree.
json_graph/treeRemoves generate_unique_node.
generate_unique_nodeRemoves gpickle.
gpickleRemoves deprecated function extrema_bounding.
extrema_boundingRemoves coverage and performance from quality.
qualityRemoves deprecated k-nearest-neighbors.
Removes the unused deprecated argument from to_pandas_edgelist.
to_pandas_edgelistRemoves the deprecated function edge_betweeness.
edge_betweenessRemoves copy methods for Filter coreviews.
FilterRemoves the deprecated function nx.info.
nx.infoRemoves the deprecated n_communities argument from greedy_modularity_communities.
greedy_modularity_communitiesn_communitiesRemoves the deprecated functions hub_matrix and authority_matrix.
hub_matrixauthority_matrixRemoves to_scipy_sparse_matrix and from_scipy_sparse_matrix.
to_scipy_sparse_matrixfrom_scipy_sparse_matrixRemoves OrderedGraphs.
OrderedGraphOrderedDiGraphOrderedMultiGraphOrderedMultiDiGraphExpires the random lobster dependency.
Expires deprecations of the could-be isomorphism aliases.
could_be_isomorphicfast_could_be_isomorphicfaster_could_be_isomorphicChanges maximal_independent_set to return a set instead of a list.
maximal_independent_setReplaces random_lobster with random_lobster_graph.
random_lobsterrandom_lobster_graphReplaces maybe_regular_expander with maybe_regular_expander_graph.
maybe_regular_expandermaybe_regular_expander_graphExpires the deprecation of compute_v_structures.
compute_v_structuresExpires the deprecation of the link kwarg in node_link functions.
linkRaises an exception for k_core functions when given multigraphs.
k_coreExpires the forest_str deprecation.
forest_strExpires the random_tree deprecation.
random_treeExpires the deprecation for strongly_connected_components_recursive.
strongly_connected_components_recursiveExpires the deprecated sort_neighbors param in generic_bfs_edges.
generic_bfs_edgessort_neighborsExpires deprecated nx.join in favor of join_trees.
joinjoin_treesDisallows negative number of nodes in complete_multipartite_graph.
complete_multipartite_graphChanges return types of shortest path methods to improve consistency.
Changes the arguments list of GraphMLWriterLxml.dump().
GraphMLWriterLxml.dump()Removes the testing submodule.
networkx.testingMakes chordal_graph_cliques a generator.
chordal_graph_cliquesReplaces the node_classification subpackage with a module.
node_classificationUpdates the return type of google_matrix to numpy.ndarray.
google_matrixUpdates the return type of attrmatrix.
attrmatrixMakes HITS numpy and scipy functions private.
hitsMakes lazy_import private and removes its internal use.
lazy_importChanges the signature of node_link functions for issue #5787.
node_linkPlatform5
Updates minimum dependencies per SPEC 0 and drops Python 3.11 support.
Drops support for Python 3.10.
Adds support for Python 3.13.
Drops Python 3.9 support.
Adds support for Python 3.11.
Deprecations to plan for
Deprecated14
Proposes deprecating bfs_predecessors.
bfs_predecessorsDeprecates the p2g module.
p2gDeprecates metric_closure.
metric_closureDeprecates graph_could_be_isomorphic.
graph_could_be_isomorphicAdds colliders and v_structures and deprecates compute_v_structures in dag.py.
collidersv_structurescompute_v_structuresAdds edges keyword and deprecates link keyword arguments in JSON input-output.
edgeslinkDeprecates the all_triplets one-liner.
all_tripletsDeprecates random_triad.
random_triadDeprecates the create argument of nonisomorphic_trees.
nonisomorphic_treescreateAdds clique examples and deprecates helper functions.
Deprecates shortest_path functions to have consistent return values in v3.3.
shortest_pathChanges PyDot PendingDeprecation to Deprecation.
PyDotBumps the nodelink args deprecation expiration to v3.2.
Updates deprecations.
API changes
Generated by DepDelta from published Python source. Not mixed with prose notes.
- removed:
export test - added:
variable config
- removed:
export project - added:
export is_tournament
- added:
function densest_subgraph(G, iterations=…, *, method=…)
- changed:
function steiner_tree(G, terminal_nodes, weight=…) → function steiner_tree(G, terminal_nodes, weight=…, method=…)
- changed:
function traveling_salesman_problem(G, weight=…, nodes=…, cycle=…, method=…) → function traveling_salesman_problem(G, weight=…, nodes=…, cycle=…, method=…, **kwargs)
- removed:
function k_nearest_neighbors(G, source=…, target=…, nodes=…, weight=…)
- removed:
function numeric_mixing_matrix(G, attribute, nodes=…, normalized=…, mapping=…)
- added:
function butterflies(G, nodes=…)
- added:
function modularity(G, communities, nodes, *, weight=…, resolution=…)
- added:
function maximal_extendability(G)
- added:
function birank(G, nodes, *, alpha=…, beta=…, top_personalization=…, bottom_personalization=…, max_iter=…, tol=…, weight=…)
- changed:
function from_biadjacency_matrix(A, create_using=…, edge_attribute=…) → function from_biadjacency_matrix(A, create_using=…, edge_attribute=…, *, row_order=…, column_order=…)
- removed:
function project(B, nodes, create_using=…)
- added:
function tree_broadcast_center(G) - added:
function tree_broadcast_time(G, node=…)
- removed:
function edge_betweenness(G, k=…, normalized=…, weight=…, seed=…)
- removed:
function betweenness_centrality_source(G, normalized=…, weight=…, sources=…)
- changed:
function closeness_centrality(G, u=…, distance=…, wf_improved=…) → function closeness_centrality(G, u=…, distance=…, wf_improved=…, *, sp=…)
- changed:
function approximate_current_flow_betweenness_centrality(G, normalized=…, weight=…, dtype=…, solver=…, epsilon=…, kmax=…, seed=…) → function approximate_current_flow_betweenness_centrality(G, normalized=…, weight=…, dtype=…, solver=…, epsilon=…, kmax=…, seed=…, *, sample_weight=…)
- added:
function laplacian_centrality(G, normalized=…, nodelist=…, weight=…, walk_type=…, alpha=…)
- changed:
function second_order_centrality(G) → function second_order_centrality(G, weight=…)
- changed:
function subgraph_centrality(G) → function subgraph_centrality(G, *, normalized=…) - changed:
function subgraph_centrality_exp(G) → function subgraph_centrality_exp(G, *, normalized=…)
- removed:
function cliques_containing_node(G, nodes=…, cliques=…) - removed:
function graph_clique_number(G, cliques=…) - removed:
function graph_number_of_cliques(G, cliques=…)
- added:
function all_triangles(G, nbunch=…)
- added:
function greedy_node_swap_bipartition(G, *, init_split=…, max_iter=…) - added:
function kernighan_lin_bisection(G, partition=…, max_iter=…, weight=…, seed=…) - added:
function spectral_modularity_bipartition(G)
- added:
function is_cover(G, communities)
- added:
function edge_betweenness_partition(G, number_of_sets, *, weight=…) - added:
function edge_current_flow_betweenness_partition(G, number_of_sets, *, weight=…)
- removed:
function kernighan_lin_bisection(G, partition=…, max_iter=…, weight=…, seed=…)
- added:
function fast_label_propagation_communities(G, *, weight=…, seed=…)
- added:
function leiden_communities(G, *, weight=…, resolution=…, max_level=…, seed=…, metric=…, theta=…) - added:
function leiden_partitions(G, *, weight=…, metric=…, resolution=…, seed=…, theta=…)
- added:
function greedy_source_expansion(G, *, source, cutoff=…, method=…)
- changed:
function louvain_communities(G, weight=…, resolution=…, threshold=…, seed=…) → function louvain_communities(G, weight=…, resolution=…, threshold=…, max_level=…, seed=…)
- removed:
variable _naive_greedy_modularity_communities - changed:
function greedy_modularity_communities(G, weight=…, resolution=…, cutoff=…, best_n=…, n_communities=…) → function greedy_modularity_communities(G, weight=…, resolution=…, cutoff=…, best_n=…)
- removed:
function coverage(G, partition) - removed:
function performance(G, partition) - added:
function constant_potts_model(G, communities, weight=…, node_weight=…, resolution=…) - added:
function overlapping_modularity(G, communities, *, weight=…, resolution=…)
- changed:
function is_semiconnected(G, topo_order=…) → function is_semiconnected(G)
- removed:
function strongly_connected_components_recursive(G)
- removed:
function find_cores(G)
- changed:
function simple_cycles(G) → function simple_cycles(G, length_bound=…) - added:
function chordless_cycles(G, length_bound=…) - added:
function girth(G)
- removed:
function d_separated(G, x, y, z) - added:
function find_minimal_d_separator(G, x, y, *, included=…, restricted=…) - added:
function is_d_separator(G, x, y, z) - added:
function is_minimal_d_separator(G, x, y, z, *, included=…, restricted=…)
- removed:
function barycenter(G, weight=…, attr=…, sp=…) - removed:
function extrema_bounding(G, compute=…) - changed:
function center(G, e=…, usebounds=…) → function center(G, e=…, usebounds=…, weight=…) - changed:
function diameter(G, e=…, usebounds=…) → function diameter(G, e=…, usebounds=…, weight=…) - changed:
function eccentricity(G, v=…, sp=…) → function eccentricity(G, v=…, sp=…, weight=…) - changed:
function periphery(G, e=…, usebounds=…) → function periphery(G, e=…, usebounds=…, weight=…) - changed:
function radius(G, e=…, usebounds=…) → function radius(G, e=…, usebounds=…, weight=…) - changed:
function resistance_distance(G, nodeA, nodeB, weight=…, invert_weight=…) → function resistance_distance(G, nodeA=…, nodeB=…, weight=…, invert_weight=…) - added:
function centroid(G, weight=…, attr=…, sp=…) - added:
function effective_graph_resistance(G, weight=…, invert_weight=…) - added:
function harmonic_diameter(G, sp=…, *, weight=…) - added:
function kemeny_constant(G, *, weight=…) - added:
variable barycenter
- added:
function connected_dominating_set(G) - added:
function is_connected_dominating_set(G, nbunch)
- changed:
function weisfeiler_lehman_subgraph_hashes(G, edge_attr=…, node_attr=…, iterations=…, digest_size=…) → function weisfeiler_lehman_subgraph_hashes(G, edge_attr=…, node_attr=…, iterations=…, digest_size=…, include_initial_labels=…)
- removed:
method ISMAGS.analyze_symmetry(graph, node_partitions, edge_colors) - added:
method ISMAGS.analyze_subgraph_symmetry() - added:
method ISMAGS.create_aligned_partitions(thing_matcher, sg_things, g_things) - added:
method ISMAGS.is_monomorphic(symmetry=…) - added:
method ISMAGS.monomorphisms_iter(symmetry=…)
- changed:
function could_be_isomorphic(G1, G2) → function could_be_isomorphic(G1, G2, *, properties=…)
- added:
method DiGraphMatcher.subgraph_is_isomorphic() - added:
method DiGraphMatcher.subgraph_is_monomorphic() - added:
method DiGraphMatcher.subgraph_isomorphisms_iter() - added:
method DiGraphMatcher.subgraph_monomorphisms_iter()
- added:
function vf2pp_all_isomorphisms(FG, SG, node_label=…, default_label=…) - added:
function vf2pp_all_monomorphisms(FG, SG, node_label=…, default_label=…) - added:
function vf2pp_all_subgraph_isomorphisms(FG, SG, node_label=…, default_label=…) - added:
function vf2pp_is_isomorphic(FG, SG, node_label=…, default_label=…) - added:
function vf2pp_is_monomorphic(FG, SG, node_label=…, default_label=…) - added:
function vf2pp_isomorphism(FG, SG, node_label=…, default_label=…) - added:
function vf2pp_monomorphism(FG, SG, node_label=…, default_label=…) - added:
function vf2pp_subgraph_is_isomorphic(FG, SG, node_label=…, default_label=…) - added:
function vf2pp_subgraph_isomorphism(FG, SG, node_label=…, default_label=…)
- removed:
function authority_matrix(G, nodelist=…) - removed:
function hits_numpy(G, normalized=…) - removed:
function hits_scipy(G, max_iter=…, tol=…, nstart=…, normalized=…) - removed:
function hub_matrix(G, nodelist=…) - changed:
function hits(G, max_iter=…, tol=…, nstart=…, normalized=…) → function hits(G, max_iter=…, tol=…, nstart=…, normalized=…, *, method=…)
- removed:
function pagerank_numpy(G, alpha=…, personalization=…, weight=…, dangling=…) - removed:
function pagerank_scipy(G, alpha=…, personalization=…, max_iter=…, tol=…, nstart=…, weight=…, dangling=…)
- changed:
function min_weight_matching(G, maxcardinality=…, weight=…) → function min_weight_matching(G, weight=…)
- changed:
function contracted_edge(G, edge, self_loops=…, copy=…) → function contracted_edge(G, edge, self_loops=…, copy=…, *, store_contraction_as=…) - changed:
function contracted_nodes(G, u, v, self_loops=…, copy=…) → function contracted_nodes(G, u, v, self_loops=…, copy=…, *, store_contraction_as=…) - changed:
function quotient_graph(G, partition, edge_relation=…, node_data=…, edge_data=…, relabel=…, create_using=…) → function quotient_graph(G, partition, edge_relation=…, node_data=…, edge_data=…, weight=…, relabel=…, create_using=…)
- added:
function harmonic_function(G, max_iter=…, label_name=…) - added:
function local_and_global_consistency(G, alpha=…, max_iter=…, label_name=…)
- removed:
function harmonic_function(G, max_iter=…, label_name=…)
- removed:
function local_and_global_consistency(G, alpha=…, max_iter=…, label_name=…)
- changed:
function union(G, H, rename=…, name=…) → function union(G, H, rename=…)
- added:
function corona_product(G, H) - added:
function modular_product(G, H)
- added:
function is_perfect_graph(G)
- added:
constructor PlanarEmbedding(incoming_graph_data=…, **attr) - added:
method PlanarEmbedding.add_half_edge(start_node, end_node, *, cw=…, ccw=…) - added:
method PlanarEmbedding.copy(as_view=…) - added:
method PlanarEmbedding.faces() - added:
method PlanarEmbedding.remove_edge(u, v) - added:
method PlanarEmbedding.remove_edges_from(ebunch) - added:
method PlanarEmbedding.remove_node(n) - added:
method PlanarEmbedding.remove_nodes_from(nodes) - added:
method PlanarEmbedding.to_undirected(reciprocal=…, as_view=…)
- changed:
function rich_club_coefficient(G, normalized=…, Q=…, seed=…) → function rich_club_coefficient(G, normalized=…, Q=…, seed=…, *, n_samples=…)
- changed:
function astar_path(G, source, target, heuristic=…, weight=…) → function astar_path(G, source, target, heuristic=…, weight=…, *, cutoff=…) - changed:
function astar_path_length(G, source, target, heuristic=…, weight=…) → function astar_path_length(G, source, target, heuristic=…, weight=…, *, cutoff=…)
- added:
function floyd_warshall_tree(G, weight=…)
- added:
function all_pairs_all_shortest_paths(G, weight=…, method=…) - added:
function single_source_all_shortest_paths(G, source, weight=…, method=…)
- removed:
function simrank_similarity_numpy(G, source=…, target=…, importance_factor=…, max_iterations=…, tolerance=…) - changed:
function generate_random_paths(G, sample_size, path_length=…, index_map=…) → function generate_random_paths(G, sample_size, path_length=…, index_map=…, weight=…, seed=…, *, source=…) - changed:
function panther_similarity(G, source, k=…, path_length=…, c=…, delta=…, eps=…) → function panther_similarity(G, source, k=…, path_length=…, c=…, delta=…, eps=…, weight=…, seed=…) - added:
function panther_vector_similarity(G, source, *, D=…, k=…, path_length=…, c=…, delta=…, eps=…, weight=…, seed=…)
- changed:
function s_metric(G, normalized=…) → function s_metric(G)
- added:
function directed_edge_swap(G, *, nswap=…, max_tries=…, seed=…)
- added:
function cd_index(G, node, time_delta, *, time=…, weight=…)
- added:
function tournament_matrix(G)
- added:
function bfs_labeled_edges(G, sources) - added:
function generic_bfs_edges(G, source, neighbors=…, depth_limit=…)
- changed:
function dfs_edges(G, source=…, depth_limit=…) → function dfs_edges(G, source=…, depth_limit=…, *, sort_neighbors=…) - changed:
function dfs_labeled_edges(G, source=…, depth_limit=…) → function dfs_labeled_edges(G, source=…, depth_limit=…, *, sort_neighbors=…) - changed:
function dfs_postorder_nodes(G, source=…, depth_limit=…) → function dfs_postorder_nodes(G, source=…, depth_limit=…, *, sort_neighbors=…) - changed:
function dfs_predecessors(G, source=…, depth_limit=…) → function dfs_predecessors(G, source=…, depth_limit=…, *, sort_neighbors=…) - changed:
function dfs_preorder_nodes(G, source=…, depth_limit=…) → function dfs_preorder_nodes(G, source=…, depth_limit=…, *, sort_neighbors=…) - changed:
function dfs_successors(G, source=…, depth_limit=…) → function dfs_successors(G, source=…, depth_limit=…, *, sort_neighbors=…) - changed:
function dfs_tree(G, source=…, depth_limit=…) → function dfs_tree(G, source=…, depth_limit=…, *, sort_neighbors=…)
- removed:
class Edmonds - removed:
constructor Edmonds(G, seed=…) - removed:
method Edmonds.find_optimum(attr=…, default=…, kind=…, style=…, preserve_attrs=…, partition=…, seed=…) - added:
function minimal_branching(G, /, *, attr=…, default=…, preserve_attrs=…, partition=…)
- added:
function center(G) - added:
function centroid(G)
- added:
function number_of_spanning_trees(G, *, root=…, weight=…)
- removed:
function join(rooted_trees, label_attribute=…) - added:
function join_trees(rooted_trees, *, label_attribute=…, first_label=…)
- removed:
function all_triplets(G) - removed:
function random_triad(G)
- added:
function number_of_walks(G, walk_length) - added:
function random_walk(G, *, start, weight=…, seed=…)
- added:
function gutman_index(G, weight=…) - added:
function hyper_wiener_index(G, weight=…) - added:
function schultz_index(G, weight=…)
- added:
export reverse_view - added:
export subgraph_view
- removed:
method FilterAdjacency.copy() - removed:
method FilterAtlas.copy() - removed:
method FilterMultiAdjacency.copy() - removed:
method FilterMultiInner.copy()
- removed:
export reverse_view - removed:
export subgraph_view - removed:
function info(G, n=…) - changed:
function get_edge_attributes(G, name) → function get_edge_attributes(G, name, default=…) - changed:
function get_node_attributes(G, name) → function get_node_attributes(G, name, default=…) - added:
function describe(G, describe_hook=…) - added:
function remove_edge_attributes(G, *attr_names, ebunch=…) - added:
function remove_node_attributes(G, *attr_names, nbunch=…)
- changed:
function subgraph_view(G, filter_node=…, filter_edge=…) → function subgraph_view(G, *, filter_node=…, filter_edge=…)
- removed:
class OrderedDiGraph(DiGraph) - removed:
class OrderedGraph(Graph) - removed:
class OrderedMultiDiGraph(MultiDiGraph) - removed:
class OrderedMultiGraph(MultiGraph) - removed:
constructor OrderedDiGraph(incoming_graph_data=…, **attr) - removed:
constructor OrderedGraph(incoming_graph_data=…, **attr) - removed:
constructor OrderedMultiDiGraph(incoming_graph_data=…, **attr) - removed:
constructor OrderedMultiGraph(incoming_graph_data=…, **attr) - removed:
field OrderedDiGraph.adjlist_inner_dict_factory - removed:
field OrderedDiGraph.adjlist_outer_dict_factory - removed:
field OrderedDiGraph.edge_attr_dict_factory - removed:
field OrderedDiGraph.node_dict_factory - removed:
field OrderedGraph.adjlist_inner_dict_factory - removed:
field OrderedGraph.adjlist_outer_dict_factory - removed:
field OrderedGraph.edge_attr_dict_factory - removed:
field OrderedGraph.node_dict_factory - removed:
field OrderedMultiDiGraph.adjlist_inner_dict_factory - removed:
field OrderedMultiDiGraph.adjlist_outer_dict_factory - removed:
field OrderedMultiDiGraph.edge_attr_dict_factory - removed:
field OrderedMultiDiGraph.edge_key_dict_factory - removed:
field OrderedMultiDiGraph.node_dict_factory - removed:
field OrderedMultiGraph.adjlist_inner_dict_factory - removed:
field OrderedMultiGraph.adjlist_outer_dict_factory - removed:
field OrderedMultiGraph.edge_attr_dict_factory - removed:
field OrderedMultiGraph.edge_key_dict_factory - removed:
field OrderedMultiGraph.node_dict_factory
- changed:
class OutEdgeDataView → class OutEdgeDataView(EdgeViewABC) - changed:
class OutEdgeView(Set, Mapping) → class OutEdgeView(Set, Mapping, EdgeViewABC) - changed:
constructor OutEdgeDataView(viewer, nbunch=…, data=…, default=…) → constructor OutEdgeDataView(viewer, nbunch=…, data=…, *, default=…) - changed:
constructor OutMultiEdgeDataView(viewer, nbunch=…, data=…, keys=…, default=…) → constructor OutMultiEdgeDataView(viewer, nbunch=…, data=…, *, default=…, keys=…) - changed:
method OutMultiEdgeView.data(data=…, keys=…, default=…, nbunch=…) → method OutMultiEdgeView.data(data=…, default=…, nbunch=…, keys=…)
- removed:
variable has_ogr - removed:
variable has_yaml - removed:
variable needs_ogr - removed:
variable needs_yaml - added:
variable has_lxml - added:
variable needs_lxml
- removed:
function from_numpy_matrix(A, parallel_edges=…, create_using=…) - removed:
function from_scipy_sparse_matrix(A, parallel_edges=…, create_using=…, edge_attribute=…) - removed:
function to_numpy_matrix(G, nodelist=…, dtype=…, order=…, multigraph_weight=…, weight=…, nonedge=…) - removed:
function to_numpy_recarray(G, nodelist=…, dtype=…, order=…) - removed:
function to_scipy_sparse_matrix(G, nodelist=…, dtype=…, weight=…, format=…) - changed:
function from_numpy_array(A, parallel_edges=…, create_using=…) → function from_numpy_array(A, parallel_edges=…, create_using=…, edge_attr=…, *, nodelist=…, nonedge=…) - changed:
function from_pandas_adjacency(df, create_using=…) → function from_pandas_adjacency(df, create_using=…, *, nonedge=…) - changed:
function to_pandas_edgelist(G, source=…, target=…, nodelist=…, dtype=…, order=…, edge_key=…) → function to_pandas_edgelist(G, source=…, target=…, nodelist=…, dtype=…, edge_key=…)
- changed:
function bipartite_layout(G, nodes, align=…, scale=…, center=…, aspect_ratio=…) → function bipartite_layout(G, nodes=…, align=…, scale=…, center=…, aspect_ratio=…, store_pos_as=…) - changed:
function circular_layout(G, scale=…, center=…, dim=…) → function circular_layout(G, scale=…, center=…, dim=…, store_pos_as=…) - changed:
function kamada_kawai_layout(G, dist=…, pos=…, weight=…, scale=…, center=…, dim=…) → function kamada_kawai_layout(G, dist=…, pos=…, weight=…, scale=…, center=…, dim=…, store_pos_as=…) - changed:
function multipartite_layout(G, subset_key=…, align=…, scale=…, center=…) → function multipartite_layout(G, subset_key=…, align=…, scale=…, center=…, store_pos_as=…) - changed:
function planar_layout(G, scale=…, center=…, dim=…) → function planar_layout(G, scale=…, center=…, dim=…, store_pos_as=…) - changed:
function random_layout(G, center=…, dim=…, seed=…) → function random_layout(G, center=…, dim=…, seed=…, store_pos_as=…) - changed:
function shell_layout(G, nlist=…, rotate=…, scale=…, center=…, dim=…) → function shell_layout(G, nlist=…, rotate=…, scale=…, center=…, dim=…, store_pos_as=…) - changed:
function spectral_layout(G, weight=…, scale=…, center=…, dim=…) → function spectral_layout(G, weight=…, scale=…, center=…, dim=…, store_pos_as=…) - changed:
function spiral_layout(G, scale=…, center=…, dim=…, resolution=…, equidistant=…) → function spiral_layout(G, scale=…, center=…, dim=…, resolution=…, equidistant=…, store_pos_as=…) - changed:
function spring_layout(G, k=…, pos=…, fixed=…, iterations=…, threshold=…, weight=…, scale=…, center=…, dim=…, seed=…) → function spring_layout(G, k=…, pos=…, fixed=…, iterations=…, threshold=…, weight=…, scale=…, center=…, dim=…, seed=…, store_pos_as=…, *, method=…, gravity=…) - added:
function arf_layout(G, pos=…, scaling=…, a=…, etol=…, dt=…, max_iter=…, *, seed=…, store_pos_as=…) - added:
function bfs_layout(G, start, *, align=…, scale=…, center=…, store_pos_as=…) - added:
function forceatlas2_layout(G, pos=…, *, max_iter=…, jitter_tolerance=…, scaling_ratio=…, gravity=…, distributed_action=…, strong_gravity=…, node_mass=…, node_size=…, weight=…, linlog=…, seed=…, dim=…, store_pos_as=…)
- added:
function to_latex(Gbunch, pos=…, tikz_options=…, default_node_options=…, node_options=…, node_label=…, default_edge_options=…, edge_options=…, edge_label=…, edge_label_options=…, caption=…, latex_label=…, sub_captions=…, sub_labels=…, n_rows=…, as_document=…, document_wrapper=…, figure_wrapper=…, subfigure_wrapper=…) - added:
function to_latex_raw(G, pos=…, tikz_options=…, default_node_options=…, node_options=…, node_label=…, default_edge_options=…, edge_options=…, edge_label=…, edge_label_options=…) - added:
function write_latex(Gbunch, path, **options)
- changed:
function draw_networkx_edge_labels(G, pos, edge_labels=…, label_pos=…, font_size=…, font_color=…, font_family=…, font_weight=…, alpha=…, bbox=…, horizontalalignment=…, verticalalignment=…, ax=…, rotate=…, clip_on=…) → function draw_networkx_edge_labels(G, pos, edge_labels=…, label_pos=…, font_size=…, font_color=…, font_family=…, font_weight=…, alpha=…, bbox=…, horizontalalignment=…, verticalalignment=…, ax=…, rotate=…, clip_on=…, node_size=…, nodelist=…, connectionstyle=…, hide_ticks=…) - changed:
function draw_networkx_edges(G, pos, edgelist=…, width=…, edge_color=…, style=…, alpha=…, arrowstyle=…, arrowsize=…, edge_cmap=…, edge_vmin=…, edge_vmax=…, ax=…, arrows=…, label=…, node_size=…, nodelist=…, node_shape=…, connectionstyle=…, min_source_margin=…, min_target_margin=…) → function draw_networkx_edges(G, pos, edgelist=…, width=…, edge_color=…, style=…, alpha=…, arrowstyle=…, arrowsize=…, edge_cmap=…, edge_vmin=…, edge_vmax=…, ax=…, arrows=…, label=…, node_size=…, nodelist=…, node_shape=…, connectionstyle=…, min_source_margin=…, min_target_margin=…, hide_ticks=…) - changed:
function draw_networkx_labels(G, pos, labels=…, font_size=…, font_color=…, font_family=…, font_weight=…, alpha=…, bbox=…, horizontalalignment=…, verticalalignment=…, ax=…, clip_on=…) → function draw_networkx_labels(G, pos, labels=…, font_size=…, font_color=…, font_family=…, font_weight=…, alpha=…, bbox=…, horizontalalignment=…, verticalalignment=…, ax=…, clip_on=…, hide_ticks=…) - changed:
function draw_networkx_nodes(G, pos, nodelist=…, node_size=…, node_color=…, node_shape=…, alpha=…, cmap=…, vmin=…, vmax=…, ax=…, linewidths=…, edgecolors=…, label=…, margins=…) → function draw_networkx_nodes(G, pos, nodelist=…, node_size=…, node_color=…, node_shape=…, alpha=…, cmap=…, vmin=…, vmax=…, ax=…, linewidths=…, edgecolors=…, label=…, margins=…, hide_ticks=…) - added:
function apply_matplotlib_colors(G, src_attr, dest_attr, map, vmin=…, vmax=…, nodes=…) - added:
function display(G, canvas=…, **kwargs) - added:
function draw_bipartite(G, **kwargs) - added:
function draw_forceatlas2(G, **kwargs)
- added:
function kneser_graph(n, k) - added:
function tadpole_graph(m, n, create_using=…)
- changed:
function scale_free_graph(n, alpha=…, beta=…, gamma=…, delta_in=…, delta_out=…, create_using=…, seed=…, initial_graph=…) → function scale_free_graph(n, alpha=…, beta=…, gamma=…, delta_in=…, delta_out=…, seed=…, initial_graph=…)
- changed:
function duplication_divergence_graph(n, p, seed=…) → function duplication_divergence_graph(n, p, seed=…, *, create_using=…) - changed:
function partial_duplication_graph(N, n, p, q, seed=…) → function partial_duplication_graph(N, n, p, q, seed=…, *, create_using=…)
- added:
function is_regular_expander(G, *, epsilon=…) - added:
function maybe_regular_expander(n, d, *, create_using=…, max_tries=…, seed=…) - added:
function maybe_regular_expander_graph(n, d, *, create_using=…, max_tries=…, seed=…) - added:
function random_regular_expander_graph(n, d, *, epsilon=…, create_using=…, max_tries=…, seed=…)
- changed:
function geographical_threshold_graph(n, theta, dim=…, pos=…, weight=…, metric=…, p_dist=…, seed=…) → function geographical_threshold_graph(n, theta, dim=…, pos=…, weight=…, metric=…, p_dist=…, seed=…, *, pos_name=…, weight_name=…) - changed:
function geometric_edges(G, radius, p=…) → function geometric_edges(G, radius, p=…, *, pos_name=…) - changed:
function random_geometric_graph(n, radius, dim=…, pos=…, p=…, seed=…) → function random_geometric_graph(n, radius, dim=…, pos=…, p=…, seed=…, *, pos_name=…) - changed:
function soft_random_geometric_graph(n, radius, dim=…, pos=…, p=…, p_dist=…, seed=…) → function soft_random_geometric_graph(n, radius, dim=…, pos=…, p=…, p_dist=…, seed=…, *, pos_name=…) - changed:
function thresholded_random_geometric_graph(n, radius, theta, dim=…, pos=…, weight=…, p=…, seed=…) → function thresholded_random_geometric_graph(n, radius, theta, dim=…, pos=…, weight=…, p=…, seed=…, *, pos_name=…, weight_name=…) - changed:
function waxman_graph(n, beta=…, alpha=…, L=…, domain=…, metric=…, seed=…) → function waxman_graph(n, beta=…, alpha=…, L=…, domain=…, metric=…, seed=…, *, pos_name=…) - added:
function geometric_soft_configuration_graph(*, beta, n=…, gamma=…, mean_degree=…, kappas=…, seed=…)
- changed:
function nonisomorphic_trees(order, create=…) → function nonisomorphic_trees(order)
- removed:
function random_lobster(n, p1, p2, seed=…) - changed:
function barabasi_albert_graph(n, m, seed=…, initial_graph=…) → function barabasi_albert_graph(n, m, seed=…, initial_graph=…, *, create_using=…) - changed:
function connected_watts_strogatz_graph(n, k, p, tries=…, seed=…) → function connected_watts_strogatz_graph(n, k, p, tries=…, seed=…, *, create_using=…) - changed:
function dense_gnm_random_graph(n, m, seed=…) → function dense_gnm_random_graph(n, m, seed=…, *, create_using=…) - changed:
function dual_barabasi_albert_graph(n, m1, m2, p, seed=…, initial_graph=…) → function dual_barabasi_albert_graph(n, m1, m2, p, seed=…, initial_graph=…, *, create_using=…) - changed:
function extended_barabasi_albert_graph(n, m, p, q, seed=…) → function extended_barabasi_albert_graph(n, m, p, q, seed=…, *, create_using=…) - changed:
function fast_gnp_random_graph(n, p, seed=…, directed=…) → function fast_gnp_random_graph(n, p, seed=…, directed=…, *, create_using=…) - changed:
function gnm_random_graph(n, m, seed=…, directed=…) → function gnm_random_graph(n, m, seed=…, directed=…, *, create_using=…) - changed:
function gnp_random_graph(n, p, seed=…, directed=…) → function gnp_random_graph(n, p, seed=…, directed=…, *, create_using=…) - changed:
function newman_watts_strogatz_graph(n, k, p, seed=…) → function newman_watts_strogatz_graph(n, k, p, seed=…, *, create_using=…) - changed:
function powerlaw_cluster_graph(n, m, p, seed=…) → function powerlaw_cluster_graph(n, m, p, seed=…, *, create_using=…) - changed:
function random_kernel_graph(n, kernel_integral, kernel_root=…, seed=…) → function random_kernel_graph(n, kernel_integral, kernel_root=…, seed=…, *, create_using=…) - changed:
function random_powerlaw_tree(n, gamma=…, seed=…, tries=…) → function random_powerlaw_tree(n, gamma=…, seed=…, tries=…, *, create_using=…) - changed:
function random_regular_graph(d, n, seed=…) → function random_regular_graph(d, n, seed=…, *, create_using=…) - changed:
function random_shell_graph(constructor, seed=…) → function random_shell_graph(constructor, seed=…, *, create_using=…) - changed:
function watts_strogatz_graph(n, k, p, seed=…) → function watts_strogatz_graph(n, k, p, seed=…, *, create_using=…) - added:
function random_k_lift(G, k, seed=…) - added:
function random_lobster_graph(n, p1, p2, seed=…, *, create_using=…)
- removed:
function make_small_graph(graph_description, create_using=…) - added:
function generalized_petersen_graph(n, k, *, create_using=…) - added:
function shrikhande_graph(create_using=…)
- added:
function visibility_graph(series)
- removed:
function random_tree(n, seed=…, create_using=…) - added:
function random_labeled_rooted_forest(n, *, seed=…) - added:
function random_labeled_rooted_tree(n, *, seed=…) - added:
function random_labeled_tree(n, *, seed=…) - added:
function random_unlabeled_rooted_forest(n, *, q=…, number_of_forests=…, seed=…) - added:
function random_unlabeled_rooted_tree(n, *, number_of_trees=…, seed=…) - added:
function random_unlabeled_tree(n, *, number_of_trees=…, seed=…)
- added:
function spectral_bisection(G, weight=…, normalized=…, tol=…, method=…, seed=…)
- removed:
variable adj_matrix - changed:
function adjacency_matrix(G, nodelist=…, dtype=…, weight=…) → function adjacency_matrix(G, nodelist=…, dtype=…, weight=…, *, format=…) - changed:
function incidence_matrix(G, nodelist=…, edgelist=…, oriented=…, weight=…) → function incidence_matrix(G, nodelist=…, edgelist=…, oriented=…, weight=…, *, dtype=…)
- removed:
function total_spanning_tree_weight(G, weight=…) - added:
function magnetic_laplacian_matrix(G, *, nodelist=…, normalized=…, q=…, weight=…)
- added:
function magnetic_spectrum(G, *, q=…, weight=…, normalized=…)
- removed:
function read_gpickle(path) - removed:
function write_gpickle(G, path, protocol=…)
- changed:
function cytoscape_data(G, attrs=…, name=…, ident=…) → function cytoscape_data(G, name=…, ident=…) - changed:
function cytoscape_graph(data, attrs=…, name=…, ident=…) → function cytoscape_graph(data, name=…, ident=…)
- removed:
function jit_data(G, indent=…, default=…) - removed:
function jit_graph(data, create_using=…)
- changed:
function node_link_data(G, attrs=…, *, source=…, target=…, name=…, key=…, link=…) → function node_link_data(G, *, source=…, target=…, name=…, key=…, edges=…, nodes=…) - changed:
function node_link_graph(data, directed=…, multigraph=…, attrs=…, *, source=…, target=…, name=…, key=…, link=…) → function node_link_graph(data, directed=…, multigraph=…, *, source=…, target=…, name=…, key=…, edges=…, nodes=…)
- changed:
function tree_data(G, root, attrs=…, ident=…, children=…) → function tree_data(G, root, ident=…, children=…) - changed:
function tree_graph(data, attrs=…, ident=…, children=…) → function tree_graph(data, ident=…, children=…)
- removed:
function read_shp(path, simplify=…, geom_attrs=…, strict=…) - removed:
function write_shp(G, outdir)
- removed:
function forest_str(graph, with_labels=…, sources=…, write=…, ascii_only=…) - added:
function generate_network_text(graph, with_labels=…, sources=…, max_depth=…, ascii_only=…, vertical_chains=…) - added:
function write_network_text(graph, path=…, with_labels=…, sources=…, max_depth=…, ascii_only=…, end=…, vertical_chains=…)
- added:
class _dispatchable - added:
function _dispatchable(func=…, **kwargs)
- added:
class Config - added:
method Config.get(key, default=…) - added:
method Config.items() - added:
method Config.keys() - added:
method Config.values()
- removed:
function reversed(G)
- removed:
function preserve_random_state(func) - removed:
function random_state(random_state_argument)
- removed:
function consume(iterator) - removed:
function default_opener(filename) - removed:
function dict_to_numpy_array1(d, mapping=…) - removed:
function dict_to_numpy_array2(d, mapping=…) - removed:
function empty_generator() - removed:
function generate_unique_node() - removed:
function is_iterator(obj) - removed:
function is_list_of_ints(intlist) - removed:
function is_string_like(obj) - removed:
function iterable(obj) - removed:
function make_str(x) - removed:
function to_tuple(x) - changed:
function edges_equal(edges1, edges2) → function edges_equal(edges1, edges2, *, directed=…) - added:
class PythonRandomViaNumpyBits(random.Random) - added:
constructor PythonRandomViaNumpyBits(rng=…) - added:
function _clear_cache(G) - added:
method PythonRandomViaNumpyBits.getrandbits(k) - added:
method PythonRandomViaNumpyBits.getstate() - added:
method PythonRandomViaNumpyBits.random() - added:
method PythonRandomViaNumpyBits.seed(*args, **kwds) - added:
method PythonRandomViaNumpyBits.setstate(state)
- added:
function is_valid_tree_degree_sequence(degree_sequence)