|
39 | 39 |
|
40 | 40 | import dateutil.parser |
41 | 41 | import dateutil.tz |
| 42 | +import ipykernel |
42 | 43 | import numpy as np |
43 | 44 | import pandas as pd |
44 | 45 | import plotly.io as pio |
|
84 | 85 | tokenize_with_ranges, |
85 | 86 | try_parse_capitalized_range, |
86 | 87 | ) |
87 | | -from .spreadsheet_datetime import SpreadsheetDateTimeBase |
88 | | -from .spreadsheet_error import ( |
89 | | - PYTHON_ERROR, |
90 | | - SheetDoesNotExist, |
91 | | - SpreadsheetError, |
92 | | -) |
93 | 88 | from .get_ipython_mockable import get_ipython_mockable |
94 | 89 | from .gsheets_api import ( |
95 | 90 | GSheetNamedRanges, |
|
99 | 94 | replace_refs, |
100 | 95 | ) |
101 | 96 | from .insert_delete_helper import add_delete_cells_helper |
| 97 | +from .json_tools import json_clean |
102 | 98 | from .kernel_runtime import get_kernel, send_sync_request |
103 | 99 | from .linter import TyneCachingCompiler |
104 | 100 | from .mime_handling import ( |
|
157 | 153 | from .renderers import InlineWrapper, WithSourceMixin |
158 | 154 | from .session_info import NeptyneSessionInfo |
159 | 155 | from .sheet_api import NeptyneSheetCollection |
| 156 | +from .spreadsheet_datetime import SpreadsheetDateTimeBase |
| 157 | +from .spreadsheet_error import ( |
| 158 | + PYTHON_ERROR, |
| 159 | + SheetDoesNotExist, |
| 160 | + SpreadsheetError, |
| 161 | +) |
160 | 162 | from .transformation import ( |
161 | 163 | Transformation, |
162 | 164 | insert_delete_content_to_sheet_transform, |
|
196 | 198 | widget_name_from_code, |
197 | 199 | widget_registry, |
198 | 200 | ) |
199 | | -from .json_tools import json_clean |
200 | | - |
201 | | -import ipykernel |
202 | 201 |
|
203 | 202 | IPYKERNEL_MAJOR_VERSION = int(ipykernel.__version__.split(".")[0]) |
204 | 203 |
|
205 | 204 | try: |
206 | 205 | from .formulas.sheets import SvgImage |
207 | 206 | except ImportError: |
208 | | - SvgImage = None |
| 207 | + SvgImage = None # type: ignore |
209 | 208 |
|
210 | 209 | try: |
211 | 210 | from shapely.geometry.base import BaseGeometry as ShapelyBaseGeometry |
|
249 | 248 | pio.templates.default = "plotly" |
250 | 249 |
|
251 | 250 |
|
252 | | -def get_parent_shim(self: Kernel, channel: str | None = None): |
| 251 | +def get_parent_shim(self: Kernel, channel: str | None = None) -> dict: |
253 | 252 | return self._parent_header |
254 | 253 |
|
255 | 254 |
|
@@ -531,7 +530,7 @@ def __init__(self, silent: bool = False) -> None: |
531 | 530 | ip.SyntaxTB = DashSyntaxTB(color_scheme="LightBG", parent=parent) |
532 | 531 |
|
533 | 532 | try: |
534 | | - import matplotlib |
| 533 | + import matplotlib # noqa: F401 |
535 | 534 |
|
536 | 535 | ip.run_line_magic("matplotlib", "inline") |
537 | 536 | except ImportError: |
@@ -876,6 +875,8 @@ def add_delete_cells_internal( |
876 | 875 | ) |
877 | 876 |
|
878 | 877 | def undo_msg(self, msg_type: MessageTypes, payload: dict) -> dict[str, Any]: |
| 878 | + if not self.kernel.session: |
| 879 | + return {} |
879 | 880 | msg = self.kernel.session.msg(msg_type.value, payload) |
880 | 881 | parent_header = self.shell.parent_header["header"] |
881 | 882 | msg["header"]["msg_id"] = parent_header["msg_id"] |
@@ -959,13 +960,14 @@ def load_values(self, sheets: TyneSheets) -> None: |
959 | 960 | def broadcast_init_stage(self, state: KernelInitState) -> None: |
960 | 961 | parent = self.kernel.get_parent("shell") |
961 | 962 | parent["header"]["init_phase"] = state.value |
962 | | - self.kernel.session.send( |
963 | | - self.kernel.iopub_socket, |
964 | | - "status", |
965 | | - {"execution_state": "busy"}, |
966 | | - parent=parent, |
967 | | - ident=f"kernel.{self.kernel.ident}.status".encode(), |
968 | | - ) |
| 963 | + if self.kernel.session: |
| 964 | + self.kernel.session.send( |
| 965 | + self.kernel.iopub_socket, |
| 966 | + "status", |
| 967 | + {"execution_state": "busy"}, |
| 968 | + parent=parent, |
| 969 | + ident=f"kernel.{self.kernel.ident}.status".encode(), |
| 970 | + ) |
969 | 971 |
|
970 | 972 | def pip_install(self, requirements_txt: str, silent: bool = False) -> None: |
971 | 973 | neptyne_pip_install(requirements_txt, silent=silent) |
|
0 commit comments