koloro 0.1.4
Koloro - colorful terminal text in Python
License: MIT
Requires Python: >=3.6
Keywords: python,cli,terminal,styling,ansi,ansi-colors,colorful

<h1>
  <span style="color: red;">K</span>
  <span style="color: lime;">o</span>
  <span style="color: yellow;">l</span>
  <span style="color: blue;">o</span>
  <span style="color: magenta;">r</span>
  <span style="color: cyan;">o</span>
</h1>

<p>
  <a href="https://github.com/ydcjeff/koloro/actions/workflows/ci.yaml" target="_blank" rel="noopener noreferrer"><img src="https://github.com/ydcjeff/koloro/actions/workflows/ci.yaml/badge.svg?branch=main" alt="CI status"></a>
  <a href="https://pypi.org/pypi/koloro" target="_blank" rel="noopener noreferrer"><img src="https://img.shields.io/pypi/v/koloro" alt="PyPI version"></a>
  <a href="https://pypi.org/pypi/koloro" target="_blank" rel="noopener noreferrer"><img src="https://img.shields.io/pypi/dm/koloro" alt="PyPI - Downloads"></a>
</p>

> Koloro - colorful terminal text in Python

<img src="https://raw.githubusercontent.com/ydcjeff/koloro/main/.github/preview.png" alt="Koloro preview" width="100%">

## Usage

Install with `pip`:

```sh
pip install koloro
```

```py
import koloro

print(koloro.red(f"Error: something was wrong in {koloro.cyan('main.py')}"))
```

The following environment variables can be used to disable color output globally:

- Disable settings:

  - `NO_COLOR` (assigning something to `NO_COLOR` disables color output regardless of the value)
  - `TERM=dumb`

- Enable settings:

  - `FORCE_COLOR` (assigning something to `FORCE_COLOR` enables color output regardless of the value)

Moreover, the `enabled` variable can also be used to toggle color output on and off:

```py
import koloro

# color output on
koloro.enabled = True
print(koloro.cyan("foo"))  # -> "\u001b[36mfoo\u001b[39m"

# color output off
koloro.enabled = False
print(koloro.cyan("foo"))  # -> "foo"
```

Stripping ANSI codes function is also provided:

```py
import koloro

print(koloro.cyan("foo"))  # -> "\u001b[36mfoo\u001b[39m"
print(koloro.strip_ansi(koloro.cyan("foo")))  # -> "foo"
```

There is also functions for ANSI 256 colors output:

```py
import koloro

# code number 12 from https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit
print(koloro.ansi256(12)('foo'))  # -> "\u001b[38;5;12mfoo\u001b[0m"
```

```py
import koloro

# code number 12 from https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit
print(koloro.ansi256Bg(12)(koloro.black('foo')))  # -> "\u001b[48;5;12mfoo\u001b[0m"
```

## API Reference

Below functions require one argument `txt`.

### Modifiers

- `reset`
- `bold`
- `dim`
- `italic`
- `underline`
- `inverse`
- `hidden`
- `strikethrough`

### Colors

- `black`
- `red`
- `green`
- `yellow`
- `blue`
- `magenta`
- `cyan`
- `white`

### Background colors

- `bgBlack`
- `bgRed`
- `bgGreen`
- `bgYellow`
- `bgBlue`
- `bgMagenta`
- `bgCyan`
- `bgWhite`

### Bright colors

- `grey`
- `brightRed`
- `brightGreen`
- `brightYellow`
- `brightBlue`
- `brightMagenta`
- `brightCyan`
- `brightWhite`

### Bright background colors

- `bgGrey`
- `bgBrightRed`
- `bgBrightGreen`
- `bgBrightYellow`
- `bgBrightBlue`
- `bgBrightMagenta`
- `bgBrightCyan`
- `bgBrightWhite`

### ANSI 256 colors

- `ansi256`

  - Arguments:

    - `n` (`int`) - color code from ANSI 256

  - Returns:
    - a function who argument is the text to display color output

- `ansi256Bg`

  - Arguments:

    - `n` (`int`) - color code from ANSI 256

  - Returns:
    - a function who argument is the text to display color output

- `strip_ansi`

  - Arguments:

    - `string` (`str`) - ANSI colored string

  - Returns:
    - a string which no ANSI codes

## License

[MIT](./LICENSE)