docs: def validate_command(raw_command):
      """Validate the command input.
  
      Currently we only check the number of arguments according to the command type.
  
      Parameters
      ----------
      raw_command: str
          The raw command input, e.g., `register xxxxxx yyyyyy`.
  
      Raises
      ------
      ValueError
          If the raw command input doesn't have the correct number of arguments.
      """
      parsed_command = raw_command.split()
      arg_count = len(parsed_command) - 1
  
      if not parsed_command:
          return
  
      if parsed_command[0] == pytwis_clt_constants.CMD_REGISTER:
          if arg_count < 2:
              raise ValueError('{cmd} {{{arg1}}} {{{arg2}}}'.\
                               format(cmd=pytwis_clt_constants.CMD_REGISTER,
                                      arg1=pytwis_clt_constants.ARG_USERNAME,
                                      arg2=pytwis_clt_constants.ARG_PASSWORD))
      elif parsed_command[0] == pytwis_clt_constants.CMD_LOGIN:
          if arg_count < 2:
              raise ValueError('{cmd} {{{arg1}}} {{{arg2}}}'.\
                               format(cmd=pytwis_clt_constants.CMD_LOGIN,
                                      arg1=pytwis_clt_constants.ARG_USERNAME,
                                      arg2=pytwis_clt_constants.ARG_PASSWORD))
      elif parsed_command[0] == pytwis_clt_constants.CMD_LOGOUT:
          pass
      elif parsed_command[0] == pytwis_clt_constants.CMD_CHANGE_PASSWORD:
          if arg_count < 3:
              raise ValueError('{cmd} {{{arg1}}} {{{arg2}}} {{{arg3}}}'.\
                               format(cmd=pytwis_clt_constants.CMD_CHANGE_PASSWORD,
                                      arg1=pytwis_clt_constants.ARG_OLD_PASSWORD,
                                      arg2=pytwis_clt_constants.ARG_NEW_PASSWORD,
                                      arg3=pytwis_clt_constants.ARG_CONFIRMED_NEW_PASSWORD))
      elif parsed_command[0] == pytwis_clt_constants.CMD_GET_USER_PROFILE:
          pass
      elif parsed_command[0] == pytwis_clt_constants.CMD_POST:
          if arg_count < 1:
              raise ValueError('{cmd} {{{arg}}}'.format(cmd=pytwis_clt_constants.CMD_POST,
                                                        arg=pytwis_clt_constants.ARG_TWEET))
      elif parsed_command[0] == pytwis_clt_constants.CMD_FOLLOW:
          if arg_count < 1:
              raise ValueError('{cmd} {{{arg}}}'.format(cmd=pytwis_clt_constants.CMD_FOLLOW,
                                                        arg=pytwis_clt_constants.ARG_FOLLOWEE))
      elif parsed_command[0] == pytwis_clt_constants.CMD_UNFOLLOW:
          if arg_count < 1:
              raise ValueError('{cmd} {{{arg}}}'.format(cmd=pytwis_clt_constants.CMD_UNFOLLOW,
                                                        arg=pytwis_clt_constants.ARG_FOLLOWEE))
      elif parsed_command[0] == pytwis_clt_constants.CMD_GET_FOLLOWERS:
          pass
      elif parsed_command[0] == pytwis_clt_constants.CMD_GET_FOLLOWINGS:
          pass
      elif parsed_command[0] == pytwis_clt_constants.CMD_TIMELINE:
          if arg_count > 1:
              raise ValueError('{cmd} {{{arg}}} or {cmd}'.\
                               format(cmd=pytwis_clt_constants.CMD_TIMELINE,
                                      arg=pytwis_clt_constants.ARG_MAX_TWEETS))
      elif parsed_command[0] == pytwis_clt_constants.CMD_GET_USER_TWEETS:
          if arg_count > 2:
              raise ValueError('{cmd} {{{arg1}}} {{{arg2}}} or {cmd} {{{arg1}}} or {cmd}'.\
                               format(cmd=pytwis_clt_constants.CMD_GET_USER_TWEETS,
                                      arg1=pytwis_clt_constants.ARG_USERNAME,
                                      arg2=pytwis_clt_constants.ARG_MAX_TWEETS))
      elif (parsed_command[0] == pytwis_clt_constants.CMD_EXIT) or\
           (parsed_command[0] == pytwis_clt_constants.CMD_QUIT):
          pass
      else:
          raise ValueError('Invalid pytwis command')