code: def stoch_pulse_grad_qnode_wrapper(self, qnode, targs, tkwargs):
      """A custom QNode wrapper for the gradient transform :func:`~.stoch_pulse_grad`.
      It raises an error, so that applying ``stoch_pulse_grad`` to a ``QNode`` directly
      is not supported.
      """
      # pylint:disable=unused-argument
      transform_name = "stochastic pulse parameter-shift"
      raise_pulse_diff_on_qnode(transform_name)
  
file_path: pennylane/pennylane/gradients/pulse_gradient.py
imports: from typing import Sequence, Callable
  from functools import partial
  import warnings
  import numpy
  import pennylane
  from pennylane.pulse import ParametrizedEvolution, HardwareHamiltonian
  from pennylane import transform
  from .parameter_shift import _make_zero_rep
  from .general_shift_rules import eigvals_to_frequencies, generate_shift_rule
  from .gradient_transform import _all_zero_grad, assert_no_state_returns, assert_no_tape_batching, assert_no_variance, choose_trainable_params, find_and_validate_gradient_methods, _no_trainable_grad, reorder_grads
label_desc: Use image node_id 10 for calling a global function with example usage: stoch_pulse_grad_qnode_wrapper(qnode, targs, tkwargs) without return types