Skip to content
Snippets Groups Projects
Commit 27d4959c authored by Henrik tom Wörden's avatar Henrik tom Wörden
Browse files

MAINT: allow default root_name

parent bbbe0fd8
No related branches found
No related tags found
1 merge request!22Release 0.3
Pipeline #10661 passed
...@@ -34,7 +34,9 @@ from caosadvancedtools.scifolder.generic_pattern import readme_pattern ...@@ -34,7 +34,9 @@ from caosadvancedtools.scifolder.generic_pattern import readme_pattern
class ExampleH5CFood(H5CFood): class ExampleH5CFood(H5CFood):
root_name = "ExampleH5" def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.root_name = "ExampleH5"
@staticmethod @staticmethod
def get_re(): def get_re():
......
...@@ -15,8 +15,8 @@ if len(db.execute_query("FIND Property alias")) == 0: ...@@ -15,8 +15,8 @@ if len(db.execute_query("FIND Property alias")) == 0:
h5model = db.Container() h5model = db.Container()
h5file = h5py.File('extroot/ExperimentalData/2010_TestProject/2019-02-03/hdf5_dummy_file.hdf5', 'r') h5file = h5py.File('extroot/ExperimentalData/2010_TestProject/2019-02-03/hdf5_dummy_file.hdf5', 'r')
H5CFood.create_structure(h5file, create_recordTypes=True, collection=h5model) H5CFood.create_structure(h5file, create_recordTypes=True, collection=h5model,
h5model[0].name = "ExampleH5" root_name="ExampleH5")
print(h5model) print(h5model)
h5model = DataModel(h5model) h5model = DataModel(h5model)
h5model.sync_data_model(noquestion=True) h5model.sync_data_model(noquestion=True)
...@@ -112,20 +112,17 @@ class H5CFood(AbstractFileCFood): ...@@ -112,20 +112,17 @@ class H5CFood(AbstractFileCFood):
Attributes Attributes
---------- ----------
root_name : str, default "root"
Type of the root Record (the Record corresponding to the root node in
the HDF5 file)
h5file : h5py.File, default None h5file : h5py.File, default None
Name of the hdf5-file to read Name of the hdf5-file to read
""" """
# to be overwritten by subclasses # to be overwritten by subclasses
root_name = "root"
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
"""CFood which consumes HDF5 files.""" """CFood which consumes HDF5 files."""
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
self.h5file = None self.h5file = None
self.root_name = "root"
self.hdf5Container = db.Container() self.hdf5Container = db.Container()
self.em = EntityMapping() self.em = EntityMapping()
...@@ -152,7 +149,8 @@ class H5CFood(AbstractFileCFood): ...@@ -152,7 +149,8 @@ class H5CFood(AbstractFileCFood):
""" """
# manually create the identifiable root element: self.identifiable_root # manually create the identifiable root element: self.identifiable_root
self.structure = self.create_structure(self.h5file, self.structure = self.create_structure(self.h5file,
special_treatment=self.special_treatment) special_treatment=self.special_treatment,
root_name=self.root_name)
def update_identifiables(self): def update_identifiables(self):
"""Check if the identifiables need to be updated. """Check if the identifiables need to be updated.
...@@ -198,7 +196,7 @@ class H5CFood(AbstractFileCFood): ...@@ -198,7 +196,7 @@ class H5CFood(AbstractFileCFood):
@classmethod @classmethod
def create_structure(cls, h5obj, create_recordTypes=False, collection=None, def create_structure(cls, h5obj, create_recordTypes=False, collection=None,
special_treatment=None): special_treatment=None, root_name="root"):
"""Create Records and Record types from a given hdf5-object for all """Create Records and Record types from a given hdf5-object for all
items in the tree. Attributes are added as properties, the items in the tree. Attributes are added as properties, the
values only if the dimension < 2. values only if the dimension < 2.
...@@ -206,7 +204,11 @@ class H5CFood(AbstractFileCFood): ...@@ -206,7 +204,11 @@ class H5CFood(AbstractFileCFood):
Parameters Parameters
---------- ----------
h5obj : h5py.File h5obj : h5py.File
a hdf5-file object a hdf5-file object
root_name : name that is used instead of '/'
Type of the root Record (the Record corresponding to
the root node in the HDF5 file)
Returns Returns
------- -------
...@@ -223,7 +225,7 @@ class H5CFood(AbstractFileCFood): ...@@ -223,7 +225,7 @@ class H5CFood(AbstractFileCFood):
def special_treatment(x, y, z): return x, y, z def special_treatment(x, y, z): return x, y, z
if h5obj.name == "/": if h5obj.name == "/":
name_without_path = cls.root_name name_without_path = root_name
else: else:
name_without_path = h5obj.name.split("/")[-1] name_without_path = h5obj.name.split("/")[-1]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment