Metadata-Version: 2.4
Name: pandasnoir
Version: 1.0.0
Summary: A sqlnoir inspired game for pandas
License: MIT
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: ipython>=9.0
Requires-Dist: numpy>=2.0
Requires-Dist: pandas>=3.0
Requires-Dist: rich>=14.0
Requires-Dist: rich-pixels>=3.0
Requires-Dist: textual>=8.0
Requires-Dist: tree-sitter>=0.25
Requires-Dist: tree-sitter-python>=0.25
Provides-Extra: test
Requires-Dist: pytest>=8.0; extra == "test"
Requires-Dist: pytest-asyncio>=0.25; extra == "test"
Provides-Extra: dev
Requires-Dist: pandasnoir[test]; extra == "dev"
Requires-Dist: ruff>=0.11; extra == "dev"
Dynamic: license-file

<p align="center">
    <img src="demo.gif" alt="Cover photo" />
    <br/>
    <img src="https://img.shields.io/github/stars/ndrscalia/pandasnoir?style=social" />
  </p>

`pandasnoir` is a TUI based game built with [Textual](https://github.com/textualize/textual) and inspired by [sqlnoir](sqlnoir.com). The cases and the data are the same, but you can now test your pandas' skills on them.<br/>
The pixel "art" (I'm no professional, I know) was drawn by me with [Aseprite](https://www.aseprite.org). For it to render, your monitor should be bigger than a laptop's one or your terminal should be more zoomed out than mine.

If you find any value in this project please leave a star and consider to offer me a coffee (Paypal or Github sponsor).

> [!IMPORTANT]
> For the Textual experience to fully express itself you should run the program on a modern terminal emulator (tested on Kitty only, but any other popular option should work fine).

> [!IMPORTANT]
> Assets and output enrichment are mainly suited to Textual's default dark theme. Other themes – especially light ones – may not allow a good UI experience.

Once you launch the game the directory `~/.pandasnoir/` is created to store progress and make your work persistent. If you want to reset everything, just delete the directory.

# Installation
The software can be installed through PyPi:<br/>
```bash
# using pip/pipx
pip install pandasnoir
pipx install pandasnoir # pipx upgrade to update it

# or using uv
uv tool install pandasnoir
```

You can also install the software from source:<br/>
```bash
git clone https://github.com/ndrscalia/pandasnoir
cd pandasnoir
pip install -e .
```
Then you can simply run `pandasnoir`.

The software can also be used without installing it through uv:
```bash
uvx --from pandasnoir pandasnoir
```

# Contributing
Any contribution is welcome. Open an issue for bugs / qol proposals or use pull requests if you wrote a new case that you would like to be added.

# Testing
To test the repo install the test dependencies

```bash
cd pandasnoir
pip install -e ".[test]" # or pip install -e ".[dev]"
pytest -v
```

The test suite was built with claude-code and then reviewed by me.
