code: def wrap_objective(require_format=None, handle_batch=False):
      """Decorator for creating Objective factories.
  
      Changes f from the closure: (args) => () => TF Tensor
      into an Objective factory: (args) => Objective
  
      while preserving function name, arg info, docs... for interactive python.
      """
  
      @decorator
      def inner(f, *args, **kwds):
          objective_func = f(*args, **kwds)
          objective_name = f.__name__
          args_str = (
              " ["
              + ", ".join([_make_arg_str(arg) for arg in args])
              + "]"
          )
          description = objective_name.title() + args_str
  
          def process_T(T):
              if require_format == "NHWC":
                  T = _T_force_NHWC(T)
              return T
  
          return Objective(
              lambda T: objective_func(process_T(T)),
              objective_name,
              description,
          )
  
      return inner
  
imports: from __future__ import absolute_import, division, print_function
  from decorator import decorator
  import numpy
  import tensorflow
  from lucid.optvis.objectives_util import _dot, _dot_cossim, _extract_act_pos, _make_arg_str, _T_force_NHWC, _T_handle_batch
label_desc: Use image node_id 1 for calling a global function with example usage: wrap_objective(require_format, handle_batch) and returns: inner, Objective, T