Skip to content

Commit 781ee1b

Browse files
committed
Add basic doc string
1 parent 98e6e4b commit 781ee1b

File tree

1 file changed

+49
-3
lines changed

1 file changed

+49
-3
lines changed

python/e2b_code_interpreter/main.py

+49-3
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class JupyterExtension:
4848
def __init__(self, sandbox: CodeInterpreter):
4949
self._sandbox = sandbox
5050
self._kernel_id_set = Future()
51-
self._start_connectiong_to_default_kernel()
51+
self._start_connecting_to_default_kernel()
5252

5353
def exec_cell(
5454
self,
@@ -57,6 +57,14 @@ def exec_cell(
5757
on_stdout: Optional[Callable[[ProcessMessage], Any]] = None,
5858
on_stderr: Optional[Callable[[ProcessMessage], Any]] = None,
5959
) -> Result:
60+
"""
61+
Execute code in a notebook cell.
62+
:param code: Code to execute
63+
:param kernel_id: Kernel id to use, if not provided the default kernel will be used
64+
:param on_stdout: Callback for stdout messages
65+
:param on_stderr: Callback for stderr messages
66+
:return: Result of the execution
67+
"""
6068
kernel_id = kernel_id or self.default_kernel_id
6169
ws = self._connected_kernels.get(kernel_id)
6270

@@ -74,12 +82,30 @@ def exec_cell(
7482

7583
@property
7684
def default_kernel_id(self) -> str:
85+
"""
86+
Get the default kernel id
87+
:return: Default kernel id
88+
"""
7789
if not self._default_kernel_id:
7890
self._default_kernel_id = self._kernel_id_set.result()
7991

8092
return self._default_kernel_id
8193

82-
def create_kernel(self, cwd: str = "/home/user", kernel_name: Optional[str] = None, timeout: Optional[float] = TIMEOUT) -> str:
94+
def create_kernel(
95+
self,
96+
cwd: str = "/home/user",
97+
kernel_name: Optional[str] = None,
98+
timeout: Optional[float] = TIMEOUT
99+
) -> str:
100+
"""
101+
Create a new kernel, this can be useful if you want to have multiple independent code execution environments.
102+
:param cwd: Sets the current working directory for the kernel
103+
:param kernel_name:
104+
Specifies which kernel should be used, useful if you have multiple kernel types.
105+
If not provided, the default kernel will be used - "python3".
106+
:param timeout: Sets timeout for the call
107+
:return: Kernel id of the created kernel
108+
"""
83109
data = {"cwd": cwd}
84110
if kernel_name:
85111
data["kernel_name"] = kernel_name
@@ -100,6 +126,12 @@ def create_kernel(self, cwd: str = "/home/user", kernel_name: Optional[str] = No
100126
def restart_kernel(
101127
self, kernel_id: Optional[str] = None, timeout: Optional[float] = TIMEOUT
102128
) -> None:
129+
"""
130+
Restart a kernel
131+
:param kernel_id:
132+
:param timeout:
133+
:return:
134+
"""
103135
kernel_id = kernel_id or self.default_kernel_id
104136

105137
self._connected_kernels[kernel_id].close()
@@ -115,6 +147,11 @@ def restart_kernel(
115147
def shutdown_kernel(
116148
self, kernel_id: Optional[str] = None, timeout: Optional[float] = TIMEOUT
117149
) -> None:
150+
"""
151+
Shutdown a kernel
152+
:param kernel_id: Kernel id to shutdown
153+
:param timeout: Timeout for the call
154+
"""
118155
kernel_id = kernel_id or self.default_kernel_id
119156

120157
self._connected_kernels[kernel_id].close()
@@ -126,6 +163,11 @@ def shutdown_kernel(
126163
raise KernelException(f"Failed to shutdown kernel {kernel_id}")
127164

128165
def list_kernels(self, timeout: Optional[float] = TIMEOUT) -> List[str]:
166+
"""
167+
List all the kernels
168+
:param timeout: Timeout for the call
169+
:return: List of kernel ids
170+
"""
129171
response = requests.get(
130172
f"{self._sandbox.get_protocol()}://{self._sandbox.get_hostname(8888)}/api/kernels",
131173
timeout=timeout,
@@ -135,6 +177,10 @@ def list_kernels(self, timeout: Optional[float] = TIMEOUT) -> List[str]:
135177
return [kernel["id"] for kernel in response.json()]
136178

137179
def close(self):
180+
"""
181+
Close all the websocket connections to the kernels. It doesn't shutdown the kernels.
182+
:return:
183+
"""
138184
for ws in self._connected_kernels.values():
139185
ws.close()
140186

@@ -145,7 +191,7 @@ def _connect_to_kernel_ws(self, kernel_id: str) -> None:
145191
ws.connect()
146192
self._connected_kernels[kernel_id] = ws
147193

148-
def _start_connectiong_to_default_kernel(self, timeout: Optional[float] = TIMEOUT) -> None:
194+
def _start_connecting_to_default_kernel(self, timeout: Optional[float] = TIMEOUT) -> None:
149195
def setup_default_kernel():
150196
kernel_id = self._sandbox.filesystem.read("/root/.jupyter/kernel_id", timeout=timeout).strip()
151197
self._connect_to_kernel_ws(kernel_id)

0 commit comments

Comments
 (0)