From c4e841c28a7781f170906350f7299c8f4d0e385c Mon Sep 17 00:00:00 2001 From: Fabian Zills <46721498+PythonFZ@users.noreply.github.com> Date: Fri, 18 Oct 2024 15:30:04 +0200 Subject: [PATCH] support empty groups (#115) * support empty groups * bump version test * add url --- pyproject.toml | 5 ++++- tests/test_graph_group.py | 21 +++++++++++++++++++++ tests/test_znflow.py | 2 +- znflow/graph.py | 2 +- 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 6a8feb5..8f5549d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,11 +1,14 @@ [tool.poetry] name = "znflow" -version = "0.2.1" +version = "0.2.2" description = "A general purpose framework for building and running computational graphs." authors = ["zincwarecode "] license = "Apache-2.0" readme = "README.md" +[tool.poetry.urls] +repository = "https://github.com/zincware/znflow" + [tool.poetry.dependencies] python = ">=3.9,<4.0" networkx = "^3" diff --git a/tests/test_graph_group.py b/tests/test_graph_group.py index 7d285f0..4b37c58 100644 --- a/tests/test_graph_group.py +++ b/tests/test_graph_group.py @@ -276,3 +276,24 @@ def test_grp_nodes(): assert grp.nodes == [n1, n2] assert grp.uuids == [n1.uuid, n2.uuid] assert grp.names == ("grp1",) + + +def test_empty_grps(): + graph = znflow.DiGraph() + + with graph.group("grp1") as grp1: + pass + with graph.group("grp2") as grp2: + pass + + assert len(grp1) == 0 + assert len(grp2) == 0 + assert grp1.uuids == [] + assert grp2.uuids == [] + + assert grp1.names == ("grp1",) + assert grp2.names == ("grp2",) + + assert len(graph.groups) == 2 + assert grp1.names in graph.groups + assert grp2.names in graph.groups diff --git a/tests/test_znflow.py b/tests/test_znflow.py index 85dabc2..314bec9 100644 --- a/tests/test_znflow.py +++ b/tests/test_znflow.py @@ -5,4 +5,4 @@ def test_version(): """Test the version.""" - assert znflow.__version__ == "0.2.1" + assert znflow.__version__ == "0.2.2" diff --git a/znflow/graph.py b/znflow/graph.py index b4de400..ee155df 100644 --- a/znflow/graph.py +++ b/znflow/graph.py @@ -247,9 +247,9 @@ def group(self, *names: str) -> typing.Generator[Group, None, None]: group = self.groups.get(names, Group(names=names, uuids=[], graph=self)) def finalize_group(): + self.groups[group.names] = group for node_uuid in self.nodes: if node_uuid not in existing_nodes: - self.groups[group.names] = group group.uuids.append(node_uuid) try: