Rainbow Snake
A simple python package that allows you to colour and format text in both terminal and idle environments.
Example
from rainbowsnake import Color
Color.clear()
Color.clear()
Color.output(
f"\nWelcome to {Color.bold + Color.hexbg('#EE1C25') + Color.hextext('#ffffff')}Mushroom Cafe{Color.hexOFF + Color.boldOFF} Payroll Management \n \n"
)
Color.output(
f"{Color.warning}Please enter a number between 1 and 4{Color.warningOFF} \n"
)
Color.output("Select task:")
Color.output(f"{Color.bold}1{Color.boldOFF}. Enter hours worked")
Color.output(f"{Color.bold}2{Color.boldOFF}. Manage employees")
Color.output(f"{Color.bold}3{Color.boldOFF}. Export payroll slips")
Color.output(f"{Color.bold}4{Color.boldOFF}. View statistics \n")
Output of example
| Platform Type | Image |
|---|---|
| Terminal | |
| Idle |
About
Rainbow Snake is a python package that allows you to add colour to your command line programs.
Unlike other solutions that target terminal escape codes or idle colouring exclusively, Rainbow Snake works across all platforms, including idle and terminal based systems.
Rainbowsnake supports progressive enhancement. That means that in terminal environments it can display full hex colours, but falls back to simple colour definitions in idle.
In the terminal, Rainbowsnake can provide bold, any hex colour for text and any hex colour for background. It can also colour based on the built-in colours/symbolic styles of error, warning, success, information and important.
In idle, Rainbow Snake can only provide bold and the contextual colours of error warning success information and important.
Usage
Install Package
pip install rainbowsnake
Import color class:
from rainbowsnake import Color
Use Output [print()]
Color.output(f"Sometext")
Use Input
somevalue = Color.input(f"Enter some input: ")
Clear the Terminal
Color.clear()
Bold text
Color.output(f"{Color.bold}Sometext{Color.boldOFF}")
Symbolically Color
Available Colors
| Name | Color | Start fString Code | end fString Code |
|---|---|---|---|
| Error | Red | {Color.error} |
{Color.errorOFF} |
| Warning | Yellow | {Color.warning} |
{Color.warningOFF} |
| Success | Green | {Color.success} |
{Color.successOFF} |
| Information | Blue | {Color.information} |
{Color.informationOFF} |
| Important | Purple | {Color.important} |
{Color.importantOFF} |
Color.output(f"{Color.error}Sometext{Color.errorOFF}")
Hex Color Background
color.output( f"{color.hexbg('#EE1C25')}Sometext{color.hexOFF}")
Hex Color Text
color.output( f"{color.hextext('#EE1C25')}Sometext{color.hexOFF}")
Combining Codes
color.output( f"{color.hexbg('#EE1C25')}This text has a red background{color.hexOFF} and this is {Color.bold}bold{Color.boldOFF} and this an {Color.error}Error{Color.errorOFF}")
API Reference
Available Codes
Available Modifiers
| Name | Start fString Code | end fString Code |
|---|---|---|
| Bold | {Color.bold} |
{Color.boldOFF} |
Available Colors
| Name | Color | Start fString Code | end fString Code |
|---|---|---|---|
| Error | Red | {Color.error} |
{Color.errorOFF} |
| Warning | Yellow | {Color.warning} |
{Color.warningOFF} |
| Success | Green | {Color.success} |
{Color.successOFF} |
| Information | Blue | {Color.information} |
{Color.informationOFF} |
| Important | Purple | {Color.important} |
{Color.importantOFF} |
Hex Colors (Terminal Only)
| Type | Start Code | End Code |
|---|---|---|
| Text Color | {Color.hextext("#RRGGBB")} |
{Color.hexOFF} |
| Background Color | {Color.hexbg("#RRGGBB")} |
{Color.hexOFF} |
Functions
Color.output(string)
Prints styled text using embedded color codes.
Color.input(string)
Displays a styled prompt and returns user input.
Color.clear()
Clears the screen.
Tips
Do not nest codes
Color.output(f"{Color.error}This {Color.warning}will{Color.warningOFF} not work {Color.errorOFF}")
This will result in an error, instead, to change colors, end the current color and start the next color.
Color.output(f"{Color.error}This {Color.errorOFF}{Color.warning}will{Color.warningOFF}{Color.error} not work {Color.errorOFF}")
Metadata
Release files for rainbowsnake 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rainbowsnake-1.0.1.tar.gz | 4.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rainbowsnake-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 10.0 kB
Release files / rainbowsnake-1.0.1.tar.gz
| Download URL | rainbowsnake-1.0.1.tar.gz |
|---|---|
| Size | 4.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5cb3cd400a41fc0c1a7b318fba5483969fb1088885e0583484f2430ddcbecbef
|
|
BLAKE2b-256 checksum How to use checksums |
c5736a799d4b770d436f7fddacfd7851e4fcc6ce2a819be096780e262fe50f3a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 28, 2026.
Transparency logRelease files / rainbowsnake-1.0.1-py3-none-any.whl
| Download URL | rainbowsnake-1.0.1-py3-none-any.whl |
|---|---|
| Size | 5.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
42521085506132f157437c88bdedd0b4097037790b297be1ea552db2b71652f2
|
|
BLAKE2b-256 checksum How to use checksums |
408a1a3bc1d2dd680bcd1b931af9093d2577ea77d73dcc1bf5db27f7ef6468cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 28, 2026.
Transparency log