Metadata-Version: 2.4
Name: sagens
Version: 0.0.0.0.3
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Rust
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: pytest>=8,<9 ; extra == 'test'
Provides-Extra: test
Summary: Python bindings and client APIs for sagens microVM sandboxes.
Home-Page: https://github.com/tvorogme/sagens
Author: sagens contributors
License: Apache-2.0
Requires-Python: >=3.11
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM

# sagens Python

Python package for managing `sagens` daemons and BOX workspaces.

## What it includes

- Rust bindings for daemon lifecycle helpers and smoke-test server bootstrap
- A synchronous Python client for the `box_api` websocket protocol
- High-level classes for `Daemon`, `Box`, `BoxFs`, `BoxCheckpoint`, and `BoxShell`
- `pytest` smoke and gated full e2e coverage

## Local development

Build the host binary and stage it into the package layout:

```bash
cargo run --bin xtask -- dev --python-package-root python
```

Install the package in editable mode:

```bash
python3 -m pip install -e python[test]
```

Run smoke tests:

```bash
python3 -m pytest python/tests -q
```

Run full e2e when runtime assets and env are ready:

```bash
SAGENS_RUN_E2E=1 python3 -m pytest python/tests/test_e2e.py -q
```

