# Path: Echobase/Common/errors.py
# def check_dims(arr, nd):
# def check_type(obj, typ):
# def check_function(obj):
# def check_path(path):
# def make_path(path):
# def check_path_overwrite(path):
# def check_has_key(dictionary, key_ref):
# 
# Path: Echobase/Sigproc/reref.py
# def common_avg_ref(data):
# 
# Path: Echobase/Sigproc/prewhiten.py
# def ar_one(data):
# 
# Path: Echobase/Sigproc/filters.py
# def elliptic(data, fs, wpass, wstop, gpass, gstop):
# 
# Path: Echobase/Network/Functional/correlation.py
# def xcorr_mag(data, fs, tau):
# def xcorr(data, fs, tau):
# 
# Path: Echobase/Network/Functional/coherence.py
# def multitaper(data, fs, time_band, n_taper, cf):


import numpy as np
from ..Common import errors
from ..Sigproc import reref, prewhiten, filters
from ..Network.Functional import correlation, coherence

    Parameters
    ----------
        data: ndarray, shape (T, N)
            Input signal with T samples over N variates

        fs: int
            Sampling frequency

        reref: True/False
            Re-reference data to the common average (default: True)

    Returns
    -------
        adj_alphatheta: ndarray, shape (N, N)
            Adjacency matrix for N variates (Alpha/Theta Band 5-15 Hz)

        adj_beta: ndarray, shape (N, N)
            Adjacency matrix for N variates (Beta Band 15-25 Hz)

        adj_lowgamma: ndarray, shape (N, N)
            Adjacency matrix for N variates (Low Gamma Band 30-40 Hz)

        adj_highgamma: ndarray, shape (N, N)
            Adjacency matrix for N variates (High Gamma Band 95-105 Hz)
    """

    # Standard param checks
    errors.check_type(data, np.ndarray)
    errors.check_dims(data, 2)

# Path: Echobase/Common/errors.py
# def check_dims(arr, nd):
# def check_type(obj, typ):
# def check_function(obj):
# def check_path(path):
# def make_path(path):
# def check_path_overwrite(path):
# def check_has_key(dictionary, key_ref):
# 
# Path: Echobase/Sigproc/reref.py
# def common_avg_ref(data):
# 
# Path: Echobase/Sigproc/prewhiten.py
# def ar_one(data):
# 
# Path: Echobase/Sigproc/filters.py
# def elliptic(data, fs, wpass, wstop, gpass, gstop):
# 
# Path: Echobase/Network/Functional/correlation.py
# def xcorr_mag(data, fs, tau):
# def xcorr(data, fs, tau):
# 
# Path: Echobase/Network/Functional/coherence.py
# def multitaper(data, fs, time_band, n_taper, cf):


# Path: Echobase/Pipelines/ecog_network.py
import numpy as np
from ..Common import errors
from ..Sigproc import reref, prewhiten, filters
from ..Network.Functional import correlation, coherence


    Parameters
    ----------
        data: ndarray, shape (T, N)
            Input signal with T samples over N variates

        fs: int
            Sampling frequency

        reref: True/False
            Re-reference data to the common average (default: True)

    Returns
    -------
        adj_alphatheta: ndarray, shape (N, N)
            Adjacency matrix for N variates (Alpha/Theta Band 5-15 Hz)

        adj_beta: ndarray, shape (N, N)
            Adjacency matrix for N variates (Beta Band 15-25 Hz)

        adj_lowgamma: ndarray, shape (N, N)
            Adjacency matrix for N variates (Low Gamma Band 30-40 Hz)

        adj_highgamma: ndarray, shape (N, N)
            Adjacency matrix for N variates (High Gamma Band 95-105 Hz)
    """

    # Standard param checks
    errors.check_type(data, np.ndarray)
    errors.check_dims(data, 2)

    errors.check_type(fs, int)