3838
3939class Block (Entity ):
4040
41- def __init__ (self , nixparent , h5group , compression = Compression .Auto ):
42- super (Block , self ).__init__ (nixparent , h5group )
41+ def __init__ (self , nixfile , nixparent , h5group ,
42+ compression = Compression .Auto ):
43+ super (Block , self ).__init__ (nixfile , nixparent , h5group )
4344 self ._groups = None
4445 self ._data_arrays = None
4546 self ._tags = None
@@ -49,9 +50,10 @@ def __init__(self, nixparent, h5group, compression=Compression.Auto):
4950 self ._data_frames = None
5051
5152 @classmethod
52- def _create_new (cls , nixparent , h5parent , name , type_ , compression ):
53- newentity = super (Block , cls )._create_new (nixparent , h5parent ,
54- name , type_ )
53+ def create_new (cls , nixparent , h5parent , name , type_ , compression ):
54+ nixfile = nixparent # file is parent
55+ newentity = super (Block , cls ).create_new (nixfile , nixparent , h5parent ,
56+ name , type_ )
5557 newentity ._compr = compression
5658 return newentity
5759
@@ -101,8 +103,8 @@ def create_multi_tag(self, name="", type_="", positions=None,
101103 "{}-extents" .format (type_ ),
102104 data = extents )
103105 extcreated = True
104- mtag = MultiTag ._create_new ( self , multi_tags ,
105- name , type_ , positions )
106+ mtag = MultiTag .create_new ( self . file , self , multi_tags ,
107+ name , type_ , positions )
106108 except Exception as e :
107109 msg = "MultiTag Creation Failed"
108110 if poscreated :
@@ -150,7 +152,7 @@ def create_tag(self, name="", type_="", position=0,
150152 tags = self ._h5group .open_group ("tags" )
151153 if name in tags :
152154 raise exceptions .DuplicateName ("create_tag" )
153- tag = Tag ._create_new ( self , tags , name , type_ , position )
155+ tag = Tag .create_new ( self . file , self , tags , name , type_ , position )
154156 return tag
155157
156158 # Source
@@ -170,7 +172,7 @@ def create_source(self, name, type_):
170172 sources = self ._h5group .open_group ("sources" )
171173 if name in sources :
172174 raise exceptions .DuplicateName ("create_source" )
173- src = Source ._create_new ( self , sources , name , type_ )
175+ src = Source .create_new ( self . file , self , sources , name , type_ )
174176 return src
175177
176178 # Group
@@ -190,7 +192,7 @@ def create_group(self, name, type_):
190192 groups = self ._h5group .open_group ("groups" )
191193 if name in groups :
192194 raise exceptions .DuplicateName ("open_group" )
193- grp = Group ._create_new ( self , groups , name , type_ )
195+ grp = Group .create_new ( self . file , self , groups , name , type_ )
194196 return grp
195197
196198 def create_data_array (self , name = "" , array_type = "" , dtype = None , shape = None ,
@@ -250,8 +252,8 @@ def create_data_array(self, name="", array_type="", dtype=None, shape=None,
250252 raise exceptions .DuplicateName ("create_data_array" )
251253 if compression == Compression .Auto :
252254 compression = self ._compr
253- da = DataArray ._create_new ( self , data_arrays , name , array_type ,
254- dtype , shape , compression )
255+ da = DataArray .create_new ( self . file , self , data_arrays , name , array_type ,
256+ dtype , shape , compression )
255257 if data is not None :
256258 da .write_direct (data )
257259 return da
@@ -328,7 +330,7 @@ def create_data_frame(self, name="", type_="", col_dict=None,
328330 )
329331 else : # col_dtypes is None and data is None
330332 raise ValueError (
331- "The data type of each column have to be specified"
333+ "The data type of each column have to be specified"
332334 )
333335 if len (col_names ) != len (col_dict ):
334336 raise exceptions .DuplicateColumnName
@@ -348,7 +350,7 @@ def create_data_frame(self, name="", type_="", col_dict=None,
348350 # data is None or type(data[0]) != np.void
349351 # data_type doesnt matter
350352 raise ValueError (
351- "No information about column names is provided!"
353+ "No information about column names is provided!"
352354 )
353355
354356 if col_dict is not None :
@@ -362,8 +364,8 @@ def create_data_frame(self, name="", type_="", col_dict=None,
362364 dt_arr = list (col_dict .items ())
363365 col_dtype = np .dtype (dt_arr )
364366
365- df = DataFrame ._create_new ( self , data_frames , name ,
366- type_ , shape , col_dtype , compression )
367+ df = DataFrame .create_new ( self . file , self , data_frames , name ,
368+ type_ , shape , col_dtype , compression )
367369
368370 if data is not None :
369371 if type (data [0 ]) == np .void :
@@ -510,7 +512,7 @@ def sources(self):
510512 This is a read only attribute.
511513 """
512514 if self ._sources is None :
513- self ._sources = SourceContainer ("sources" , self , Source )
515+ self ._sources = SourceContainer ("sources" , self . file , self , Source )
514516 return self ._sources
515517
516518 @property
@@ -522,7 +524,8 @@ def multi_tags(self):
522524 This is a read only attribute.
523525 """
524526 if self ._multi_tags is None :
525- self ._multi_tags = Container ("multi_tags" , self , MultiTag )
527+ self ._multi_tags = Container ("multi_tags" , self .file ,
528+ self , MultiTag )
526529 return self ._multi_tags
527530
528531 @property
@@ -534,7 +537,7 @@ def tags(self):
534537 This is a read only attribute.
535538 """
536539 if self ._tags is None :
537- self ._tags = Container ("tags" , self , Tag )
540+ self ._tags = Container ("tags" , self . file , self , Tag )
538541 return self ._tags
539542
540543 @property
@@ -547,13 +550,15 @@ def data_arrays(self):
547550 This is a read only attribute.
548551 """
549552 if self ._data_arrays is None :
550- self ._data_arrays = Container ("data_arrays" , self , DataArray )
553+ self ._data_arrays = Container ("data_arrays" , self .file ,
554+ self , DataArray )
551555 return self ._data_arrays
552556
553557 @property
554558 def data_frames (self ):
555559 if self ._data_frames is None :
556- self ._data_frames = Container ("data_frames" , self , DataFrame )
560+ self ._data_frames = Container ("data_frames" , self .file ,
561+ self , DataFrame )
557562 return self ._data_frames
558563
559564 @property
@@ -565,7 +570,7 @@ def groups(self):
565570 This is a read only attribute.
566571 """
567572 if self ._groups is None :
568- self ._groups = Container ("groups" , self , Group )
573+ self ._groups = Container ("groups" , self . file , self , Group )
569574 return self ._groups
570575
571576 # metadata
@@ -579,7 +584,8 @@ def metadata(self):
579584 :type: Section
580585 """
581586 if "metadata" in self ._h5group :
582- return Section (None , self ._h5group .open_group ("metadata" ))
587+ return Section (self .file , None ,
588+ self ._h5group .open_group ("metadata" ))
583589 else :
584590 return None
585591
0 commit comments