Open
Description
Python: 3.7
Versions: 3.0.0 to 3.0.4
Platform: Windows
Previously on 2.0.10, anything print'd to stdout used to show up in the application in a "log-style" thanks to patch_stdout
, but now output is completely suppressed.
I modified the apt-get example to demonstrate this — it should show "Hello world!" every 100 iterations. It works on 2.0.10:
#!/usr/bin/env python
"""
Styled just like an apt-get installation.
"""
import time
from prompt_toolkit.patch_stdout import patch_stdout
from prompt_toolkit.shortcuts import ProgressBar
from prompt_toolkit.shortcuts.progress_bar import formatters
from prompt_toolkit.styles import Style
style = Style.from_dict(
{
"label": "bg:#ffff00 #000000",
"percentage": "bg:#ffff00 #000000",
"current": "#448844",
"bar": "",
}
)
def main():
custom_formatters = [
formatters.Label(),
formatters.Text(": [", style="class:percentage"),
formatters.Percentage(),
formatters.Text("]", style="class:percentage"),
formatters.Text(" "),
formatters.Bar(sym_a="#", sym_b="#", sym_c="."),
formatters.Text(" "),
]
with ProgressBar(style=style, formatters=custom_formatters) as pb:
for i in pb(range(1600), label="Installing"):
if (i + 1) % 100 == 0:
print("Hello world!")
time.sleep(0.001)
if __name__ == "__main__":
with patch_stdout():
main()