B _ @szddlZddlZddlmZedZde_eejdddZ edZ Gd d d e Z ed Z Gd d d e ZdS)N) TicTocTimerzpyomo.common.timingFTcCsp|rFttj|dkrtj}t|}|tdt ||Sttj xtj D]}t |qZWdS)NTz %(message)s) _loggersetLevelloggingINFOsysstdout StreamHandler setFormatter Formatter addHandlerWARNINGhandlers removeHandler)streamhandlerhr7/tmp/pip-unpacked-wheel-d4p3hk07/pyomo/common/timing.py report_timing s     rz pyomo.common.timing.constructionc@s(eZdZdZddZddZddZdS) ConstructionTimerz/%%6.%df seconds to construct %s %s; %d %s totalcCs||_t|_dS)N)objrtimer)selfrrrr__init__szConstructionTimer.__init__cCs|jjdd|_t|dS)N)msg)rtoc_construction_loggerinfo)rrrrreportszConstructionTimer.reportc Cs|j}yt|j}Wntk r0d}YnXy |jj}WnPtk rxy |jj}Wntk rrd}YnXYntk rd}YnXy|jjj }Wn tk rt |jj }YnXy0|j |dkrdnd||||dkrdndf|St k rd|||j d fSXdS) Nz (unknown)g{Gzt?rZindiciesindexz6ConstructionTimer object for %s %s; %s elapsed secondsr)rlenrZ index_setAttributeErrorname RuntimeErrorZ local_namectype__name__typefmt TypeErrorr)r total_timeidxr&_typerrr__str__$s2    0zConstructionTimer.__str__N)r) __module__ __qualname__r+rr r0rrrrrsrz"pyomo.common.timing.transformationc@s*eZdZdZd ddZddZddZdS) TransformationTimerz,%%6.%df seconds to apply Transformation %s%sNcCs.||_|dkrd|_n d|f|_t|_dS)Nrz (%s))rmoderr)rrr4rrrrHs  zTransformationTimer.__init__cCs|jjdd|_t|dS)Nr)r)rr_transform_loggerr)rrrrr PszTransformationTimer.reportcCs\|j}|jjj}y"|j|dkr"dnd||jf|Stk rVd||jdfSXdS)Ng{Gzt?r"rz5TransformationTimer object for %s; %s elapsed secondsr)rr __class__r)r+r4r,r)rr-r&rrrr0Vs "zTransformationTimer.__str__)N)r)r1r2r+rr r0rrrrr3Fs r3)T)rrZpyutilib.misc.timingr getLoggerr propagaterr rrobjectrr5r3rrrrs     -