B @` @sdddlmZmZddlmZddlmZddlmZddl Z ddl Z ddl m Z GdddeZ dS) ) implementsSingletonPlugin) phextension)Suffix) WriterFactoryN) iteritemsc@sfeZdZeejddZddZddZddZ d d Z d d Z d dZ ddZ ddZddZdS) schuripwritercCs |dS)N)__init__)selfphr D/tmp/pip-unpacked-wheel-bi3529v6/pyomo/pysp/plugins/schuripwriter.pyreset szschuripwriter.resetcCsdS)Nr )r r r r r pre_ph_initialization#sz#schuripwriter.pre_ph_initializationcCsdS)Nr )r r r r r post_instance_creation&sz$schuripwriter.post_instance_creationcCstdtdd}td|t|td}|j}d}xt|jD]\}}t t j d|_ xDt|j D]6\}} t ||} x"| D]} | | } |j | dqWqpW|tjdt|d } ||| d d |j}|d7}qNWtd |td dS)NzCalled after PH initialization!z,Writing out PySP files for input to Schur IPZschuripzrm -rf nl) directionZScenarioz.nlcSsdS)NTr )xr r r Hz6schuripwriter.post_ph_initialization..z8NL files for PySP instance written to output directory: r)printossystemmkdirrZ_scenario_treeZ findRootNoderZ _instancesrZLOCALZlqmZ_variable_indicesgetattr set_valuesepstrZ_symbolic_solver_labelssysexit)r r Zoutput_directory_nameZ nl_writerZ root_nodeZscenario_numberZ instance_nameinstanceZ variable_nameZvariable_indicesvariableindexZ var_valueZscenario_output_filenameresultr r r post_ph_initialization)s(      z$schuripwriter.post_ph_initializationcCs tddS)Nz$Called after the iteration 0 solves!)r)r r r r r post_iteration_0_solvesPsz%schuripwriter.post_iteration_0_solvescCs tddS)NzQCalled after the iteration 0 solves, averages computation, and weight computation)r)r r r r r post_iteration_0Sszschuripwriter.post_iteration_0cCsdS)Nr )r r r r r pre_iteration_k_solvesVsz$schuripwriter.pre_iteration_k_solvescCs tddS)Nz$Called after the iteration k solves!)r)r r r r r post_iteration_k_solvesZsz%schuripwriter.post_iteration_k_solvescCs tddS)Nz)Called after an iteration k has finished!)r)r r r r r post_iteration_k]szschuripwriter.post_iteration_kcCs tddS)NzCalled after PH has terminated!)r)r r r r r post_ph_execution`szschuripwriter.post_ph_executionN)__name__ __module__ __qualname__rrZ IPHExtensionrrrr%r&r'r(r)r*r+r r r r rs 'r)Zpyomo.common.pluginrrZ pyomo.pysprZ pyomo.corerZ pyomo.optrrrsixrrr r r r  s