@logExceptions(_LOGGER)<EOL><INDENT>def modelsGetResultAndStatus(self, modelIDs):<DEDENT>
assert isinstance(modelIDs, self._SEQUENCE_TYPES), (<EOL>"<STR_LIT>") % type(modelIDs)<EOL>assert len(modelIDs) >= <NUM_LIT:1>, "<STR_LIT>"<EOL>rows = self._getMatchingRowsWithRetries(<EOL>self._models, {'<STR_LIT>' : modelIDs},<EOL>[self._models.pubToDBNameDict[f]<EOL>for f in self._models.getResultAndStatusNamedTuple._fields])<EOL>assert len(rows) == len(modelIDs), "<STR_LIT>" % (<EOL>(set(modelIDs) - set(r[<NUM_LIT:0>] for r in rows)),)<EOL>return [self._models.getResultAndStatusNamedTuple._make(r) for r in rows]<EOL>
Get the results string and other status fields for a set of models.

        WARNING!!!: The order of the results are NOT necessarily in the same order
        as the order of the model IDs passed in!!!

        For each model, this returns a tuple containing:
         (modelID, results, status, updateCounter, numRecords, completionReason,
             completionMsg, engParamsHash

        Parameters:
        ----------------------------------------------------------------
        modelIDs:    list of model IDs
        retval:      list of result tuples. Each tuple contains:
                        (modelID, results, status, updateCounter, numRecords,
                          completionReason, completionMsg, engParamsHash)