diff --git a/jupyter_ydoc/ynotebook.py b/jupyter_ydoc/ynotebook.py index 7452263..b6f192d 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 @@ -100,6 +106,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 @@ -164,6 +173,7 @@ def create_ycell(self, value: Dict[str, Any]) -> Map: output["text"] = Array(output.get("text", [])) outputs[idx] = Map(output) cell["outputs"] = Array(outputs) + cell["pending_requests"] = Array() return Map(cell)