import pyngres as py
...

def get_error_reports(genParm):
    '''return a list of error reports'''

    error_reports = []
    status = genParm.gp_status

    if status >= py.IIAPI_ST_ERROR:
        # get error information if it is available
        errorHandle = genParm.gp_errorHandle
        if errorHandle:
            gep = py.IIAPI_GETEINFOPARM()
            gep.ge_errorHandle = errorHandle

            while True: 
                py.IIapi_getErrorInfo(gep)
                if gep.ge_status == py.IIAPI_ST_NO_DATA:
                    break

                #  get any additional information to complete the message
                if gep.ge_serverInfoAvail:
                    serverInfo = gep.ge_serverInfo.contents

                    svr_id_error = serverInfo.svr_id_error
                    svr_local_error = serverInfo.svr_local_error
                    svr_id_server = serverInfo.svr_id_server
                    svr_server_type = serverInfo.svr_server_type
                    svr_severity = serverInfo.svr_severity
                    svr_parmCount = serverInfo.svr_parmCount
                   
                    # process the whole svr_parmCount-sized array
                    for i in range(svr_parmCount):
                        svr_parmDescr = serverInfo.svr_parmDescr[i]
                        svr_parmValue = serverInfo.svr_parmValue[i]
                        ...

                message = gep.ge_message.decode()
                SQLSTATE = gep.ge_SQLSTATE.decode()
                error_code = gep.ge_errorCode
                error_report = (status,error_code,SQLSTATE,message)
                error_reports.append(error_report)
        else:
            # report status as an unmappable error
            message = py.IIAPI_ST_MSG[status]
            SQLSTATE = py.II_SS5000K_SQLSTATE_UNAVAILABLE 
            error_code = 39100 # E_GE98BC_OTHER_ERROR, unmappable error
            error_report = (status,error_code,SQLSTATE,message)
            error_reports.append(error_report)

    return error_reports
