Not sure what you mean from what I see, it looks like you got the optimal solution.
Did you try to extract your solution values like?
for var in self.prob.variables():
if var.varValue is not None:
f.write(f"{var.name} = {var.varValue}\n")