def METHOD_NAME(self, gate, op_label, param_label, args):
    """
    Single qubit rotation compiler.
    Parameters
    ----------
    gate : :obj:`~.operations.Gate`:
        The quantum gate to be compiled.
    op_label : str
        Label of the corresponding control Hamiltonian.
    param_label : str
        Label of the hardware parameters saved in
        :obj:`GateCompiler.params`.
    args : dict
        The compilation configuration defined in the attributes
        :obj:`.GateCompiler.args` or given as a parameter in
        :obj:`.GateCompiler.compile`.
    Returns
    -------
    A list of :obj:`.Instruction`, including the compiled pulse
    information for this gate.
    """
    targets = gate.targets
    coeff, tlist = self.generate_pulse_shape(
        args["shape"],
        args["num_samples"],
        maximum=self.params[param_label][targets[0]],
        area=gate.arg_value / 2.0 / np.pi,
    )
    if args["DRAG"]:
        pulse_info = self._drag_pulse(op_label, coeff, tlist, targets[0])
    else:
        pulse_info = [(op_label + str(targets[0]), coeff)]
    return [Instruction(gate, tlist, pulse_info)]