docs: 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
      '''
  
  # validate inputs
      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)
  
  # find relative path from module
      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)
  
  # validate existence of file
      if not path.exists(file_path):
          raise ValueError('%s is not a valid file path.' % _path_arg)
  
  # parse extension type
      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
  
  # retrieve file details
      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.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.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