Philipp,
I think I'm just confused on the use case for this. If I understand correctly, you want to partially read a table for it's metadata and not read results. Are there cases you do want to read the results for a given table? If there's not, you can find the appropriate table4 function for the table you're interested in and modify it. You can do this externally to pyNastran.
For the OEE/ONR (strain energy table) you can do something like:
class OP2_mod(OP2):
def __init__(*args, **kwargs): # might need fixing
OP2.__init__(*args, **kwargs) # might need fixing
self.onr_meta_data_for = {}
def _read_onr1_4(self, data):
# save the parameters of interest
return len(data)
op2 = OP2_mod()
op2.read_op2(op2_filename)
Also, the GEOM-type tables are disabled as they are buggy and increase the complexity of the OP2 class (they use the BDF class). You can reenable them in op2.py by uncommenting the inheritances and updating the table_mapper in the _get_table_mapper function to point to the proper table3 or table4 function instead of _table_passer.
Steve