|
|
|
|
|
|
|
import logging |
|
|
|
from ipykernel.kernelapp import IPKernelApp |
|
from ipykernel.kernelbase import Kernel |
|
|
|
|
|
class EchoKernel(Kernel): |
|
implementation = "Echo" |
|
implementation_version = "1.0" |
|
language = "echo" |
|
language_version = "0.1" |
|
language_info = { |
|
"name": "echo", |
|
"mimetype": "text/plain", |
|
"file_extension": ".txt", |
|
} |
|
banner = "Echo kernel - as useful as a parrot" |
|
|
|
def do_execute( |
|
self, code, silent, store_history=True, user_expressions=None, allow_stdin=False |
|
): |
|
if not silent: |
|
stream_content = {"name": "stdout", "text": code} |
|
self.send_response(self.iopub_socket, "stream", stream_content) |
|
|
|
|
|
if allow_stdin and code and code.find("input(") != -1: |
|
self._input_request( |
|
"Echo Prompt", |
|
self._parent_ident["shell"], |
|
self.get_parent(channel="shell"), |
|
password=False, |
|
) |
|
|
|
return { |
|
"status": "ok", |
|
|
|
"execution_count": self.execution_count, |
|
"payload": [], |
|
"user_expressions": {}, |
|
} |
|
|
|
|
|
class EchoKernelApp(IPKernelApp): |
|
kernel_class = EchoKernel |
|
|
|
|
|
if __name__ == "__main__": |
|
logging.disable(logging.ERROR) |
|
EchoKernelApp.launch_instance() |
|
|