B _S@s$ddlmZd ddZd ddZdS) ) iteritemsTFc csd|dkr|jdd}n|j}x>|D]4}|j}|rFt|ddd}x|D]}t|j}|rrt|ddd}x|D]\} } |s| |jkrqxd} d} d} t| stx4| D],\}}|jdkrd} |j dkr| d 7} d} qW| | | kst| dkrB| t|j krB|j | \}}t d |t|d t| d |j||| | | | fVqxWqNWq&WdS) NFcSs|jS)N)name)nr9/tmp/pip-unpacked-wheel-d4p3hk07/pyomo/pysp/generators.py1z8scenario_tree_node_variables_generator..)keycSs|dS)Nrr)xrrrr7r rTz Variable=z is fixed in zD scenarios, which is less than the number of scenarios at tree node=)_stages _tree_nodessortedrZ_variable_datas_derived_variable_idslenAssertionErrorstaleZfixedis_variable_fixed _scenarios _variable_ids RuntimeErrorstr_name) scenario_treeincludeDerivedVariablesincludeLastStagesortstages_to_iteratestage tree_nodes tree_nodevariter variable_idZvariable_datasis_staleis_fixedinstance_fixed_countZvar_dataZscenario_probability variable_nameindexrrr&scenario_tree_node_variables_generator#sJ      (r)c csX|dkr|jdd}n|j}x2|D](}|j}|rFt|ddd}x|D]}|j}|rdt|}x|D]} |s~| |jkr~qjg} || } d} d} xN|jD]D}||| rd} ||| r| d7} | |j |j | |j fqW| dkr6| t |jkr6|j| \}}t d |t|d t| d |j ||| | | | fVqjWqNWq&WdS) NFrcSs|jS)N)r)rrrrrmr zDscenario_tree_node_variables_generator_noinstances..)r rTr z Variable=z is fixed in zD scenarios, which is less than the number of scenarios at tree node=)r rrrrrrZis_variable_staleappend_xrZ _probabilityrrr)rrrrrrr r!r"r#Zvariable_valuesr%r$r&Zscenarior'r(rrr2scenario_tree_node_variables_generator_noinstances_sJ        (r,N)TTF)TTF)sixrr)r,rrrr s  :