Skip to main content

A Python library for enhanced terminal display.

Project description

🐱‍👤 cobra-color 🐱‍👤

PyPI version Python Tests codecov License

Pull Requests Welcome Github stars

About

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

  • Python: 3.9+
  • Runtime deps: Pillow (>=9,<11), NumPy (>=1.21,<2)

Features

  • 🚀 Concise color/style names for terminal text.
  • 🚀 Image rendering in multiple modes: ASCII, color, half-color, gray, half-gray.
  • 🚀 Minimal dependencies and easy integration.

Installation

Stable (once published):

pip install cobra-color

Quick Start

  • Render a text in the terminal:

    from cobra_color import ctext, smart_print
    
    c_text_1 = ctext("Hello World!", fg="r", styles=["bold"])
    # Print directly from the terminal
    print(c_text_1)
    
    c_text_2 = ctext("Hello World!", fg=(255, 255, 255), styles=["udl", "bold"])
    # Alternatively, you can use smart_print() to automatically support progress bar modes like tqdm and rich.
    smart_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, smart_print
    
    # ASCII art
    smart_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, smart_print
    
    # Borderless grayscale font
    smart_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
  • Pillow >= 9.0, < 11
  • 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.0.2.tar.gz (26.4 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.0.2-py3-none-any.whl (27.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: cobra_color-1.0.2.tar.gz
  • Upload date:
  • Size: 26.4 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.0.2.tar.gz
Algorithm Hash digest
SHA256 1a1b36c87a49624f15495724e22da5c24fe8f406e2fca6517c32e0849412b0ef
MD5 d5c12ca2246af01b611c5879a015c914
BLAKE2b-256 7c785ab4aab281832b7e6c058e515d8cd76dc49e318dfc0fc421fa4175ea6c79

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cobra_color-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 27.8 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.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 062b486b184082df3f0fb541c5e35bae38b207c1d8490a76c52b4cd39cca367c
MD5 beae5e1cb5e23d8774e4165b3fc7214b
BLAKE2b-256 58b70a0ea63b1c6a1d1b7da72e2b28e3534200e92306ccea47eac33f7c5d8ce6

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