B u `7@sddlZddlZddlZddlZddlZddlZddlZddlZddl m Z ddl m Z ddl mZddlZeddddZedd d dZed d d d ZeddddZeddddZeddddZeddd ddZeddd!ddZeddddZdS)"N)Options) SolverResults) pyomo_commandpyomo_nsz#Launch a Pyro name server for PyomocCstjdS)N)pyutilibpyroZstart_nsrr& pyro_mip_server.T)shellzpyro_mip_servers.pidsw z+PIDs for launched servers recorded in file=)rrrrrrrrange subprocessPopenr appendrwriter)Z num_serversZ server_pidsiZoutput_filenamer Zpid_output_filenameZpid_output_filerrr r!4s"   OSSolverServicezLaunch an OS solver servicec Csddl}ttjdkr(tdtdd}d}d}x\|ttjkrtj|dkrf|d}tj|}n tj|dkr|d}tj|}|d}q6Wtd|d||j|}|j||jj j dWdQRXdS) Nrr z/OSSolverService -osil -solver z-osilz-solverosilFilesolver)Zrformat) pyomo.optrrrrroptZ SolverFactoryZsolveZ ResultsFormatZosrl)pyomor,r-r*r/rrr r+Ts$    readsolzRead and print a *.sol filecCs.ddl}|jd}|tjd}|dS)NrZsolr )r.r/Z ReaderFactoryrrr))r0readerZsolnrrr r1ms  pyomo_pythonz/Launch script using Pyomo's python installationcCsr|dkrtjdd}|dks*t|dkrDt}|dtjn*tjdd|}t j j |tj tj ddS)Nr rzPyomo Python Console  )stdoutstderr)rrrcodeZInteractiveConsoleZinteractversion executablejoinrr&runr5r6)argsconsolecmdrrr r3usr0z$The main command interface for PyomocCs6tjj}|dkr|}n ||}||dS)N)r0 scriptingZ pyomo_parserZ get_parser parse_argsfunc)r<parserretrrr r0s    results_schemaz0Print the predefined schema for a results objectcCsFttjdkrtdtdd}t}||}|jtj||ddS)Nr zGresults_schema - Print the predefined schema in a SolverResults objectT)Zschema)repn) rrrrrrZ_repn_pprintr5)optionsrrErrr rDs   )N)N)r7rrrrr&Zpyutilib.subprocessrZ pyutilib.pyroZpyomo.common.collectionsrr.rZpyomo.common._commandrZpyomo.scripting.pyomo_parserr0rr r r!r+r1r3rDrrrr  s,