Skip to main content

Simplistic python package to print colored and/or styled text with a user friendly API.

Project description

License: MIT PyPi versions

Raia

Simplistic python package to print colored/styled text and emojis with a user friendly API.

1. Introduction

Raia is a simplistic python package that intends to provide a user friendly API for printing formatted text on the terminal. To do so, raia uses ANSI RGB codes (as many similar packages do). Truecolor ANSI support of the running terminal is assumed.

2. Installation

Using pip,

pip install raia

3. Usage

3.1 Text formatting

Raia formats text through Formatter objects. All Formatter objects have two ways to format text:

  1. Used as a callable, i.e.
     initialization = 'some initialization'
     form = raia.Formatter(initialization)
     formatted_str = form("raia package")
     print(formatted_str)
    
  2. Using the fprint method that uses the builtin print with the chosen formatting, i.e.
    initialization = 'some initialization'
    form = raia.Formatter(initialization)
    form.fprint("raia package")
    

Both of these have the same output (printed "raia package" with the formatting specified in the initialization string).

The Formatter object is initialized by a string of the ANSI escape code for the chosen formating, e.g. for printing red text we would initialize with:

Red = raia.Formatter("\x1b[38;2;255;0;0m")

To bereft the user of having anything to do with such codes, raia provides the Style, Color, FullStyle subclasses of the Formatter class. With them, the user just has to specify the necessary information (e.g. for Color the amounts of RGB, see example below).

customBlue = raia.Color(50,150,250)
customBlue.fprint('Some blue text')

Output:

image

To use a color as background, one must specify it in the initialization of the Color object as,

customBlueBG = raia.Color(50,150,250, as_background=True)
customBlueBG.fprint('Some text in blue background')

Output:

image

For commonly used colors and styles, some Color and Style objects are pre-initialized and can be used out of the box. For example,

print(raia.Red('This is red.'), raia.Underline('This is undeline.'))

is equivalent to,

Red = raia.Color(255,0,0) # or  = raia.Color('Red')
Underline = raia.Style('underline')
print(Red('This is red.'), Underline('This is undeline.'))

with output:

image

A full list of these default color/style keys can be found in

raia.defaults.keys() # default colors
raia.styles.keys()

3.2 Emojis

The emoji functionality, is implemented through Emoji objets. For example,

Heart = raia.Emoji('<3')
Cookie = raia.Emoji('cookie')
print('I ' + Heart + ' ' + Cookie + '!')

Output:

I ❤ 🍪!

A full list of currently supported emojis can be found in

raia.emojis.keys()

For more concreate usage examples check the example.py script.

4. example.py

Below, you can see the code and output of the script example.py.

import raia

# Info
print("Package name: "+raia.__name__)
print("Version: " + raia.__version__)

# Default colors
print(raia.Red("Default 'Red' as foreground."))
print(raia.Blue_bg("Default 'Blue' as background."))

# Custom color
myColor = raia.Color(0, 150, 150)
print(myColor("Custom foreground color."))

# Custom background
myBackground = raia.Color(255, 0, 150, as_background=True)
myBackground.fprint('This is a custom background color.')

# Default style
print(raia.Strikethrough('This is a default style.'))

# Custom style
myStyle = raia.Style('underline', 'italic', 'bold')
myStyle.fprint('This is a custom style.')

# Custom Full-Style
myFullStyle = raia.FullStyle(foreground=raia.Violet, background=(
    0, 80, 180),                           style=myStyle)
myFullStyle.fprint('This is a custom fully styled text.')

# Default keys
print(raia.Green('Default color keys: \n'), [*raia.defaults])
print(raia.Brown_bg('Available styles keys:\n'), [*raia.styles])

# Some text with emojis
Heart = raia.Emoji('<3')
print('This prints a heart emoji: ' + Heart)

Smiley = raia.Emoji(':)')
pointRight = raia.Emoji('backhand_index_pointing_right')
print(pointRight + "Emojis and " +
      myFullStyle('Formatter objects') + ' can work together' + Smiley)


print(raia.Lime('Full list of emojis:'))
for emj_key in raia.emojis:
    tmpEmoji = raia.Emoji(emj_key)
    print(tmpEmoji, end='')

Output:

image

Important Note: Not all styles work on all consoles.

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

raia-0.4.1.tar.gz (12.5 kB view details)

Uploaded Source

Built Distribution

raia-0.4.1-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

Details for the file raia-0.4.1.tar.gz.

File metadata

  • Download URL: raia-0.4.1.tar.gz
  • Upload date:
  • Size: 12.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for raia-0.4.1.tar.gz
Algorithm Hash digest
SHA256 98295fb35e969fb8b7c21aeaa7438512c966d1b053c792e7066953bddc7d624e
MD5 f84866c38ed0e265d15ec0c95d546906
BLAKE2b-256 5a1b071886620ae52bed3de2f8670e59a985184b4d1f48b9291e96fc9e051866

See more details on using hashes here.

File details

Details for the file raia-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: raia-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 11.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for raia-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 14a6ff6c54c37b2a1ef3e8fcb17d2b2bf70ffd61c5a75bfb89f005f927951dd5
MD5 2c62ebc0eac338801acf0d05558e4633
BLAKE2b-256 e31aab6e1a128964577002567e0491e76b6bf7b856de991f64f87a591becaec0

See more details on using hashes here.

Supported by

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