B _ @s\ddlTddlTddlmZddlTddlZddlZddlZddl m Z Gddde Z dS))*) phextensionN) iteritemsc@sfeZdZeejddZddZddZddZ d d Z d d Z d dZ ddZ ddZddZdS) schuripwritercCs |dS)N)__init__)selfphr D/tmp/pip-unpacked-wheel-d4p3hk07/pyomo/pysp/plugins/schuripwriter.pyreset"szschuripwriter.resetcCsdS)Nr )rrr r r pre_ph_initialization%sz#schuripwriter.pre_ph_initializationcCsdS)Nr )rrr r r post_instance_creation(sz$schuripwriter.post_instance_creationcCstdtdd}td|t|tjd}|j}d}xt |j D]\}}t t j d|_ xDt |jD]6\}} t||} x"| D]} | | } |j | dqWqtW|tjdt|d } ||| d d |j}|d7}qRWtd |td dS)NzCalled after PH initialization!z,Writing out PySP files for input to Schur IPZschuripzrm -rf nl) directionZScenarioz.nlcSsdS)NTr )xr r r Jz6schuripwriter.post_ph_initialization..z8NL files for PySP instance written to output directory: r)printossystemmkdirpyomooptZ WriterFactoryZ_scenario_treeZ findRootNoderZ _instancesZSuffixZLOCALZlqmZ_variable_indicesgetattr set_valuesepstrZ_symbolic_solver_labelssysexit)rrZoutput_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)rrr r r post_iteration_0_solvesRsz%schuripwriter.post_iteration_0_solvescCs tddS)NzQCalled after the iteration 0 solves, averages computation, and weight computation)r)rrr r r post_iteration_0Uszschuripwriter.post_iteration_0cCsdS)Nr )rrr r r pre_iteration_k_solvesXsz$schuripwriter.pre_iteration_k_solvescCs tddS)Nz$Called after the iteration k solves!)r)rrr r r post_iteration_k_solves\sz%schuripwriter.post_iteration_k_solvescCs tddS)Nz)Called after an iteration k has finished!)r)rrr r r post_iteration_k_szschuripwriter.post_iteration_kcCs tddS)NzCalled after PH has terminated!)r)rrr r r post_ph_executionbszschuripwriter.post_ph_executionN)__name__ __module__ __qualname__Z implementsrZ IPHExtensionr r r r$r%r&r'r(r)r*r r r r rs 'r) Z pyutilib.miscZpyomo.common.pluginZ pyomo.pysprZ pyomo.coreZ pyomo.optrrrsixrZSingletonPluginrr r r r  s