summaryrefslogtreecommitdiff
path: root/src/_pytest/_io
diff options
context:
space:
mode:
authorRan Benita <ran@unusedvar.com>2020-04-29 15:54:58 +0300
committerRan Benita <ran@unusedvar.com>2020-04-30 16:44:02 +0300
commit5e2d820308a0a78212efb6dadfdc7cbe02b7cbec (patch)
tree49f7c1a259b3f280b4167af6b4dce743b0fef56b /src/_pytest/_io
parent3014d9a3f75f988c4925176a133efbaf75637ce1 (diff)
downloadpytest-5e2d820308a0a78212efb6dadfdc7cbe02b7cbec.tar.gz
terminalwriter: fix lints
Diffstat (limited to 'src/_pytest/_io')
-rw-r--r--src/_pytest/_io/terminalwriter.py68
1 files changed, 27 insertions, 41 deletions
diff --git a/src/_pytest/_io/terminalwriter.py b/src/_pytest/_io/terminalwriter.py
index aeb5c110d..609d4418c 100644
--- a/src/_pytest/_io/terminalwriter.py
+++ b/src/_pytest/_io/terminalwriter.py
@@ -1,16 +1,13 @@
"""Helper functions for writing to terminals and files."""
-import sys
import os
+import shutil
+import sys
import unicodedata
+from io import StringIO
-import py
-from py.builtin import text, bytes
# This code was initially copied from py 1.8.1, file _io/terminalwriter.py.
-py3k = sys.version_info[0] >= 3
-py33 = sys.version_info >= (3, 3)
-
win32_and_ctypes = False
colorama = None
@@ -20,35 +17,24 @@ if sys.platform == "win32":
except ImportError:
try:
import ctypes
-
- win32_and_ctypes = True
except ImportError:
pass
+ else:
+ win32_and_ctypes = True
def _getdimensions():
- if py33:
- import shutil
-
- size = shutil.get_terminal_size()
- return size.lines, size.columns
- else:
- import termios
- import fcntl
- import struct
-
- call = fcntl.ioctl(1, termios.TIOCGWINSZ, "\000" * 8)
- height, width = struct.unpack("hhhh", call)[:2]
- return height, width
+ size = shutil.get_terminal_size()
+ return size.lines, size.columns
def get_terminal_width():
width = 0
try:
_, width = _getdimensions()
- except py.builtin._sysex:
+ except (KeyboardInterrupt, SystemExit, MemoryError, GeneratorExit):
raise
- except:
+ except BaseException:
# pass to fallback below
pass
@@ -150,7 +136,7 @@ def should_do_markup(file):
)
-class TerminalWriter(object):
+class TerminalWriter:
_esctable = dict(
black=30,
red=31,
@@ -178,12 +164,10 @@ class TerminalWriter(object):
def __init__(self, file=None, stringio=False, encoding=None):
if file is None:
if stringio:
- self.stringio = file = py.io.TextIO()
+ self.stringio = file = StringIO()
else:
from sys import stdout as file
- elif py.builtin.callable(file) and not (
- hasattr(file, "write") and hasattr(file, "flush")
- ):
+ elif callable(file) and not (hasattr(file, "write") and hasattr(file, "flush")):
file = WriteFile(file, encoding=encoding)
if hasattr(file, "isatty") and file.isatty() and colorama:
file = colorama.AnsiToWin32(file).stream
@@ -236,7 +220,7 @@ class TerminalWriter(object):
esc = []
for name in kw:
if name not in self._esctable:
- raise ValueError("unknown markup: %r" % (name,))
+ raise ValueError("unknown markup: {!r}".format(name))
if kw[name]:
esc.append(self._esctable[name])
return self._escaped(text, tuple(esc))
@@ -259,7 +243,7 @@ class TerminalWriter(object):
# N <= (fullwidth - len(title) - 2) // (2*len(sepchar))
N = max((fullwidth - len(title) - 2) // (2 * len(sepchar)), 1)
fill = sepchar * N
- line = "%s %s %s" % (fill, title, fill)
+ line = "{} {} {}".format(fill, title, fill)
else:
# we want len(sepchar)*N <= fullwidth
# i.e. N <= fullwidth // len(sepchar)
@@ -274,8 +258,8 @@ class TerminalWriter(object):
def write(self, msg, **kw):
if msg:
- if not isinstance(msg, (bytes, text)):
- msg = text(msg)
+ if not isinstance(msg, (bytes, str)):
+ msg = str(msg)
self._update_chars_on_current_line(msg)
@@ -319,8 +303,8 @@ class TerminalWriter(object):
class Win32ConsoleWriter(TerminalWriter):
def write(self, msg, **kw):
if msg:
- if not isinstance(msg, (bytes, text)):
- msg = text(msg)
+ if not isinstance(msg, (bytes, str)):
+ msg = str(msg)
self._update_chars_on_current_line(msg)
@@ -350,7 +334,7 @@ class Win32ConsoleWriter(TerminalWriter):
SetConsoleTextAttribute(handle, oldcolors)
-class WriteFile(object):
+class WriteFile:
def __init__(self, writemethod, encoding=None):
self.encoding = encoding
self._writemethod = writemethod
@@ -365,9 +349,11 @@ class WriteFile(object):
if win32_and_ctypes:
- TerminalWriter = Win32ConsoleWriter
- import ctypes
+ import ctypes # noqa: F811
from ctypes import wintypes
+ from ctypes import windll # type: ignore[attr-defined] # noqa: F821
+
+ TerminalWriter = Win32ConsoleWriter # type: ignore[misc] # noqa: F821
# ctypes access to the Windows console
STD_OUTPUT_HANDLE = -11
@@ -407,18 +393,18 @@ if win32_and_ctypes:
("dwMaximumWindowSize", COORD),
]
- _GetStdHandle = ctypes.windll.kernel32.GetStdHandle
+ _GetStdHandle = windll.kernel32.GetStdHandle
_GetStdHandle.argtypes = [wintypes.DWORD]
_GetStdHandle.restype = wintypes.HANDLE
def GetStdHandle(kind):
return _GetStdHandle(kind)
- SetConsoleTextAttribute = ctypes.windll.kernel32.SetConsoleTextAttribute
+ SetConsoleTextAttribute = windll.kernel32.SetConsoleTextAttribute
SetConsoleTextAttribute.argtypes = [wintypes.HANDLE, wintypes.WORD]
SetConsoleTextAttribute.restype = wintypes.BOOL
- _GetConsoleScreenBufferInfo = ctypes.windll.kernel32.GetConsoleScreenBufferInfo
+ _GetConsoleScreenBufferInfo = windll.kernel32.GetConsoleScreenBufferInfo
_GetConsoleScreenBufferInfo.argtypes = [
wintypes.HANDLE,
ctypes.POINTER(CONSOLE_SCREEN_BUFFER_INFO),
@@ -430,7 +416,7 @@ if win32_and_ctypes:
_GetConsoleScreenBufferInfo(handle, ctypes.byref(info))
return info
- def _getdimensions():
+ def _getdimensions(): # noqa: F811
handle = GetStdHandle(STD_OUTPUT_HANDLE)
info = GetConsoleInfo(handle)
# Substract one from the width, otherwise the cursor wraps