Skip to content

Commit b488a2b

Browse files
Bump pycrdt-websocket to v0.16.0 (#493)
* Bump pycrdt-websocket v0.16.0 * Remove type:ignore * Require jupyter_ydoc>=3.0.3 * Update pre-commit dependencies --------- Co-authored-by: Michał Krassowski <[email protected]>
1 parent 499f8ff commit b488a2b

File tree

12 files changed

+33
-65
lines changed

12 files changed

+33
-65
lines changed

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ repos:
4444
- id: mypy
4545
exclude: "(^binder/jupyter_config\\.py$)|(^scripts/bump_version\\.py$)|(/setup\\.py$)"
4646
args: ["--config-file", "pyproject.toml"]
47-
additional_dependencies: [tornado, pytest, 'pycrdt-websocket<0.16.0']
47+
additional_dependencies: [tornado, pytest, 'pycrdt-websocket>=0.16.0,<0.17.0']
4848
stages: [manual]
4949

5050
- repo: https://github.com/sirosen/check-jsonschema

docs/source/configuration.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jupyter lab --YDocExtension.file_poll_interval=2
2727
jupyter lab --YDocExtension.document_cleanup_delay=100
2828

2929
# The YStore class to use for storing Y updates (default: JupyterSQLiteYStore).
30-
jupyter lab --YDocExtension.ystore_class=pycrdt_websocket.ystore.TempFileYStore
30+
jupyter lab --YDocExtension.ystore_class=pycrdt.store.TempFileYStore
3131
```
3232

3333
There is an experimental feature that is currently only supported by the

projects/jupyter-server-ydoc/jupyter_server_ydoc/app.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from jupyter_ydoc import ydocs as YDOCS
1111
from jupyter_ydoc.ybasedoc import YBaseDoc
1212
from pycrdt import Doc
13-
from pycrdt_websocket.ystore import BaseYStore
13+
from pycrdt.store import BaseYStore
1414
from traitlets import Bool, Float, Type
1515

1616
from .handlers import (

projects/jupyter-server-ydoc/jupyter_server_ydoc/handlers.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
from jupyter_server.utils import ensure_async
1717
from jupyter_ydoc import ydocs as YDOCS
1818
from pycrdt import Doc, Encoder, UndoManager
19-
from pycrdt_websocket.yroom import YRoom
20-
from pycrdt_websocket.ystore import BaseYStore
19+
from pycrdt.store import BaseYStore
20+
from pycrdt.websocket import YRoom
2121
from tornado import web
2222
from tornado.websocket import WebSocketHandler
2323

@@ -120,7 +120,7 @@ def exception_logger(exception: Exception, log: Logger) -> bool:
120120
updates_file_path = f".{file_type}:{file_id}.y"
121121
ystore = self._ystore_class(
122122
path=updates_file_path,
123-
log=self.log, # type:ignore[call-arg]
123+
log=self.log,
124124
)
125125
self.room = DocumentRoom(
126126
self._room_id,

projects/jupyter-server-ydoc/jupyter_server_ydoc/pytest_plugin.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@
1414
from jupyter_server_ydoc.rooms import DocumentRoom
1515
from jupyter_server_ydoc.stores import SQLiteYStore
1616
from jupyter_ydoc import YNotebook, YUnicode
17-
from pycrdt_websocket import WebsocketProvider
17+
from pycrdt import Provider
18+
from pycrdt.websocket.websocket import HttpxWebsocket
1819

1920
from .test_utils import (
2021
FakeContentsManager,
2122
FakeEventLogger,
2223
FakeFileIDManager,
23-
Websocket,
2424
)
2525

2626

@@ -231,7 +231,7 @@ def _on_document_change(target: str, e: Any) -> None:
231231
doc.observe(_on_document_change)
232232

233233
websocket, room_name = await rtc_connect_doc_client(format, type, path)
234-
async with websocket as ws, WebsocketProvider(doc.ydoc, Websocket(ws, room_name)):
234+
async with websocket as ws, Provider(doc.ydoc, HttpxWebsocket(ws, room_name)):
235235
await event.wait()
236236
await sleep(0.1)
237237

@@ -243,7 +243,7 @@ async def _inner(type: str, path: str, content: str) -> DocumentRoom:
243243
db = SQLiteYStore(
244244
path=f"{type}:{path}",
245245
# `SQLiteYStore` here is a subclass of booth `LoggingConfigurable`
246-
# and `pycrdt_websocket.ystore.SQLiteYStore`, but mypy gets lost:
246+
# and `pycrdt.store.SQLiteYStore`, but mypy gets lost:
247247
config=jp_serverapp.config, # type:ignore[call-arg]
248248
)
249249
_ = create_task(db.start())

projects/jupyter-server-ydoc/jupyter_server_ydoc/rooms.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99

1010
from jupyter_events import EventLogger
1111
from jupyter_ydoc import ydocs as YDOCS
12-
from pycrdt_websocket.yroom import YRoom
13-
from pycrdt_websocket.ystore import BaseYStore, YDocNotFound
12+
from pycrdt.websocket import YRoom
13+
from pycrdt.store import BaseYStore, YDocNotFound
1414

1515
from .loaders import FileLoader
1616
from .utils import JUPYTER_COLLABORATION_EVENTS_URI, LogLevel, OutOfBandChanges

projects/jupyter-server-ydoc/jupyter_server_ydoc/stores.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# Copyright (c) Jupyter Development Team.
22
# Distributed under the terms of the Modified BSD License.
33

4-
from pycrdt_websocket.ystore import SQLiteYStore as _SQLiteYStore
5-
from pycrdt_websocket.ystore import TempFileYStore as _TempFileYStore
4+
from pycrdt.store import SQLiteYStore as _SQLiteYStore
5+
from pycrdt.store import TempFileYStore as _TempFileYStore
66
from traitlets import Int, Unicode
77
from traitlets.config import LoggingConfigurable
88

projects/jupyter-server-ydoc/jupyter_server_ydoc/test_utils.py

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
from datetime import datetime
77
from typing import Any
88

9-
from anyio import Lock
109
from jupyter_server import _tz as tz
1110

1211

@@ -56,32 +55,3 @@ def save_content(self, model: dict[str, Any], path: str) -> dict:
5655
class FakeEventLogger:
5756
def emit(self, schema_id: str, data: dict) -> None:
5857
print(data)
59-
60-
61-
class Websocket:
62-
def __init__(self, websocket: Any, path: str):
63-
self._websocket = websocket
64-
self._path = path
65-
self._send_lock = Lock()
66-
67-
@property
68-
def path(self) -> str:
69-
return self._path
70-
71-
def __aiter__(self):
72-
return self
73-
74-
async def __anext__(self) -> bytes:
75-
try:
76-
message = await self.recv()
77-
except Exception:
78-
raise StopAsyncIteration()
79-
return message
80-
81-
async def send(self, message: bytes) -> None:
82-
async with self._send_lock:
83-
await self._websocket.send_bytes(message)
84-
85-
async def recv(self) -> bytes:
86-
b = await self._websocket.receive_bytes()
87-
return bytes(b)

projects/jupyter-server-ydoc/jupyter_server_ydoc/websocketserver.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,9 @@
77
from logging import Logger
88
from typing import Any, Callable
99

10-
from pycrdt_websocket.websocket import Websocket
11-
from pycrdt_websocket.websocket_server import WebsocketServer
12-
from pycrdt_websocket.yroom import YRoom
13-
from pycrdt_websocket.ystore import BaseYStore
10+
from pycrdt import Channel
11+
from pycrdt.store import BaseYStore
12+
from pycrdt.websocket import WebsocketServer, YRoom
1413

1514

1615
class RoomNotFound(LookupError):
@@ -133,7 +132,7 @@ async def get_room(self, path: str) -> YRoom:
133132
await self.start_room(room)
134133
return room
135134

136-
async def serve(self, websocket: Websocket) -> None:
135+
async def serve(self, websocket: Channel) -> None:
137136
# start monitoring here as the event loop is not yet available when initializing the object
138137
if self.monitor_task is None:
139138
self.monitor_task = asyncio.create_task(self._monitor())

projects/jupyter-server-ydoc/pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ authors = [
2929
]
3030
dependencies = [
3131
"jupyter_server>=2.15.0,<3.0.0",
32-
"jupyter_ydoc>=2.1.2,<4.0.0,!=3.0.0,!=3.0.1",
32+
"jupyter_ydoc>=3.0.3,<4.0.0",
3333
"pycrdt",
34-
"pycrdt-websocket>=0.15.0,<0.16.0",
34+
"pycrdt-websocket>=0.16.0,<0.17.0",
3535
"jupyter_events>=0.11.0",
3636
"jupyter_server_fileid>=0.7.0,<1",
3737
"jsonschema>=4.18.0"

0 commit comments

Comments
 (0)