parameters: (self, func)
return_statement: return function_wrapper
docstring: Decorator
docstring_summary: Decorator
docstring_tokens: Decorator
function: def __call__(self, func):
          """
          Decorator
          """
  
          @wraps(func)
          def function_wrapper(*args, **kwargs):
              self._idx = self._start()
              _ret = func(*args, **kwargs)
              self._idx = self._stop(self._idx)
              return _ret
  
          return function_wrapper
function_tokens: def __call__ ( self , func ) : @ wraps ( func ) def function_wrapper ( * args , * * kwargs ) : self . _idx = self . _start ( ) _ret = func ( * args , * * kwargs ) self . _idx = self . _stop ( self . _idx ) return _ret return function_wrapper