Skip to content

Commit 1e2f34a

Browse files
committed
Clean up HDF5 links
1 parent 5447905 commit 1e2f34a

File tree

1 file changed

+37
-54
lines changed

1 file changed

+37
-54
lines changed

tools/create_h5_sample.py

Lines changed: 37 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -522,67 +522,50 @@ def create_encoded_data(parent_group):
522522
continue
523523

524524

525+
def create_links(h5):
526+
print("- Creating links...")
527+
528+
main_group = h5.create_group("links")
529+
dataset = main_group.create_dataset("dataset", data=numpy.int64(10))
530+
group = main_group.create_group("group")
531+
group["something_inside"] = numpy.int64(20)
532+
533+
main_group["hard_link_to_group"] = main_group["group"]
534+
main_group["hard_link_to_dataset"] = main_group["dataset"]
535+
536+
main_group.create_group("hard_recursive_link")
537+
main_group.create_group("hard_recursive_link2")
538+
main_group["hard_recursive_link/link"] = main_group["hard_recursive_link2"]
539+
main_group["hard_recursive_link2/link"] = main_group["hard_recursive_link"]
540+
541+
main_group["soft_link_to_group"] = h5py.SoftLink(group.name)
542+
main_group["soft_link_to_dataset"] = h5py.SoftLink(dataset.name)
543+
main_group["soft_link_to_nothing"] = h5py.SoftLink("/foo/bar/2000")
544+
main_group["soft_link_to_group_link"] = h5py.SoftLink(main_group.name + "/soft_link_to_group")
545+
main_group["soft_link_to_dataset_link"] = h5py.SoftLink(main_group.name + "/soft_link_to_dataset")
546+
main_group["soft_link_to_itself"] = h5py.SoftLink(main_group.name + "/soft_link_to_itself")
547+
548+
# External links to self file
549+
main_group["external_link_to_group"] = h5py.ExternalLink(h5.file.filename, group.name)
550+
main_group["external_link_to_dataset"] = h5py.ExternalLink(h5.file.filename, dataset.name)
551+
main_group["external_link_to_nothing"] = h5py.ExternalLink(h5.file.filename, "/foo/bar/2000")
552+
main_group["external_link_to_missing_file"] = h5py.ExternalLink(h5.file.filename + "_unknown", "/")
553+
main_group["external_link_to_group_link"] = h5py.ExternalLink(h5.file.filename, main_group.name + "/soft_link_to_group")
554+
main_group["external_link_to_dataset_link"] = h5py.ExternalLink(h5.file.filename, main_group.name + "/soft_link_to_dataset")
555+
main_group["external_link_to_itself"] = h5py.ExternalLink(h5.file.filename, main_group.name + "/external_link_to_itself")
556+
main_group["external_link_to_recursive_link2"] = h5py.ExternalLink(h5.file.filename, main_group.name + "/external_link_to_recursive_link3")
557+
main_group["external_link_to_recursive_link3"] = h5py.ExternalLink(h5.file.filename, main_group.name + "/external_link_to_recursive_link2")
558+
main_group["external_link_to_soft_recursive"] = h5py.ExternalLink(h5.file.filename, main_group.name + "/soft_link_to_itself")
559+
560+
525561
def create_file():
526562
filename = "all_types.h5"
527563
print("Creating file '%s'..." % filename)
528564
with h5py.File(filename, "w") as h5:
529565
create_hdf5_types(h5)
530566
create_nxdata_group(h5)
531567
create_encoded_data(h5)
532-
# create_all_links()
533-
# create_recursive_links()
534-
# create_external_recursive_links()
535-
536-
537-
def create_all_links():
538-
with h5py.File("../links.h5", "w") as h5:
539-
g = h5.create_group("group")
540-
g.create_dataset("dataset", data=numpy.int64(10))
541-
h5.create_dataset("dataset", data=numpy.int64(10))
542-
543-
h5["hard_link_to_group"] = h5["/group"]
544-
h5["hard_link_to_dataset"] = h5["/dataset"]
545-
546-
h5["soft_link_to_group"] = h5py.SoftLink("/group")
547-
h5["soft_link_to_dataset"] = h5py.SoftLink("/dataset")
548-
h5["soft_link_to_nothing"] = h5py.SoftLink("/foo/bar/2000")
549-
550-
h5["external_link_to_group"] = h5py.ExternalLink("types.h5", "/arrays")
551-
h5["external_link_to_dataset"] = h5py.ExternalLink("types.h5", "/arrays/cube")
552-
h5["external_link_to_nothing"] = h5py.ExternalLink("types.h5", "/foo/bar/2000")
553-
h5["external_link_to_missing_file"] = h5py.ExternalLink("missing_file.h5", "/")
554-
555-
556-
def create_recursive_links():
557-
with h5py.File("../links_recursive.h5", "w") as h5:
558-
g = h5.create_group("group")
559-
g.create_dataset("dataset", data=numpy.int64(10))
560-
h5.create_dataset("dataset", data=numpy.int64(10))
561-
562-
h5["hard_recursive_link"] = h5["/group"]
563-
g["recursive"] = h5["hard_recursive_link"]
564-
h5["hard_link_to_dataset"] = h5["/dataset"]
565-
566-
h5["soft_link_to_group"] = h5py.SoftLink("/group")
567-
h5["soft_link_to_link"] = h5py.SoftLink("/soft_link_to_group")
568-
h5["soft_link_to_itself"] = h5py.SoftLink("/soft_link_to_itself")
569-
570-
571-
def create_external_recursive_links():
572-
573-
with h5py.File("../links_external_recursive.h5", "w") as h5:
574-
g = h5.create_group("group")
575-
g.create_dataset("dataset", data=numpy.int64(10))
576-
h5["soft_link_to_group"] = h5py.SoftLink("/group")
577-
h5["external_link_to_link"] = h5py.ExternalLink("links_external_recursive_2.h5", "/soft_link_to_group")
578-
h5["external_link_to_recursive_link"] = h5py.ExternalLink("links_external_recursive_2.h5", "/external_link_to_recursive_link")
579-
580-
with h5py.File("../links_external_recursive_2.h5", "w") as h5:
581-
g = h5.create_group("group")
582-
g.create_dataset("dataset", data=numpy.int64(10))
583-
h5["soft_link_to_group"] = h5py.SoftLink("/group")
584-
h5["external_link_to_link"] = h5py.ExternalLink("links_external_recursive.h5", "/soft_link_to_group")
585-
h5["external_link_to_recursive_link"] = h5py.ExternalLink("links_external_recursive.h5", "/external_link_to_recursive_link")
568+
create_links(h5)
586569

587570

588571
def main():

0 commit comments

Comments
 (0)