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
docstr: Create an `OrionCmdlineParser`.
docstr_tok: ["Create","an","`","OrionCmdlineParser","`","."]
code: def __init__(
      self, config_prefix="config", allow_non_existing_files=False
  ):
      """Create an `OrionCmdlineParser`."""
      self.parser = CmdlineParser()
      self.cmd_priors = OrderedDict()
      self.file_priors = OrderedDict()
      self.config_file_data = {}
  
      self.config_prefix = config_prefix
      self.file_config_path = None
      self.converter = None
  
      self.allow_non_existing_files = allow_non_existing_files
      self.user_script = None
  
      # Extraction methods for the file parsing part.
      self._extraction_method = {
          dict: self._extract_dict,
          defaultdict: self._extract_defaultdict,
          list: self._extract_list,
          str: self._extract_file_string,
      }
  
      # Look for anything followed by a tilt and possible branching attributes + prior
      self.prior_regex = re.compile(r"(.+)~([\+\-\>]?.+)")
  
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 1 to create a new OrionCmdlineParser object  with example: obj = OrionCmdlineParser(config_prefix, allow_non_existing_files)