code: def raise_pulse_diff_on_qnode(transform_name):
      """Raises an error as the gradient transform with the provided name does
      not support direct application to QNodes.
      """
      msg = (
          f"Applying the {transform_name} gradient transform to a QNode directly is currently "
          "not supported. Please use differentiation via a JAX entry point "
          "(jax.grad, jax.jacobian, ...) instead.",
          UserWarning,
      )
      raise NotImplementedError(msg)
  
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 2 for calling a global function with example usage: raise_pulse_diff_on_qnode(transform_name) without return types