def findSolutionValues(self, lp):
    model = lp.solverModel
    solutionStatus = model.Status
    GRB = gurobipy.GRB
    gurobiLpStatus = {GRB.OPTIMAL: constants.LpStatusOptimal, GRB.INFEASIBLE: constants.LpStatusInfeasible, GRB.INF_OR_UNBD: constants.LpStatusInfeasible, GRB.UNBOUNDED: constants.LpStatusUnbounded, GRB.ITERATION_LIMIT: constants.LpStatusNotSolved, GRB.NODE_LIMIT: constants.LpStatusNotSolved, GRB.TIME_LIMIT: constants.LpStatusNotSolved, GRB.SOLUTION_LIMIT: constants.LpStatusNotSolved, GRB.INTERRUPTED: constants.LpStatusNotSolved, GRB.NUMERIC: constants.LpStatusNotSolved}
    try:
        for (var, value) in zip(lp.variables(), model.getAttr(GRB.Attr.X, model.getVars())):
            var.varValue = value
    except (gurobipy.GurobiError, AttributeError):
        pass
    try:
        for (var, value) in zip(lp.variables(), model.getAttr(GRB.Attr.RC, model.getVars())):
            var.dj = value
    except (gurobipy.GurobiError, AttributeError):
        pass
    try:
        for (constr, value) in zip(lp.constraints.values(), model.getAttr(GRB.Pi, model.getConstrs())):
            constr.pi = value
    except (gurobipy.GurobiError, AttributeError):
        pass
    try:
        for (constr, value) in zip(lp.constraints.values(), model.getAttr(GRB.Slack, model.getConstrs())):
            constr.slack = value
    except (gurobipy.GurobiError, AttributeError):
        pass
    if self.msg:
        print('Gurobi status=', solutionStatus)
    lp.resolveOK = True
    for var in lp.variables():
        var.isModified = False
    status = gurobiLpStatus.get(solutionStatus, constants.LpStatusUndefined)
    lp.assignStatus(status)
    return status
def findSolutionValues(self, lp):
    model = lp.solverModel
    solutionStatus = model.Status
    GRB = gurobipy.GRB
    gurobiLpStatus = {GRB.OPTIMAL: constants.LpStatusOptimal, GRB.INFEASIBLE: constants.LpStatusInfeasible, GRB.INF_OR_UNBD: constants.LpStatusInfeasible, GRB.UNBOUNDED: constants.LpStatusUnbounded, GRB.ITERATION_LIMIT: constants.LpStatusNotSolved, GRB.NODE_LIMIT: constants.LpStatusNotSolved, GRB.TIME_LIMIT: constants.LpStatusNotSolved, GRB.SOLUTION_LIMIT: constants.LpStatusNotSolved, GRB.INTERRUPTED: constants.LpStatusNotSolved, GRB.NUMERIC: constants.LpStatusNotSolved}
    try:
        for (var, value) in zip(lp.variables(), model.getAttr(GRB.Attr.X, model.getVars())):
            var.varValue = value
    except (gurobipy.GurobiError, AttributeError):
        pass
    try:
        for (var, value) in zip(lp.variables(), model.getAttr(GRB.Attr.RC, model.getVars())):
            var.dj = value
    except (gurobipy.GurobiError, AttributeError):
        pass
    try:
        for (constr, value) in zip(lp.constraints.values(), model.getAttr(GRB.Pi, model.getConstrs())):
            constr.pi = value
    except (gurobipy.GurobiError, AttributeError):
        pass
    try:
        for (constr, value) in zip(lp.constraints.values(), model.getAttr(GRB.Slack, model.getConstrs())):
            constr.slack = value
    except (gurobipy.GurobiError, AttributeError):
        pass
    if self.msg:
        print('Gurobi status=', solutionStatus)
    lp.resolveOK = True
    for var in lp.variables():
        var.isModified = False
    status = gurobiLpStatus.get(solutionStatus, constants.LpStatusUndefined)
    lp.assignStatus(status)
    return status