Python bindings for the Y-Sweet server
Project description
y_sweet_sdk
Usage
from y_sweet_sdk import DocumentManager
# Get the websocket url for a document.
doc = DocumentManager('ys://localhost:8080')
url = doc.get_websocket_url('my-document-id')
# Connect to the document using y_py and ypy_websocket.
# (Based on: https://davidbrochart.github.io/ypy-websocket/usage/client/)
from ypy_websocket import WebsocketProvider
import y_py as Y
from websockets import connect
import asyncio
ydoc = Y.YDoc()
# Simple example: log the array "todolist" to stdout every time it changes.
data = ydoc.get_array("todolist")
def data_changed(event: Y.AfterTransactionEvent):
print(f"data changed: {data.to_json()}")
data.observe_deep(data_changed)
async with (
connect(url) as websocket,
WebsocketProvider(ydoc, websocket),
):
await asyncio.Future() # run forever
y_sweet_sdk
is only used to talk directly with the Y-Sweet server to obtain a WebSocket URL to pass to a client.
Use a Yjs client like ypy-websocket or pycrdt
in conjunction with y_sweet_sdk
to access the actual Y.Doc data.
Installation
For development installation with test dependencies:
pip install -e ".[dev]"
Tests
First run a y-sweet server:
npx y-sweet serve
Then run the tests:
pytest
Development
Run ruff format
to format before committing changes.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
y_sweet_sdk-0.3.0.tar.gz
(5.1 kB
view hashes)
Built Distribution
Close
Hashes for y_sweet_sdk-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f133e09e757de8cd35fc8bb31d5f50c1a9cae89e65456e0cd1a8fb158c443ff |
|
MD5 | d6af90f2f130fd6007bad4b7725a0027 |
|
BLAKE2b-256 | 2c239bf2123a290c3e0f033ecdbd3a62e3b64caafdc27dcd221711f33666a79f |