def get_terminal_size():
 if (sys.version_info >= (3, 3)):
  import shutil
  shutil_get_terminal_size = getattr(shutil, 'get_terminal_size', None)
  if shutil_get_terminal_size:
   sz = shutil_get_terminal_size()
   return (sz.columns, sz.lines)
 if (get_winterm_size is not None):
  return get_winterm_size()
 def ioctl_gwinsz(fd):
  try:
   import fcntl
   import termios
   cr = struct.unpack('hh', fcntl.ioctl(fd, termios.TIOCGWINSZ, '1234'))
  except Exception:
   return
  return cr
 cr = (ioctl_gwinsz(0) or ioctl_gwinsz(1) or ioctl_gwinsz(2))
 if (not cr):
  try:
   fd = os.open(os.ctermid(), os.O_RDONLY)
   try:
    cr = ioctl_gwinsz(fd)
   finally:
    os.close(fd)
  except Exception:
   pass
 if ((not cr) or (not cr[0]) or (not cr[1])):
  cr = (os.environ.get('LINES', 25), os.environ.get('COLUMNS', DEFAULT_COLUMNS))
 return (int(cr[1]), int(cr[0]))

def get_terminal_size ( ) : if ( sys . version_info >= ( 3 , 3 ) ) : import shutil shutil_get_terminal_size = getattr ( shutil , 'get_terminal_size' , None ) if shutil_get_terminal_size : sz = shutil_get_terminal_size ( ) return ( sz . columns , sz . lines ) if ( get_winterm_size is not None ) : return get_winterm_size ( ) def ioctl_gwinsz ( fd ) : try : import fcntl import termios cr = struct . unpack ( 'hh' , fcntl . ioctl ( fd , termios . TIOCGWINSZ , '1234' ) ) except Exception : return return cr cr = ( ioctl_gwinsz ( 0 ) or ioctl_gwinsz ( 1 ) or ioctl_gwinsz ( 2 ) ) if ( not cr ) : try : fd = os . open ( os . ctermid ( ) , os . O_RDONLY ) try : cr = ioctl_gwinsz ( fd ) finally : os . close ( fd ) except Exception : pass if ( ( not cr ) or ( not cr [ 0 ] ) or ( not cr [ 1 ] ) ) : cr = ( os . environ . get ( 'LINES' , 25 ) , os . environ . get ( 'COLUMNS' , DEFAULT_COLUMNS ) ) return ( int ( cr [ 1 ] ) , int ( cr [ 0 ] ) )
returns a tuple representing the width(x) and the height(x) in characters of the terminal window .