@@ -56,26 +56,14 @@ def get_class_from_artifact_type(type: str):
5656 module_path , class_name = find_unitxt_module_and_class_by_classname (
5757 snake_to_camel_case (type )
5858 )
59- if module_path == "class_register" :
60- if class_name not in Artifact ._class_register :
61- raise ValueError (
62- f"Can not instantiate a class from type { type } , because { class_name } is currently not registered in Artifact._class_register."
63- )
64- return Artifact ._class_register [class_name ]
6559
6660 module = importlib .import_module (module_path )
6761
6862 if "." not in class_name :
6963 if hasattr (module , class_name ) and inspect .isclass (getattr (module , class_name )):
70- return getattr (module , class_name )
71- if class_name in Artifact ._class_register :
72- return Artifact ._class_register [class_name ]
73- module_file = module .__file__ if hasattr (module , "__file__" ) else None
74- if module_file :
75- module = import_module_from_file (module_file )
76-
77- assert class_name in Artifact ._class_register
78- return Artifact ._class_register [class_name ]
64+ klass = getattr (module , class_name )
65+ Artifact ._class_register [type ] = klass # use _class_register as a cache
66+ return klass
7967
8068 class_name_components = class_name .split ("." )
8169 klass = getattr (module , class_name_components [0 ])
0 commit comments