@@ -101,9 +101,9 @@ def __post_init__(self) -> None:
101
101
self .test_case_id = enum_convert (TestCaseType , self .test_case_id )
102
102
self .test_type = enum_convert (TestType , self .test_type )
103
103
if isinstance (self .server , dict ):
104
- self .server = from_dict (PodInfo , self .server )
104
+ self .server = dataclass_from_dict (PodInfo , self .server )
105
105
if isinstance (self .client , dict ):
106
- self .client = from_dict (PodInfo , self .client )
106
+ self .client = dataclass_from_dict (PodInfo , self .client )
107
107
108
108
109
109
@dataclass
@@ -118,7 +118,7 @@ class IperfOutput(BaseOutput):
118
118
119
119
def __post_init__ (self ) -> None :
120
120
if isinstance (self .tft_metadata , dict ):
121
- self .tft_metadata = from_dict (TestMetadata , self .tft_metadata )
121
+ self .tft_metadata = dataclass_from_dict (TestMetadata , self .tft_metadata )
122
122
elif not isinstance (self .tft_metadata , TestMetadata ):
123
123
raise ValueError ("tft_metadata must be a TestMetadata instance or a dict" )
124
124
@@ -154,12 +154,16 @@ class TftAggregateOutput:
154
154
155
155
def __post_init__ (self ) -> None :
156
156
if isinstance (self .flow_test , dict ):
157
- self .flow_test = from_dict (IperfOutput , self .flow_test )
157
+ self .flow_test = dataclass_from_dict (IperfOutput , self .flow_test )
158
158
elif self .flow_test is not None and not isinstance (self .flow_test , IperfOutput ):
159
159
raise ValueError ("flow_test must be an IperfOutput instance or a dict" )
160
160
161
161
self .plugins = [
162
- from_dict (PluginOutput , plugin ) if isinstance (plugin , dict ) else plugin
162
+ (
163
+ dataclass_from_dict (PluginOutput , plugin )
164
+ if isinstance (plugin , dict )
165
+ else plugin
166
+ )
163
167
for plugin in self .plugins
164
168
]
165
169
@@ -189,14 +193,16 @@ def serialize_enum(
189
193
T = TypeVar ("T" )
190
194
191
195
192
- def from_dict (cls : Type [T ], data : Dict [str , Any ]) -> T :
193
- assert is_dataclass (cls ), "from_dict() should only be used with dataclasses."
196
+ def dataclass_from_dict (cls : Type [T ], data : Dict [str , Any ]) -> T :
197
+ assert is_dataclass (
198
+ cls
199
+ ), "dataclass_from_dict() should only be used with dataclasses."
194
200
field_values = {}
195
201
for field in fields (cls ):
196
202
field_name = field .name
197
203
field_type = field .type
198
204
if is_dataclass (field_type ) and field_name in data :
199
- field_values [field_name ] = from_dict (field_type , data [field_name ])
205
+ field_values [field_name ] = dataclass_from_dict (field_type , data [field_name ])
200
206
elif field_name in data :
201
207
field_values [field_name ] = data [field_name ]
202
208
return cast (T , cls (** field_values ))
0 commit comments