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: Infer the script name and perform some checks
docstr_tok: ["Infer","the","script","name","and","perform","some","checks"]
code: def infer_user_script(self, user_args):
      """Infer the script name and perform some checks"""
      if not user_args:
          return
  
      # TODO: Parse commandline for any options to python and pick the script filepath properly
      if user_args[0] == "python":
          user_script = user_args[1]
      else:
          user_script = user_args[0]
  
      if (
          not os.path.exists(user_script)
          and not shutil.which(user_script)
          and not self.allow_non_existing_files
      ):
          raise OSError(
              errno.ENOENT,
              "The path specified for the script does not exist",
              user_script,
          )
  
      self.user_script = user_script
  
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 5 for calling the OrionCmdlineParser obj's underlying member method code with example usage: obj.infer_user_script(user_args) without return types