@@ -398,26 +398,7 @@ def count_exceptions(self, exception=Exception):
398398 Increments the counter when an exception of the given
399399 type is raised up out of the code.
400400 '''
401-
402- class ExceptionCounter (object ):
403- def __init__ (self , counter ):
404- self ._counter = counter
405-
406- def __enter__ (self ):
407- pass
408-
409- def __exit__ (self , typ , value , traceback ):
410- if isinstance (value , exception ):
411- self ._counter .inc ()
412-
413- def __call__ (self , f ):
414- @wraps (f )
415- def wrapped (* args , ** kwargs ):
416- with self :
417- return f (* args , ** kwargs )
418- return wrapped
419-
420- return ExceptionCounter (self )
401+ return _ExceptionCounter (self , exception )
421402
422403 def _samples (self ):
423404 return (('' , {}, self ._value .get ()), )
@@ -490,51 +471,14 @@ def track_inprogress(self):
490471 Increments the gauge when the code is entered,
491472 and decrements when it is exited.
492473 '''
493-
494- class InprogressTracker (object ):
495- def __init__ (self , gauge ):
496- self ._gauge = gauge
497-
498- def __enter__ (self ):
499- self ._gauge .inc ()
500-
501- def __exit__ (self , typ , value , traceback ):
502- self ._gauge .dec ()
503-
504- def __call__ (self , f ):
505- @wraps (f )
506- def wrapped (* args , ** kwargs ):
507- with self :
508- return f (* args , ** kwargs )
509- return wrapped
510-
511- return InprogressTracker (self )
474+ return _InprogressTracker (self )
512475
513476 def time (self ):
514477 '''Time a block of code or function, and set the duration in seconds.
515478
516479 Can be used as a function decorator or context manager.
517480 '''
518-
519- class Timer (object ):
520- def __init__ (self , gauge ):
521- self ._gauge = gauge
522-
523- def __enter__ (self ):
524- self ._start = time .time ()
525-
526- def __exit__ (self , typ , value , traceback ):
527- # Time can go backwards.
528- self ._gauge .set (max (time .time () - self ._start , 0 ))
529-
530- def __call__ (self , f ):
531- @wraps (f )
532- def wrapped (* args , ** kwargs ):
533- with self :
534- return f (* args , ** kwargs )
535- return wrapped
536-
537- return Timer (self )
481+ return _GaugeTimer (self )
538482
539483 def set_function (self , f ):
540484 '''Call the provided function to return the Gauge value.
@@ -598,26 +542,7 @@ def time(self):
598542
599543 Can be used as a function decorator or context manager.
600544 '''
601-
602- class Timer (object ):
603- def __init__ (self , summary ):
604- self ._summary = summary
605-
606- def __enter__ (self ):
607- self ._start = time .time ()
608-
609- def __exit__ (self , typ , value , traceback ):
610- # Time can go backwards.
611- self ._summary .observe (max (time .time () - self ._start , 0 ))
612-
613- def __call__ (self , f ):
614- @wraps (f )
615- def wrapped (* args , ** kwargs ):
616- with self :
617- return f (* args , ** kwargs )
618- return wrapped
619-
620- return Timer (self )
545+ return _SummaryTimer (self )
621546
622547 def _samples (self ):
623548 return (
@@ -707,26 +632,7 @@ def time(self):
707632
708633 Can be used as a function decorator or context manager.
709634 '''
710-
711- class Timer (object ):
712- def __init__ (self , histogram ):
713- self ._histogram = histogram
714-
715- def __enter__ (self ):
716- self ._start = time .time ()
717-
718- def __exit__ (self , typ , value , traceback ):
719- # Time can go backwards.
720- self ._histogram .observe (max (time .time () - self ._start , 0 ))
721-
722- def __call__ (self , f ):
723- @wraps (f )
724- def wrapped (* args , ** kwargs ):
725- with self :
726- return f (* args , ** kwargs )
727- return wrapped
728-
729- return Timer (self )
635+ return _HistogramTimer (self )
730636
731637 def _samples (self ):
732638 samples = []
@@ -738,3 +644,97 @@ def _samples(self):
738644 samples .append (('_sum' , {}, self ._sum .get ()))
739645 return tuple (samples )
740646
647+
648+ class _HistogramTimer (object ):
649+ def __init__ (self , histogram ):
650+ self ._histogram = histogram
651+
652+ def __enter__ (self ):
653+ self ._start = time .time ()
654+
655+ def __exit__ (self , typ , value , traceback ):
656+ # Time can go backwards.
657+ self ._histogram .observe (max (time .time () - self ._start , 0 ))
658+
659+ def __call__ (self , f ):
660+ @wraps (f )
661+ def wrapped (* args , ** kwargs ):
662+ with self :
663+ return f (* args , ** kwargs )
664+ return wrapped
665+
666+
667+ class _ExceptionCounter (object ):
668+ def __init__ (self , counter , exception ):
669+ self ._counter = counter
670+ self ._exception = exception
671+
672+ def __enter__ (self ):
673+ pass
674+
675+ def __exit__ (self , typ , value , traceback ):
676+ if isinstance (value , self ._exception ):
677+ self ._counter .inc ()
678+
679+ def __call__ (self , f ):
680+ @wraps (f )
681+ def wrapped (* args , ** kwargs ):
682+ with self :
683+ return f (* args , ** kwargs )
684+ return wrapped
685+
686+
687+ class _InprogressTracker (object ):
688+ def __init__ (self , gauge ):
689+ self ._gauge = gauge
690+
691+ def __enter__ (self ):
692+ self ._gauge .inc ()
693+
694+ def __exit__ (self , typ , value , traceback ):
695+ self ._gauge .dec ()
696+
697+ def __call__ (self , f ):
698+ @wraps (f )
699+ def wrapped (* args , ** kwargs ):
700+ with self :
701+ return f (* args , ** kwargs )
702+ return wrapped
703+
704+
705+ class _SummaryTimer (object ):
706+ def __init__ (self , summary ):
707+ self ._summary = summary
708+
709+ def __enter__ (self ):
710+ self ._start = time .time ()
711+
712+ def __exit__ (self , typ , value , traceback ):
713+ # Time can go backwards.
714+ self ._summary .observe (max (time .time () - self ._start , 0 ))
715+
716+ def __call__ (self , f ):
717+ @wraps (f )
718+ def wrapped (* args , ** kwargs ):
719+ with self :
720+ return f (* args , ** kwargs )
721+ return wrapped
722+
723+
724+ class _GaugeTimer (object ):
725+ def __init__ (self , gauge ):
726+ self ._gauge = gauge
727+
728+ def __enter__ (self ):
729+ self ._start = time .time ()
730+
731+ def __exit__ (self , typ , value , traceback ):
732+ # Time can go backwards.
733+ self ._gauge .set (max (time .time () - self ._start , 0 ))
734+
735+ def __call__ (self , f ):
736+ @wraps (f )
737+ def wrapped (* args , ** kwargs ):
738+ with self :
739+ return f (* args , ** kwargs )
740+ return wrapped
0 commit comments