jupyter-server-ydoc 2.0.0b0__py3-none-any.whl → 2.0.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- __version__ = "2.0.0b0"
1
+ __version__ = "2.0.1"
@@ -153,6 +153,9 @@ class FileLoader:
153
153
  path, format=model["format"], type=model["type"], content=False
154
154
  )
155
155
  )
156
+ # Skip saving if file is not writable
157
+ if not m["writable"]:
158
+ return None
156
159
 
157
160
  if self.last_modified == m["last_modified"]:
158
161
  self._log.info("Saving file: %s", path)
@@ -271,13 +271,16 @@ def rtc_create_mock_document_room():
271
271
  last_modified: datetime | None = None,
272
272
  save_delay: float | None = None,
273
273
  store: SQLiteYStore | None = None,
274
+ writable: bool = False,
274
275
  ) -> tuple[FakeContentsManager, FileLoader, DocumentRoom]:
275
276
  paths = {id: path}
276
277
 
277
278
  if last_modified is None:
278
- cm = FakeContentsManager({"content": content})
279
+ cm = FakeContentsManager({"content": content, "writable": writable})
279
280
  else:
280
- cm = FakeContentsManager({"last_modified": datetime.now(), "content": content})
281
+ cm = FakeContentsManager(
282
+ {"last_modified": datetime.now(), "content": content, "writable": writable}
283
+ )
281
284
 
282
285
  loader = FileLoader(
283
286
  id,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jupyter-server-ydoc
3
- Version: 2.0.0b0
3
+ Version: 2.0.1
4
4
  Summary: jupyter-server extension integrating collaborative shared models.
5
5
  Author-email: Jupyter Development Team <jupyter@googlegroups.com>
6
6
  License: # Licensing terms
@@ -76,9 +76,9 @@ Classifier: Programming Language :: Python :: 3.11
76
76
  Classifier: Programming Language :: Python :: 3.12
77
77
  Requires-Python: >=3.8
78
78
  Requires-Dist: jsonschema>=4.18.0
79
- Requires-Dist: jupyter-events>=0.10.0
79
+ Requires-Dist: jupyter-events>=0.11.0
80
80
  Requires-Dist: jupyter-server-fileid<1,>=0.7.0
81
- Requires-Dist: jupyter-server<3.0.0,>=2.11.1
81
+ Requires-Dist: jupyter-server<3.0.0,>=2.15.0
82
82
  Requires-Dist: jupyter-ydoc!=3.0.0,!=3.0.1,<4.0.0,>=2.1.2
83
83
  Requires-Dist: pycrdt
84
84
  Requires-Dist: pycrdt-websocket<0.16.0,>=0.15.0
@@ -89,7 +89,7 @@ Requires-Dist: dirty-equals; extra == 'test'
89
89
  Requires-Dist: httpx-ws>=0.5.2; extra == 'test'
90
90
  Requires-Dist: importlib-metadata>=4.8.3; (python_version < '3.10') and extra == 'test'
91
91
  Requires-Dist: jupyter-server-fileid[test]; extra == 'test'
92
- Requires-Dist: jupyter-server[test]>=2.4.0; extra == 'test'
92
+ Requires-Dist: jupyter-server[test]>=2.15.0; extra == 'test'
93
93
  Requires-Dist: pytest-cov; extra == 'test'
94
94
  Requires-Dist: pytest>=7.0; extra == 'test'
95
95
  Description-Content-Type: text/markdown
@@ -1,9 +1,9 @@
1
1
  jupyter_server_ydoc/__init__.py,sha256=B8H7XLhzgrTCQD8304Lx91FYXslwabsnV9OuYu4M4Hw,346
2
- jupyter_server_ydoc/_version.py,sha256=gp1JFgqc6Oked4jvQy1gW-JzUHoP8hvJ-hPCfshbuP0,24
2
+ jupyter_server_ydoc/_version.py,sha256=wAxkK8w13vqoF47A8iqWdSlIgRRXmZiQ0R4wePZfzhs,22
3
3
  jupyter_server_ydoc/app.py,sha256=JqkpijoPdo_qum0CKqbG-I6W8fpC3-v2cFA3kFxK3mg,8111
4
4
  jupyter_server_ydoc/handlers.py,sha256=Q0A638Ke_TR-hSdAgyz8u1gIOCk3FIqWRhV-QH2PLMM,27977
5
- jupyter_server_ydoc/loaders.py,sha256=TijilImdgYk9K91cXEIP_DzkOr6phSddwQFpLI5l_RA,10564
6
- jupyter_server_ydoc/pytest_plugin.py,sha256=1Y-iNZnEyhajx4HU-40aZ9iRVWcC5ikC5Y8JJHCH0So,8419
5
+ jupyter_server_ydoc/loaders.py,sha256=rUPZZsMIxcE7ZEWTY8O2_ib7DUCmLvvdptqZYpsusdY,10676
6
+ jupyter_server_ydoc/pytest_plugin.py,sha256=M9dQhiyDnGxFWxoGDj5l5lRVyfkYFKdU2i1Yj_Z16sU,8525
7
7
  jupyter_server_ydoc/rooms.py,sha256=szOAfMldhQIrmVpqoF75O0_KXY54X_TrzJz6vpjR6kE,12254
8
8
  jupyter_server_ydoc/stores.py,sha256=_5J6eNs3R5Tv88PCc-GGuszxQstfvNoBCYABqzBzJXA,1004
9
9
  jupyter_server_ydoc/test_utils.py,sha256=utUwB5FThc_SCQshhUbLNih9GUa5qBcmMgU6-jx0ZnA,2275
@@ -12,8 +12,8 @@ jupyter_server_ydoc/websocketserver.py,sha256=7fLPJcWczD-4R_-LXtfvNxM_pUXFasZWDm
12
12
  jupyter_server_ydoc/events/awareness.yaml,sha256=2FrCci5rZIaU4rn8pIPZJkd132YAZdzKjSNSwjOY7Dk,755
13
13
  jupyter_server_ydoc/events/fork.yaml,sha256=3OrhQjhVyLjlBJWMiffbnZodL3GzFafLwEmSBFrK33o,1303
14
14
  jupyter_server_ydoc/events/session.yaml,sha256=PS0MxowpRwY5QFYm-LJvHUxKHnsictV8_6VEwfhYxcQ,1596
15
- jupyter_server_ydoc-2.0.0b0.data/data/etc/jupyter/jupyter_server_config.d/jupyter_collaboration.json,sha256=0thh2hJUxAKkZSmneJMG0U6QJRjdM6zGlwrTedEt-Jk,94
16
- jupyter_server_ydoc-2.0.0b0.dist-info/METADATA,sha256=rwp9AugpqpXOVMAk62BtofDClemQMOJ5tOXYZxl5noI,5116
17
- jupyter_server_ydoc-2.0.0b0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
18
- jupyter_server_ydoc-2.0.0b0.dist-info/licenses/LICENSE,sha256=mhO0ZW9EiWOPg0dUgB-lNbJ0CGwRmTdbeAg_se1SOnY,2833
19
- jupyter_server_ydoc-2.0.0b0.dist-info/RECORD,,
15
+ jupyter_server_ydoc-2.0.1.data/data/etc/jupyter/jupyter_server_config.d/jupyter_collaboration.json,sha256=0thh2hJUxAKkZSmneJMG0U6QJRjdM6zGlwrTedEt-Jk,94
16
+ jupyter_server_ydoc-2.0.1.dist-info/METADATA,sha256=-hxNueyhVsO-DXfdiYoiBpQ_rvk6MU9OwRnh-xHg3LA,5115
17
+ jupyter_server_ydoc-2.0.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
18
+ jupyter_server_ydoc-2.0.1.dist-info/licenses/LICENSE,sha256=mhO0ZW9EiWOPg0dUgB-lNbJ0CGwRmTdbeAg_se1SOnY,2833
19
+ jupyter_server_ydoc-2.0.1.dist-info/RECORD,,