docs: def type(self, *args):
          """ Usage: type([PSMRL], text, [modifiers])
  
          If a pattern is specified, the pattern is clicked first. Doesn't support text paths.
  
          Special keys can be entered with the key name between brackets, as `"{SPACE}"`, or as
          `Key.SPACE`.
          """
          pattern = None
          text = None
          modifiers = None
          if len(args) == 1 and isinstance(args[0], basestring):
              # Is a string (or Key) to type
              text = args[0]
          elif len(args) == 2:
              if not isinstance(args[0], basestring) and isinstance(args[1], basestring):
                  pattern = args[0]
                  text = args[1]
              else:
                  text = args[0]
                  modifiers = args[1]
          elif len(args) == 3 and not isinstance(args[0], basestring):
              pattern = args[0]
              text = args[1]
              modifiers = args[2]
          else:
              raise TypeError("type method expected ([PSMRL], text, [modifiers])")
  
          if pattern:
              self.click(pattern)
  
          Debug.history("Typing '{}' with modifiers '{}'".format(text, modifiers))
          kb = keyboard
          if modifiers:
              kb.keyDown(modifiers)
          if Settings.TypeDelay > 0:
              typeSpeed = min(1.0, Settings.TypeDelay)
              Settings.TypeDelay = 0.0
          else:
              typeSpeed = self._defaultTypeSpeed
          kb.type(text, typeSpeed)
          if modifiers:
              kb.keyUp(modifiers)
          time.sleep(0.2)