Skip to content

Commit 3e5e4a9

Browse files
committed
#156 Do not use DataClass[...]
1 parent d5fc5cf commit 3e5e4a9

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

xarray_dataclasses/specs.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99

1010
# dependencies
11-
from typing_extensions import Literal, TypeAlias, get_type_hints
11+
from typing_extensions import Literal, ParamSpec, TypeAlias, get_type_hints
1212

1313

1414
# submodules
@@ -30,7 +30,7 @@
3030

3131
# type hints
3232
AnySpec: TypeAlias = "ArraySpec | ScalarSpec"
33-
TDataClass = TypeVar("TDataClass", bound=DataClass[...])
33+
PInit = ParamSpec("PInit")
3434
TReturn = TypeVar("TReturn", AnyXarray, None)
3535

3636

@@ -135,7 +135,7 @@ class DataSpec:
135135
"""Options for xarray data creation."""
136136

137137
@classmethod
138-
def from_dataclass(cls, dataclass: Type[DataClass[...]]) -> "DataSpec":
138+
def from_dataclass(cls, dataclass: Type[DataClass[PInit]]) -> "DataSpec":
139139
"""Create a data specification from a dataclass."""
140140
specs = SpecDict()
141141

@@ -153,7 +153,7 @@ def from_dataclass(cls, dataclass: Type[DataClass[...]]) -> "DataSpec":
153153

154154
# runtime functions
155155
@lru_cache(maxsize=None)
156-
def eval_fields(dataclass: Type[TDataClass]) -> Type[TDataClass]:
156+
def eval_fields(dataclass: Type[DataClass[PInit]]) -> Type[DataClass[PInit]]:
157157
"""Evaluate field types of a dataclass."""
158158
types = get_type_hints(dataclass, include_extras=True)
159159

0 commit comments

Comments
 (0)