B @`@sddgZddlZddlmZmZddlmZddlZddlm Z m Z m Z ddl m Z mZe dd dddd ZGd ddeejZyeWnek reZZYnXyeeefZeeefZWnefZeefZYnXGd dde ZGd dde ZdS)SolutionStatusSolutionN)iterkeys iteritems)xrange) MapContainer ListContainerignore)Bunch OrderedDictFT)schemasparse num_solutionsZ ignore_timeZignore_defaultsc@sDeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd dZdS)r bestSoFarerrorfeasiblegloballyOptimal infeasiblelocallyOptimaloptimalotherstoppedByLimit unboundedunknownunsurecCs|jS)N)value)selfr>/tmp/pip-unpacked-wheel-bi3529v6/pyomo/opt/results/solution.py__str__-szSolutionStatus.__str__N)__name__ __module__ __qualname__rrrrrrrrrrrrrrrrrrsc@s&eZdZddZddZd dd ZdS) rcCspt||d|jdtjd|d|jdid|jdid|jdid|jdidt|_dS) NZgapstatus)rmessageproblem objectivevariable constraint)r__init__Zdeclarerrdefault_print_options_option)rrrrr)As   zSolution.__init__cCsd|kr|d}|d=||_d|kr8|d}|d=||_d|krT|d}|d=||_d|krp|d}|d=||_t||dS)NVariableZ ConstraintProblem Objective)r'r(r%r&rload)rrepnZtmp_rrrr/Os"z Solution.loadFNcsLd}x@|jD]4}||ks|dkr&qt||}t|jtk r|rX||dd}n|||d|j|||d||dqt|jdkr|||dq|d k} d}|||d |} |d}|j} d} i} ii}d}xrt| D]f\}}| }| d 7} ||<|| |<d||<x8t|D],\}}| sJt |d kr,d||<d}q,WqW|r6xt t | fd ddD]}||r|r|dd}||t |d| |}xht t |D]X}||}t|trt ||krt|}||d|dt |dqWqWn |d| }qWdS)NTr-z: Fz )prefixr0rz : No values )r.:gؗҜz!Solution.pprint..)key z: z No nonzero values )_orderdict __getitem__typerwritepprintlenrmathfabssortedrstr isinstancefloatfloorint capitalize)rostreamoption from_listr2r0firstr9itemZ print_zerosZprefix_rZid_ctrZ id_dict_mapZid_nonzeros_mapZentries_to_printZ entry_nameZ entry_dictZentry_id attr_name attr_valuer)r6rr@csb   4 zSolution.pprint)Fr1N)r r!r"r)r/r@rrrrr?sc@s@eZdZddZddZddZddd Zdd d ZddZd S) SolutionSetcCst|tt|_dS)N)rr)rr*r+)rrrrr)s zSolutionSet.__init__cCs|js|js|jstS|jr8t|dkr8|||jdkrLt|}nt|jt|}d}g}x0|jD]&}| | ||d}||krlPqlWt dt|fd|fgg|S)Nrr4znumber of solutionsznumber of solutions displayed) r _active _requiredr rAaddrmin_listappend_repn_r )rrLnumitmprOrrrrYs    zSolutionSet._repn_cCs t|jS)N)rArW)rrrr__len__szSolutionSet.__len__r4cCs|j|dS)Nr4)rW)rr[rrr__call__szSolutionSet.__call__r1Nc Cs|js|js|jstS|d||dd}x>|dD]2}||||dt|d|dd}q s2 l