Skip to main content

Pretty terminal utilities wrapped around rich: colorful progress bars, dict-to-table printing, and more.

Project description

prettyterm

Pretty terminal utilities wrapped around Rich: colorful progress bars, dict-to-table printing, colored logging, and more.

Installation

pip install prettyterm

Features

track() - tqdm-like Progress Bar

A clean, colorful progress bar wrapper around Rich's progress module. Drop-in replacement for tqdm with enhanced formatting.

Features:

  • Progress bar with completion percentage
  • Elapsed and remaining time
  • Iteration speed (it/s)
  • Dynamic postfix updates (string or dict)
  • Auto-detects sequence length
from prettyterm import track

# Basic usage
for i in track(range(100), desc="Processing"):
    # Your code here
    pass

# With dynamic postfix
pbar = track(range(100), desc="Epoch 3")
for i in pbar:
    pbar.set_postfix({"loss": f"{0.5}", "acc": f"{95}%"})

Output:

Progress bar example

print_table() - Pretty Dictionary Tables

Display dictionaries as colorful, formatted tables. Great for configuration display, stats output, or debugging.

Features:

  • Automatic column sizing
  • Color-coded columns (cyan keys, orange values)
  • Optional table title
  • Optional row dividers
from prettyterm import print_table

data = {
    "Name": "Alice",
    "Age": 30,
    "City": "Wonderland",
    "Role": "Developer"
}

print_table(data, title="User Info", show_lines=True)

Output:

Table printing example

get_logger() - Colored Logging with SUCCESS Level

Get a pre-configured logger with colored output and a custom SUCCESS logging level (sits between INFO and WARNING).

Features:

  • Color-coded log levels
  • Custom SUCCESS level (green)
  • Auto-configured on import
  • Clean, piped format: timestamp │ level │ name │ message
from prettyterm import get_logger

logger = get_logger("my_app")

logger.debug("Detailed debug info")
logger.info("Application started")
logger.success("Operation completed!")  # Custom level
logger.warning("Resource usage high")
logger.error("Connection failed")
logger.critical("System shutting down")

Output:

Logger example

Log Colors:

  • DEBUG - Cyan
  • INFO - White
  • SUCCESS - Green (custom)
  • WARNING - Yellow
  • ERROR - Red
  • CRITICAL - Red on white

Custom Log Level:

By default, logging is set to INFO level. You can change this by importing and calling setup_colored_logging:

from prettyterm import get_logger, setup_colored_logging
import logging

# Set to DEBUG level to see all messages
setup_colored_logging(log_level=logging.DEBUG)

logger = get_logger("my_app")
logger.debug("This will now be visible")

Development

# Install in editable mode
pip install -e .

# Run examples
python src/prettyterm/pbar.py
python src/prettyterm/table.py
python src/prettyterm/logger.py

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

prettyterm-0.2.3.tar.gz (86.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

prettyterm-0.2.3-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file prettyterm-0.2.3.tar.gz.

File metadata

  • Download URL: prettyterm-0.2.3.tar.gz
  • Upload date:
  • Size: 86.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for prettyterm-0.2.3.tar.gz
Algorithm Hash digest
SHA256 8ff730cab348030fc35dc0be74e3d7c31b50eda8d898418cd6414bf237f9870a
MD5 00d817c417b9c07c04b98829fc49b91d
BLAKE2b-256 30b1629c74b574dfd24376176452fbb1903a2d5540f983d37cb5d9b1772ad5db

See more details on using hashes here.

File details

Details for the file prettyterm-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: prettyterm-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for prettyterm-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 dc7c370c1584e40c8702d6c444f97809e37ac559227c4001b76be6e4b16404ec
MD5 74a13a21a8467887682581d547d94f3e
BLAKE2b-256 b0c0fffaffcf2052f973170c7c1cef40cc31cbc021d73b8ec391d18b6f2f868d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page