(filename, recsize, verbose)
| 140 | |
| 141 | |
| 142 | def 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] |
no test coverage detected