5
5
import datetime
6
6
import json
7
7
import os
8
- import pathlib
9
- import typing as t
10
8
from logging import Logger
11
9
from queue import Empty , Queue
12
10
from threading import Thread
17
15
from jupyter_client .asynchronous .client import AsyncKernelClient
18
16
from jupyter_client .clientabc import KernelClientABC
19
17
from jupyter_client .kernelspec import KernelSpecManager
20
- from jupyter_client .manager import AsyncKernelManager
21
18
from jupyter_client .managerabc import KernelManagerABC
22
19
from jupyter_core .utils import ensure_async
23
- from jupyter_events import EventLogger
24
- from jupyter_events .schema_registry import SchemaRegistryException
25
20
from tornado import web
26
21
from tornado .escape import json_decode , json_encode , url_escape , utf8
27
- from traitlets import DottedObjectName , Instance , List , Type , default
22
+ from traitlets import DottedObjectName , Instance , Type , default
28
23
29
- from .. import DEFAULT_EVENTS_SCHEMA_PATH
30
24
from .._tz import UTC
31
- from ..services .kernels .kernelmanager import AsyncMappingKernelManager , emit_kernel_action_event
25
+ from ..services .kernels .kernelmanager import (
26
+ AsyncMappingKernelManager ,
27
+ ServerKernelManager ,
28
+ emit_kernel_action_event ,
29
+ )
32
30
from ..services .sessions .sessionmanager import SessionManager
33
31
from ..utils import url_path_join
34
32
from .gateway_client import GatewayClient , gateway_request
@@ -294,7 +292,6 @@ async def list_kernel_specs(self):
294
292
response = await gateway_request (kernel_spec_url , method = "GET" )
295
293
kernel_specs = json_decode (response .body )
296
294
kernel_specs = self ._replace_path_kernelspec_resources (kernel_specs )
297
- self .log .debug (f"Retrieved list of kernel specs for the uri: { kernel_spec_url } " )
298
295
return kernel_specs
299
296
300
297
async def get_kernel_spec (self , kernel_name , ** kwargs ):
@@ -371,7 +368,7 @@ async def kernel_culled(self, kernel_id: str) -> bool: # typing: ignore
371
368
return km is None
372
369
373
370
374
- class GatewayKernelManager (AsyncKernelManager ):
371
+ class GatewayKernelManager (ServerKernelManager ):
375
372
"""Manages a single kernel remotely via a Gateway Server."""
376
373
377
374
kernel_id : Optional [str ] = None # type:ignore[assignment]
@@ -381,49 +378,6 @@ class GatewayKernelManager(AsyncKernelManager):
381
378
def _default_cache_ports (self ):
382
379
return False # no need to cache ports here
383
380
384
- # A list of pathlib objects, each pointing at an event
385
- # schema to register with this kernel manager's eventlogger.
386
- # This trait should not be overridden.
387
-
388
- @property
389
- def core_event_schema_paths (self ) -> t .List [pathlib .Path ]:
390
- return [DEFAULT_EVENTS_SCHEMA_PATH / "kernel_actions" / "v1.yaml" ]
391
-
392
- # This trait is intended for subclasses to override and define
393
- # custom event schemas.
394
- extra_event_schema_paths = List (
395
- default_value = [],
396
- help = """
397
- A list of pathlib.Path objects pointing at to register with
398
- the kernel manager's eventlogger.
399
- """ ,
400
- ).tag (config = True )
401
-
402
- event_logger = Instance (EventLogger )
403
-
404
- @default ("event_logger" )
405
- def _default_event_logger (self ):
406
- """Initialize the logger and ensure all required events are present."""
407
- if self .parent is not None and hasattr (self .parent , "event_logger" ):
408
- logger = self .parent .event_logger
409
- else :
410
- # If parent does not have an event logger, create one.
411
- logger = EventLogger ()
412
- # Ensure that all the expected schemas are registered. If not, register them.
413
- schemas = self .core_event_schema_paths + self .extra_event_schema_paths
414
- for schema_path in schemas :
415
- # Try registering the event.
416
- try :
417
- logger .register_event_schema (schema_path )
418
- # Pass if it already exists.
419
- except SchemaRegistryException :
420
- pass
421
- return logger
422
-
423
- def emit (self , schema_id , data ):
424
- """Emit an event from the kernel manager."""
425
- self .event_logger .emit (schema_id = schema_id , data = data )
426
-
427
381
def __init__ (self , ** kwargs ):
428
382
"""Initialize the gateway kernel manager."""
429
383
super ().__init__ (** kwargs )
0 commit comments