Changeset c8c291b for python


Ignore:
Timestamp:
01/11/19 20:01:29 (6 years ago)
Author:
Thomas Uram <turam@…>
Branches:
master, pympi
Children:
33686f4
Parents:
dd56945
git-author:
Thomas Uram <turam@…> (01/11/19 20:01:29)
git-committer:
Thomas Uram <turam@…> (01/11/19 20:01:29)
Message:

Allow read of multiple variables with one call

File:
1 edited

Legend:

Unmodified
Added
Removed
  • python/genericio.py

    rdd56945 rc8c291b  
    7575libpygio.inspect_gio.argtypes=[ct.c_char_p] 
    7676 
    77 def gio_read(file_name,var_name): 
     77def gio_read_(file_name,var_name): 
    7878    if sys.version_info[0] == 3: 
    7979        file_name = bytes(file_name,'ascii') 
     
    8989    elif(var_type==0): 
    9090        #float 
    91         result = np.ndarray((var_size,field_count),dtype=np.float32) 
     91        result = np.ndarray((var_size),dtype=np.float32) 
    9292        libpygio.read_gio_float(file_name,var_name,result.ctypes.data_as(ct.POINTER(ct.c_float)),field_count) 
    9393        return result 
    9494    elif(var_type==1): 
    9595        #double 
    96         result = np.ndarray((var_size,field_count),dtype=np.float64) 
     96        result = np.ndarray((var_size),dtype=np.float64) 
    9797        libpygio.read_gio_double(file_name,var_name,result.ctypes.data_as(ct.POINTER(ct.c_double)),field_count) 
    9898        return result 
    9999    elif(var_type==2): 
    100100        #int32 
    101         result = np.ndarray((var_size,field_count),dtype=np.int32) 
     101        result = np.ndarray((var_size),dtype=np.int32) 
    102102        libpygio.read_gio_int32(file_name,var_name,result.ctypes.data_as(ct.POINTER(ct.c_int32)),field_count) 
    103103        return result 
    104104    elif(var_type==3): 
    105105        #int64 
    106         result = np.ndarray((var_size,field_count),dtype=np.int64) 
     106        result = np.ndarray((var_size),dtype=np.int64) 
    107107        libpygio.read_gio_int64(file_name,var_name,result.ctypes.data_as(ct.POINTER(ct.c_int64)),field_count) 
    108108        return result         
     
    112112        libpygio.read_gio_uint16(file_name,var_name,result.ctypes.data_as(ct.POINTER(ct.c_uint16)),field_count) 
    113113        return result 
     114 
     115def gio_read(file_name,var_names): 
     116    ret = [] 
     117    if not isinstance(var_names,list): 
     118        var_names = [ var_names ] 
     119    for var_name in var_names: 
     120        ret.append( gio_read_(file_name,var_name) ) 
     121    return np.array( ret ) 
    114122 
    115123def gio_has_variable(file_name,var_name): 
Note: See TracChangeset for help on using the changeset viewer.