Skip to content

Commit a6e5868

Browse files
committed
fix(typing): manage one_of_resolve typing
1 parent 261023a commit a6e5868

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

scaleway-core/scaleway_core/utils/resolve_one_of.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from __future__ import annotations
12
from collections.abc import Callable
23
from scaleway_core.profile.profile import ProfileDefaults
34
from dataclasses import dataclass
@@ -6,17 +7,18 @@
67

78
T = TypeVar("T")
89

10+
911
@dataclass
10-
class OneOfPossibility:
12+
class OneOfPossibility(Generic[T]):
1113
param: str
12-
value: Optional[Any]
14+
value: Optional[T]
1315
default: Optional[T] = None
1416
marshal_func: Optional[Callable[[T, Optional[ProfileDefaults]], Dict[str, Any]]] = None
1517

18+
1619
def resolve_one_of(
17-
possibilities: List[OneOfPossibility], is_required: bool = False
20+
possibilities: List[OneOfPossibility[Any]], is_required: bool = False
1821
) -> SupportsKeysAndGetItem[str, Any]:
19-
2022
for possibility in possibilities:
2123
if possibility.value is not None:
2224
if possibility.marshal_func is not None:
@@ -42,4 +44,3 @@ def resolve_one_of(
4244
raise ValueError(f"one of ${possibilities_keys} must be present")
4345

4446
return {}
45-

0 commit comments

Comments
 (0)