Fixed stdout
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
from threading import Lock
|
||||
from typing import Callable, List
|
||||
|
||||
from .io_buffer import IOBuffer
|
||||
|
||||
@@ -10,6 +11,14 @@ class WebIOBuffer(IOBuffer):
|
||||
def __init__(self):
|
||||
self._stdin_buffer = ""
|
||||
self._stdout_buffer = ""
|
||||
self._stdout_change_handlers: List[Callable[[str], None]] = []
|
||||
|
||||
def add_stdout_change_handler(self, handler: Callable[[str], None]) -> None:
|
||||
"""
|
||||
Add a callback for stdout changes.
|
||||
"""
|
||||
if handler not in self._stdout_change_handlers:
|
||||
self._stdout_change_handlers.append(handler)
|
||||
|
||||
def read(self) -> str:
|
||||
"""Thread-safe read from stdin buffer."""
|
||||
@@ -20,6 +29,8 @@ class WebIOBuffer(IOBuffer):
|
||||
def write(self, content: str) -> None:
|
||||
"""Thread-safe write to stdout buffer."""
|
||||
self._stdout_buffer += content
|
||||
for handler in self._stdout_change_handlers:
|
||||
handler(self._stdout_buffer)
|
||||
|
||||
def buffer_length(self) -> int:
|
||||
"""
|
||||
@@ -45,4 +56,6 @@ class WebIOBuffer(IOBuffer):
|
||||
|
||||
def clear_stdout(self) -> None:
|
||||
"""Thread-safe clear stdout buffer."""
|
||||
self._stdout_buffer = ""
|
||||
self._stdout_buffer = ""
|
||||
for handler in self._stdout_change_handlers:
|
||||
handler(self._stdout_buffer)
|
||||
Reference in New Issue
Block a user