Skip to content

Commit

Permalink
Fix: typo in dict processing
Browse files Browse the repository at this point in the history
Summary:
David had his code crashed when using frame_annot["meta"] dictionary. Turns out we had a typo.
The tests were passing by chance since all the keys were single-character strings.

Reviewed By: bottler

Differential Revision: D37503987

fbshipit-source-id: c12b0df21116cfbbc4675a0182b9b9e6d62bad2e
  • Loading branch information
shapovalov authored and facebook-github-bot committed Jun 28, 2022
1 parent 7e0146e commit 7ce8ed5
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 5 deletions.
2 changes: 1 addition & 1 deletion pytorch3d/implicitron/dataset/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ def _dataclass_list_from_dict_list(dlist, typeannot):

keys = np.split(list(all_keys_res), indices[:-1])
vals = np.split(list(all_vals_res), indices[:-1])
return [cls(zip(*k, v)) for k, v in zip(keys, vals)]
return [cls(zip(k, v)) for k, v in zip(keys, vals)]
elif not dataclasses.is_dataclass(typeannot):
return dlist

Expand Down
8 changes: 4 additions & 4 deletions tests/implicitron/test_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,8 @@ def test_parsing(self):
)

# dict
parsed = types._dataclass_from_dict({"k": dct}, Dict[str, FrameAnnotation])
self.assertEqual(parsed, {"k": self.entry})
parsed = types._dataclass_from_dict({"key": dct}, Dict[str, FrameAnnotation])
self.assertEqual(parsed, {"key": self.entry})

def test_parsing_vectorized(self):
dct = dataclasses.asdict(self.entry)
Expand All @@ -83,10 +83,10 @@ def test_parsing_vectorized(self):
self._compare_with_scalar(_NT(dct), _NT)
self._compare_with_scalar((dct,), Tuple[FrameAnnotation])
self._compare_with_scalar([dct], List[FrameAnnotation])
self._compare_with_scalar({"k": dct}, Dict[str, FrameAnnotation])
self._compare_with_scalar({"key": dct}, Dict[str, FrameAnnotation])

dct2 = dct.copy()
dct2["meta"] = {"d": 76}
dct2["meta"] = {"aux": 76}
self._compare_with_scalar(dct2, FrameAnnotation)

def _compare_with_scalar(self, obj, typeannot, repeat=3):
Expand Down

0 comments on commit 7ce8ed5

Please sign in to comment.