Skip to content

Commit 339ce6f

Browse files
committed
fix for track_info and getserverinfo
1 parent bebae88 commit 339ce6f

File tree

6 files changed

+39
-23
lines changed

6 files changed

+39
-23
lines changed

h5pyd/_hl/attrs.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,15 @@ def _get_created(name):
304304
attr_json = self._parent.id.db.getAttribute(obj_id, name, includeData=False)
305305
return attr_json["created"]
306306

307-
if self._parent.id.create_order:
307+
track_order = None
308+
if self._parent._track_order is not None:
309+
track_order = self._parent._track_order
310+
elif self._parent.id.create_order is not None:
311+
track_order = self._parent.id.create_order
312+
else:
313+
track_order = False
314+
315+
if track_order:
308316
attrs = sorted(attrs, key=lambda x: _get_created(x))
309317
else:
310318
attrs = sorted(attrs)

h5pyd/_hl/base.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,8 @@ def __init__(self, oid, file=None, track_order=None):
381381
self.log.addHandler(fh)
382382
else:
383383
pass
384-
self._track_order = None # TBD: set by track_order?
384+
385+
self._track_order = track_order # TBD: set by track_order?
385386

386387
def __hash__(self):
387388
return hash(self.id.id)

h5pyd/_hl/files.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,13 @@ def _init_db(self,
365365

366366
db = Hdf5db(app_logger=self.log) # initialize hdf5 db
367367

368+
if track_order is None:
369+
cfg = config.get_config()
370+
if cfg.track_order:
371+
track_order = True
372+
else:
373+
track_order = None
374+
368375
kwargs = {"app_logger": self.log}
369376
if swmr:
370377
kwargs["swmr"] = True # disable metadata caching in swmr mode
@@ -484,11 +491,8 @@ def __init__(
484491
"""
485492

486493
self.log = logging.getLogger()
487-
cfg = config.get_config() # pulls in state from a .hscfg file (if found).
488494

489495
self.log.setLevel(logging.ERROR)
490-
if track_order is None:
491-
track_order = cfg.track_order
492496

493497
# if we're passed a GroupId as domain, just initialize the file object
494498
# with that. This will be faster and enable the File object to share the same http connection.
@@ -550,9 +554,6 @@ def __init__(
550554
self._lastScan = None # when summary stats where last updated by server
551555
self._swmr_mode = swmr
552556

553-
if track_order is None:
554-
track_order = cfg.track_order
555-
556557
Group.__init__(self, self._id, track_order=track_order)
557558

558559
def _getVerboseInfo(self):

h5pyd/_hl/group.py

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,13 @@ def create_group(self, h5path, track_order=None):
127127
if self.read_only:
128128
raise ValueError("No write intent")
129129

130+
if track_order is None:
131+
cfg = config.get_config()
132+
if cfg.track_order:
133+
track_order = True
134+
else:
135+
track_order = None
136+
130137
if isinstance(h5path, bytes):
131138
h5path = h5path.decode('utf-8')
132139

@@ -249,12 +256,14 @@ def create_dataset(self, name, shape=None, dtype=None, data=None, **kwds):
249256
if "track_order" in kwds:
250257
track_order = kwds["track_order"]
251258
else:
252-
track_order = None
253-
254-
cfg = config.get_config()
259+
cfg = config.get_config()
260+
if cfg.track_order:
261+
track_order = True
262+
else:
263+
track_order = None
255264

256265
datasetId = dataset.make_new_dset(self, shape=shape, dtype=dtype, data=data, **kwds)
257-
dset = Dataset(datasetId, track_order=(track_order or cfg.track_order))
266+
dset = Dataset(datasetId, track_order=track_order)
258267

259268
if name is not None:
260269
items = name.split('/')
@@ -500,16 +509,15 @@ def __getitem__(self, name, track_order=None):
500509

501510
if tgt_id is not None:
502511
collection = getCollectionForId(tgt_id)
503-
504512
if collection == 'groups':
505-
tgt = Group(GroupID(self, tgt_id, obj_json=tgt_json), track_order=track_order)
513+
tgt = Group(GroupID(self, tgt_id), track_order=track_order)
506514
elif collection == 'datatypes':
507-
tgt = Datatype(TypeID(self, tgt_id, obj_json=tgt_json))
515+
tgt = Datatype(TypeID(self, tgt_id), track_order=track_order)
508516
elif collection == 'datasets':
509517
# create a Table if the dataset is one dimensional and compound
510518
shape_json = tgt_json["shape"]
511519
dtype_json = tgt_json["type"]
512-
dset_id = DatasetID(self, tgt_id, obj_json=tgt_json, track_order=track_order)
520+
dset_id = DatasetID(self, tgt_id)
513521
if getRank(shape_json) == 1 and dtype_json["class"] == 'H5T_COMPOUND':
514522
tgt = Table(dset_id, track_order=track_order)
515523
else:
@@ -565,7 +573,7 @@ def get(self, name, default=None, getclass=False, getlink=False, track_order=Non
565573
Return HardLink, SoftLink and ExternalLink classes. Return
566574
"default" if nothing with that name exists.
567575
568-
"track_order" is (T/F):
576+
"track_order" is (T/F/None):
569577
If a group is returned, it's items will be listed by creation order if track_order
570578
is True and lexicographically if False. If track_order is not set, the track_order
571579
used at group creation time will be used.
@@ -708,7 +716,6 @@ def __setitem__(self, name, obj):
708716
db.createExternalLink(self.id.uuid, name, obj.path, obj.filename)
709717

710718
elif isinstance(obj, numpy.dtype):
711-
# print "create named type"
712719
ctype_id = db.createCommittedType(obj)
713720
db.createHardLink(self.id.uuid, name, ctype_id)
714721

@@ -765,8 +772,7 @@ def __iter__(self):
765772

766773
track_order = None
767774
if self._track_order is not None:
768-
print("self._track_order:", self._track_order)
769-
# track_order = self._track_order
775+
track_order = self._track_order
770776
elif self.id.create_order is not None:
771777
track_order = self.id.create_order
772778
else:

h5pyd/serverinfo.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
def getServerInfo(endpoint=None, username=None, password=None, api_key=None, **kwds):
2121

22-
print("GetServerInfo")
22+
""" return server state info """
2323

2424
cfg = config.get_config() # get credentials from .hscfg file (if found)
2525

test/hl/test_group.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -413,8 +413,8 @@ def test_get_dataset_track_order(self):
413413
with h5py.File(filename) as f:
414414
g = f['order']
415415

416-
d = g.get('dset', track_order=True)
417-
self.assertEqual(list(d.attrs), list(self.titles))
416+
d1 = g.get('dset', track_order=True)
417+
self.assertEqual(list(d1.attrs), list(self.titles))
418418

419419
d2 = g.get('dset2', track_order=False)
420420
ref = sorted(self.titles)

0 commit comments

Comments
 (0)