<h3 align="center">
	<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/logos/exports/1544x1544_circle.png" width="100" alt="Logo"/><br/>
	<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/misc/transparent.png" height="30" width="0px"/>
	Catppuccin for <a href="https://www.python.org/">Python</a>
	<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/misc/transparent.png" height="30" width="0px"/>
</h3>

<p align="center">
	<a href="https://github.com/catppuccin/python/stargazers"><img src="https://img.shields.io/github/stars/catppuccin/python?colorA=363a4f&colorB=b7bdf8&style=for-the-badge"></a>
	<a href="https://github.com/catppuccin/python/issues"><img src="https://img.shields.io/github/issues/catppuccin/python?colorA=363a4f&colorB=f5a97f&style=for-the-badge"></a>
	<a href="https://github.com/catppuccin/python/contributors"><img src="https://img.shields.io/github/contributors/catppuccin/python?colorA=363a4f&colorB=a6da95&style=for-the-badge"></a>
</p>

## Installation

Install with `pip` or your preferred dependency management tool.

```
pip install catppuccin
```

## Documentation

For an API reference and usage examples, [see our online documentation](https://python.catppuccin.com/docs).

## IPython Theme

A minimal configuration:

```python
c.TerminalInteractiveShell.true_color = True
c.TerminalInteractiveShell.highlighting_style = "catppuccin-mocha"
```

Putting this into your [IPython configuration](https://ipython.readthedocs.io/en/stable/config/intro.html)
and ensuring `catppuccin[pygments]` is installed in the same environment will
give you Catppuccin Mocha syntax highlighting in the REPL. See [here](https://github.com/backwardspy/dots/blob/f6991570d6691212e27e266517656192f910ccbf/dot_config/ipython/profile_default/ipython_config.py)
for an example of a more complete configuration.

Available IPython themes:

- `catppuccin-latte`
- `catppuccin-frappe`
- `catppuccin-macchiato`
- `catppuccin-mocha`

## Contribution

If you are looking to contribute, please read through our
[CONTRIBUTING.md](https://github.com/catppuccin/.github/blob/main/CONTRIBUTING.md)
first!

### Development

This project is maintained with [uv](https://docs.astral.sh/uv/). If you
don't have uv yet, you can install it using the [installation
instructions](https://docs.astral.sh/uv/getting-started/installation/).

Install the project's dependencies including extras:

```
uv sync --all-extras
```

#### Codegen

[`catppuccin/palette.py`](./catppuccin/palette.py) is generated by a [build script](`./build.py`) based on the contents of [`palette.json`](./palette.json).

To update after downloading a new palette JSON file:

```
uv run build.py
```

Formatting this file is done manually as with any other file, see [`Code Standards`](#code-standards) below.

#### Code Standards

All of the tools listed in this section are automatically installed by uv as
part of the `dev` dependency group.

##### Unit Tests

Tests are run with [`pytest`](https://docs.pytest.org/en/stable/).

To run tests and display coverage:

```
pytest --cov catppuccin
```

##### Type Checking

Type checking is performed by [`mypy`](https://www.mypy-lang.org/).

To run type checks:

```
mypy .
```

##### Lints and Formatting

Code linting and formatting is done by [`ruff`](https://docs.astral.sh/ruff/).

To lint the code:

```
ruff check
```

To format the code:

```
ruff format
```

## 💝 Thanks to

- [backwardspy](https://github.com/backwardspy)
- [Bram de Wilde](https://github.com/brambozz)
- [miloth](https://github.com/miloth)

&nbsp;

<p align="center">
	<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/footers/gray0_ctp_on_line.svg?sanitize=true" />
</p>
<p align="center">
	Copyright &copy; 2022-present <a href="https://github.com/catppuccin" target="_blank">Catppuccin Org</a>
</p>
<p align="center">
	<a href="https://github.com/catppuccin/catppuccin/blob/main/LICENSE"><img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&logoColor=d9e0ee&colorA=363a4f&colorB=b7bdf8"/></a>
</p>
