Skip to content

Commit

Permalink
Fix artifact initialization dict creation to be recursive
Browse files Browse the repository at this point in the history
Signed-off-by: Elron Bandel <elron.bandel@ibm.com>
  • Loading branch information
elronbandel committed Feb 6, 2024
1 parent fae681e commit 84b6c1d
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion src/unitxt/artifact.py
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ def verify(self):

@final
def __pre_init__(self, **kwargs):
self._init_dict = deepcopy(kwargs)
self._init_dict = deepcopy(get_raw(kwargs))

@final
def __post_init__(self):
Expand All @@ -232,6 +232,16 @@ def save(self, path):
save_json(path, data)


def get_raw(element):
if isinstance(element, Artifact):
return element._to_raw_dict()
if isinstance(element, (list, tuple)):
return [get_raw(sub_element) for sub_element in element]
if isinstance(element, dict):
return {key: get_raw(value) for key, value in element.items()}
return element


class ArtifactList(list, Artifact):
def prepare(self):
for artifact in self:
Expand Down

0 comments on commit 84b6c1d

Please sign in to comment.