def load_settings(file_path, module_name='', secret_key=''):
    """ a method to load data from json valid files

    :param file_path: string with path to settings file
    :param module_name: [optional] string with name of module containing file path
    :param secret_key: [optional] string with key to decrypt drep file
    :return: dictionary with settings data
    """
    title = 'load_settings'
    try:
        _path_arg = '%s(file_path=%s)' % (title, str(file_path))
    except:
        raise ValueError('%s(file_path=...) must be a string.' % title)
    from os import path
    if module_name:
        try:
            _path_arg = _path_arg.replace(')', ', module_name=%s)' % str(
                module_name))
        except:
            raise ValueError('%s(module_name=...) must be a string.' % title)
        from importlib.util import find_spec
        module_path = find_spec(module_name).submodule_search_locations[0]
        file_path = path.join(module_path, file_path)
    if not path.exists(file_path):
        raise ValueError('%s is not a valid file path.' % _path_arg)
    ext_map = {}
    file_extensions = {'json': '.+\\.json$', 'json.gz': '.+\\.json\\.gz$',
        'yaml': '.+\\.ya?ml$', 'yaml.gz': '.+\\.ya?ml\\.gz$', 'drep':
        '.+\\.drep$'}
    import re
    for key, value in file_extensions.items():
        file_pattern = re.compile(value)
        if file_pattern.findall(file_path):
            ext_map[key] = True
        else:
            ext_map[key] = False
    if ext_map['json']:
        import json
        try:
            file_data = open(file_path, 'rt')
            file_details = json.loads(file_data.read())
        except:
            raise ValueError('%s is not valid json data.' % _path_arg)
    elif ext_map['yaml']:
        import yaml
        try:
            file_data = open(file_path, 'rt')
            file_details = yaml.full_load(file_data.read())
        except:
            raise ValueError('%s is not valid yaml data.' % _path_arg)
    elif ext_map['json.gz']:
        import gzip
        import json
        try:
            file_data = gzip.open(file_path, 'rb')
        except:
            raise ValueError('%s is not valid gzip compressed data.' %
                _path_arg)
        try:
            file_details = json.loads(file_data.read().decode())
        except:
            raise ValueError('%s is not valid json data.' % _path_arg)
    elif ext_map['yaml.gz']:
        import gzip
        import yaml
        try:
            file_data = gzip.open(file_path, 'rb')
        except:
            raise ValueError('%s is not valid gzip compressed data.' %
                _path_arg)
        try:
            file_details = yaml.full_load(file_data.read().decode())
        except:
            raise ValueError('%s is not valid yaml data.' % _path_arg)
    elif ext_map['drep']:
        from labpack.compilers import drep
        try:
            file_data = open(file_path, 'rb').read()
            file_details = drep.load(encrypted_data=file_data, secret_key=
                secret_key)
        except:
            raise ValueError('%s is not valid drep data.' % _path_arg)
    else:
        raise ValueError('%s must be one of %s file types.' % (_path_arg,
            list(ext_map.keys())))
    return file_details
