class_docstr: :param recognize_paste: When True, try to discover paste actions and turn
      the event into a BracketedPaste.
code: def __init__(self, recognize_paste: bool = True) -> None:
      self._fdcon = None
      self.recognize_paste = recognize_paste
  
      # When stdin is a tty, use that handle, otherwise, create a handle from
      # CONIN$.
      self.handle: HANDLE
      if sys.stdin.isatty():
          self.handle = HANDLE(
              windll.kernel32.GetStdHandle(STD_INPUT_HANDLE)
          )
      else:
          self._fdcon = os.open("CONIN$", os.O_RDWR | os.O_BINARY)
          self.handle = HANDLE(msvcrt.get_osfhandle(self._fdcon))
  
imports: from __future__ import annotations
  import os
  import sys
  from abc import abstractmethod
  from asyncio import get_running_loop
  from contextlib import contextmanager
  from ..utils import SPHINX_AUTODOC_RUNNING
  from ctypes import Array, pointer
  from ctypes.wintypes import DWORD, HANDLE
  from typing import Callable, ContextManager, Iterable, Iterator, TextIO
  from prompt_toolkit.eventloop import run_in_executor_with_context
  from prompt_toolkit.eventloop.win32 import create_win32_event, wait_for_handles
  from prompt_toolkit.key_binding.key_processor import KeyPress
  from prompt_toolkit.keys import Keys
  from prompt_toolkit.mouse_events import MouseButton, MouseEventType
  from prompt_toolkit.win32_types import INPUT_RECORD, KEY_EVENT_RECORD, MOUSE_EVENT_RECORD, STD_INPUT_HANDLE, EventTypes
  from .ansi_escape_sequences import REVERSE_ANSI_SEQUENCES
  from .base import Input
label_desc: Use image node_id 1 to create a new ConsoleInputReader object  with example: obj = ConsoleInputReader(recognize_paste)