From 68ec61d17b3eb8fdb1466ae0697bbc601b2d0a13 Mon Sep 17 00:00:00 2001 From: krassowski <5832902+krassowski@users.noreply.github.com> Date: Thu, 11 Apr 2024 09:48:33 +0100 Subject: [PATCH 1/2] Add `pending_requests` --- jupyter_ydoc/ynotebook.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/jupyter_ydoc/ynotebook.py b/jupyter_ydoc/ynotebook.py index 5166af1..d84be1d 100644 --- a/jupyter_ydoc/ynotebook.py +++ b/jupyter_ydoc/ynotebook.py @@ -38,6 +38,12 @@ class YNotebook(YBaseDoc): "cell_type": str, "source": YText, "metadata": YMap, + "pending_requests": YArray[ + YMap[ + "id": str, + "type": str + ] + ], "execution_count": Int | None, "outputs": [] | None, "attachments": {} | None @@ -99,6 +105,9 @@ def get_cell(self, index: int) -> Dict[str, Any]: """ meta = self._ymeta.to_py() cell = self._ycells[index].to_py() + if "pending_requests" in cell: + # requests are not a part of notebook format, but a run-time only property + del cell["pending_requests"] cast_all(cell, float, int) # cells coming from Yjs have e.g. execution_count as float if "id" in cell and meta["nbformat"] == 4 and meta["nbformat_minor"] <= 4: # strip cell IDs if we have notebook format 4.0-4.4 @@ -158,6 +167,7 @@ def create_ycell(self, value: Dict[str, Any]) -> Map: del cell["attachments"] elif cell_type == "code": cell["outputs"] = Array(cell.get("outputs", [])) + cell["pending_requests"] = Array([]) return Map(cell) From 2487dc312dd61f8d65ebb62066aa1ca155fbdc45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Krassowski?= <5832902+krassowski@users.noreply.github.com> Date: Thu, 11 Apr 2024 10:13:16 +0100 Subject: [PATCH 2/2] Remove empty initializer Co-authored-by: David Brochart --- jupyter_ydoc/ynotebook.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jupyter_ydoc/ynotebook.py b/jupyter_ydoc/ynotebook.py index d84be1d..22ef67c 100644 --- a/jupyter_ydoc/ynotebook.py +++ b/jupyter_ydoc/ynotebook.py @@ -167,7 +167,7 @@ def create_ycell(self, value: Dict[str, Any]) -> Map: del cell["attachments"] elif cell_type == "code": cell["outputs"] = Array(cell.get("outputs", [])) - cell["pending_requests"] = Array([]) + cell["pending_requests"] = Array() return Map(cell)