Local staging bundle manager for multi-asset workspaces: manifest.json, per-bundle meta.json, asset lifecycle, path resolution, and Pydantic schema hooks.
- Python 3.11+ (3.12, 3.13, and 3.14 supported)
- uv (recommended for development)
pip install kitinogit clone https://github.com/sor0ush/kitino.git
cd kitino
uv python pin 3.11
uv syncuv run python -m unittest discover -s tests -vfrom pathlib import Path
from kitino.bundle_manager import StagingWorkspace
from kitino.bundle_manager.meta import AssetKind
from kitino.bundle_manager.session import AssetSpec, BundleManagerSession
root = Path("staging/my-workspace")
ws = StagingWorkspace.create(root, workspace_id="demo", workspace_kind="generic")
session = BundleManagerSession.load_or_create(root / "bundle-a", "bundle-a", "demo.type")
ws.register_bundle(root / "bundle-a")
with session.prepare_asset(
AssetSpec(key="main/data.json", kind=AssetKind.OUTPUT, created_by="example")
) as asset:
asset.filepath.write_text('{"ok": true}', encoding="utf-8")Apache License 2.0 — see LICENSE.