Skip to content

Conversation

Zsailer
Copy link
Member

@Zsailer Zsailer commented Sep 29, 2025

This change enables configuration of kernel client classes in ServerKernelManager,

This was motivated by work we're doing in jupyter-server-documents to move the notebook model to the server, via ydoc. The project needs to provide a custom kernel client that can intercept messages to the client and route them through a server-side ydoc, enabling documents to be moved to the server.

Changes

  • Made client_class and client_factory traits configurable by adding config=True
    tag to trait definitions in ServerKernelManager
  • Added unit tests to verify configuration works via both command line
    arguments and Config objects

@Zsailer Zsailer force-pushed the configurable-kernel-client branch from eb378fe to 95a2e97 Compare September 29, 2025 16:25
Add config=True to client_class and client_factory traits in ServerKernelManager
to enable configuration of kernel client classes through configuration files and
command line arguments.

This enables custom kernel clients to be used for intercepting and routing
messages, which is required for server-side document handling.

Changes:
- Override client_class and client_factory traits with config=True
- Use correct default values matching parent class behavior
- Add comprehensive unit tests for configuration via Config objects
- Test default values, string configuration, and factory configuration
- Import AsyncKernelClient directly instead of using import_item

All tests pass and maintain backward compatibility while enabling the
configurable functionality needed for jupyter-server-documents project.
@Zsailer Zsailer force-pushed the configurable-kernel-client branch from 146f92d to 0364664 Compare September 29, 2025 17:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant