def item_for_dataset(name, ds): shape = " × ".join(str(n) for n in ds.shape) namespan = Span(name) namespan.add_css_classes("h5glance-dataset-name") copylink = Link("#", "[📋]") copylink.set_attribute("data-hdf5-path", ds.name) copylink.add_css_classes("h5glance-dataset-copylink") li = ListItem( namespan, " ", copylink, ": ", shape, " entries, dtype: ", make_dtype_abbr(ds.dtype) ) li.add_css_classes("h5glance-dataset") return li
def item_for_group(gname, grp): subgroups, datasets = [], [] for name, obj in sorted(grp.items()): if isinstance(obj, h5py.Group): subgroups.append((name, obj)) else: datasets.append((name, obj)) return ListItem(*checkbox_w_label(gname), make_list( *[item_for_group(n, g) for n, g in subgroups], *[item_for_dataset(n, d) for n, d in datasets], ))
def item_for_group(gname, grp): # Like many file managers, we'll sort subgroups, items = [], [] for name in grp: link = grp.get(name, getlink=True) if isinstance(link, h5py.HardLink): obj = grp[name] if utils.is_group(obj): subgroups.append((name, obj)) else: items.append((name, obj)) else: items.append((name, link)) return ListItem( *checkbox_w_label(gname), make_list( *[item_for_group(n, g) for n, g in subgroups], *[leaf_item(n, o) for n, o in items], ))
def item_for_dataset(name, ds): namespan = Span(name) namespan.add_css_classes("h5glance-dataset-name") if ds is None: # h5pyd can return None dataset for external links li = ListItem(namespan) return li shape = utils.fmt_shape(ds.shape) copylink = Link("#", "[📋]") copylink.set_attribute("data-hdf5-path", ds.name) copylink.add_css_classes("h5glance-dataset-copylink") li = ListItem(namespan, " ", copylink, ": ", shape, " entries, dtype: ", make_dtype_abbr(ds.id.get_type())) li.add_css_classes("h5glance-dataset") return li
def test_with_initial_content(self): li = ListItem("Initial", "test") li.append("content") assert_equal([b"<li>", b"Initial", b"test", b"content", b"</li>"], list(iter(li)))
def test_without_initial_content(self): li = ListItem() li.append("Test") assert_equal([b"<li>", b"Test", b"</li>"], list(iter(li)))
def item_for_link(name, link): if isinstance(link, h5py.ExternalLink): target = f'{link.filename}/{link.path}' else: target = link.path return ListItem(name, " → ", target)