|
5 | 5 | from metafold.client import Client |
6 | 6 | from metafold.exceptions import PollTimeout |
7 | 7 | from requests import Response |
8 | | -from typing import Any, Optional, TypeAlias, TypedDict, Union |
| 8 | +from typing import Any, Optional, TypedDict, Union |
| 9 | +from typing_extensions import TypeAlias |
9 | 10 |
|
10 | 11 |
|
11 | 12 | def _assets(v: list[Union[dict[str, Any], Asset]]) -> list[Asset]: |
@@ -37,7 +38,7 @@ class IO: |
37 | 38 | """ |
38 | 39 | params: Optional[dict[str, Any]] = None |
39 | 40 | assets: Optional[dict[str, Asset]] = field( |
40 | | - converter=optional(_assets_dict), default=None) |
| 41 | + converter=lambda v: optional(_assets_dict)(v), default=None) |
41 | 42 |
|
42 | 43 | @staticmethod |
43 | 44 | def from_dict(d: IODict) -> "IO": |
@@ -69,13 +70,16 @@ class Job: |
69 | 70 | type: str |
70 | 71 | state: str |
71 | 72 | created: datetime = field(converter=asdatetime) |
72 | | - started: Optional[datetime] = field(converter=optional_datetime, default=None) |
73 | | - finished: Optional[datetime] = field(converter=optional_datetime, default=None) |
| 73 | + started: Optional[datetime] = field( |
| 74 | + converter=lambda v: optional_datetime(v), default=None) |
| 75 | + finished: Optional[datetime] = field( |
| 76 | + converter=lambda v: optional_datetime(v), default=None) |
74 | 77 | error: Optional[str] = None |
75 | 78 | inputs: IO = field(converter=lambda v: v if isinstance(v, IO) else IO.from_dict(v)) |
76 | 79 | outputs: IO = field(converter=lambda v: v if isinstance(v, IO) else IO.from_dict(v)) |
77 | 80 | # NOTE(ryan): Deprecated |
78 | | - assets: Optional[list[Asset]] = field(converter=optional(_assets), default=None) |
| 81 | + assets: Optional[list[Asset]] = field( |
| 82 | + converter=lambda v: optional(_assets)(v), default=None) |
79 | 83 | parameters: dict[str, Any] |
80 | 84 | meta: dict[str, Any] |
81 | 85 |
|
|
0 commit comments