Skip to content

Upgrading ipykernel 5 to 6

Breaking5.5.6 → 6.31.0Breaking7Platform3Deprecated5New33Changed41Fixed101Other174

BreakingUpgrade verdict

7 breaking changes and 3 platform requirement changes.

  • Removes the block param from get_msg().
  • The old codeutils module is gone; use ipyparallel for similar features.
  • Removes the find_connection_file and profile arguments of connect_qtconsole and get_connection_info, deprecated since 4.2.2.
  • Code that passed the source argument must stop using it.
Top 5 of 15 that need code or config changes

Python requirement changed in 6.30.0a0: >=3.5 → >=3.9.

Adds comm >=0.1.1, debugpy >=1.6.5, jupyter-core !=5.0.*,>=4.12, matplotlib-inline >=0.1, nest-asyncio >=1.4, packaging >=22, psutil >=5.7, pyzmq >=25.

Drops ipython-genutils.

Installs 29 packages in all (was 26).

Breaking7
Removes the block param from get_msg().
get_msg()
Removes ipykernel.codeutils, deprecated since 4.x; import similar functionality from ipyparallel.
ipykernel.codeutilsipyparallel
Removes the find_connection_file and profile arguments of connect_qtconsole and get_connection_info, deprecated since 4.2.2.
find_connection_fileprofileconnect_qtconsoleget_connection_info
Removes the deprecated source parameter, deprecated since 4.0.1 (2015).
source
Removes the deprecated SocketABC, deprecated since 4.5.0.
SocketABC
Removes deprecated profile options of connect.py.
connect.py
Removes ipykernel.codeutil, deprecated since IPykernel 4.3.1 (Feb 2016).
ipykernel.codeutil
Platform3
Drops support for Python 3.8.
Adds support for Python 3.12.
Updates the Python requirement to 3.7.
Deprecated5
Deprecates the Comm class and fixes incompatibility with ipywidgets.
Comm
Deprecates the Gtk event loops and adds more testing.
Deprecates Kernel.shell_streams in favor of Kernel.shell_stream; kernels now support only a single shell stream.
Kernel.shell_streamsKernel.shell_stream
Deprecates the private Kernel._parent_header attribute in favor of .get_parent().
Kernel._parent_headerKernel.get_parent()
Makes the deprecated shell_streams attribute writable.
shell_streams

Generated by DepDelta from published Python source. Not mixed with prose notes.

  • removed: function code_ctor(*args)
  • removed: function reduce_code(co)
  • added: export Comm
  • added: export CommManager
  • removed: method Comm.close(data=…, metadata=…, buffers=…, deleting=…)
  • removed: method Comm.handle_close(msg)
  • removed: method Comm.handle_msg(msg)
  • removed: method Comm.on_close(callback)
  • removed: method Comm.on_msg(callback)
  • removed: method Comm.open(data=…, metadata=…, buffers=…)
  • removed: method Comm.send(data=…, metadata=…, buffers=…)
  • changed: class Comm(LoggingConfigurable) → class Comm(BaseComm, traitlets.config.LoggingConfigurable)
  • changed: constructor Comm(target_name=…, data=…, metadata=…, buffers=…, **kwargs) → constructor Comm(target_name=…, data=…, metadata=…, buffers=…, show_warning=…, **kwargs)
  • removed: method CommManager.comm_close(stream, ident, msg)
  • removed: method CommManager.comm_msg(stream, ident, msg)
  • removed: method CommManager.get_comm(comm_id)
  • removed: method CommManager.register_comm(comm)
  • removed: method CommManager.register_target(target_name, f)
  • removed: method CommManager.unregister_comm(comm)
  • removed: method CommManager.unregister_target(target_name, f)
  • changed: class CommManager(LoggingConfigurable) → class CommManager(comm.base_comm.CommManager, traitlets.config.LoggingConfigurable)
  • added: constructor CommManager(**kwargs)
  • added: variable logger
  • added: class XCachingCompiler(CachingCompiler)
  • added: constructor XCachingCompiler(*args, **kwargs)
  • added: function get_file_name(code)
  • added: function get_tmp_directory()
  • added: function get_tmp_hash_seed()
  • added: function murmur2_x86(data, seed)
  • added: method XCachingCompiler.get_code_name(raw_code, code, number)
  • added: variable convert_to_long_pathname
  • removed: function find_connection_file(filename=…, profile=…)
  • changed: function connect_qtconsole(connection_file=…, argv=…, profile=…) → function connect_qtconsole(connection_file: str | None=…, argv: list[str] | None=…) -> Popen[Any]
  • changed: function get_connection_file(app=…) → function get_connection_file(app: IPKernelApp | None=…) -> str
  • changed: function get_connection_info(connection_file=…, unpack=…, profile=…) → function get_connection_info(connection_file: str | None=…, unpack: bool=…) -> str | dict[str, Any]
  • added: class ControlThread(Thread)
  • added: constructor ControlThread(**kwargs)
  • added: method ControlThread.run()
  • added: method ControlThread.stop()
  • added: variable CONTROL_THREAD_NAME
  • added: async method Debugger.attach(message)
  • added: async method Debugger.configurationDone(message)
  • added: async method Debugger.copyToGlobals(message)
  • added: async method Debugger.debugInfo(message)
  • added: async method Debugger.dumpCell(message)
  • added: async method Debugger.handle_stopped_event()
  • added: async method Debugger.inspectVariables(message)
  • added: async method Debugger.modules(message)
  • added: async method Debugger.process_request(message)
  • added: async method Debugger.richInspectVariables(message)
  • added: async method Debugger.setBreakpoints(message)
  • added: async method Debugger.source(message)
  • added: async method Debugger.stackTrace(message)
  • added: async method Debugger.variables(message)
  • added: async method DebugpyClient.send_dap_request(msg)
  • added: async method DebugpyMessageQueue.get_message()
  • added: class Debugger
  • added: class DebugpyClient
  • added: class DebugpyMessageQueue
  • added: class VariableExplorer
  • added: constructor Debugger(log, debugpy_stream, event_callback, shell_socket, session, just_my_code=…)
  • added: constructor DebugpyClient(log, debugpy_stream, event_callback)
  • added: constructor DebugpyMessageQueue(event_callback, log)
  • added: constructor VariableExplorer()
  • added: field Debugger.started_debug_msg_types
  • added: field Debugger.static_debug_msg_types
  • added: field DebugpyMessageQueue.HEADER
  • added: field DebugpyMessageQueue.HEADER_LENGTH
  • added: field DebugpyMessageQueue.SEPARATOR
  • added: field DebugpyMessageQueue.SEPARATOR_LENGTH
  • added: method Debugger.accept_variable(variable_name)
  • added: method Debugger.start()
  • added: method Debugger.stop()
  • added: method DebugpyClient.connect_tcp_socket()
  • added: method DebugpyClient.disconnect_tcp_socket()
  • added: method DebugpyClient.get_host_port()
  • added: method DebugpyClient.receive_dap_frame(frame)
  • added: method DebugpyMessageQueue.put_tcp_frame(frame)
  • added: method VariableExplorer.get_children_variables(variable_ref=…)
  • added: method VariableExplorer.track()
  • added: method VariableExplorer.untrack_all()
  • added: property Debugger.tcp_client
  • added: variable ROUTING_ID
  • changed: class ZMQDisplayHook(object) → class ZMQDisplayHook
  • added: field ZMQShellDisplayHook.msg: dict[str, t.Any] | None
  • removed: function loop_qt4(kernel)
  • removed: function loop_qt5(kernel)
  • added: function loop_qt(kernel)
  • added: function make_qt_app_for_kernel(gui, kernel)
  • added: function set_qt_api_env_from_gui(gui)
  • added: variable loop_qt5
  • changed: class GTKEmbed(object) → class GTKEmbed
  • changed: class GTKEmbed(object) → class GTKEmbed
  • changed: class InProcessChannel(object) → class InProcessChannel
  • changed: class InProcessHBChannel(object) → class InProcessHBChannel
  • changed: field InProcessChannel.proxy_methods → field InProcessChannel.proxy_methods: list[object]
  • added: method InProcessKernelClient.get_control_msg(block=…, timeout=…)
  • added: method InProcessKernelClient.get_iopub_msg(block=…, timeout=…)
  • added: method InProcessKernelClient.get_shell_msg(block=…, timeout=…)
  • added: method InProcessKernelClient.get_stdin_msg(block=…, timeout=…)
  • removed: field InProcessKernel.control_stream
  • removed: field InProcessKernel.shell_streams
  • changed: field InProcessInteractiveShell.kernel → field InProcessInteractiveShell.kernel: InProcessKernel
  • changed: field InProcessKernel.iopub_socket → field InProcessKernel.iopub_socket: BackgroundSocket
  • changed: field InProcessKernel.iopub_thread → field InProcessKernel.iopub_thread: IOPubThread
  • changed: method InProcessInteractiveShell.enable_pylab(gui=…, import_all=…, welcome_message=…) → method InProcessInteractiveShell.enable_pylab(gui=…, import_all=…)
  • changed: method InProcessKernel.execute_request(stream, ident, parent) → async method InProcessKernel.execute_request(stream, ident, parent)
  • added: field InProcessKernel.shell_stream
  • removed: class SocketABC(object)
  • removed: method SocketABC.recv_multipart(flags=…, copy=…, track=…)
  • removed: method SocketABC.send_multipart(msg_parts, flags=…, copy=…, track=…)
  • removed: static method SocketABC.register(other_cls)
  • changed: class BackgroundSocket(object) → class BackgroundSocket
  • changed: class IOPubThread(object) → class IOPubThread
  • changed: constructor OutStream(session, pub_thread, name, pipe=…, echo=…) → constructor OutStream(session, pub_thread, name, pipe=…, echo=…, *, watchfd=…, isatty=…)
  • changed: method OutStream.write(string) → method OutStream.write(string: str) -> Optional[int]
  • added: method OutStream.fileno()
  • added: method OutStream.isatty()
  • added: method OutStream.register_hook(hook)
  • added: method OutStream.unregister_hook(hook)
  • added: property OutStream.parent_header
  • added: variable PIPE_BUFFER_SIZE
  • changed: method IPythonKernel.do_execute(code, silent, store_history=…, user_expressions=…, allow_stdin=…) → async method IPythonKernel.do_execute(code, silent, store_history=…, user_expressions=…, allow_stdin=…, *, cell_meta=…, cell_id=…)
  • changed: method IPythonKernel.do_inspect(code, cursor_pos, detail_level=…) → method IPythonKernel.do_inspect(code, cursor_pos, detail_level=…, omit_sections=…)
  • changed: method IPythonKernel.set_parent(ident, parent) → method IPythonKernel.set_parent(ident, parent, channel=…)
  • added: async method IPythonKernel.do_debug_request(msg)
  • added: async method IPythonKernel.execute_request(stream, ident, parent)
  • added: async method IPythonKernel.poll_stopped_queue()
  • added: field IPythonKernel.debugpy_stream
  • added: method IPythonKernel.dispatch_debugpy(msg)
  • added: variable JUPYTER_CLIENT_MAJOR_VERSION
  • removed: field IPKernelApp.ports
  • changed: field IPKernelApp.context → field IPKernelApp.context: zmq.Context[t.Any] | None
  • added: field IPKernelApp.capture_fd_output
  • added: field IPKernelApp.control_thread
  • added: field IPKernelApp.debug_shell_socket
  • added: field IPKernelApp.debugpy_socket
  • added: method IPKernelApp.init_control(context)
  • removed: variable CONTROL_PRIORITY
  • removed: variable SHELL_PRIORITY
  • changed: field Kernel.help_links → field Kernel.help_links: List[dict[str, str]]
  • changed: field Kernel.language_info → field Kernel.language_info: dict[str, object]
  • changed: field Kernel.log → field Kernel.log: logging.Logger
  • changed: field Kernel.shell_streams → field Kernel.shell_streams: List[t.Any]
  • changed: method Kernel.abort_request(stream, ident, parent) → async method Kernel.abort_request(stream, ident, parent)
  • changed: method Kernel.apply_request(stream, ident, parent) → async method Kernel.apply_request(stream, ident, parent)
  • changed: method Kernel.clear_request(stream, idents, parent) → async method Kernel.clear_request(stream, idents, parent)
  • changed: method Kernel.comm_info_request(stream, ident, parent) → async method Kernel.comm_info_request(stream, ident, parent)
  • changed: method Kernel.complete_request(stream, ident, parent) → async method Kernel.complete_request(stream, ident, parent)
  • changed: method Kernel.connect_request(stream, ident, parent) → async method Kernel.connect_request(stream, ident, parent)
  • changed: method Kernel.dispatch_control(msg) → async method Kernel.dispatch_control(msg)
  • changed: method Kernel.dispatch_queue() → async method Kernel.dispatch_queue()
  • changed: method Kernel.dispatch_shell(stream, msg) → async method Kernel.dispatch_shell(msg)
  • changed: method Kernel.do_execute(code, silent, store_history=…, user_expressions=…, allow_stdin=…) → method Kernel.do_execute(code, silent, store_history=…, user_expressions=…, allow_stdin=…, *, cell_meta=…, cell_id=…)
  • changed: method Kernel.do_inspect(code, cursor_pos, detail_level=…) → method Kernel.do_inspect(code, cursor_pos, detail_level=…, omit_sections=…)
  • changed: method Kernel.do_one_iteration() → async method Kernel.do_one_iteration()
  • changed: method Kernel.execute_request(stream, ident, parent) → async method Kernel.execute_request(stream, ident, parent)
  • changed: method Kernel.history_request(stream, ident, parent) → async method Kernel.history_request(stream, ident, parent)
  • changed: method Kernel.inspect_request(stream, ident, parent) → async method Kernel.inspect_request(stream, ident, parent)
  • changed: method Kernel.is_complete_request(stream, ident, parent) → async method Kernel.is_complete_request(stream, ident, parent)
  • changed: method Kernel.kernel_info_request(stream, ident, parent) → async method Kernel.kernel_info_request(stream, ident, parent)
  • changed: method Kernel.process_one(wait=…) → async method Kernel.process_one(wait=…)
  • changed: method Kernel.schedule_dispatch(priority, dispatch, *args) → method Kernel.schedule_dispatch(dispatch, *args)
  • changed: method Kernel.send_response(stream, msg_or_type, content=…, ident=…, buffers=…, track=…, header=…, metadata=…) → method Kernel.send_response(stream, msg_or_type, content=…, ident=…, buffers=…, track=…, header=…, metadata=…, channel=…)
  • changed: method Kernel.set_parent(ident, parent) → method Kernel.set_parent(ident, parent, channel=…)
  • changed: method Kernel.shutdown_request(stream, ident, parent) → async method Kernel.shutdown_request(stream, ident, parent)
  • added: async method Kernel.debug_request(stream, ident, parent)
  • added: async method Kernel.do_debug_request(msg)
  • added: async method Kernel.interrupt_request(stream, ident, parent)
  • added: async method Kernel.process_control(msg)
  • added: async method Kernel.usage_request(stream, ident, parent)
  • added: field Kernel.banner: str
  • added: field Kernel.control_thread
  • added: field Kernel.debug_just_my_code
  • added: field Kernel.debug_shell_socket
  • added: field Kernel.implementation: str
  • added: field Kernel.implementation_version: str
  • added: field Kernel.processes: dict[str, psutil.Process]
  • added: field Kernel.shell_stream
  • added: method Kernel.get_parent(channel=…)
  • added: method Kernel.get_process_metric_value(process, name, attribute=…)
  • added: variable SIGKILL
  • changed: function get_kernel_dict(extra_arguments=…) → function get_kernel_dict(extra_arguments: list[str] | None=…, python_arguments: list[str] | None=…) -> dict[str, Any]
  • changed: function install(kernel_spec_manager=…, user=…, kernel_name=…, display_name=…, prefix=…, profile=…, env=…) → function install(kernel_spec_manager: KernelSpecManager | None=…, user: bool=…, kernel_name: str=…, display_name: str | None=…, prefix: str | None=…, profile: str | None=…, env: dict[str, str] | None=…, frozen_modules: bool=…) -> str
  • changed: function make_ipkernel_cmd(mod=…, executable=…, extra_arguments=…, **kw) → function make_ipkernel_cmd(mod: str=…, executable: str | None=…, extra_arguments: list[str] | None=…, python_arguments: list[str] | None=…) -> list[str]
  • changed: function write_kernel_spec(path=…, overrides=…, extra_arguments=…) → function write_kernel_spec(path: Path | str | None=…, overrides: dict[str, Any] | None=…, extra_arguments: list[str] | None=…, python_arguments: list[str] | None=…) -> str
  • changed: method InstallIPythonKernelSpecApp.initialize(argv=…) → method InstallIPythonKernelSpecApp.initialize(argv: list[str] | None=…) -> None
  • changed: method InstallIPythonKernelSpecApp.start() → method InstallIPythonKernelSpecApp.start() -> None
  • removed: field CannedBytes.wrap
  • changed: class CannedObject(object) → class CannedObject
  • changed: variable uncan_map → variable uncan_map: dict[type, typing.Any]
  • added: static method CannedBytes.wrap(buf: typing.Union[memoryview, bytes, typing.SupportsBytes]) -> bytes
  • removed: function configure_inline_support(shell, backend)
  • removed: function draw_if_interactive()
  • removed: function flush_figures()
  • removed: function show(close=…, block=…)
  • removed: variable FigureCanvas
  • removed: class InlineBackend(InlineBackendConfig)
  • removed: class InlineBackendConfig(SingletonConfigurable)
  • removed: field InlineBackend.close_figures
  • removed: field InlineBackend.figure_format
  • removed: field InlineBackend.figure_formats
  • removed: field InlineBackend.print_figure_kwargs
  • removed: field InlineBackend.rc
  • removed: field InlineBackend.shell
  • removed: function pil_available()
  • removed: method ZMQInteractiveShell.enable_matplotlib(gui=…)
  • changed: method ZMQDisplayPublisher.publish(data, metadata=…, source=…, transient=…, update=…) → method ZMQDisplayPublisher.publish(data, metadata=…, transient=…, update=…)
  • added: field ZMQDisplayPublisher.store_display_history
  • added: method ZMQInteractiveShell.payloadpage_page(strg, start=…, screen_lines=…, pager_cmd=…)
  • added: variable HistoryOutput