diff --git a/docs/source/api/algorithm_functions/connectivity_and_cycles.rst b/docs/source/api/algorithm_functions/connectivity_and_cycles.rst index 9743dc2c2..ad8a12d64 100644 --- a/docs/source/api/algorithm_functions/connectivity_and_cycles.rst +++ b/docs/source/api/algorithm_functions/connectivity_and_cycles.rst @@ -28,3 +28,4 @@ Connectivity and Cycles rustworkx.is_bipartite rustworkx.isolates rustworkx.has_path + rustworkx.connected_subgraphs diff --git a/docs/source/api/algorithm_functions/other.rst b/docs/source/api/algorithm_functions/other.rst index 3a7af3bc6..91228a3b3 100644 --- a/docs/source/api/algorithm_functions/other.rst +++ b/docs/source/api/algorithm_functions/other.rst @@ -12,3 +12,4 @@ Other Algorithm Functions rustworkx.graph_line_graph rustworkx.metric_closure rustworkx.is_planar + rustworkx.digraph_maximum_bisimulation diff --git a/docs/source/api/custom_return_types.rst b/docs/source/api/custom_return_types.rst index 650342073..be219eb4b 100644 --- a/docs/source/api/custom_return_types.rst +++ b/docs/source/api/custom_return_types.rst @@ -22,3 +22,5 @@ Custom Return Types rustworkx.NodeMap rustworkx.ProductNodeMap rustworkx.BiconnectedComponents + rustworkx.RelationalCoarsestPartition + rustworkx.IndexPartitionBlock diff --git a/releasenotes/notes/add-has_node-method-9e6b91bf79e60f50.yaml b/releasenotes/notes/0.15/add-has_node-method-9e6b91bf79e60f50.yaml similarity index 100% rename from releasenotes/notes/add-has_node-method-9e6b91bf79e60f50.yaml rename to releasenotes/notes/0.15/add-has_node-method-9e6b91bf79e60f50.yaml diff --git a/releasenotes/notes/add-layers-rustworkx-core-1caaccb1ca292ca8.yaml b/releasenotes/notes/0.15/add-layers-rustworkx-core-1caaccb1ca292ca8.yaml similarity index 100% rename from releasenotes/notes/add-layers-rustworkx-core-1caaccb1ca292ca8.yaml rename to releasenotes/notes/0.15/add-layers-rustworkx-core-1caaccb1ca292ca8.yaml diff --git a/releasenotes/notes/0.15/add-node-link-json-parse-ef74e5b0d97c0941.yaml b/releasenotes/notes/0.15/add-node-link-json-parse-ef74e5b0d97c0941.yaml new file mode 100644 index 000000000..e0ce41488 --- /dev/null +++ b/releasenotes/notes/0.15/add-node-link-json-parse-ef74e5b0d97c0941.yaml @@ -0,0 +1,7 @@ +--- +features: + - | + Added two new functions, :func:`~rustworkx.from_node_link_json_file` and + :func:`~rustworkx.parse_node_link_json`, which are used to parse a node + link json object and generate a rustworkx :class:`.PyGraph` or + :class:`.PyDiGraph` object from it. diff --git a/releasenotes/notes/ancestors-descendants-rustworkx-core-8c4aac3364c155bf.yaml b/releasenotes/notes/0.15/ancestors-descendants-rustworkx-core-8c4aac3364c155bf.yaml similarity index 100% rename from releasenotes/notes/ancestors-descendants-rustworkx-core-8c4aac3364c155bf.yaml rename to releasenotes/notes/0.15/ancestors-descendants-rustworkx-core-8c4aac3364c155bf.yaml diff --git a/releasenotes/notes/arm64-macos-tier-1-6be760ee2ac3975d.yaml b/releasenotes/notes/0.15/arm64-macos-tier-1-6be760ee2ac3975d.yaml similarity index 100% rename from releasenotes/notes/arm64-macos-tier-1-6be760ee2ac3975d.yaml rename to releasenotes/notes/0.15/arm64-macos-tier-1-6be760ee2ac3975d.yaml diff --git a/releasenotes/notes/bfs-pred-succ-rustworkx-core-480d25a374294899.yaml b/releasenotes/notes/0.15/bfs-pred-succ-rustworkx-core-480d25a374294899.yaml similarity index 100% rename from releasenotes/notes/bfs-pred-succ-rustworkx-core-480d25a374294899.yaml rename to releasenotes/notes/0.15/bfs-pred-succ-rustworkx-core-480d25a374294899.yaml diff --git a/releasenotes/notes/bump-msrv-170-f1518d5adb41f7c3.yaml b/releasenotes/notes/0.15/bump-msrv-170-f1518d5adb41f7c3.yaml similarity index 100% rename from releasenotes/notes/bump-msrv-170-f1518d5adb41f7c3.yaml rename to releasenotes/notes/0.15/bump-msrv-170-f1518d5adb41f7c3.yaml diff --git a/releasenotes/notes/0.15/collect_runs_core-13073cc7041bc2f5.yaml b/releasenotes/notes/0.15/collect_runs_core-13073cc7041bc2f5.yaml new file mode 100644 index 000000000..9621363ff --- /dev/null +++ b/releasenotes/notes/0.15/collect_runs_core-13073cc7041bc2f5.yaml @@ -0,0 +1,7 @@ +--- +features: + - | + Added a new function ``collect_runs`` to rustworkx-core's ``dag_algo`` + module. Previously, the :func:`~.collect_runs` functionality for DAGs was + only exposed via the Python interface. Now Rust users can take advantage of + this functionality in ``rustworkx-core``. diff --git a/releasenotes/notes/connected-subgraphs-b6fd8d5e37276240.yaml b/releasenotes/notes/0.15/connected-subgraphs-b6fd8d5e37276240.yaml similarity index 56% rename from releasenotes/notes/connected-subgraphs-b6fd8d5e37276240.yaml rename to releasenotes/notes/0.15/connected-subgraphs-b6fd8d5e37276240.yaml index 7dac0973b..1dfffa0d0 100644 --- a/releasenotes/notes/connected-subgraphs-b6fd8d5e37276240.yaml +++ b/releasenotes/notes/0.15/connected-subgraphs-b6fd8d5e37276240.yaml @@ -1,10 +1,10 @@ --- features: - | - Added a function :func:`~rustworkx.connected_subgraphs` to determine all connected subgraphs of size `k` in - polynomial delay for undirected graphs. This improves upon the brute-force method by two orders of magnitude for - sparse graphs such as heavy-hex, enabling addressing larger graphs and for a larger `k`. The introduced method is - based on "Enumerating Connected Induced Subgraphs: Improved Delay and Experimental Comparison" by Christian - Komusiewicz and Frank Sommer. In particular, the procedure `Simple` is implemented. Possible runtime improvement can + Added a function :func:`~rustworkx.connected_subgraphs` to determine all connected subgraphs of size :math:`k` in + polynomial delay for undirected graphs. This improves upon the brute-force method by two orders of magnitude for + sparse graphs such as heavy-hex, enabling addressing larger graphs and for a larger :math:`k`. The introduced method is + based on "Enumerating Connected Induced Subgraphs: Improved Delay and Experimental Comparison" by Christian + Komusiewicz and Frank Sommer. In particular, the procedure ``Simple`` is implemented. Possible runtime improvement can be gained by parallelization over each recursion or by following the discussion in Lemma 4 of above work and thus - implementing intermediate sets `X` and `P` more efficiently. + implementing intermediate sets :math:`X` and :math:`P` more efficiently. diff --git a/releasenotes/notes/custom-iterators-dce8557a8f87e8c0.yaml b/releasenotes/notes/0.15/custom-iterators-dce8557a8f87e8c0.yaml similarity index 100% rename from releasenotes/notes/custom-iterators-dce8557a8f87e8c0.yaml rename to releasenotes/notes/0.15/custom-iterators-dce8557a8f87e8c0.yaml diff --git a/releasenotes/notes/0.15/dorogovtsev-goltsev-mendes-generator-d7fd575b693bd652.yaml b/releasenotes/notes/0.15/dorogovtsev-goltsev-mendes-generator-d7fd575b693bd652.yaml new file mode 100644 index 000000000..a9ff08410 --- /dev/null +++ b/releasenotes/notes/0.15/dorogovtsev-goltsev-mendes-generator-d7fd575b693bd652.yaml @@ -0,0 +1,18 @@ +--- +features: + - | + Added :func:`rustworkx.generators.dorogovtsev_goltsev_mendes_graph` that generates + deterministic scale-free graphs using the Dorogovtsev-Goltsev-Mendes iterative procedure. + + .. jupyter-execute:: + + import rustworkx as rx + from rustworkx.visualization import mpl_draw + + graph = rx.generators.dorogovtsev_goltsev_mendes_graph(2) + mpl_draw(graph) + + - | + Added a new function, ``rustworkx_core::generators::dorogovtsev_goltsev_mendes_graph``, to + rustworkx-core that is used to generate deterministic scale-free graphs using the + Dorogovtsev-Goltsev-Mendes iterative procedure. diff --git a/releasenotes/notes/fix-digraph-find-cycle-141e302ff4a8fcd4.yaml b/releasenotes/notes/0.15/fix-digraph-find-cycle-141e302ff4a8fcd4.yaml similarity index 55% rename from releasenotes/notes/fix-digraph-find-cycle-141e302ff4a8fcd4.yaml rename to releasenotes/notes/0.15/fix-digraph-find-cycle-141e302ff4a8fcd4.yaml index 578459129..423213678 100644 --- a/releasenotes/notes/fix-digraph-find-cycle-141e302ff4a8fcd4.yaml +++ b/releasenotes/notes/0.15/fix-digraph-find-cycle-141e302ff4a8fcd4.yaml @@ -6,7 +6,9 @@ fixes: for a cycle at an arbitrary node which was not guaranteed to return a cycle. Now, the function will smartly choose a source node to start the search from such that if a cycle exists, it will be found. -other: +upgrade: - | - The `rustworkx-core` function `rustworkx_core::connectivity::find_cycle` now - requires the `petgraph::visit::Visitable` trait. + The ``rustworkx-core`` function ``rustworkx_core::connectivity::find_cycle`` + now requires the ``petgraph::visit::Visitable`` trait for its input + argument ``graph``. This was required to fix the behavior when ``source`` + is ``None`` to ensure we always find a cycle if one exists. diff --git a/releasenotes/notes/0.15/fix-graphviz-draw-tooltip-3f697d71c4b79e60.yaml b/releasenotes/notes/0.15/fix-graphviz-draw-tooltip-3f697d71c4b79e60.yaml new file mode 100644 index 000000000..5c4c735b5 --- /dev/null +++ b/releasenotes/notes/0.15/fix-graphviz-draw-tooltip-3f697d71c4b79e60.yaml @@ -0,0 +1,18 @@ +--- +fixes: + - | + Fixed an issue with the :func:`.graphviz_draw` where it would not correctly + escape special characters in all scenarios. This has been corrected so + you can now use special characters with the function, for example: + + .. jupyter-execute:: + + import rustworkx as rx + from rustworkx.visualization import graphviz_draw + + graphviz_draw( + rx.generators.path_graph(2), + node_attr_fn=lambda x: {"label": "the\nlabel", "tooltip": "the\ntooltip"}, + ) + + Fixed: `#750 `__ diff --git a/releasenotes/notes/fix-mpl-draw-digraph-plots-aecf86738ab9b0db.yaml b/releasenotes/notes/0.15/fix-mpl-draw-digraph-plots-aecf86738ab9b0db.yaml similarity index 90% rename from releasenotes/notes/fix-mpl-draw-digraph-plots-aecf86738ab9b0db.yaml rename to releasenotes/notes/0.15/fix-mpl-draw-digraph-plots-aecf86738ab9b0db.yaml index 926e36044..377d74e67 100644 --- a/releasenotes/notes/fix-mpl-draw-digraph-plots-aecf86738ab9b0db.yaml +++ b/releasenotes/notes/0.15/fix-mpl-draw-digraph-plots-aecf86738ab9b0db.yaml @@ -24,6 +24,4 @@ fixes: mpl_draw(graph, with_labels=True, labels=str, edge_labels=str, alpha=0.5) - - | - Refer to `#774 ` for more - details. + Fixed `#774 `__ diff --git a/releasenotes/notes/0.15/fix-mpl-draw-kargs-typing-6cf7cfde0db072d5.yaml b/releasenotes/notes/0.15/fix-mpl-draw-kargs-typing-6cf7cfde0db072d5.yaml new file mode 100644 index 000000000..778d48e1c --- /dev/null +++ b/releasenotes/notes/0.15/fix-mpl-draw-kargs-typing-6cf7cfde0db072d5.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Fixed a bug in the type hint for the :func:`~rustworkx.visualization.mpl_draw`. + Previously, the type hint indicated that all ``kwargs`` were required when calling the method. The type annotation has been updated to indicate that + ``kwargs`` with partial arguments is allowed. diff --git a/releasenotes/notes/fix-panic-3962ad36788cab00.yaml b/releasenotes/notes/0.15/fix-panic-3962ad36788cab00.yaml similarity index 66% rename from releasenotes/notes/fix-panic-3962ad36788cab00.yaml rename to releasenotes/notes/0.15/fix-panic-3962ad36788cab00.yaml index 74156a42a..45e749e4a 100644 --- a/releasenotes/notes/fix-panic-3962ad36788cab00.yaml +++ b/releasenotes/notes/0.15/fix-panic-3962ad36788cab00.yaml @@ -9,6 +9,7 @@ fixes: * :func:`rustworkx.bellman_ford_shortest_paths` * :func:`rustworkx.astar_shortest_path` - where a `Pyo3.PanicException`were raise with no much detail at the moment - of pass in the `source` argument the index of an out of bound node. + where a ``PanicException`` was raised without much detail when an + invalid node index was passed in to the ``source`` argument. This has been + corrected so an ``IndexError`` is raised instead. Fixed `#1117 `__ diff --git a/releasenotes/notes/fix-type-search-6abecbc064e1dbf0.yaml b/releasenotes/notes/0.15/fix-type-search-6abecbc064e1dbf0.yaml similarity index 100% rename from releasenotes/notes/fix-type-search-6abecbc064e1dbf0.yaml rename to releasenotes/notes/0.15/fix-type-search-6abecbc064e1dbf0.yaml diff --git a/releasenotes/notes/graph-ext-3f008015c31c592e.yaml b/releasenotes/notes/0.15/graph-ext-3f008015c31c592e.yaml similarity index 100% rename from releasenotes/notes/graph-ext-3f008015c31c592e.yaml rename to releasenotes/notes/0.15/graph-ext-3f008015c31c592e.yaml diff --git a/releasenotes/notes/0.15/graphml-long-type-support-05e66d139e685dfe.yaml b/releasenotes/notes/0.15/graphml-long-type-support-05e66d139e685dfe.yaml new file mode 100644 index 000000000..d61941231 --- /dev/null +++ b/releasenotes/notes/0.15/graphml-long-type-support-05e66d139e685dfe.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Fixed support for handling ``Long`` type attributes from input GraphML + in the :func:`~rustworkx.read_graphml` function. + Fixed `#1140 `__. diff --git a/releasenotes/notes/0.15/hyperbolic-random-graph-d85c115930d8ac08.yaml b/releasenotes/notes/0.15/hyperbolic-random-graph-d85c115930d8ac08.yaml new file mode 100644 index 000000000..d092f8fb3 --- /dev/null +++ b/releasenotes/notes/0.15/hyperbolic-random-graph-d85c115930d8ac08.yaml @@ -0,0 +1,21 @@ +features: + - | + Adds new random graph generator function, :func:`.hyperbolic_random_graph` + to sample the hyperbolic random graph model. For example: + + .. jupyter-execute:: + + import math + + import rustworkx as rx + from rustworkx.visualization import mpl_draw + + graph = rx.hyperbolic_random_graph( + [[math.sinh(0.5), 0, 3.14159], [-math.sinh(1), 0, -3.14159]], + 2.55, + None, + ) + mpl_draw(graph) + - | + Adds new function to the rustworkx-core module ``rustworkx_core::generators`` + ``hyperbolic_random_graph()`` that samples the hyperbolic random graph model. diff --git a/releasenotes/notes/initial-topo-cd502f3140500f93.yaml b/releasenotes/notes/0.15/initial-topo-cd502f3140500f93.yaml similarity index 100% rename from releasenotes/notes/initial-topo-cd502f3140500f93.yaml rename to releasenotes/notes/0.15/initial-topo-cd502f3140500f93.yaml diff --git a/releasenotes/notes/0.15/is-semi-connected-d4176b228aa62baf.yaml b/releasenotes/notes/0.15/is-semi-connected-d4176b228aa62baf.yaml new file mode 100644 index 000000000..4c43e3ac2 --- /dev/null +++ b/releasenotes/notes/0.15/is-semi-connected-d4176b228aa62baf.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + Added a new function, :func:`~rustworkx.is_semi_connected` which will + check if a :class: `~rustworkx.PyDiGraph` object is semi-connected. diff --git a/releasenotes/notes/lexicographical-topo-sort-core-e85fba409d612600.yaml b/releasenotes/notes/0.15/lexicographical-topo-sort-core-e85fba409d612600.yaml similarity index 100% rename from releasenotes/notes/lexicographical-topo-sort-core-e85fba409d612600.yaml rename to releasenotes/notes/0.15/lexicographical-topo-sort-core-e85fba409d612600.yaml diff --git a/releasenotes/notes/maximum-bisimulation-942a9d0dc9b46ee4.yaml b/releasenotes/notes/0.15/maximum-bisimulation-942a9d0dc9b46ee4.yaml similarity index 83% rename from releasenotes/notes/maximum-bisimulation-942a9d0dc9b46ee4.yaml rename to releasenotes/notes/0.15/maximum-bisimulation-942a9d0dc9b46ee4.yaml index b08eeca9c..bcb9e2049 100644 --- a/releasenotes/notes/maximum-bisimulation-942a9d0dc9b46ee4.yaml +++ b/releasenotes/notes/0.15/maximum-bisimulation-942a9d0dc9b46ee4.yaml @@ -5,8 +5,7 @@ features: graph. This function is based on the algorithm described in the publication "Three partition refinement algorithms" by Paige and Tarjan. This function recieves a graph and returns a - :class:`~rustworkx.RelationalCoarsestPartition`. This function is in regards - to issue `#1075 `__. + :class:`~rustworkx.RelationalCoarsestPartition`. - | Added a new class :class:`~rustworkx.RelationalCoarsestPartition` to output the maximum bisimulation or relational coarsest partition of a graph. This diff --git a/releasenotes/notes/migrate-collect-bicolor-runs-ff95d7fdbc546e2e.yaml b/releasenotes/notes/0.15/migrate-collect-bicolor-runs-ff95d7fdbc546e2e.yaml similarity index 70% rename from releasenotes/notes/migrate-collect-bicolor-runs-ff95d7fdbc546e2e.yaml rename to releasenotes/notes/0.15/migrate-collect-bicolor-runs-ff95d7fdbc546e2e.yaml index 51705416b..89c7bc568 100644 --- a/releasenotes/notes/migrate-collect-bicolor-runs-ff95d7fdbc546e2e.yaml +++ b/releasenotes/notes/0.15/migrate-collect-bicolor-runs-ff95d7fdbc546e2e.yaml @@ -2,5 +2,5 @@ features: - | Added a new function ``collect_bicolor_runs`` to rustworkx-core's ``dag_algo`` module. - Previously, the ``collect_bicolor_runs`` functionality for DAGs was only exposed + Previously, the :func:`~.collect_bicolor_runs` functionality for DAGs was only exposed via the Python interface. Now Rust users can take advantage of this functionality in ``rustworkx-core``. diff --git a/releasenotes/notes/migrate-longest_path-7c11cf2c8ac9781f.yaml b/releasenotes/notes/0.15/migrate-longest_path-7c11cf2c8ac9781f.yaml similarity index 55% rename from releasenotes/notes/migrate-longest_path-7c11cf2c8ac9781f.yaml rename to releasenotes/notes/0.15/migrate-longest_path-7c11cf2c8ac9781f.yaml index 85cbca792..07b9f3991 100644 --- a/releasenotes/notes/migrate-longest_path-7c11cf2c8ac9781f.yaml +++ b/releasenotes/notes/0.15/migrate-longest_path-7c11cf2c8ac9781f.yaml @@ -2,6 +2,5 @@ features: - | Added a new module ``dag_algo`` to rustworkx-core which contains a new function ``longest_path`` - function to rustworkx-core. Previously the ``longest_path`` functionality for DAGs was only exposed - via the Python interface. Now Rust users can take advantage of this functionality in rustworkx-core. - \ No newline at end of file + function to rustworkx-core. Previously the :func:`~.longest_path` functionality for DAGs was only exposed + via the Python interface. Now Rust users can take advantage of this functionality in rustworkx-core. diff --git a/releasenotes/notes/0.15/prepare-0.15.0-771047bc5b71c569.yaml b/releasenotes/notes/0.15/prepare-0.15.0-771047bc5b71c569.yaml new file mode 100644 index 000000000..bb88e2410 --- /dev/null +++ b/releasenotes/notes/0.15/prepare-0.15.0-771047bc5b71c569.yaml @@ -0,0 +1,43 @@ +--- +prelude: > + This is a new feature release of Rustworkx that adds many new features to + the library. The highlights of this release are: + + * An expansion of functions in rustworkx-core that previously only existed + in the Python API. + * Expanded graph coloring algorithms + + This release moves to using the `Python Stable ABI `__, + while this release officially supports Python 3.8 through 3.12, the published + binaries should be compatible with future Python versions too. Although there + is no guarantee provided about future versions. Additionally, the minimum + supported Rust version for building rustworkx and more importantly + rustworkx-core is now 1.70.0. Additionally, in this release the macOS arm64 + platform has been promoted from :ref:`tier-4` to :ref:`tier-1`. +features: + - | + Added two new keyword arguments, ``periodic`` an ``with_positions``, to the generator functions + :func:`.hexagonal_lattice_graph` and :func:`.directed_hexagonal_lattice_graph`. If periodic is + set to ``True`` the boundaries of the lattice will be joined to form a periodic grid. If the + ``with_positions`` argument is set to ``True`` than the data payload of all the nodes will + be set to a tuple of the form ``(x, y)`` where x and y represent the node's position in the + lattice. For example: + + .. jupyter-execute:: + + import rustworkx as rx + from rustworkx.visualization import mpl_draw + + graph = rx.generators.hexagonal_lattice_graph(4, 4, periodic=True, with_positions=True) + mpl_draw(graph, with_labels=True, labels=str) + - | + Added a new rustworkx-core function ``rustworkx_core::generators::hexagonal_lattice_graph_weighted()`` + which is used to generate a hexagonal lattice graph where a callback is used to generate the node + weights for each node from a tuple of the form ``(usize, usize)``. +upgrade: + - | + The interface of the ``rustworkx_core::generators::hexagonal_lattice_graph()`` function has been + changed, there is a new required boolean argument ``periodic`` which is used to indicate whether + the output graph should join the bondaries of the lattice to form a periodic grid or not. This + argument didn't exist in prior releases of rustworkx-core and it will need to be added when + upgrading to this new release. diff --git a/releasenotes/notes/remode-node-by-key-9ec75b5cf589319e.yaml b/releasenotes/notes/0.15/remode-node-by-key-9ec75b5cf589319e.yaml similarity index 100% rename from releasenotes/notes/remode-node-by-key-9ec75b5cf589319e.yaml rename to releasenotes/notes/0.15/remode-node-by-key-9ec75b5cf589319e.yaml diff --git a/releasenotes/notes/saturation-greedy-color-109d40f189590d3a.yaml b/releasenotes/notes/0.15/saturation-greedy-color-109d40f189590d3a.yaml similarity index 100% rename from releasenotes/notes/saturation-greedy-color-109d40f189590d3a.yaml rename to releasenotes/notes/0.15/saturation-greedy-color-109d40f189590d3a.yaml diff --git a/releasenotes/notes/sbm-random-graph-bf7ccd8e938f4218.yaml b/releasenotes/notes/0.15/sbm-random-graph-bf7ccd8e938f4218.yaml similarity index 56% rename from releasenotes/notes/sbm-random-graph-bf7ccd8e938f4218.yaml rename to releasenotes/notes/0.15/sbm-random-graph-bf7ccd8e938f4218.yaml index 8ec9490a4..c6fc3d2dd 100644 --- a/releasenotes/notes/sbm-random-graph-bf7ccd8e938f4218.yaml +++ b/releasenotes/notes/0.15/sbm-random-graph-bf7ccd8e938f4218.yaml @@ -3,6 +3,21 @@ features: Adds new random graph generator in rustworkx for the stochastic block model. There is a generator for directed :func:`.directed_sbm_random_graph` and undirected graphs :func:`.undirected_sbm_random_graph`. + + .. jupyter-execute:: + + import numpy as np + + import rustworkx as rx + from rustworkx.visualization import mpl_draw + + graph = rx.undirected_sbm_random_graph( + [2, 1], + np.array([[1, 1], [1, 0]], dtype=float), + False, + ) + mpl_draw(graph) + - | Adds new function ``sbm_random_graph`` to the rustworkx-core module ``rustworkx_core::generators`` that samples a graph from the stochastic diff --git a/releasenotes/notes/stable-abi-python-4c883bc4edaf8354.yaml b/releasenotes/notes/0.15/stable-abi-python-4c883bc4edaf8354.yaml similarity index 100% rename from releasenotes/notes/stable-abi-python-4c883bc4edaf8354.yaml rename to releasenotes/notes/0.15/stable-abi-python-4c883bc4edaf8354.yaml diff --git a/releasenotes/notes/0.15/swap-nox-tox-dea2bb14c400641c.yaml b/releasenotes/notes/0.15/swap-nox-tox-dea2bb14c400641c.yaml new file mode 100644 index 000000000..fd94ad28d --- /dev/null +++ b/releasenotes/notes/0.15/swap-nox-tox-dea2bb14c400641c.yaml @@ -0,0 +1,7 @@ +--- +other: + - | + For developement of rustworkx the automated testing environment + tooling used has switched from Tox to instead + `Nox `__. This is has no impact for + end users and is only relevant if you contribute code to rustworkx. diff --git a/releasenotes/notes/toposort-check-args-1378bab51e4172a3.yaml b/releasenotes/notes/0.15/toposort-check-args-1378bab51e4172a3.yaml similarity index 100% rename from releasenotes/notes/toposort-check-args-1378bab51e4172a3.yaml rename to releasenotes/notes/0.15/toposort-check-args-1378bab51e4172a3.yaml diff --git a/releasenotes/notes/toposort-done-single-5d5db2c654e5b498.yaml b/releasenotes/notes/0.15/toposort-done-single-5d5db2c654e5b498.yaml similarity index 100% rename from releasenotes/notes/toposort-done-single-5d5db2c654e5b498.yaml rename to releasenotes/notes/0.15/toposort-done-single-5d5db2c654e5b498.yaml diff --git a/releasenotes/notes/toposort-reverse-a592fd52f26ca184.yaml b/releasenotes/notes/0.15/toposort-reverse-a592fd52f26ca184.yaml similarity index 100% rename from releasenotes/notes/toposort-reverse-a592fd52f26ca184.yaml rename to releasenotes/notes/0.15/toposort-reverse-a592fd52f26ca184.yaml diff --git a/releasenotes/notes/with-capacity-6f35d43e256e268e.yaml b/releasenotes/notes/0.15/with-capacity-6f35d43e256e268e.yaml similarity index 100% rename from releasenotes/notes/with-capacity-6f35d43e256e268e.yaml rename to releasenotes/notes/0.15/with-capacity-6f35d43e256e268e.yaml diff --git a/releasenotes/notes/add-node-link-json-parse-ef74e5b0d97c0941.yaml b/releasenotes/notes/add-node-link-json-parse-ef74e5b0d97c0941.yaml deleted file mode 100644 index 1a2bf7120..000000000 --- a/releasenotes/notes/add-node-link-json-parse-ef74e5b0d97c0941.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -features: - - | - Added two new functions, :func:`.parse_node_link_json_file` and - :func:`.parse_node_link_json_str`, which are used to parse a node link json - and generate a graph object from it. diff --git a/releasenotes/notes/collect_runs_core-13073cc7041bc2f5.yaml b/releasenotes/notes/collect_runs_core-13073cc7041bc2f5.yaml deleted file mode 100644 index fb045c774..000000000 --- a/releasenotes/notes/collect_runs_core-13073cc7041bc2f5.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -features: - - | - Added a new function ``collect_runs`` to rustworkx-core's ``dag_algo`` module. - Previously, the ``collect_runs`` functionality for DAGs was only exposed - via the Python interface. Now Rust users can take advantage of this functionality in ``rustworkx-core``. diff --git a/releasenotes/notes/dorogovtsev-goltsev-mendes-generator-d7fd575b693bd652.yaml b/releasenotes/notes/dorogovtsev-goltsev-mendes-generator-d7fd575b693bd652.yaml deleted file mode 100644 index a8b8846ea..000000000 --- a/releasenotes/notes/dorogovtsev-goltsev-mendes-generator-d7fd575b693bd652.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -features: - - | - Added :func:`rustworkx.generators.dorogovtsev_goltsev_mendes_graph` that generates - deterministic scale-free graphs using the Dorogovtsev-Goltsev-Mendes iterative procedure. - - | - Added to rustworkx-for ``generators::dorogovtsev_goltsev_mendes_graph`` function that generates, - deterministic scale-free graphs using the Dorogovtsev-Goltsev-Mendes iterative procedure. diff --git a/releasenotes/notes/fix-graphviz-draw-tooltip-3f697d71c4b79e60.yaml b/releasenotes/notes/fix-graphviz-draw-tooltip-3f697d71c4b79e60.yaml deleted file mode 100644 index 0d7b184c4..000000000 --- a/releasenotes/notes/fix-graphviz-draw-tooltip-3f697d71c4b79e60.yaml +++ /dev/null @@ -1,14 +0,0 @@ ---- -fixes: - - | - :func:`.graphviz_draw` can now handle special characters - - .. jupyter-execute:: - - import rustworkx as rx - from rustworkx.visualization import graphviz_draw - - graphviz_draw( - rx.generators.path_graph(2), - node_attr_fn=lambda x: {"label": "the\nlabel", "tooltip": "the\ntooltip"}, - ) diff --git a/releasenotes/notes/fix-mpl-draw-kargs-typing-6cf7cfde0db072d5.yaml b/releasenotes/notes/fix-mpl-draw-kargs-typing-6cf7cfde0db072d5.yaml deleted file mode 100644 index f483d5d37..000000000 --- a/releasenotes/notes/fix-mpl-draw-kargs-typing-6cf7cfde0db072d5.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - | - Fixed a bug in the type hint for the :func:`~rustworkx.visualization.mpl_draw`. - Previously, all `kwargs` were required when calling the method. The new annotation - accepts `kwargs` with partial arguments. \ No newline at end of file diff --git a/releasenotes/notes/graphml-long-type-support-05e66d139e685dfe.yaml b/releasenotes/notes/graphml-long-type-support-05e66d139e685dfe.yaml deleted file mode 100644 index a956b23cf..000000000 --- a/releasenotes/notes/graphml-long-type-support-05e66d139e685dfe.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -fixes: - - | - Adds missing support for the Long attribute type to GraphML diff --git a/releasenotes/notes/hyperbolic-random-graph-d85c115930d8ac08.yaml b/releasenotes/notes/hyperbolic-random-graph-d85c115930d8ac08.yaml deleted file mode 100644 index 6a59b5142..000000000 --- a/releasenotes/notes/hyperbolic-random-graph-d85c115930d8ac08.yaml +++ /dev/null @@ -1,7 +0,0 @@ -features: - - | - Adds new random graph generator function, :func:`.hyperbolic_random_graph` - to sample the hyperbolic random graph model. - - | - Adds new function to the rustworkx-core module ``rustworkx_core::generators`` - ``hyperbolic_random_graph()`` that samples the hyperbolic random graph model. diff --git a/releasenotes/notes/is-semi-connected-d4176b228aa62baf.yaml b/releasenotes/notes/is-semi-connected-d4176b228aa62baf.yaml deleted file mode 100644 index 81e4baea1..000000000 --- a/releasenotes/notes/is-semi-connected-d4176b228aa62baf.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -features: - - | - Added a new function, :func: `~rustworkx.is_semi_connected()` which will - check if a :class: `~rustworkx.PyDiGraph` object is semi connected \ No newline at end of file diff --git a/releasenotes/notes/swap-nox-tox-dea2bb14c400641c.yaml b/releasenotes/notes/swap-nox-tox-dea2bb14c400641c.yaml deleted file mode 100644 index 490e46fc8..000000000 --- a/releasenotes/notes/swap-nox-tox-dea2bb14c400641c.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -other: - - | - Switched automated testing environment from - Tox to `Nox `__. This - change should not impact the end-user \ No newline at end of file