Skip to content

Commit 5561767

Browse files
committed
fix for created and lastModified keys
1 parent 8e6d14a commit 5561767

File tree

3 files changed

+14
-6
lines changed

3 files changed

+14
-6
lines changed

src/h5json/dset_util.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ def resize_dataset(dset_json, shape):
4040
raise ValueError(f"extent for dimension {i} can't be larger than {maxdims[i]}")
4141

4242
shape_json["dims"] = list(shape)
43-
dset_json["modified"] = time.time()
4443

4544

4645
def getDims(dset_json):

src/h5json/hdf5db.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -129,9 +129,7 @@ def deleted_objects(self):
129129

130130
def make_dirty(self, obj_id):
131131
""" Mark the object as dirty and update the lastModified timestamp """
132-
if self.is_new(obj_id):
133-
# object hasn't been initially written yet, just return
134-
return
132+
135133
if obj_id not in self.db:
136134
self.log.error("make dirty called on deleted object")
137135
raise KeyError(f"obj_id: {obj_id} not found")
@@ -140,7 +138,9 @@ def make_dirty(self, obj_id):
140138
return
141139
obj_json = self.db[obj_id]
142140
obj_json["lastModified"] = time.time()
143-
self._dirty_objects.add(obj_id)
141+
if not self.is_new(obj_id):
142+
# object hasn't been initially written yet, add to dirt_object set
143+
self._dirty_objects.add(obj_id)
144144

145145
def flush(self):
146146
""" write out any changes """
@@ -646,7 +646,7 @@ def resizeDataset(self, dset_id, shape):
646646

647647
dset_json = self.getObjectById(dset_id) # will throw exception if not found
648648
if resize_dataset(dset_json, shape):
649-
self._dirty_objects.add(dset_id)
649+
self._make_dirty(dset_id)
650650

651651
def deleteObject(self, obj_id):
652652
""" Delete the given object """
@@ -817,6 +817,7 @@ def createDataset(
817817
dset_json["creationProperties"] = cpl
818818
else:
819819
dset_json["creationProperties"] = {}
820+
dset_json["created"] = time.time()
820821

821822
dset_id = createObjId("datasets", root_id=self.root_id)
822823
self.db[dset_id] = dset_json

test/unit/hsds_writer_test.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,10 +245,18 @@ def testReaderWriter(self):
245245

246246
# create a scalar dataset
247247
dset_id = db.createDataset(shape=(), dtype=np.int32)
248+
dset_json = db.getObjectById(dset_id)
249+
self.assertTrue("created" in dset_json)
250+
dset_create_time = dset_json["created"]
251+
self.assertTrue(dset_create_time > 0)
252+
248253
arr = np.zeros((), dtype=np.int32)
249254
arr[()] = 42
250255
sel_all = selections.select((), ...)
251256
db.setDatasetValues(dset_id, sel_all, arr)
257+
dset_json = db.getObjectById(dset_id)
258+
self.assertTrue("lastModified" in dset_json)
259+
self.assertTrue(dset_json["lastModified"] > dset_create_time)
252260

253261
arr = db.getDatasetValues(dset_id, sel_all)
254262
self.assertEqual(arr[()], 42)

0 commit comments

Comments
 (0)