DRYer
This commit is contained in:
parent
6945eb4186
commit
cdd8e52116
@ -39,22 +39,27 @@ class BinaryWrite(Protocol):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class Debug:
|
def debug_write(*a: Any, **kw: Any) -> None:
|
||||||
|
|
||||||
fobj: Optional[BinaryWrite] = None
|
|
||||||
|
|
||||||
def __call__(self, *a: Any, **kw: Any) -> None:
|
|
||||||
from base64 import standard_b64encode
|
from base64 import standard_b64encode
|
||||||
|
fobj = kw.pop('file', sys.stderr.buffer)
|
||||||
buf = io.StringIO()
|
buf = io.StringIO()
|
||||||
kw['file'] = buf
|
kw['file'] = buf
|
||||||
print(*a, **kw)
|
print(*a, **kw)
|
||||||
stext = buf.getvalue()
|
stext = buf.getvalue()
|
||||||
text = b'\x1bP@kitty-print|' + standard_b64encode(stext.encode('utf-8')) + b'\x1b\\'
|
text = b'\x1bP@kitty-print|' + standard_b64encode(stext.encode('utf-8')) + b'\x1b\\'
|
||||||
fobj = self.fobj or sys.stdout.buffer
|
|
||||||
fobj.write(text)
|
fobj.write(text)
|
||||||
fobj.flush()
|
fobj.flush()
|
||||||
|
|
||||||
|
|
||||||
|
class Debug:
|
||||||
|
|
||||||
|
fobj: Optional[BinaryWrite] = None
|
||||||
|
|
||||||
|
def __call__(self, *a: Any, **kw: Any) -> None:
|
||||||
|
kw['file'] = self.fobj or sys.stdout.buffer
|
||||||
|
debug_write(*a, **kw)
|
||||||
|
|
||||||
|
|
||||||
debug = Debug()
|
debug = Debug()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -79,12 +79,8 @@ class MatchGroup:
|
|||||||
|
|
||||||
|
|
||||||
def debug(*a: Any, **kw: Any) -> None:
|
def debug(*a: Any, **kw: Any) -> None:
|
||||||
from kittens.tui.loop import Debug
|
from kittens.tui.loop import debug_write
|
||||||
if not hasattr(debug, 'output'):
|
debug_write(*a, **kw)
|
||||||
d = Debug()
|
|
||||||
d.fobj = sys.stderr.buffer # type: ignore
|
|
||||||
setattr(debug, 'output', d)
|
|
||||||
getattr(debug, 'output')(*a, **kw)
|
|
||||||
|
|
||||||
|
|
||||||
class Delegate:
|
class Delegate:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user