code: def test_decorator_pass_through_extra_args(self):
      got_extra = None
  
      def dummy_script_op(func, inp, extra=None, **kwargs):
          del kwargs
          nonlocal got_extra
          got_extra = extra
          return func(*inp)
  
      decorator = script_ops._check_args_and_maybe_make_decorator(
          dummy_script_op, "dummy", Tout=dtypes.int32, extra="extra"
      )
  
      @decorator
      def plus(a, b):
          return a + b
  
      self.assertIsNone(got_extra)
      self.assertEqual(plus(1, 2), 3)
      self.assertEqual(got_extra, "extra")
  
imports: from tensorflow.python.eager import def_function
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import errors
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import gen_script_ops
  from tensorflow.python.ops import resource_variable_ops
  from tensorflow.python.ops import script_ops
  from tensorflow.python.ops.script_ops import numpy_function
  from tensorflow.python.platform import test
label_desc: Use image node_id 4 for calling the ArgsAndDecoratorsTest obj's underlying member method code with example usage: obj.test_decorator_pass_through_extra_args() and returns: func, unknown