diff --git a/pyproject.toml b/pyproject.toml index 6ac0327d728b8732d86186e213892ae60134a2ab..93987d5f58adf258c5f5f5ad82acef97523d3e76 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 a855155177fbcdb174ee8549babd868ae88e78ab..6e6597dbab1e5e5b6de3ea7853091fa37655d6ad 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 699e7b58f679287620117cb451bd4fecc3d20d8a..cdbd4c283b6bb0078e1051f89565b3b6b32d8d21 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.