diff --git a/pytest.ini b/pytest.ini index b43b0f00ce528fc8ca1cdd8355c0168d98b6e608..281eaa21ec0b07aabfbb1a16c3ad9938946e6371 100644 --- a/pytest.ini +++ b/pytest.ini @@ -40,6 +40,7 @@ omit = doc/* src/pystencils/cache.py src/pystencils/pacxx/benchmark.py src/pystencils/_version.py + src/pystencils/_deprecation.py src/pystencils/old venv/ @@ -62,6 +63,9 @@ exclude_lines = if False: if __name__ == .__main__.: + # Don't cover type checking imports + if TYPE_CHECKING: + skip_covered = True fail_under = 80 diff --git a/src/pystencils/_deprecation.py b/src/pystencils/_deprecation.py index 29ee648a7a9655e556986ae5404e335b94924fc9..68218f0ae3992cfca35db7f44d251be6fe609ea7 100644 --- a/src/pystencils/_deprecation.py +++ b/src/pystencils/_deprecation.py @@ -5,4 +5,5 @@ def _deprecated(feature, instead, version="2.1"): f"{feature} is deprecated and will be removed in pystencils {version}." f"Use {instead} instead.", DeprecationWarning, + stacklevel=2 ) diff --git a/src/pystencils/codegen/config.py b/src/pystencils/codegen/config.py index b6567e74a34e616fdbf340a92744bdde36dda218..9bd9cc9a3aff1b9b005c167c995f4640598f9fcd 100644 --- a/src/pystencils/codegen/config.py +++ b/src/pystencils/codegen/config.py @@ -428,7 +428,7 @@ class CreateKernelConfig: cpu_openmp: bool | int | None, cpu_vectorize_info: dict | None, gpu_indexing_params: dict | None, - ): + ): # pragma: no cover optim: CpuOptimConfig | None = None if data_type is not None: @@ -527,7 +527,7 @@ class CreateKernelConfig: ) -def _deprecated_option(name, instead): +def _deprecated_option(name, instead): # pragma: no cover from warnings import warn warn( diff --git a/src/pystencils/codegen/driver.py b/src/pystencils/codegen/driver.py index f7836ea794080a02a26dd8b29bf2d010ff5ab389..62a3f44db98cf4559f77d187e4c1ed3afb8e92b7 100644 --- a/src/pystencils/codegen/driver.py +++ b/src/pystencils/codegen/driver.py @@ -371,31 +371,6 @@ class DefaultKernelCreationDriver: f"Code generation for target {self._target} not implemented" ) - def _get_function_params(self, symbols: Iterable[PsSymbol]): - params: list[Parameter] = [] - - from pystencils.backend.memory import BufferBasePtr - - for symb in symbols: - props: set[PsSymbolProperty] = set() - for prop in symb.properties: - match prop: - case FieldShape() | FieldStride(): - props.add(prop) - case BufferBasePtr(buf): - field = self._ctx.find_field(buf.name) - props.add(FieldBasePtr(field)) - params.append(Parameter(symb.name, symb.get_dtype(), props)) - - params.sort(key=lambda p: p.name) - return params - - def _get_headers(self, body: PsBlock): - req_headers = collect_required_headers(body) - req_headers |= self._platform.required_headers - req_headers |= self._ctx.required_headers - return req_headers - def create_cpu_kernel_function( ctx: KernelCreationContext, diff --git a/src/pystencils/codegen/kernel.py b/src/pystencils/codegen/kernel.py index c4ad860b621d65965cd4b3cb62a1c05ad67807ee..3adc47876dc36af02ee307dde25ad5d7250cd3fb 100644 --- a/src/pystencils/codegen/kernel.py +++ b/src/pystencils/codegen/kernel.py @@ -62,12 +62,12 @@ class Kernel: self._name = n @property - def function_name(self) -> str: + def function_name(self) -> str: # pragma: no cover _deprecated("function_name", "name") return self._name @function_name.setter - def function_name(self, n: str): + def function_name(self, n: str): # pragma: no cover _deprecated("function_name", "name") self._name = n @@ -75,7 +75,7 @@ class Kernel: def parameters(self) -> tuple[Parameter, ...]: return self._params - def get_parameters(self) -> tuple[Parameter, ...]: + def get_parameters(self) -> tuple[Parameter, ...]: # pragma: no cover _deprecated("Kernel.get_parameters", "Kernel.parameters") return self.parameters @@ -83,7 +83,7 @@ class Kernel: return set(chain.from_iterable(p.fields for p in self._params)) @property - def fields_accessed(self) -> set[Field]: + def fields_accessed(self) -> set[Field]: # pragma: no cover warn( "`fields_accessed` is deprecated and will be removed in a future version of pystencils. " "Use `get_fields` instead.", diff --git a/src/pystencils/codegen/parameters.py b/src/pystencils/codegen/parameters.py index d40eae220c94efea9785ec561e10b217ccb88c91..d8411266ee514d4270a7a9d1c2fb24383f005329 100644 --- a/src/pystencils/codegen/parameters.py +++ b/src/pystencils/codegen/parameters.py @@ -97,7 +97,7 @@ class Parameter: # These are kept mostly for the legacy waLBerla code generation system @property - def is_field_pointer(self) -> bool: + def is_field_pointer(self) -> bool: # pragma: no cover warn( "`is_field_pointer` is deprecated and will be removed in a future version of pystencils. " "Use `param.get_properties(FieldBasePtr)` instead.", @@ -106,7 +106,7 @@ class Parameter: return bool(self.get_properties(FieldBasePtr)) @property - def is_field_stride(self) -> bool: + def is_field_stride(self) -> bool: # pragma: no cover warn( "`is_field_stride` is deprecated and will be removed in a future version of pystencils. " "Use `param.get_properties(FieldStride)` instead.", @@ -115,7 +115,7 @@ class Parameter: return bool(self.get_properties(FieldStride)) @property - def is_field_shape(self) -> bool: + def is_field_shape(self) -> bool: # pragma: no cover warn( "`is_field_shape` is deprecated and will be removed in a future version of pystencils. " "Use `param.get_properties(FieldShape)` instead.", @@ -124,7 +124,7 @@ class Parameter: return bool(self.get_properties(FieldShape)) @property - def field_name(self) -> str: + def field_name(self) -> str: # pragma: no cover warn( "`field_name` is deprecated and will be removed in a future version of pystencils. " "Use `param.fields[0].name` instead.",