Skip to main content

A Python library for enhanced terminal display.

Project description

🐱‍👤 cobra-color 🐱‍👤

PyPI version Python codecov License

Tests Github stars

About

A lightweight and easy-to-use Python library for enhanced terminal display: simple text color/style conventions and image-to-terminal rendering.

  • Python: 3.9+

Features

  • 🚀 High compatibility with Python’s built-in str type.
  • 🚀 Easy and intuitive creation of color strings.
  • 🚀 Convert images to colored terminal output in a single step.

Installation

Install from PyPI

This installs the core package with minimal dependencies.

pip install cobra-color

Install with Optional Dependencies

cobra.render module support.

pip install cobra-color[render]

Quick Start

  • Render a text in the terminal:

    from cobra_color import cstr, safe_print
    
    c_text_1 = cstr("Hello World!", fg="r", styles=["bold"])
    # Print directly from the terminal
    print(c_text_1)
    
    c_text_2 = cstr("Hello World!", fg=(255, 255, 255), styles=["udl", "bold"])
    # Alternatively, you can use safe_print() to automatically support progress bar modes like tqdm and rich.
    safe_print(c_text_2)
    
    # Merge `c_text_1` and `c_text_2` while preserving their colors and style formatting.
    c_text_3 = c_text_1 + c_text_2
    
    # You can continue to use str's proprietary functions and keep the existing colors and styles.
    c_text_1.upper()
    
  • Render an image in the terminal:

    from cobra_color.render import imgfile_to_ansi, safe_print
    
    # ASCII art
    safe_print(imgfile_to_ansi("example.jpg", width=80, mode="ascii"))
    
    # Half-block color (recommended for truecolor terminals)
    imgfile_to_ansi("example.jpg", width=80, mode="half-color", display=True)
    
  • Render some text with fonts in the terminal:

    from cobra_color.draw import fonttext_to_ansi, FontName, safe_print
    
    # Borderless grayscale font
    safe_print(fonttext_to_ansi(
        "Hello World!",
        font=FontName.LLDISCO,
        mode="half-gray",
        trim_border=True
    ))
    

Image Modes

  • ascii: monochrome ASCII using a density charset.
  • color: colorized character fill.
  • half-color: half-block characters with color (higher density, good visual quality).
  • gray: grayscale characters.
  • half-gray: half-block grayscale.

Tip: For best results, use a TrueColor-capable terminal and a monospaced font.

Requirements

  • Python >= 3.9
  • (Optional) Pillow >= 9.0, < 11.0
  • (Optional) NumPy >= 1.21, < 2.0

License

See LICENSE in the repository.

Links

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

cobra_color-1.3.8.tar.gz (29.9 kB view details)

Uploaded Source

Built Distribution

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

cobra_color-1.3.8-py3-none-any.whl (31.4 kB view details)

Uploaded Python 3

File details

Details for the file cobra_color-1.3.8.tar.gz.

File metadata

  • Download URL: cobra_color-1.3.8.tar.gz
  • Upload date:
  • Size: 29.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.10

File hashes

Hashes for cobra_color-1.3.8.tar.gz
Algorithm Hash digest
SHA256 f7e888d9c30734d189009fdf7b1bd0c83ff72b8a7f72cca1b1f34f4e5fa89819
MD5 57d4acedfd58588b9911314421dc09ff
BLAKE2b-256 e6ec3539efbba1d10d4efd67120c3bc4d367ae9474cb03565af1c5bd5422cb23

See more details on using hashes here.

File details

Details for the file cobra_color-1.3.8-py3-none-any.whl.

File metadata

  • Download URL: cobra_color-1.3.8-py3-none-any.whl
  • Upload date:
  • Size: 31.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.10

File hashes

Hashes for cobra_color-1.3.8-py3-none-any.whl
Algorithm Hash digest
SHA256 d2aaacab22f9b4fb9969b00c11b25b8d993575926d4de9620344b3ede8b43067
MD5 844fd2ce89a732d52fcd686d6124f06f
BLAKE2b-256 28dbe3fddf661fadacc3b9ed2e65de7afb61bcd8457a09c1a955b21e2d663fba

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