Metadata-Version: 2.4
Name: slidex
Version: 0.1.1
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Rust
Classifier: License :: OSI Approved :: Apache Software License
Requires-Dist: maturin>=1.5 ; extra == 'dev'
Requires-Dist: pytest>=7.0 ; extra == 'dev'
Provides-Extra: dev
License-File: LICENSE
Summary: Rust-backed Python library for reading and writing PPTX files.
Author: Slidex Contributors
License: Apache-2.0
Requires-Python: >=3.9
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM

# slidex

Rust-backed Python library for reading, modifying, and generating PowerPoint
(`.pptx`) files.

## Status

Early development. APIs may change.

## What it does (today)

- Open and save PPTX files
- Enumerate slides and shapes
- Read/write text frames
- Replace text across a slide or presentation

## Install (from source)

slidex is not published yet. Install from source with:

```bash
uv venv
uv pip install maturin
uv run maturin develop
```

## Usage

Basic read/modify/write flow:

```python
from slidex import Presentation

pres = Presentation.open("deck.pptx")
pres.replace_text("{{quarter}}", "Q1 2026")

pres.save("updated.pptx")
```

Basic read, modify with shapes, write flow:

```python
from slidex import Presentation

pres = Presentation.open("deck.pptx")
slide = pres.slides[0]
shape = slide.shapes[0]
text = shape.as_text()
text.text = "Hello from slidex"

pres.save("updated.pptx")
```

Create a new deck from scratch:

```python
from slidex import Presentation

pres = Presentation.new()
slide = pres.add_slide()
slide.add_textbox("Hello from slidex")
pres.save("new_deck.pptx")
```

## Documentation

- `docs/DESIGN.md`
- `docs/ARCHITECTURE.md`
- `docs/API.md`

## Contributing

See `CONTRIBUTING.md` for developer setup, tests, and fixture tooling.

