You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.5 KiB
Python
54 lines
1.5 KiB
Python
# Copyright (c) Jupyter Development Team.
|
|
# Distributed under the terms of the Modified BSD License.
|
|
|
|
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)
|
|
|
|
# Send a input_request if code contains input command.
|
|
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",
|
|
# The base class increments the execution count
|
|
"execution_count": self.execution_count,
|
|
"payload": [],
|
|
"user_expressions": {},
|
|
}
|
|
|
|
|
|
class EchoKernelApp(IPKernelApp):
|
|
kernel_class = EchoKernel
|
|
|
|
|
|
if __name__ == "__main__":
|
|
logging.disable(logging.ERROR)
|
|
EchoKernelApp.launch_instance()
|