Skip to main content

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


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.6.1.tar.gz (5.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

y_sweet_sdk-0.6.1-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file y_sweet_sdk-0.6.1.tar.gz.

File metadata

  • Download URL: y_sweet_sdk-0.6.1.tar.gz
  • Upload date:
  • Size: 5.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.6

File hashes

Hashes for y_sweet_sdk-0.6.1.tar.gz
Algorithm Hash digest
SHA256 b1a5d85ea22c22c0ba66f79463df8ab7dafcd48b3daef495551c97ca50748180
MD5 04fb79140725c11c9a4f066811fd1f92
BLAKE2b-256 8a6f7bd9283cf14627603ab58d4cba4f5cae6c98918cb66f27f21a6568bbe43b

See more details on using hashes here.

File details

Details for the file y_sweet_sdk-0.6.1-py3-none-any.whl.

File metadata

  • Download URL: y_sweet_sdk-0.6.1-py3-none-any.whl
  • Upload date:
  • Size: 5.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.6

File hashes

Hashes for y_sweet_sdk-0.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 20816c593c871836e0b206c061d5188aa14948da4df8a14ee5f71b9dcc238bc0
MD5 eb185209c9c996591e8956c74c72c2bf
BLAKE2b-256 da9eb991e4737e6a0c17ed457d128ca4aff309afeeb5ddeb95346d6bf77dd423

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page