예제 #1
0
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
예제 #2
0
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],
    ))
예제 #3
0
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],
        ))
예제 #4
0
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
예제 #5
0
 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)))
예제 #6
0
 def test_without_initial_content(self):
     li = ListItem()
     li.append("Test")
     assert_equal([b"<li>", b"Test", b"</li>"], list(iter(li)))
예제 #7
0
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)
예제 #8
0
 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)))
예제 #9
0
 def test_without_initial_content(self):
     li = ListItem()
     li.append("Test")
     assert_equal([b"<li>", b"Test", b"</li>"], list(iter(li)))