Metadata-Version: 2.4
Name: sanqi-python
Version: 0.1.0
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Rust
Summary: Python bindings for the Sanqi Rust engine
Keywords: sanqi,board game,game engine,rust
Home-Page: https://github.com/curoli/sanqi
Author: Oliver Ruebenacker
License: MIT
Requires-Python: >=3.9
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Homepage, https://github.com/curoli/sanqi
Project-URL: Issues, https://github.com/curoli/sanqi/issues
Project-URL: Repository, https://github.com/curoli/sanqi

# sanqi-python

Python bindings for the Sanqi Rust engine.

## Build

From `crates/sanqi-python`:

```bash
maturin develop
```

Or build a wheel:

```bash
maturin build
```

## Example

```python
import sanqi_python as sanqi

position = sanqi.Position.initial()
print(position.legal_moves()[:5])

move = position.best_move(2)
if move is not None:
    svg = position.svg_for_move(move)
    position.apply_move(move)
```

## Exposed API

- `Position.initial()`
- `Position.empty("white" | "black")`
- `Position.legal_moves()`
- `Position.is_legal_move(move)`
- `Position.apply_move(move)`
- `Position.piece_at(square)`
- `Position.set_piece(color, square)`
- `Position.clear_square(square)`
- `Position.piece_count(color)`
- `Position.ascii_board()`
- `Position.svg_board()`
- `Position.svg_for_move(move)`
- `Position.best_move(depth)`
- `Position.evaluate()`
- `Position.outcome()`
- `Position.supporting_pivots(move)`


