Skip to content

Commit 766b878

Browse files
committed
more typing
1 parent 3ff8a92 commit 766b878

File tree

2 files changed

+30
-11
lines changed

2 files changed

+30
-11
lines changed

jupyter_server/services/sessions/sessionmanager.py

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@
44
import os
55
import pathlib
66
import uuid
7-
from typing import Dict, List
7+
from typing import Any, Dict, List, NewType, Optional
8+
9+
KernelName = NewType("KernelName", str)
10+
ModelName = NewType("ModelName", str)
811

912
try:
1013
import sqlite3
@@ -251,11 +254,16 @@ def new_session_id(self) -> str:
251254
return str(uuid.uuid4())
252255

253256
async def create_session(
254-
self, path=None, name=None, type=None, kernel_name=None, kernel_id=None
255-
):
257+
self,
258+
path: Optional[str] = None,
259+
name: Optional[ModelName] = None,
260+
type: Optional[str] = None,
261+
kernel_name: Optional[KernelName] = None,
262+
kernel_id: Optional[str] = None,
263+
) -> Dict[str, Any]:
256264
"""Creates a session and returns its model
257265
258-
name: str
266+
name: ModelName(str)
259267
Usually the model name, like the filename associated with current
260268
kernel.
261269
@@ -278,7 +286,9 @@ async def create_session(
278286
self._pending_sessions.remove(record)
279287
return result
280288

281-
async def get_kernel_env(self, path: str, name: Optional[str] = None) -> Dict[str, str]:
289+
async def get_kernel_env(
290+
self, path: Optional[str], name: Optional[ModelName] = None
291+
) -> Dict[str, str]:
282292
"""Return the environment variables that need to be set in the kernel
283293
284294
path : str
@@ -296,7 +306,14 @@ async def get_kernel_env(self, path: str, name: Optional[str] = None) -> Dict[st
296306
assert isinstance(path, str)
297307
return {**os.environ, "JPY_SESSION_NAME": path}
298308

299-
async def start_kernel_for_session(self, session_id, path, name, type, kernel_name):
309+
async def start_kernel_for_session(
310+
self,
311+
session_id: str,
312+
path: Optional[str],
313+
name: Optional[ModelName],
314+
type: Optional[str],
315+
kernel_name: Optional[KernelName],
316+
) -> str:
300317
"""Start a new kernel for a given session.
301318
302319
session_id : str

tests/services/sessions/test_manager.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@
88
from jupyter_server.services.contents.manager import ContentsManager
99
from jupyter_server.services.kernels.kernelmanager import MappingKernelManager
1010
from jupyter_server.services.sessions.sessionmanager import (
11+
KernelName,
1112
KernelSessionRecord,
1213
KernelSessionRecordConflict,
1314
KernelSessionRecordList,
15+
ModelName,
1416
SessionManager,
1517
)
1618

@@ -419,7 +421,7 @@ async def test_good_database_filepath(jp_runtime_dir):
419421
)
420422

421423
await session_manager.create_session(
422-
path="/path/to/test.ipynb", kernel_name="python", type="notebook"
424+
path="/path/to/test.ipynb", kernel_name=KernelName("python"), type="notebook"
423425
)
424426
# Assert that the database file exists
425427
assert empty_file.exists()
@@ -451,7 +453,7 @@ async def test_session_persistence(jp_runtime_dir):
451453
)
452454

453455
session = await session_manager.create_session(
454-
path="/path/to/test.ipynb", kernel_name="python", type="notebook"
456+
path="/path/to/test.ipynb", kernel_name=KernelName("python"), type="notebook"
455457
)
456458

457459
# Assert that the database file exists
@@ -482,7 +484,7 @@ async def test_pending_kernel():
482484
)
483485
# Create a session with a slow starting kernel
484486
fut = session_manager.create_session(
485-
path="/path/to/test.ipynb", kernel_name="python", type="notebook"
487+
path="/path/to/test.ipynb", kernel_name=KernelName("python"), type="notebook"
486488
)
487489
task = asyncio.create_task(fut)
488490
await asyncio.sleep(0.1)
@@ -506,10 +508,10 @@ async def test_pending_kernel():
506508

507509
# Test multiple, parallel pending kernels
508510
fut1 = session_manager.create_session(
509-
path="/path/to/test.ipynb", kernel_name="python", type="notebook"
511+
path="/path/to/test.ipynb", kernel_name=KernelName("python"), type="notebook"
510512
)
511513
fut2 = session_manager.create_session(
512-
path="/path/to/test.ipynb", kernel_name="python", type="notebook"
514+
path="/path/to/test.ipynb", kernel_name=KernelName("python"), type="notebook"
513515
)
514516
task1 = asyncio.create_task(fut1)
515517
await asyncio.sleep(0.1)

0 commit comments

Comments
 (0)