def get_config_dict_full(self, config_path):
    base_config_dict = {}
    child_config_dict = ConfigObj(config_path, file_error=True)
    arguments_config_dict = {}

    if child_config_dict['configuration'].has_key('base'):
      config_path = child_config_dict['configuration']['base']
      if config_path.find('%') != -1:
        config_path = self.parse_item(None, None, None, item=config_path)

      base_config_dict = self.get_config_dict_full(config_path)
      child_configuration_dict = child_config_dict['configuration']
      base_configuration_dict = base_config_dict['configuration']

      for file_name, file_dict in base_configuration_dict.iteritems():
        if file_name in child_configuration_dict:
          file_dict.update(child_configuration_dict[file_name])

      base_config_dict['configuration'].update(base_configuration_dict)
      child_config_dict.update(base_config_dict)
    return child_config_dict
Translate a gyp path to a ninja path, optionally expanding environment
dataset/ETHPy150Open XiaoMi/minos/client/service_config.py/ServiceConfig.get_config_dict_full--crossover with--dataset/ETHPy150Open adobe/brackets-shell/gyp/pylib/gyp/generator/ninja.py/NinjaWriter.GypPathToNinja