reprint
A simple module for Python2/3 to print and refresh multi line output contents in terminal
What it is and what it does
reprint is a terminal output library that lets you bind Python variables to lines of text and automatically refresh the display whenever those variables change. Instead of printing static text once, you define a multi-line output template (as a list or dictionary), update the variables inside the with block, and the terminal display updates in place without scrolling or reprinting everything. It handles Unicode character widths correctly and provides thread-safe updates using locks.
The package is designed for scenarios like progress monitors, status dashboards, or live data displays where you need to update multiple lines of output simultaneously as your program runs. It works with both Python 2 and 3, depends on six, colorama, and backports.shutil-get-terminal-size for compatibility, and falls back to standard print in non-terminal environments. However, it has been abandoned since early 2021 and receives no active maintenance.
Use it for:
- Build a progress monitor that updates multiple status lines as tasks complete without scrolling the terminal
- Display a live dashboard of changing metrics (e.g., server stats, download speeds) that refreshes in place
- Implement a multi-threaded worker pool display where each thread's status updates on its own line
- Create a file transfer UI showing simultaneous progress for multiple files being copied or uploaded
- Build a real-time log viewer that updates specific output lines as new events arrive
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Binds Python variables to multi-line terminal output and automatically refreshes the display when variables change, with thread-safe updates.
Yes, if you need simple multi-line terminal refresh and can accept an abandoned package. The library is lightweight, has no known vulnerabilities, and the core functionality is stable. However, do not use it for new projects requiring active maintenance or compatibility guarantees with future Python versions—consider maintained alternatives if long-term support is critical.
Install
reprint on PyPI
pip
pip install reprintuv
uv add reprintpoetry
poetry add reprintInstalling reprint
Before you install
Low friction installation with three lightweight dependencies (six, backports.shutil-get-terminal-size, colorama). However, the package is abandoned—last commit was 2021-02-08 and no updates have been released since. Use only if the existing functionality meets your needs without expecting maintenance or bug fixes.
License in practice
Licensed under Apache-2.0 (permissive), which allows commercial and private use with minimal restrictions. You may use, modify, and distribute the package freely as long as you include the license and provide notice of changes.
Quickstart
from reprint import output
with output(output_type="list", initial_len=1) as output_list:
output_list[0] = "Status: running"
# Changing output_list[0] automatically refreshes terminal display
Does not work in IDLE or environments that don't provide terminal_size; requires a proper terminal environment. In non-terminal contexts, falls back to standard print.
Verify before relying
- Whether the package works reliably with modern Python versions beyond 3.x, given its abandoned status since 2021
- Performance characteristics when handling very large or rapidly-updating output in production scenarios
- Compatibility with recent versions of colorama and backports.shutil-get-terminal-size
Package facts
| License | Apache-2.0 (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — six, backports.shutil-get-terminal-size, colorama |
| Maintenance | abandoned — 2,013 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 75,419/month — #14,717 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: reprint-0.6.0-py2.py3-none-any.whl
Keywords: multi, line, print, value, binding, refresh
Tags
More Terminals packages
Wraps any iterable to display a real-time…
copyleft · top 100 on PyPI
richRich renders styled text, tables, progress…
permissive · top 100 on PyPI
coloramaColorama makes ANSI escape sequences for…
permissive · top 100 on PyPI
wcwidthMeasures the displayed width of Unicode strings…
permissive · top 1,000 on PyPI
ptyprocessRun a subprocess in a pseudo terminal (pty) and…
permissive · top 1,000 on PyPI
pexpectPexpect spawns and controls interactive console…
permissive · top 1,000 on PyPI
terminaltablesRenders formatted ASCII tables in terminal…
permissive · top 5,000 on PyPI
terminaltables3Renders formatted tables in terminal output…
permissive · top 15,000 on PyPI
urwid-readlineAdds readline-style keyboard shortcuts to urwid…
permissive · top 15,000 on PyPI
streamlit-autorefreshAdds a frontend timer to Streamlit apps that…
unclear · top 15,000 on PyPI
urwidUrwid is a Python console UI library that lets…
copyleft · top 5,000 on PyPI
rst2ansiConverts reStructuredText documents to…
permissive · top 15,000 on PyPI
traceriteFormats Python exceptions and tracebacks into…
permissive · top 5,000 on PyPI
pythondialogProvides a Python interface to the UNIX dialog…
copyleft · top 15,000 on PyPI
artConverts text and generates one-line ASCII art…
permissive · top 5,000 on PyPI