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.2.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.2-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: y_sweet_sdk-0.6.2.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.2.tar.gz
Algorithm Hash digest
SHA256 97c93a3ae6689a72c9ad83d625ba9b8fc74ccdf25a56bd20e825fb95e843b9e9
MD5 4c53f1f09855ad240ca86fe8336a6bf1
BLAKE2b-256 a470f44a42c27aeaa157a55ce05a4b1465cf56034bb684d38c3da474085f6810

See more details on using hashes here.

File details

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

File metadata

  • Download URL: y_sweet_sdk-0.6.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 dad232a2fab5df2456abeb157bbf2b123074c37f15872c71c89f6560b43055a6
MD5 3c10c88e279e798bc5730946a442452d
BLAKE2b-256 b98a8a00d42974c4d6bf5a02301cf26bd82829f507dff529a8726f3bbbfc2f29

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