MCPcopy Create free account
hub / github.com/PyTables/PyTables / read_file

Function read_file

bench/table-bench.py:142–243  ·  view source on GitHub ↗
(filename, recsize, verbose)

Source from the content-addressed store, hash-verified

140
141
142def read_file(filename, recsize, verbose):
143 # Open the HDF5 file in read-only mode
144
145 fileh = tb.open_file(filename, mode="r")
146 rowsread = 0
147 for groupobj in fileh.walk_groups(fileh.root):
148 # print "Group pathname:", groupobj._v_pathname
149 row = 0
150 for table in fileh.list_nodes(groupobj, "Table"):
151 rowsize = table.rowsize
152 print("reading", table)
153 if verbose:
154 print("Max rows in buf:", table.nrowsinbuf)
155 print("Rows in", table._v_pathname, ":", table.nrows)
156 print("Buffersize:", table.rowsize * table.nrowsinbuf)
157 print("MaxTuples:", table.nrowsinbuf)
158
159 if recsize == "big" or recsize == "medium":
160 # e = [ p.float1 for p in table.iterrows()
161 # if p.grid_i < 2 ]
162 # e = [ str(p) for p in table.iterrows() ]
163 # if p.grid_i < 2 ]
164 # e = [ p['grid_i'] for p in table.iterrows()
165 # if p['grid_j'] == 20 and p['grid_i'] < 20 ]
166 # e = [ p['grid_i'] for p in table
167 # if p['grid_i'] <= 2 ]
168 # e = [ p['grid_i'] for p in table.where("grid_i<=20")]
169 # e = [ p['grid_i'] for p in
170 # table.where('grid_i <= 20')]
171 e = [
172 p["grid_i"]
173 for p in table.where("(grid_i <= 20) & (grid_j == 20)")
174 ]
175 # e = [ p['grid_i'] for p in table.iterrows()
176 # if p.nrow() == 20 ]
177 # e = [ table.delrow(p.nrow()) for p in table.iterrows()
178 # if p.nrow() == 20 ]
179 # The version with a for loop is only 1% better than
180 # comprenhension list
181 # e = []
182 # for p in table.iterrows():
183 # if p.grid_i < 20:
184 # e.append(p.grid_j)
185 else: # small record case
186 # e = [ p['var3'] for p in table.iterrows()
187 # if p['var2'] < 20 and p['var3'] < 20 ]
188 # e = [ p['var3'] for p in table.where("var3 <= 20")
189 # if p['var2'] < 20 ]
190 # e = [ p['var3'] for p in table.where("var3 <= 20")]
191 # Cuts 1) and 2) issues the same results but 2) is about 10 times faster
192 # Cut 1)
193 # e = [ p.nrow() for p in
194 # table.where(table.cols.var2 > 5)
195 # if p["var2"] < 10]
196 # Cut 2)
197 # e = [ p.nrow() for p in
198 # table.where(table.cols.var2 < 10)
199 # if p["var2"] > 5]

Callers 1

table-bench.pyFile · 0.70

Calls 4

walk_groupsMethod · 0.80
list_nodesMethod · 0.80
whereMethod · 0.80
closeMethod · 0.45

Tested by

no test coverage detected