@@ -1146,7 +1146,6 @@ class TypeEngine(typing.Generic[T]):
11461146 _RESTRICTED_TYPES : typing .List [type ] = []
11471147 _DATACLASS_TRANSFORMER : TypeTransformer = DataclassTransformer () # type: ignore
11481148 _ENUM_TRANSFORMER : TypeTransformer = EnumTransformer () # type: ignore
1149- has_lazy_import = False
11501149 lazy_import_lock = threading .Lock ()
11511150
11521151 @classmethod
@@ -1255,16 +1254,7 @@ def lazy_import_transformers(cls):
12551254 # Avoid a race condition where concurrent threads may exit lazy_import_transformers before the transformers
12561255 # have been imported. This could be implemented without a lock if you assume python assignments are atomic
12571256 # and re-registering transformers is acceptable, but I decided to play it safe.
1258- if cls .has_lazy_import :
1259- return
1260- cls .has_lazy_import = True
1261- from flytekit .types .structured import (
1262- register_arrow_handlers ,
1263- register_bigquery_handlers ,
1264- register_pandas_handlers ,
1265- register_snowflake_handlers ,
1266- )
1267- from flytekit .types .structured .structured_dataset import DuplicateHandlerError
1257+ from flytekit .types .structured import lazy_import_structured_dataset_handler
12681258
12691259 if is_imported ("tensorflow" ):
12701260 from flytekit .extras import tensorflow # noqa: F401
@@ -1279,29 +1269,11 @@ def lazy_import_transformers(cls):
12791269 from flytekit .types .schema .types_pandas import PandasSchemaReader , PandasSchemaWriter # noqa: F401
12801270 except ValueError :
12811271 logger .debug ("Transformer for pandas is already registered." )
1282- try :
1283- register_pandas_handlers ()
1284- except DuplicateHandlerError :
1285- logger .debug ("Transformer for pandas is already registered." )
1286- if is_imported ("pyarrow" ):
1287- try :
1288- register_arrow_handlers ()
1289- except DuplicateHandlerError :
1290- logger .debug ("Transformer for arrow is already registered." )
1291- if is_imported ("google.cloud.bigquery" ):
1292- try :
1293- register_bigquery_handlers ()
1294- except DuplicateHandlerError :
1295- logger .debug ("Transformer for bigquery is already registered." )
12961272 if is_imported ("numpy" ):
12971273 from flytekit .types import numpy # noqa: F401
12981274 if is_imported ("PIL" ):
12991275 from flytekit .types .file import image # noqa: F401
1300- if is_imported ("snowflake.connector" ):
1301- try :
1302- register_snowflake_handlers ()
1303- except DuplicateHandlerError :
1304- logger .debug ("Transformer for snowflake is already registered." )
1276+ lazy_import_structured_dataset_handler ()
13051277
13061278 @classmethod
13071279 def to_literal_type (cls , python_type : Type [T ]) -> LiteralType :
0 commit comments