ソースを参照

Remove own gettermsize, use STL

Oz N Tiram 8 年 前
コミット
9266bc68dc
2 ファイル変更1 行追加96 行削除
  1. 1 5
      pwman/ui/baseui.py
  2. 0 91
      pwman/ui/tools.py

+ 1 - 5
pwman/ui/baseui.py

@@ -221,11 +221,7 @@ class BaseUtilsMixin:
 
     def _prep_term(self):
         self.do_cls('')
-        if sys.platform != 'win32':
-            rows, cols = tools.gettermsize()
-        else:  # pragma: no cover
-            rows, cols = 18, 80  # fix this !
-
+        rows, cols = shutil.get_terminal_size()
         return rows, cols
 
     def _format_line(self, tag_pad, nid="ID", user="USER", url="URL",

+ 0 - 91
pwman/ui/tools.py

@@ -131,97 +131,6 @@ def open_url(link, macosx=False,):  # pragma: no cover
          print("Executing open_url failed with:\n", e)
 
 
-def get_terminal_size():  # pragma: no cover
-    """ getTerminalSize()
-     - get width and height of console
-     - works on linux,os x,windows,cygwin(windows)
-     originally retrieved from:
-     http://stackoverflow.com/questions/566746/how-to-get-\
-         console-window-width-in-python
-    """
-    current_os = platform.system()
-    tuple_xy = None
-    if current_os == 'Windows':
-        tuple_xy = _get_terminal_size_windows()
-        if tuple_xy is None:
-            tuple_xy = _get_terminal_size_tput()
-            # needed for window's python in cygwin's xterm!
-    if current_os in ['Linux', 'Darwin'] or current_os.startswith('CYGWIN'):
-        tuple_xy = _get_terminal_size_linux()
-    if tuple_xy is None:
-        tuple_xy = (80, 25)      # default value
-    return tuple_xy
-
-
-def _get_terminal_size_windows():  # pragma: no cover
-    try:
-        from ctypes import windll, create_string_buffer
-        # stdin handle is -10
-        # stdout handle is -11
-        # stderr handle is -12
-        h = windll.kernel32.GetStdHandle(-12)
-        csbi = create_string_buffer(22)
-        res = windll.kernel32.GetConsoleScreenBufferInfo(h, csbi)
-        if res:
-            (bufx, bufy, curx, cury, wattr,
-             left, top, right, bottom,
-             maxx, maxy) = struct.unpack("hhhhHhhhhhh", csbi.raw)
-            sizex = right - left + 1
-            sizey = bottom - top + 1
-            return sizex, sizey
-    except:
-        pass
-
-
-def _get_terminal_size_tput():  # pragma: no cover
-    # get terminal width
-    # src: http://stackoverflow.com/questions/263890/how-do-i-\
-    #    find-the-width-height-of-a-terminal-window
-    try:
-        cols = int(sp.check_call(shlex.split('tput cols')))
-        rows = int(sp.check_call(shlex.split('tput lines')))
-        return (cols, rows)
-    except:
-        pass
-
-
-def _get_terminal_size_linux():  # pragma: no cover
-    def ioctl_GWINSZ(fd):
-        try:
-            import fcntl
-            import termios
-            cr = struct.unpack('hh',
-                               fcntl.ioctl(fd, termios.TIOCGWINSZ, '1234'))
-            return cr
-        except:
-            pass
-    cr = ioctl_GWINSZ(0) or ioctl_GWINSZ(1) or ioctl_GWINSZ(2)
-    if not cr:
-        try:
-            fd = os.open(os.ctermid(), os.O_RDONLY)
-            cr = ioctl_GWINSZ(fd)
-            os.close(fd)
-        except:
-            pass
-    if not cr:
-        try:
-            cr = (os.environ['LINES'], os.environ['COLUMNS'])
-        except:
-            return None
-    return int(cr[1]), int(cr[0])
-
-
-def gettermsize():  # pragma: no cover
-    if sys.stdout.isatty():
-        s = struct.pack("HHHH", 0, 0, 0, 0)
-        f = sys.stdout.fileno()
-        x = fcntl.ioctl(f, termios.TIOCGWINSZ, s)
-        rows, cols, width, height = struct.unpack("HHHH", x)
-        return rows, cols
-    else:
-        return 40, 80
-
-
 def getinput(question, default="", reader=raw_input,
              completer=None, width=_defaultwidth):  # pragma: no cover
     """