code: def get_command(self, command_input, docker_object=None, buffer=None, size=None):
          
          logger.debug("get command for command input %r", command_input)
  
          if not command_input:
              # noop, don't do anything
              return
  
          if command_input[0] in ["/"]:  # we could add here !, @, ...
              command_name = command_input[0]
              unparsed_command_args = shlex.split(command_input[1:])
          else:
              command_input_list = shlex.split(command_input)
              command_name = command_input_list[0]
              unparsed_command_args = command_input_list[1:]
  
          try:
              CommandClass = commands_mapping[command_name]
          except KeyError:
              logger.info("no such command: %r", command_name)
              raise NoSuchCommand("There is no such command: %s" % command_name)
          else:
              cmd = CommandClass(ui=self.ui, docker_backend=self.docker_backend,
                                 docker_object=docker_object, buffer=buffer, size=size)
              cmd.process_args(unparsed_command_args)
              return cmd
docs: return command instance which is the actual command to be executed
  
          :param command_input: str, command name and its args: "command arg arg2=val opt"
          :param docker_object:
          :param buffer:
          :param size: tuple, so we can call urwid.keypress(size, ...)
          :return: instance of Command