code: def get_market_config():
      r"""Read the configuration file for MarketFlow.
  
      Parameters
      ----------
      None : None
  
      Returns
      -------
      specs : dict
          The parameters for controlling MarketFlow.
  
      """
  
      logger.info("MarketFlow Configuration")
  
      # Read the configuration file
  
      full_path = SSEP.join([PSEP, "config", "market.yml"])
      with open(full_path, "r") as ymlfile:
          cfg = yaml.load(ymlfile, Loader=yaml.FullLoader)
  
      # Store configuration parameters in dictionary
  
      specs = {}
  
      # Section: market [this section must be first]
  
      specs["create_model"] = cfg["market"]["create_model"]
      fractal = cfg["market"]["data_fractal"]
      try:
          _ = pd.to_timedelta(fractal)
      except:
          logger.info(
              "data_fractal [%s] is an invalid pandas offset", fractal
          )
      specs["data_fractal"] = fractal
      specs["data_history"] = cfg["market"]["data_history"]
      specs["forecast_period"] = cfg["market"]["forecast_period"]
      fractal = cfg["market"]["fractal"]
      try:
          test_interval = pd.to_timedelta(fractal)
      except:
          logger.info(
              "fractal [%s] is an invalid pandas offset", fractal
          )
      specs["fractal"] = fractal
      specs["lag_period"] = cfg["market"]["lag_period"]
      specs["leaders"] = cfg["market"]["leaders"]
      specs["predict_history"] = cfg["market"]["predict_history"]
      specs["schema"] = cfg["market"]["schema"]
      specs["subschema"] = cfg["market"]["subschema"]
      specs["api_key_name"] = cfg["market"]["api_key_name"]
      specs["api_key"] = cfg["market"]["api_key"]
      specs["subject"] = cfg["market"]["subject"]
      specs["target_group"] = cfg["market"]["target_group"]
  
      # Set API Key environment variable
      if specs["api_key"]:
          os.environ[specs["api_key_name"]] = specs["api_key"]
  
      # Create the subject/schema/fractal namespace
  
      sspecs = [specs["subject"], specs["schema"], specs["fractal"]]
      space = Space(*sspecs)
  
      # Section: features
  
      try:
          logger.info("Getting Features")
          specs["features"] = cfg["features"]
      except:
          logger.info("No Features Found")
          specs["features"] = {}
  
      # Section: groups
  
      try:
          logger.info("Defining Groups")
          for g, m in list(cfg["groups"].items()):
              Group(g, space)
              Group.groups[g].add(m)
      except:
          logger.info("No Groups Found")
  
      # Section: aliases
  
      try:
          logger.info("Defining Aliases")
          for k, v in list(cfg["aliases"].items()):
              Alias(k, v)
      except:
          logger.info("No Aliases Found")
  
      # Section: system
  
      try:
          logger.info("Getting System Parameters")
          specs["system"] = cfg["system"]
      except:
          logger.info("No System Parameters Found")
          specs["system"] = {}
  
      # Section: variables
  
      logger.info("Defining AlphaPy Variables [phigh, plow]")
  
      Variable("phigh", "probability >= 0.7")
      Variable("plow", "probability <= 0.3")
  
      try:
          logger.info("Defining User Variables")
          for k, v in list(cfg["variables"].items()):
              Variable(k, v)
      except:
          logger.info("No Variables Found")
  
      # Section: functions
  
      try:
          logger.info("Getting Variable Functions")
          specs["functions"] = cfg["functions"]
      except:
          logger.info("No Variable Functions Found")
          specs["functions"] = {}
  
      # Log the stock parameters
  
      logger.info("MARKET PARAMETERS:")
      logger.info("api_key         = %s", specs["api_key"])
      logger.info("api_key_name    = %s", specs["api_key_name"])
      logger.info("create_model    = %r", specs["create_model"])
      logger.info("data_fractal    = %s", specs["data_fractal"])
      logger.info("data_history    = %d", specs["data_history"])
      logger.info("features        = %s", specs["features"])
      logger.info("forecast_period = %d", specs["forecast_period"])
      logger.info("fractal         = %s", specs["fractal"])
      logger.info("lag_period      = %d", specs["lag_period"])
      logger.info("leaders         = %s", specs["leaders"])
      logger.info("predict_history = %s", specs["predict_history"])
      logger.info("schema          = %s", specs["schema"])
      logger.info("subject         = %s", specs["subject"])
      logger.info("subschema       = %s", specs["subschema"])
      logger.info("system          = %s", specs["system"])
      logger.info("target_group    = %s", specs["target_group"])
  
      # Market Specifications
      return specs
  
imports: import warnings
  from alphapy.alias import Alias
  from alphapy.analysis import Analysis
  from alphapy.analysis import run_analysis
  from alphapy.data import get_market_data
  from alphapy.globals import PD_INTRADAY_OFFSETS
  from alphapy.globals import PSEP, SSEP
  from alphapy.group import Group
  from alphapy.variables import Variable
  from alphapy.variables import vmapply
  from alphapy.model import get_model_config
  from alphapy.model import Model
  from alphapy.portfolio import gen_portfolio
  from alphapy.space import Space
  from alphapy.system import run_system
  from alphapy.system import System
  from alphapy.utilities import valid_date
  import argparse
  import datetime
  import logging
  import os
  import pandas
  import sys
  import yaml
label_desc: Use image node_id 1 for calling a global function with example usage: get_market_config() and returns: specs