# Python Rich Library

`Rich` is a Python library for rich text and beautiful formatting in the terminal. It supports colors, styles, tables, progress bars, markdown, syntax highlighted source code, and tracebacks.

## Installation

```bash
pip install rich
```

## Basic Printing

The easiest way to use Rich is to import the `print` function. It supports BBCode-like tags.

```python
from rich import print

print("Hello, [bold magenta]World[/bold magenta]!", ":vampire:", locals())
print("[italic red]Error[/italic red]: Something went wrong!")
```

## The Console Object

For more control, use the `Console` object.

```python
from rich.console import Console

console = Console()
console.print("Hello", style="bold blue")
console.print("Danger!", style="bold red on white")
```

## Tables

Rich can render flexible tables with unicode box characters.

```python
from rich.console import Console
from rich.table import Table

console = Console()

table = Table(title="Star Wars Movies")

table.add_column("Released", justify="right", style="cyan", no_wrap=True)
table.add_column("Title", style="magenta")
table.add_column("Box Office", justify="right", style="green")

table.add_row("Dec 20, 2019", "Star Wars: The Rise of Skywalker", "$952,110,690")
table.add_row("May 25, 2018", "Solo: A Star Wars Story", "$393,151,347")
table.add_row("Dec 15, 2017", "Star Wars Ep. VIII: The Last Jedi", "$1,332,539,889")

console.print(table)
```

## Progress Bars

Rich provides a very easy way to add progress bars to loops using `track`.

```python
from rich.progress import track
import time

for step in track(range(100), description="Processing..."):
    time.sleep(0.05)
```

## Inspecting Objects

Rich has an `inspect` function that produces a beautiful report on any Python object.

```python
from rich import inspect

my_list = ["foo", "bar"]
inspect(my_list, methods=True)
```

## Syntax Highlighting

Rich can syntax highlight code snippets.

```python
from rich.console import Console
from rich.syntax import Syntax

code = """
def hello(name):
    print(f"Hello {name}")
"""

syntax = Syntax(code, "python", theme="monokai", line_numbers=True)
console = Console()
console.print(syntax)
```

[[programming/python/python]]