class_docstr: Python interface commandline parser
  
  The `OrionCmdlineParser` is used as a way to obtain the parsing process of Orion
  through a Python interface. It provides different dictionaries containing information
  for different parts of the parsing process. It also exposes methods to retrieve the
  command line with formatted values for parameters.
  
  Parameters
  ----------
  config_prefix : str, optional
      Prefix for the configuration file used by the parser to identify it.
  allow_non_existing_files : bool, optional
      If True, will parse all commandline but ignore non existing user script or configuration
      files if non-existent. Default is False
  
  Attributes
  ----------
  parser : CmdlineParser
      Parser that will be used to parse the commandline.
  cmd_priors : OrderedDict
      An OrderedDict containing only the priors inside the commandline.
  file_priors : OrderedDict
      An OrderedDict obtained by parsing the config file, if one was found.
  priors : OrderedDict
      An OrderedDict obtained from merging `cmd_priors` and `file_priors`.
  user_script : str
      File path of the script executed (inferred from parsed commandline)
  config_prefix : str
      Prefix for the configuration file used by the parser to identify it.
  file_config_path : str
      If a config file was found, this file contain the path. `None` otherwise.
  converter : BaseConverter
      A BaseConverter object to parse the config file.
  
  Methods
  -------
  parse(commandline)
      Parses the commandline and populate the OrderedDict
  format(trial, experiment) : str
      Return the commandline with replaced values for priors and attributes
code: def _create_config_file(self, config_path, trial):
      # Create a copy of the template
      instance = copy.deepcopy(self.config_file_data)
  
      for name, value in trial.params.items():
          # The param will only correspond to config keyd
          # that require a prior, so we make sure to skip
          # the ones that do not.
          if name not in self.file_priors.keys():
              continue
  
          # Since namespace start with '/', we must skip
          # the first element of the list.
          path = name.split("/")[1:]
          current_depth = instance
  
          for key in path:
              # If we meet a list, the key might correspond
              # to the index of a dictionary in that list
              if isinstance(current_depth, list):
                  if not key.isdigit():
                      continue
  
                  key = int(key)
  
                  # Make sure the key is not out of bound
                  try:
                      current_depth[key]
                  except IndexError:
                      break
  
              if isinstance(current_depth[key], str):
                  current_depth[key] = value
              else:
                  current_depth = current_depth[key]
  
      self.converter.generate(config_path, instance)
  
imports: import copy
  import errno
  import logging
  import os
  import re
  import shutil
  from collections import OrderedDict, defaultdict
  from orion.core.io.cmdline_parser import CmdlineParser
  from orion.core.io.convert import infer_converter_from_file_type
  from orion.core.utils.flatten import flatten
label_desc: Use image node_id 17 for calling the OrionCmdlineParser obj's underlying member method code with example usage: obj._create_config_file(config_path, trial) without return types