Index: python/genericio.py
===================================================================
--- python/genericio.py	(revision c13d9734af5eff37fc34c7a21894f5ae895c4ee4)
+++ python/genericio.py	(revision c13d9734af5eff37fc34c7a21894f5ae895c4ee4)
@@ -0,0 +1,101 @@
+#                    Copyright (C) 2015, UChicago Argonne, LLC
+#                               All Rights Reserved
+# 
+#                               Generic IO (ANL-15-066)
+#                     Hal Finkel, Argonne National Laboratory
+# 
+#                              OPEN SOURCE LICENSE
+# 
+# Under the terms of Contract No. DE-AC02-06CH11357 with UChicago Argonne,
+# LLC, the U.S. Government retains certain rights in this software.
+# 
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# 
+#   1. Redistributions of source code must retain the above copyright notice,
+#      this list of conditions and the following disclaimer.
+# 
+#   2. Redistributions in binary form must reproduce the above copyright
+#      notice, this list of conditions and the following disclaimer in the
+#      documentation and/or other materials provided with the distribution.
+# 
+#   3. Neither the names of UChicago Argonne, LLC or the Department of Energy
+#      nor the names of its contributors may be used to endorse or promote
+#      products derived from this software without specific prior written
+#      permission.
+# 
+# *****************************************************************************
+# 
+#                                  DISCLAIMER
+# THE SOFTWARE IS SUPPLIED "AS IS" WITHOUT WARRANTY OF ANY KIND.  NEITHER THE
+# UNTED STATES GOVERNMENT, NOR THE UNITED STATES DEPARTMENT OF ENERGY, NOR
+# UCHICAGO ARGONNE, LLC, NOR ANY OF THEIR EMPLOYEES, MAKES ANY WARRANTY,
+# EXPRESS OR IMPLIED, OR ASSUMES ANY LEGAL LIABILITY OR RESPONSIBILITY FOR THE
+# ACCURACY, COMPLETENESS, OR USEFULNESS OF ANY INFORMATION, DATA, APPARATUS,
+# PRODUCT, OR PROCESS DISCLOSED, OR REPRESENTS THAT ITS USE WOULD NOT INFRINGE
+# PRIVATELY OWNED RIGHTS.
+# 
+# *****************************************************************************
+
+import numpy as np
+import ctypes as ct
+import os
+
+#Define where the library is and load it
+_path = os.path.dirname(__file__)
+libpygio = ct.CDLL(_path + '/../frontend/libpygio.so')
+#we need to define the return type ("restype") and
+#the argument types
+libpygio.get_elem_num.restype=ct.c_int64
+libpygio.get_elem_num.argtypes=[ct.c_char_p]
+
+libpygio.get_variable_type.restype=ct.c_int
+libpygio.get_variable_type.argtypes=[ct.c_char_p,ct.c_char_p]
+
+libpygio.read_gio_int32.restype=None
+libpygio.read_gio_int32.argtypes=[ct.c_char_p,ct.c_char_p,ct.POINTER(ct.c_int)]
+
+libpygio.read_gio_int64.restype=None
+libpygio.read_gio_int64.argtypes=[ct.c_char_p,ct.c_char_p,ct.POINTER(ct.c_int64)]
+
+libpygio.read_gio_float.restype=None
+libpygio.read_gio_float.argtypes=[ct.c_char_p,ct.c_char_p,ct.POINTER(ct.c_float)]
+
+libpygio.read_gio_double.restype=None
+libpygio.read_gio_double.argtypes=[ct.c_char_p,ct.c_char_p,ct.POINTER(ct.c_double)]
+
+libpygio.inspect_gio.restype=None
+libpygio.inspect_gio.argtypes=[ct.c_char_p]
+
+def gio_read(file_name,var_name):
+    var_size = libpygio.get_elem_num(file_name)
+    var_type = libpygio.get_variable_type(file_name,var_name)
+    if(var_type==10):
+        print "Variable not found"
+        return
+    elif(var_type==9):
+        print "variable type not known (not int32/int64/float/double)"
+    elif(var_type==0):
+        #float
+        result = np.ndarray(var_size,dtype=np.float32)
+        libpygio.read_gio_float(file_name,var_name,result.ctypes.data_as(ct.POINTER(ct.c_float)))
+        return result
+    elif(var_type==1):
+        #double
+        result = np.ndarray(var_size,dtype=np.float64)
+        libpygio.read_gio_double(file_name,var_name,result.ctypes.data_as(ct.POINTER(ct.c_double)))
+        return result
+    elif(var_type==2):
+        #int32
+        result = np.ndarray(var_size,dtype=np.int32)
+        libpygio.read_gio_int32(file_name,var_name,result.ctypes.data_as(ct.POINTER(ct.c_int32)))
+        return result
+    elif(var_type==3):
+        #int64
+        result = np.ndarray(var_size,dtype=np.int64)
+        libpygio.read_gio_int64(file_name,var_name,result.ctypes.data_as(ct.POINTER(ct.c_int64)))
+        return result        
+        
+def gio_inspect(file_name):
+    libpygio.inspect_gio(file_name)
+
