Sample: handle None in vectors

master
Alinson S. Xavier 4 years ago
parent 284ba15db6
commit 3da8d532a8
No known key found for this signature in database
GPG Key ID: DCA0DAD4D2F58624

@ -189,7 +189,9 @@ class Hdf5Sample(Sample):
assert len(ds.shape) == 1 assert len(ds.shape) == 1
print(ds.dtype) print(ds.dtype)
if h5py.check_string_dtype(ds.dtype): if h5py.check_string_dtype(ds.dtype):
return ds.asstr()[:].tolist() result = ds.asstr()[:].tolist()
result = [r if len(r) > 0 else None for r in result]
return result
else: else:
return ds[:].tolist() return ds[:].tolist()
@ -218,7 +220,8 @@ class Hdf5Sample(Sample):
if value is None: if value is None:
return return
self._assert_is_vector(value) self._assert_is_vector(value)
self._put(key, value) modified = [v if v is not None else "" for v in value]
self._put(key, modified)
@overrides @overrides
def put_vector_list(self, key: str, value: VectorList) -> None: def put_vector_list(self, key: str, value: VectorList) -> None:

@ -24,7 +24,7 @@ def _test_sample(sample: Sample) -> None:
_assert_roundtrip_scalar(sample, 1.0) _assert_roundtrip_scalar(sample, 1.0)
# Vector # Vector
_assert_roundtrip_vector(sample, ["A", "BB", "CCC", "こんにちは"]) _assert_roundtrip_vector(sample, ["A", "BB", "CCC", "こんにちは", None])
_assert_roundtrip_vector(sample, [True, True, False]) _assert_roundtrip_vector(sample, [True, True, False])
_assert_roundtrip_vector(sample, [1, 2, 3]) _assert_roundtrip_vector(sample, [1, 2, 3])
_assert_roundtrip_vector(sample, [1.0, 2.0, 3.0]) _assert_roundtrip_vector(sample, [1.0, 2.0, 3.0])

Loading…
Cancel
Save