code: def tracer(object):
      
  
      @functools.wraps(object)
      @functools.partial(validate_tracer, object)
      def tracer_wrapper(*args, **kwargs):
          """
          Traces execution.
  
          :param \*args: Arguments.
          :type \*args: \*
          :param \*\*kwargs: Keywords arguments.
          :type \*\*kwargs: \*\*
          :return: Object.
          :rtype: object
          """
  
          code = object.func_code
          args_count = code.co_argcount
          args_names = code.co_varnames[:args_count]
          function_defaults = object.func_defaults or list()
          args_defaults = dict(zip(args_names[-len(function_defaults):], function_defaults))
  
          positional_args = map(format_argument, zip(args_names, args))
          defaulted_args = [format_argument((name, args_defaults[name]))
                            for name in args_names[len(args):] if name not in kwargs]
          nameless_args = map(repr, args[args_count:])
          keyword_args = map(format_argument, kwargs.items())
          sys.stdout.write("{0}({1})\n".format(get_trace_name(object),
                                               ", ".join(itertools.chain(positional_args,
                                                                         defaulted_args,
                                                                         nameless_args,
                                                                         keyword_args))))
          return object(*args, **kwargs)
  
      return tracer_wrapper
docs: | Traces execution.
      | Any method / definition decorated will have it's execution traced.
  
      :param object: Object to decorate.
      :type object: object
      :return: Object.
      :rtype: object