docstr: Validity check on user's 'basic' keybinding selection.
  
  Doesn't check the string produced by the advanced dialog because
  'modifiers' isn't set.
docstr_tok: ["Validity","check","on","user","'s","'basic","'","keybinding","selection",".","Does","n't","check","the","string","produced","by","the","advanced","dialog","because","'modifiers","'","is","n't","set","."]
code: def KeysOK(self):
      """Validity check on user's 'basic' keybinding selection.
  
      Doesn't check the string produced by the advanced dialog because
      'modifiers' isn't set.
  
      """
      keys = self.keyString.get()
      keys.strip()
      finalKey = self.listKeysFinal.get(ANCHOR)
      modifiers = self.GetModifiers()
      # create a key sequence list for overlap check:
      keySequence = keys.split()
      keysOK = False
      title = "Key Sequence Error"
      if not keys:
          tkMessageBox.showerror(
              title=title, parent=self, message="No keys specified."
          )
      elif not keys.endswith(">"):
          tkMessageBox.showerror(
              title=title, parent=self, message="Missing the final Key"
          )
      elif (
          not modifiers
          and finalKey not in self.functionKeys + self.moveKeys
      ):
          tkMessageBox.showerror(
              title=title,
              parent=self,
              message="No modifier key(s) specified.",
          )
      elif (modifiers == ["Shift"]) and (
          finalKey
          not in self.functionKeys + self.moveKeys + ("Tab", "Space")
      ):
          msg = (
              "The shift modifier by itself may not be used with"
              " this key symbol."
          )
          tkMessageBox.showerror(title=title, parent=self, message=msg)
      elif keySequence in self.currentKeySequences:
          msg = "This key combination is already in use."
          tkMessageBox.showerror(title=title, parent=self, message=msg)
      else:
          keysOK = True
      return keysOK
  
file_path: catboost/contrib/tools/python/src/Lib/idlelib/keybindingDialog.py
imports: from Tkinter import *
  import tkMessageBox
  import string
  import sys
label_desc: Use image node_id 13 for calling the GetKeysDialog obj's underlying member method code with example usage: obj.KeysOK() and returns: keysOK