# 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/Network/Transforms/configuration.py
# CONN_STR = ' <> '
# def label_nodes_to_symm_conns(node_labels):
# def label_symm_conns_to_nodes(conn_labels):
# def find_symm_conn(node_pair_labels, conn_labels):
# def convert_conn_vec_to_adj_matr(conn_vec):
# def convert_adj_matr_to_cfg_matr(adj_matr):


import numpy as np
import scipy.sparse as sp
from ....Common import errors
from ...Transforms import configuration

    Parameters
    ----------
        conn_matr: numpy.ndarray
            Connection matrix over multiple layers
            Has shape: [n_layers x n_conns]

        gamma: float
            Intra-layer resolution parameter, typical values around 1.0

        omega: float
            Inter-layer resolution parameter, typical values around 1.0

        null: str
            Choose a null mode type: ['None', 'temporal',
                                      'connectional', 'nodal']

    Returns
    -------
        ml_mod_matr: numpy.ndarray
            Multilayer modularity matrix
            Has shape: [n_nodes*n_layers x n_nodes*n_layers]

        twomu: float
            Total edge weight in the network
    """
    # Standard param checks
    errors.check_type(conn_matr, np.ndarray)
    errors.check_type(gamma, float)
    errors.check_type(omega, float)

# 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/Network/Transforms/configuration.py
# CONN_STR = ' <> '
# def label_nodes_to_symm_conns(node_labels):
# def label_symm_conns_to_nodes(conn_labels):
# def find_symm_conn(node_pair_labels, conn_labels):
# def convert_conn_vec_to_adj_matr(conn_vec):
# def convert_adj_matr_to_cfg_matr(adj_matr):


# Path: Echobase/Network/Partitioning/Module/modularity.py
import numpy as np
import scipy.sparse as sp
from ....Common import errors
from ...Transforms import configuration


    Parameters
    ----------
        conn_matr: numpy.ndarray
            Connection matrix over multiple layers
            Has shape: [n_layers x n_conns]

        gamma: float
            Intra-layer resolution parameter, typical values around 1.0

        omega: float
            Inter-layer resolution parameter, typical values around 1.0

        null: str
            Choose a null mode type: ['None', 'temporal',
                                      'connectional', 'nodal']

    Returns
    -------
        ml_mod_matr: numpy.ndarray
            Multilayer modularity matrix
            Has shape: [n_nodes*n_layers x n_nodes*n_layers]

        twomu: float
            Total edge weight in the network
    """
    # Standard param checks
    errors.check_type(conn_matr, np.ndarray)
    errors.check_type(gamma, float)
    errors.check_type(omega, float)

    errors.check_type(null, str)