Skip to content

Commit 992e79c

Browse files
committed
use _class_register as a cache for instantiated classes
Signed-off-by: dafnapension <dafnashein@yahoo.com>
1 parent 5af1edf commit 992e79c

File tree

1 file changed

+3
-15
lines changed

1 file changed

+3
-15
lines changed

src/unitxt/artifact.py

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)