class_docstr: Context manager which Installs a SIGWINCH callback.
  (This signal occurs when the terminal size changes.)
code: def __exit__(self, *a, **kw):
      if self.previous_callback is None:
          # Normally, `signal.signal` should never return `None`.
          # For some reason it happens here:
          # https://github.com/jonathanslenders/python-prompt-toolkit/pull/174
          signal.signal(signal.SIGWINCH, 0)
      else:
          signal.signal(signal.SIGWINCH, self.previous_callback)
  
imports: from __future__ import unicode_literals
  import fcntl
  import os
  import signal
  import threading
  import time
  from prompt_toolkit.terminal.vt100_input import InputStream
  from prompt_toolkit.utils import DummyContext, in_main_thread
  from prompt_toolkit.input import Input
  from .base import EventLoop, INPUT_TIMEOUT
  from .callbacks import EventLoopCallbacks
  from .inputhook import InputHookContext
  from .posix_utils import PosixStdinReader
  from .utils import TimeIt
  from .select import AutoSelector, Selector, fd_to_int
label_desc: Use image node_id 3 for calling the call_on_sigwinch obj's underlying member method code with example usage: obj.__exit__() without return types