File tree Expand file tree Collapse file tree 2 files changed +17
-1
lines changed
Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -324,7 +324,7 @@ def __init__(
324324 self ,
325325 field_id : Optional [int ] = None ,
326326 name : Optional [str ] = None ,
327- field_type : Optional [IcebergType ] = None ,
327+ field_type : Optional [IcebergType | str ] = None ,
328328 required : bool = False ,
329329 doc : Optional [str ] = None ,
330330 initial_default : Optional [Any ] = None ,
@@ -340,6 +340,12 @@ def __init__(
340340 data ["doc" ] = doc
341341 data ["initial-default" ] = data ["initial-default" ] if "initial-default" in data else initial_default
342342 data ["write-default" ] = data ["write-default" ] if "write-default" in data else write_default
343+ if isinstance (data ["type" ], str ):
344+ try :
345+ data ["type" ] = IcebergType .handle_primitive_type (data ["type" ], None )
346+ except ValueError as e :
347+ raise ValueError (f"Invalid field type: { data ['type' ]} . { e } " ) from e
348+
343349 super ().__init__ (** data )
344350
345351 def __str__ (self ) -> str :
Original file line number Diff line number Diff line change @@ -231,6 +231,16 @@ def test_nested_field() -> None:
231231 assert "validation errors for NestedField" in str (exc_info .value )
232232
233233
234+ def test_nested_field_type_as_str () -> None :
235+ field_var = NestedField (
236+ 1 ,
237+ "optional_field1" ,
238+ "string" ,
239+ required = True ,
240+ )
241+ assert isinstance (field_var .field_type , StringType )
242+
243+
234244@pytest .mark .parametrize ("input_index,input_type" , non_parameterized_types )
235245@pytest .mark .parametrize ("check_index,check_type" , non_parameterized_types )
236246def test_non_parameterized_type_equality (
You can’t perform that action at this time.
0 commit comments