Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions ndsl/stencils/corners.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import warnings
from collections.abc import Sequence

from gt4py.cartesian import gtscript
Expand Down Expand Up @@ -28,6 +29,13 @@ def __init__(
y_field: 3D gt4py storage to use for y-differenceable field
(x-differenceable field uses same memory as base field)
"""
warnings.warn(
"Usage of CopyCornersXY is deprecated and will be removed in the next release. "
"Use `CopyCornersX` and `CopyCornersY` in PyFV3 for a more future-proof "
"implementation of the corner code.",
DeprecationWarning,
stacklevel=2,
)
grid_indexing = stencil_factory.grid_indexing
origin, domain = grid_indexing.get_origin_domain(
dims=dims, halos=(grid_indexing.n_halo, grid_indexing.n_halo)
Expand Down
27 changes: 15 additions & 12 deletions tests/stencils/test_stencils.py
Original file line number Diff line number Diff line change
@@ -1,27 +1,22 @@
import numpy as np
import pytest

from ndsl import StencilFactory
from ndsl import QuantityFactory, StencilFactory
from ndsl.boilerplate import get_factories_single_tile
from ndsl.constants import X_DIM, Y_DIM, Z_DIM
from ndsl.dsl.gt4py import FORWARD, computation, interval
from ndsl.dsl.typing import FloatField, FloatFieldIJ
from ndsl.stencils import CopyCornersXY
from ndsl.stencils.column_operations import column_max, column_min


nx = 1
ny = 1
nz = 10
nhalo = 0
backend = "dace:cpu"

stencil_factory, quantity_factory = get_factories_single_tile(
nx, ny, nz, nhalo, backend
)
@pytest.fixture
def boilerplate() -> tuple[StencilFactory, QuantityFactory]:
return get_factories_single_tile(nx=1, ny=1, nz=10, nhalo=0, backend="dace:cpu")


class ColumnOperations:
def __init__(self, stencil_factory: StencilFactory):
grid_indexing = stencil_factory.grid_indexing

def column_max_stencil(
data: FloatField, max_value: FloatFieldIJ, max_index: FloatFieldIJ
Expand Down Expand Up @@ -60,7 +55,8 @@ def __call__(
self._column_min_stencil(data, min_value, min_index)


def test_column_operations():
def test_column_operations(boilerplate):
stencil_factory, quantity_factory = boilerplate
data = quantity_factory.zeros([X_DIM, Y_DIM, Z_DIM], "n/a")
data.field[:] = [
47.3821,
Expand All @@ -87,3 +83,10 @@ def test_column_operations():
assert max_index.field[:] == np.argmax(data.field[:], axis=2)
assert min_value.field[:] == np.min(data.field[:, :, 5:], axis=2)
assert min_index.field[:] == 5 + np.argmin(data.field[:, :, 5:], axis=2)


def test_CopyCornersXY_deprecation(boilerplate) -> None:
stencil_factory, _ = boilerplate

with pytest.deprecated_call(match="Usage of CopyCornersXY is deprecated"):
CopyCornersXY(stencil_factory, [X_DIM, Y_DIM, Z_DIM], None)