B ÔÂ_ ã@sBddlZddlTddlmZGdd„dejƒZGdd„deƒZdS)éN)Ú*)Ú ModelScriptcs@eZdZggdf‡fdd„ Zdd„Zdd„Z‡fdd „Z‡ZS) ÚCheckingNodeVisitorÚcs<tt|ƒ ¡||_||_||_||_| d¡|_d|_ dS)z| @param tc iterative tree checkers @param dc iterative data checkers @param pt program text Ú rN) ÚsuperrÚ__init__ÚrunnerÚscriptÚ treeCheckersÚ dataCheckersÚsplitÚ programLinesÚrunning_lineno)Úselfr r ÚtcÚdcÚpt)Ú __class__©ú8/tmp/pip-unpacked-wheel-d4p3hk07/pyomo/checker/runner.pyrs zCheckingNodeVisitor.__init__cCs*x$|j|jD]}| |j|j¡qWdS)N)r r Ú_beginCheckingr r )rÚcheckerrrrÚ sendBegin#szCheckingNodeVisitor.sendBegincCs*x$|j|jD]}| |j|j¡qWdS)N)r r Ú _endCheckingr r )rrrrrÚsendEnd'szCheckingNodeVisitor.sendEndc sˆdt|ƒkrR|j}||jkrR||_x.|jD]$}| |j|j||j|df¡q*Wx |jD]}| |j|j|¡qZWt t |ƒ  |¡dS)NÚlinenoé) Údirrrr Ú_checkr r rr rrÚ generic_visit)rÚnodeZcurrent_linenor)rrrr +s   $ z!CheckingNodeVisitor.generic_visit)Ú__name__Ú __module__Ú __qualname__rrrr Ú __classcell__rr)rrrsrc@s,eZdZeeƒZdd„Zdd„Zdd„ZdS)ÚModelCheckRunnercCs g|_dS)N)Úscripts)rrrrr=szModelCheckRunner.__init__csÊddlm‰m‰m‰m‰| dd¡}| dd¡}| di¡}||_|dk rX| t|ƒ¡|ikrht dƒxP|j dd D]@}|  ¡|kr®|  ¡||  ¡kr¤|  ¡q¶| ¡qv| ¡qvW‡fd d „|j Dƒ}‡fd d „|j Dƒ}‡fd d „|j Dƒ} ‡fdd „|j Dƒ} xº|jD]°}| ¡} x4|D],} |  ||¡|  ||| ¡|  ||¡q$Wt | ¡} x4| D],} |  ||¡|  ||| ¡|  ||¡qdWt||| || d}| ¡| | ¡| ¡qWdS)Nr)ÚImmediateDataCheckerÚIterativeDataCheckerÚImmediateTreeCheckerÚIterativeTreeCheckerr ÚverboseFÚcheckerszWARNING: No checkers enabled!T)Úallcsg|]}t|ˆƒr|‘qSr)Ú isinstance)Ú.0Úc)r(rrú isz(ModelCheckRunner.run..csg|]}t|ˆƒr|‘qSr)r/)r0r1)r)rrr2jscsg|]}t|ˆƒr|‘qSr)r/)r0r1)r*rrr2kscsg|]}t|ˆƒr|‘qSr)r/)r0r1)r+rrr2ls)rrr)Zpyomo.checker.plugins.checkerr(r)r*r+Úpopr,Ú addScriptrÚprintÚ _checkersZ_checkerPackageZ _checkerNameÚenableÚdisabler'ÚreadrrrÚastÚparserrÚvisitr)rÚargsÚkwargsr r,r-r1ZimmDataCheckersZiterDataCheckersZimmTreeCheckersZiterTreeCheckersÚdatarÚtreeZvisitorr)r(r*r)r+rÚrun@sD              zModelCheckRunner.runcCs|j |¡dS)N)r'Úappend)rr rrrr4ƒszModelCheckRunner.addScriptN) r"r#r$ZExtensionPointZ IModelCheckerr6rrAr4rrrrr&9sCr&)r:Zpyomo.checker.checkerZpyomo.checker.scriptrZ NodeVisitorrÚobjectr&rrrrÚ s (