-
Notifications
You must be signed in to change notification settings - Fork 7
Integrate outputs manager into extension app #48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
dlqqq
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for opening this Brian! Can't comment on the core logic since it's outside my scope, but I left some code suggestions below. These are non-blocking, feel free to ignore
| outputs_manager = Instance( | ||
| klass=OutputsManager, | ||
| help="An instance of the OutputsManager", | ||
| allow_none=True | ||
| ).tag(config=True) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this need to be a trait? It seems like this can be defined as a property:
| outputs_manager = Instance( | |
| klass=OutputsManager, | |
| help="An instance of the OutputsManager", | |
| allow_none=True | |
| ).tag(config=True) | |
| @property | |
| def outputs_manager(self) -> OutputsManager: | |
| return self.settings["outputs_manager"] |
This has the added benefit of clearly distinguishing the two attributes:
outputs_manager_class: a configurable class traitoutputs_manager: a property onRtcExtensionApp, set by the extension itself
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same goes for yroom_manager above.
4f414d4 to
6bd1915
Compare
bbf4235 to
783e29d
Compare
This integrates the OutputProcessor into the kernel client. The result is that output messages are now written to the server-side ydoc rather than sent to the frontend directly (if the kernel session shows it is a notebook). Most of the logic is in the OutputProcessor and OutputsManager classes which were merged previously. @3coins