def METHOD_NAME(
    duration=10,
    length=None,
    sampling_rate=1000,
    noise=0.01,
    scr_number=1,
    drift=-0.01,
    random_state=None,
    random_state_distort="spawn",
):
    """**Simulate Electrodermal Activity (EDA) signal**
    Generate an artificial (synthetic) EDA signal of a given duration and sampling rate.
    Parameters
    ----------
    duration : int
        Desired recording length in seconds.
    sampling_rate : int
        The desired sampling rate (in Hz, i.e., samples/second). Defaults to 1000Hz.
    length : int
        The desired length of the signal (in samples). Defaults to None.
    noise : float
        Noise level (amplitude of the laplace noise). Defaults to 0.01.
    scr_number : int
        Desired number of skin conductance responses (SCRs), i.e., peaks. Defaults to 1.
    drift : float or list
        The slope of a linear drift of the signal. Defaults to -0.01.
    random_state : None, int, numpy.random.RandomState or numpy.random.Generator
        Seed for the random number generator. See for ``misc.check_random_state`` for further information.
    random_state_distort : {'legacy', 'spawn'}, None, int, numpy.random.RandomState or numpy.random.Generator
        Random state to be used to distort the signal. If ``"legacy"``, use the same random state used to
        generate the signal (discouraged as it creates dependent random streams). If ``"spawn"``, spawn
        independent children random number generators from the random_state argument. If any of the other types,
        generate independent children random number generators from the random_state_distort provided (this
        allows generating multiple version of the same signal distorted by different random noise realizations).
    Returns
    ----------
    array
        Vector containing the EDA signal.
    Examples
    ----------
    .. ipython:: python
      import neurokit2 as nk
      import pandas as pd
      eda = nk.eda_simulate(duration=10, scr_number=3)
      @savefig p_eda_simulate1.png scale=100%
      fig = nk.signal_plot(eda)
      @suppress
      plt.close()
    See Also
    --------
    ecg_simulate, rsp_simulate, emg_simulate, ppg_simulate
    References
    -----------
    * Bach, D. R., Flandin, G., Friston, K. J., & Dolan, R. J. (2010). Modelling event-related skin
      conductance responses. International Journal of Psychophysiology, 75(3), 349-356.
    """
    # Seed the random generator for reproducible results
    rng = check_random_state(random_state)
    random_state_distort = check_random_state_children(random_state, random_state_distort, n_children=1)
    # Generate number of samples automatically if length is unspecified
    if length is None:
        length = duration * sampling_rate
    eda = np.full(length, 1.0)
    eda += drift * np.linspace(0, duration, length)
    time = [0, duration]
    start_peaks = np.linspace(0, duration, scr_number, endpoint=False)
    for start_peak in start_peaks:
        relative_time_peak = np.abs(rng.normal(0, 5, size=1)) + 3.0745
        scr = _eda_simulate_scr(sampling_rate=sampling_rate, time_peak=relative_time_peak)
        time_scr = [start_peak, start_peak + 9]
        if time_scr[0] < 0:
            scr = scr[int(np.round(np.abs(time_scr[0]) * sampling_rate)) : :]
            time_scr[0] = 0
        if time_scr[1] > duration:
            scr = scr[0 : int(np.round((duration - time_scr[0]) * sampling_rate))]
            time_scr[1] = duration
        eda = signal_merge(signal1=eda, signal2=scr, time1=time, time2=time_scr)
    # Add random noise
    if noise > 0:
        eda = signal_distort(
            eda,
            sampling_rate=sampling_rate,
            noise_amplitude=noise,
            noise_frequency=[5, 10, 100],
            noise_shape="laplace",
            silent=True,
            random_state=random_state_distort[0],
        )
    return eda