--
You received this message because you are subscribed to the Google Groups "Pyomo Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pyomo-forum...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
and the docstring only gives me the string representation of the solution, which is not what I want. Is there any documentation on SolutionSet? I could not find it. In fact, to me the big advantage of using Python/Pyomo in the first place is that I can seamlessly integrate pre- and postprocessing code.
1) In general, the publically-documented API is very stable. Our general policy is that things that are documented in The Book (APIs & examples) will work through the major release that the book covers. The first edition applies to the Coopr 3.x series. The second edition (we are finishing it now) will cover the yet-to-be released 5.x series. There are only a few backwards incompatibilities between 4.x and 3.x. The key ones are documented here: http://www.pyomo.org/blog/2015/12/26/updating-to-pyomo-41 Note that public APIs that are not documented in the book (e.g., DAE, GDP, etc) are more flexible and may change – although we try to maintain backwards compatibility where we can. Finally, anything beginning with an underscore (_) should be considered private, and we are at liberty to change or eliminate it with no warning.
2) (see above). We don’t have a formal document describing the API, although we are planning to include one covering key public APIs in the Second edition of the book.
3) This was a performance issue: generating the results object is rather expensive for large models. Historically, Pyomo was separated from the more generic solver interfaces in coopr.opt. As part of the move from Coopr to Pyomo, we have started to remove that separation. In almost every case, the user would (should) just load the results back into the instance and query the results in the context of the instance. This is because, for example, the results object may not have all the variables or information you want (e.g., if the variable was not used in any constraint, it will not be sent to the solver). SO, we changed things so that – by default – the results from a solve() are directly put into the instance. If you still need a results object (and I would argue that most people do not) you can create it by “storing the results from an instance into the results object”. The instance is not modified by store_to (literally, we are storing the results to the results object). Our primary use for the store_to method and the SolutionSet portion of the results object is for certain scripting cases where we need a convenient mechanism for transmitting solver results in a distributed environment.
4) In general the solution portion of results objects are meant to be opaque and really shouldn’t be interrogated by users. Bill may want to say more here.
john