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.5.tar.gz (86.5 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.5-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: prettyterm-0.2.5.tar.gz
  • Upload date:
  • Size: 86.5 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.5.tar.gz
Algorithm Hash digest
SHA256 2238aca9b51e7d72e7cf0585d8a4e15bd9e3303a02a47707d1befe130c06437a
MD5 288290c9f8e33379716c0c61683290d1
BLAKE2b-256 4d3b2a072623c16eaa6c4ff4a904c8ec150ba7e7a747b1ddf075319d522dc46b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: prettyterm-0.2.5-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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 4bc2d2ebf867c8748544f1af570bc9569d7c5de54106277f2f67b6a2e84b3921
MD5 464b2b73c6e5dccedd6343b6ecc0fbd8
BLAKE2b-256 e2ab042e2f227da94b47b1dfb26653fdb528228b1a4a1d369592d326ab886174

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