code: def counter(function):
      
  
      @wraps(function)
      def _wrapper(*args, **kwargs):
          _wrapper.count += 1
          res = function(*args, **kwargs)
          funcname = function.__name__
          count = _wrapper.count
          print("{} has been used: {}x".format(funcname, count))
          return res
      _wrapper.count = 0
      return _wrapper
docs: Function: counter
      Summary: Decorator to count the number of a function is executed each time
      Examples: You can use that to had a progress of heally heavy
                computation without progress feedback
      Attributes:
          @param (function): function
      Returns: wrapped function