From 2aa24f3f3d0c1d921214a8120a54010ffa1befcd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 19 Feb 2026 01:43:52 +0000 Subject: [PATCH 1/4] Initial plan From 3cecbd67cc435ea51e6336567e69460b616570b6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 19 Feb 2026 01:48:15 +0000 Subject: [PATCH 2/4] Remove unused pydantic_numpy import from spectrum.py Co-authored-by: tomdurrant <11531133+tomdurrant@users.noreply.github.com> --- src/rompy/core/spectrum.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/rompy/core/spectrum.py b/src/rompy/core/spectrum.py index f041d263..dd0108a7 100644 --- a/src/rompy/core/spectrum.py +++ b/src/rompy/core/spectrum.py @@ -3,7 +3,6 @@ import numpy as np from pydantic import Field, model_validator -from pydantic_numpy.typing import Np1DArray from rompy.core.types import RompyBaseModel @@ -13,10 +12,12 @@ class Frequency(RompyBaseModel): """Wave frequency.""" + model_config = {"arbitrary_types_allowed": True} + model_type: Literal["frequency", "FREQUENCY"] = Field( default="frequency", description="Model type discriminator" ) - freq: Np1DArray = Field(description="Frequency array") + freq: np.ndarray = Field(description="Frequency array") @property def f0(self): @@ -109,7 +110,7 @@ def init_options(self) -> "LogFrequency": return self - def __call__(self) -> Np1DArray: + def __call__(self) -> np.ndarray: """Frequency array.""" return np.geomspace(self.f0, self.f1, self.nf) From 7433a3f2b9d7c641425a28ba98611f0063724a5e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 19 Feb 2026 01:49:38 +0000 Subject: [PATCH 3/4] Replace numpy array types with list to avoid arbitrary types Co-authored-by: tomdurrant <11531133+tomdurrant@users.noreply.github.com> --- src/rompy/core/spectrum.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/rompy/core/spectrum.py b/src/rompy/core/spectrum.py index dd0108a7..8d078d63 100644 --- a/src/rompy/core/spectrum.py +++ b/src/rompy/core/spectrum.py @@ -12,24 +12,22 @@ class Frequency(RompyBaseModel): """Wave frequency.""" - model_config = {"arbitrary_types_allowed": True} - model_type: Literal["frequency", "FREQUENCY"] = Field( default="frequency", description="Model type discriminator" ) - freq: np.ndarray = Field(description="Frequency array") + freq: list = Field(description="Frequency array") @property def f0(self): - return self.freq.min() + return np.array(self.freq).min() @property def f1(self): - return self.freq.max() + return np.array(self.freq).max() @property def nf(self): - return self.freq.size + return len(self.freq) @property def flen(self): @@ -110,7 +108,7 @@ def init_options(self) -> "LogFrequency": return self - def __call__(self) -> np.ndarray: + def __call__(self): """Frequency array.""" return np.geomspace(self.f0, self.f1, self.nf) From 49447f3fc78380d5719e2085a33692147bc80783 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 19 Feb 2026 01:50:19 +0000 Subject: [PATCH 4/4] Improve type annotation to list[float] for better type safety Co-authored-by: tomdurrant <11531133+tomdurrant@users.noreply.github.com> --- src/rompy/core/spectrum.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rompy/core/spectrum.py b/src/rompy/core/spectrum.py index 8d078d63..0edc8718 100644 --- a/src/rompy/core/spectrum.py +++ b/src/rompy/core/spectrum.py @@ -15,7 +15,7 @@ class Frequency(RompyBaseModel): model_type: Literal["frequency", "FREQUENCY"] = Field( default="frequency", description="Model type discriminator" ) - freq: list = Field(description="Frequency array") + freq: list[float] = Field(description="Frequency array") @property def f0(self):