From 2dca4f92ebdfdbb8fd72a31d85fcfe011c371c89 Mon Sep 17 00:00:00 2001
From: Frederik Hennig <frederik.hennig@fau.de>
Date: Fri, 7 Feb 2025 17:13:49 +0100
Subject: [PATCH] remove superfluous interfaces; remove debug lines from
 coverage

---
 pyproject.toml                   |  2 ++
 src/pystencilssfg/ir/entities.py | 54 +-------------------------------
 src/pystencilssfg/ir/syntax.py   | 10 ------
 3 files changed, 3 insertions(+), 63 deletions(-)

diff --git a/pyproject.toml b/pyproject.toml
index 6ac0327..93987d5 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -59,6 +59,7 @@ parentdir_prefix = "pystencilssfg-"
 [tool.coverage.run]
 omit = [
     "setup.py",
+    "noxfile.py",
     "src/pystencilssfg/_version.py",
     "integration/*"
 ]
@@ -68,4 +69,5 @@ exclude_also = [
     "\\.\\.\\.\n",
     "if TYPE_CHECKING:",
     "@(abc\\.)?abstractmethod",
+    "assert False"
 ]
diff --git a/src/pystencilssfg/ir/entities.py b/src/pystencilssfg/ir/entities.py
index a855155..6e6597d 100644
--- a/src/pystencilssfg/ir/entities.py
+++ b/src/pystencilssfg/ir/entities.py
@@ -7,10 +7,9 @@ from typing import (
     Sequence,
     Generator,
 )
-from dataclasses import replace
 from itertools import chain
 
-from pystencils import CreateKernelConfig, create_kernel, Field
+from pystencils import Field
 from pystencils.codegen import Kernel
 from pystencils.types import PsType, PsCustomType
 
@@ -164,57 +163,6 @@ class SfgKernelNamespace(SfgNamespace):
             )
         self._kernels[kernel.name] = kernel
 
-    def add(self, kernel: Kernel, name: str | None = None):
-        """Adds an existing pystencils AST to this namespace.
-        If a name is specified, the AST's function name is changed."""
-        if name is None:
-            kernel_name = kernel.name
-        else:
-            kernel_name = name
-
-        if kernel_name in self._kernels:
-            raise ValueError(
-                f"Duplicate kernels: A kernel called {kernel_name} already exists in namespace {self.fqname}"
-            )
-
-        if name is not None:
-            kernel.name = kernel_name
-
-        khandle = SfgKernelHandle(kernel_name, self, kernel)
-        self._kernels[kernel_name] = khandle
-
-        #   TODO: collect includes later
-        # for header in kernel.required_headers:
-        #     self._ctx.add_include(
-        #         SfgHeaderInclude(HeaderFile.parse(header), private=True)
-        #     )
-
-        return khandle
-
-    def create(
-        self,
-        assignments,
-        name: str | None = None,
-        config: CreateKernelConfig | None = None,
-    ):
-        """Creates a new pystencils kernel from a list of assignments and a configuration.
-        This is a wrapper around `pystencils.create_kernel`
-        with a subsequent call to `add`.
-        """
-        if config is None:
-            config = CreateKernelConfig()
-
-        if name is not None:
-            if name in self._kernels:
-                raise ValueError(
-                    f"Duplicate kernels: A kernel with name {name} already exists in namespace {self.fqname}"
-                )
-            config = replace(config, function_name=name)
-
-        # type: ignore
-        kernel = create_kernel(assignments, config=config)
-        return self.add(kernel)
-
 
 class SfgFunction(SfgCodeEntity):
     """A free function."""
diff --git a/src/pystencilssfg/ir/syntax.py b/src/pystencilssfg/ir/syntax.py
index 699e7b5..cdbd4c2 100644
--- a/src/pystencilssfg/ir/syntax.py
+++ b/src/pystencilssfg/ir/syntax.py
@@ -2,7 +2,6 @@ from __future__ import annotations
 
 from enum import Enum, auto
 from typing import (
-    Generator,
     Iterable,
     TypeVar,
     Generic,
@@ -15,7 +14,6 @@ from .entities import (
     SfgKernelHandle,
     SfgFunction,
     SfgClassMember,
-    SfgMemberVariable,
     SfgVisibility,
     SfgClass,
 )
@@ -99,14 +97,6 @@ class SfgVisibilityBlock:
     def elements(self, elems: Iterable[SfgClassBodyElement]):
         self._elements = list(elems)
 
-    def members(self) -> Generator[SfgClassMember, None, None]:
-        for elem in self._elements:
-            match elem:
-                case SfgEntityDecl(entity) | SfgEntityDef(entity):
-                    yield entity
-                case SfgMemberVariable():
-                    yield elem
-
 
 class SfgNamespaceBlock:
     """A C++ namespace block.
-- 
GitLab