euporie 2.8.2__py3-none-any.whl → 2.8.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- euporie/console/tabs/console.py +227 -104
- euporie/core/__init__.py +1 -1
- euporie/core/__main__.py +1 -1
- euporie/core/app.py +31 -18
- euporie/core/clipboard.py +1 -1
- euporie/core/comm/ipywidgets.py +5 -5
- euporie/core/commands.py +1 -1
- euporie/core/config.py +4 -4
- euporie/core/convert/datum.py +4 -1
- euporie/core/convert/registry.py +7 -2
- euporie/core/filters.py +3 -1
- euporie/core/ft/html.py +2 -4
- euporie/core/graphics.py +6 -6
- euporie/core/kernel.py +56 -32
- euporie/core/key_binding/bindings/__init__.py +2 -1
- euporie/core/key_binding/bindings/mouse.py +24 -22
- euporie/core/key_binding/bindings/vi.py +46 -0
- euporie/core/layout/cache.py +33 -23
- euporie/core/layout/containers.py +235 -73
- euporie/core/layout/decor.py +3 -3
- euporie/core/layout/print.py +14 -2
- euporie/core/layout/scroll.py +15 -21
- euporie/core/margins.py +59 -30
- euporie/core/style.py +7 -5
- euporie/core/tabs/base.py +32 -0
- euporie/core/tabs/notebook.py +6 -3
- euporie/core/terminal.py +12 -17
- euporie/core/utils.py +2 -4
- euporie/core/widgets/cell.py +64 -109
- euporie/core/widgets/dialog.py +25 -20
- euporie/core/widgets/file_browser.py +3 -3
- euporie/core/widgets/forms.py +8 -7
- euporie/core/widgets/inputs.py +21 -9
- euporie/core/widgets/layout.py +5 -5
- euporie/core/widgets/status.py +3 -3
- euporie/hub/app.py +7 -3
- euporie/notebook/app.py +68 -47
- euporie/notebook/tabs/log.py +1 -1
- euporie/notebook/tabs/notebook.py +5 -3
- euporie/preview/app.py +3 -0
- euporie/preview/tabs/notebook.py +9 -14
- euporie/web/tabs/web.py +0 -1
- {euporie-2.8.2.dist-info → euporie-2.8.4.dist-info}/METADATA +5 -5
- {euporie-2.8.2.dist-info → euporie-2.8.4.dist-info}/RECORD +49 -48
- {euporie-2.8.2.data → euporie-2.8.4.data}/data/share/applications/euporie-console.desktop +0 -0
- {euporie-2.8.2.data → euporie-2.8.4.data}/data/share/applications/euporie-notebook.desktop +0 -0
- {euporie-2.8.2.dist-info → euporie-2.8.4.dist-info}/WHEEL +0 -0
- {euporie-2.8.2.dist-info → euporie-2.8.4.dist-info}/entry_points.txt +0 -0
- {euporie-2.8.2.dist-info → euporie-2.8.4.dist-info}/licenses/LICENSE +0 -0
euporie/notebook/app.py
CHANGED
@@ -74,6 +74,8 @@ class NotebookApp(BaseApp):
|
|
74
74
|
notebooks in the terminal.
|
75
75
|
"""
|
76
76
|
|
77
|
+
_tab_container: AnyContainer
|
78
|
+
|
77
79
|
name = "notebook"
|
78
80
|
|
79
81
|
def __init__(self, **kwargs: Any) -> None:
|
@@ -84,8 +86,13 @@ class NotebookApp(BaseApp):
|
|
84
86
|
super().__init__(**kwargs)
|
85
87
|
self.bindings_to_load.append("euporie.notebook.app.NotebookApp")
|
86
88
|
|
89
|
+
self.on_tabs_change += self.set_tab_container
|
90
|
+
|
87
91
|
# Register config hooks
|
88
92
|
self.config.get_item("show_cell_borders").event += lambda x: self.refresh()
|
93
|
+
self.config.get_item("tab_mode").event += self.set_tab_container
|
94
|
+
self.config.get_item("background_pattern").event += self.set_tab_container
|
95
|
+
self.config.get_item("background_character").event += self.set_tab_container
|
89
96
|
|
90
97
|
async def _poll_terminal_colors(self) -> None:
|
91
98
|
"""Repeatedly query the terminal for its background and foreground colours."""
|
@@ -96,10 +103,6 @@ class NotebookApp(BaseApp):
|
|
96
103
|
def pre_run(self, app: Application | None = None) -> None:
|
97
104
|
"""Continue loading the app."""
|
98
105
|
super().pre_run(app)
|
99
|
-
# Ensure an opened tab is focused
|
100
|
-
if self.tab:
|
101
|
-
self.tab.focus()
|
102
|
-
|
103
106
|
# Load style hooks and start polling terminal style
|
104
107
|
if self.config.terminal_polling_interval and hasattr(
|
105
108
|
self.input, "vt100_parser"
|
@@ -118,29 +121,58 @@ class NotebookApp(BaseApp):
|
|
118
121
|
"""Return a container with all opened tabs.
|
119
122
|
|
120
123
|
Returns:
|
121
|
-
A layout displaying the opened tab containers.
|
122
|
-
|
124
|
+
A layout container displaying the opened tab containers.
|
123
125
|
"""
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
126
|
+
try:
|
127
|
+
return self._tab_container
|
128
|
+
except AttributeError:
|
129
|
+
self.set_tab_container()
|
130
|
+
return self._tab_container
|
131
|
+
|
132
|
+
def set_tab_container(self, app: BaseApp | None = None) -> None:
|
133
|
+
"""Set the container to use to display opened tabs."""
|
134
|
+
if not self.tabs:
|
135
|
+
self._tab_container = Pattern(
|
136
|
+
self.config.background_character,
|
137
|
+
self.config.background_pattern,
|
138
|
+
)
|
139
|
+
elif TabMode(self.config.tab_mode) == TabMode.TILE_HORIZONTALLY:
|
140
|
+
self._tab_container = HSplit(
|
141
|
+
children=self.tabs,
|
142
|
+
padding=1,
|
143
|
+
padding_style="class:tab-padding",
|
144
|
+
padding_char="─",
|
145
|
+
)
|
146
|
+
elif TabMode(self.config.tab_mode) == TabMode.TILE_VERTICALLY:
|
147
|
+
self._tab_container = VSplit(
|
148
|
+
children=self.tabs,
|
149
|
+
padding=1,
|
150
|
+
padding_style="class:tab-padding",
|
151
|
+
padding_char="│",
|
152
|
+
)
|
141
153
|
else:
|
142
|
-
|
143
|
-
|
154
|
+
self._tab_container = HSplit(
|
155
|
+
[
|
156
|
+
ConditionalContainer(
|
157
|
+
Window(
|
158
|
+
TabBarControl(
|
159
|
+
tabs=self.tab_bar_tabs,
|
160
|
+
active=lambda: self._tab_idx,
|
161
|
+
closeable=True,
|
162
|
+
),
|
163
|
+
height=2,
|
164
|
+
style="class:app-tab-bar",
|
165
|
+
dont_extend_height=True,
|
166
|
+
),
|
167
|
+
filter=Condition(
|
168
|
+
lambda: (
|
169
|
+
len(self.tabs) > 1 or self.config.always_show_tab_bar
|
170
|
+
)
|
171
|
+
and TabMode(self.config.tab_mode) == TabMode.STACK
|
172
|
+
),
|
173
|
+
),
|
174
|
+
DynamicContainer(lambda: self.tabs[self._tab_idx]),
|
175
|
+
]
|
144
176
|
)
|
145
177
|
|
146
178
|
def _statusbar_defaults(self) -> StatusBarFields | None:
|
@@ -186,24 +218,6 @@ class NotebookApp(BaseApp):
|
|
186
218
|
filter=have_tabs,
|
187
219
|
)
|
188
220
|
|
189
|
-
self.tab_bar_control = TabBarControl(
|
190
|
-
tabs=self.tab_bar_tabs,
|
191
|
-
active=lambda: self._tab_idx,
|
192
|
-
closeable=True,
|
193
|
-
)
|
194
|
-
tab_bar = ConditionalContainer(
|
195
|
-
Window(
|
196
|
-
self.tab_bar_control,
|
197
|
-
height=2,
|
198
|
-
style="class:app-tab-bar",
|
199
|
-
dont_extend_height=True,
|
200
|
-
),
|
201
|
-
filter=Condition(
|
202
|
-
lambda: (len(self.tabs) > 1 or self.config.always_show_tab_bar)
|
203
|
-
and TabMode(self.config.tab_mode) == TabMode.STACK
|
204
|
-
),
|
205
|
-
)
|
206
|
-
|
207
221
|
self.pager = Pager()
|
208
222
|
self.search_bar = SearchBar()
|
209
223
|
|
@@ -255,7 +269,6 @@ class NotebookApp(BaseApp):
|
|
255
269
|
self.side_bar,
|
256
270
|
HSplit(
|
257
271
|
[
|
258
|
-
tab_bar,
|
259
272
|
DynamicContainer(self.tab_container),
|
260
273
|
self.pager,
|
261
274
|
],
|
@@ -445,7 +458,15 @@ class NotebookApp(BaseApp):
|
|
445
458
|
description="Turn elements of euporie's interface on or off",
|
446
459
|
),
|
447
460
|
self.config.get_item("color_scheme").menu,
|
448
|
-
|
461
|
+
MenuItem(
|
462
|
+
"Syntax highlighting",
|
463
|
+
children=[
|
464
|
+
self.config.get_item("syntax_highlighting").menu,
|
465
|
+
separator,
|
466
|
+
*self.config.get_item("syntax_theme").menu.children,
|
467
|
+
],
|
468
|
+
description="Configure syntax highlighting",
|
469
|
+
),
|
449
470
|
get_cmd("toggle-expand").menu,
|
450
471
|
get_cmd("toggle-line-numbers").menu,
|
451
472
|
self.config.get_item("set_cursor_shape").menu,
|
@@ -492,8 +513,8 @@ class NotebookApp(BaseApp):
|
|
492
513
|
from euporie.notebook.current import get_app
|
493
514
|
|
494
515
|
app = get_app()
|
495
|
-
app.
|
496
|
-
|
516
|
+
app.add_tab(tab := Notebook(app, None))
|
517
|
+
tab.focus()
|
497
518
|
|
498
519
|
@staticmethod
|
499
520
|
@add_cmd()
|
euporie/notebook/tabs/log.py
CHANGED
@@ -155,13 +155,13 @@ class Notebook(BaseNotebook):
|
|
155
155
|
|
156
156
|
def post_init_kernel(self) -> None:
|
157
157
|
"""Start the kernel after if has been loaded."""
|
158
|
+
# Load container
|
159
|
+
super().post_init_kernel()
|
160
|
+
|
158
161
|
# Start kernel
|
159
162
|
if self.kernel._status == "stopped":
|
160
163
|
self.kernel.start(cb=self.kernel_started, wait=False)
|
161
164
|
|
162
|
-
# Load container
|
163
|
-
super().post_init_kernel()
|
164
|
-
|
165
165
|
@property
|
166
166
|
def selected_indices(self) -> list[int]:
|
167
167
|
"""Return a list of the currently selected cell indices."""
|
@@ -274,6 +274,8 @@ class Notebook(BaseNotebook):
|
|
274
274
|
|
275
275
|
def enter_edit_mode(self) -> None:
|
276
276
|
"""Enter cell edit mode."""
|
277
|
+
# Signal the page to scroll so the cursor is visible on next render
|
278
|
+
self.page.scroll_to_cursor = True
|
277
279
|
self.edit_mode = True
|
278
280
|
# Only one cell can be selected in edit mode
|
279
281
|
self.select(self.cell.index)
|
euporie/preview/app.py
CHANGED
@@ -189,6 +189,9 @@ class PreviewApp(BaseApp):
|
|
189
189
|
# time.sleep(0.1)
|
190
190
|
super()._redraw(render_as_done=True)
|
191
191
|
|
192
|
+
def _update_invalidate_events(self) -> None:
|
193
|
+
"""Do nothing, as we don't need invalidation events for the preview app."""
|
194
|
+
|
192
195
|
# ################################### Settings ####################################
|
193
196
|
|
194
197
|
add_setting(
|
euporie/preview/tabs/notebook.py
CHANGED
@@ -5,7 +5,6 @@ from __future__ import annotations
|
|
5
5
|
import logging
|
6
6
|
from typing import TYPE_CHECKING
|
7
7
|
|
8
|
-
from prompt_toolkit.cache import FastDictCache
|
9
8
|
from prompt_toolkit.layout.containers import (
|
10
9
|
ConditionalContainer,
|
11
10
|
DynamicContainer,
|
@@ -47,15 +46,13 @@ class PreviewNotebook(BaseNotebook):
|
|
47
46
|
) -> None:
|
48
47
|
"""Create a new instance."""
|
49
48
|
self.cell_index = 0
|
50
|
-
self.cells: FastDictCache[tuple[int], Cell] = FastDictCache(
|
51
|
-
get_value=self.get_cell
|
52
|
-
)
|
53
|
-
|
54
49
|
super().__init__(app, path, use_kernel_history=use_kernel_history)
|
55
50
|
|
56
51
|
self.app.before_render += self.before_render
|
57
52
|
self.app.after_render += self.after_render
|
58
53
|
|
54
|
+
self._cell = Cell(0, {}, self)
|
55
|
+
|
59
56
|
def pre_init_kernel(self) -> None:
|
60
57
|
"""Filter cells before kernel is loaded."""
|
61
58
|
super().pre_init_kernel()
|
@@ -156,17 +153,15 @@ class PreviewNotebook(BaseNotebook):
|
|
156
153
|
# Trigger a re-draw of the app right away, now with the next cell
|
157
154
|
self.app.invalidate()
|
158
155
|
|
159
|
-
def get_cell(self, index: int) -> Cell:
|
160
|
-
"""Render a cell by its index."""
|
161
|
-
if index < len(self.json["cells"]):
|
162
|
-
return Cell(index, self.json["cells"][index], self)
|
163
|
-
else:
|
164
|
-
return Cell(0, {}, self)
|
165
|
-
|
166
156
|
@property
|
167
157
|
def cell(self) -> Cell:
|
168
|
-
"""
|
169
|
-
|
158
|
+
"""Load the current cell's data into our cell instance."""
|
159
|
+
cell = self._cell
|
160
|
+
cell_json = self.json["cells"][self.cell_index]
|
161
|
+
cell.json = cell_json
|
162
|
+
cell.input = cell_json["source"]
|
163
|
+
cell.output_area.json = cell.output_json
|
164
|
+
return cell
|
170
165
|
|
171
166
|
def load_container(self) -> AnyContainer:
|
172
167
|
"""Load the notebook's main container."""
|
euporie/web/tabs/web.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: euporie
|
3
|
-
Version: 2.8.
|
3
|
+
Version: 2.8.4
|
4
4
|
Summary: Euporie is a suite of terminal applications for interacting with Jupyter kernels
|
5
5
|
Project-URL: Documentation, https://euporie.readthedocs.io/en/latest
|
6
6
|
Project-URL: Issues, https://github.com/joouha/euporie/issues
|
@@ -28,16 +28,16 @@ Requires-Dist: fsspec[http]>=2022.12.0
|
|
28
28
|
Requires-Dist: imagesize~=1.3
|
29
29
|
Requires-Dist: jupyter-client>=7.1
|
30
30
|
Requires-Dist: jupytext>=1.14.0
|
31
|
-
Requires-Dist: linkify-it-py~=
|
32
|
-
Requires-Dist: markdown-it-py~=
|
33
|
-
Requires-Dist: mdit-py-plugins~=0.
|
31
|
+
Requires-Dist: linkify-it-py~=2.0
|
32
|
+
Requires-Dist: markdown-it-py~=3.0
|
33
|
+
Requires-Dist: mdit-py-plugins~=0.4.2
|
34
34
|
Requires-Dist: nbformat~=5.0
|
35
35
|
Requires-Dist: pillow>=9.0
|
36
36
|
Requires-Dist: platformdirs~=3.5
|
37
37
|
Requires-Dist: prompt-toolkit~=3.0.36
|
38
38
|
Requires-Dist: pygments~=2.11
|
39
39
|
Requires-Dist: pyperclip~=1.8
|
40
|
-
Requires-Dist: sixelcrop~=0.1.
|
40
|
+
Requires-Dist: sixelcrop~=0.1.8
|
41
41
|
Requires-Dist: timg~=1.1.6
|
42
42
|
Requires-Dist: typing-extensions~=4.5
|
43
43
|
Requires-Dist: universal-pathlib~=0.2.1
|
@@ -3,50 +3,50 @@ euporie/console/__main__.py,sha256=m2EnzIDLO4dHlDt41JNKpUvAUSw6wD-X0V3YhymXqxc,2
|
|
3
3
|
euporie/console/app.py,sha256=Icu-q-qTOuap873-s0ONcrtluD6EH5DPlbxX8ue6Zqo,7379
|
4
4
|
euporie/console/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
5
5
|
euporie/console/tabs/__init__.py,sha256=Grm9EO1gnBO1o-k6Nqnlzo8XLIgFZSXNAdz49Vvh4zY,55
|
6
|
-
euporie/console/tabs/console.py,sha256=
|
7
|
-
euporie/core/__init__.py,sha256=
|
8
|
-
euporie/core/__main__.py,sha256=
|
9
|
-
euporie/core/app.py,sha256=
|
6
|
+
euporie/console/tabs/console.py,sha256=JsKslgnHHUtDLItpC6Dxcql29v4GICn2raln4DpnBjc,31021
|
7
|
+
euporie/core/__init__.py,sha256=ZWQhL70IXhO4R_0h0HVYNq-CUCqRB1axpm6fSZMS6OQ,313
|
8
|
+
euporie/core/__main__.py,sha256=xeDgX2wOce0SBnojquayfidznlnn8QU8edGEXYrDSBM,817
|
9
|
+
euporie/core/app.py,sha256=xy8LMugJZNbUB7STXHQozu4eRY4H1VAN0-e8VyR75Gk,46401
|
10
10
|
euporie/core/border.py,sha256=kJbpyxwJBtIRpFOpXhDtaCT1_oyVRjRiYKG4lXn3-iA,48507
|
11
|
-
euporie/core/clipboard.py,sha256=
|
12
|
-
euporie/core/commands.py,sha256=
|
11
|
+
euporie/core/clipboard.py,sha256=FzMk6uAFTcgNW-beaQ9Jyrpvd3JG9aBP-5S_gMy6Xak,4470
|
12
|
+
euporie/core/commands.py,sha256=4L-8UV9ejz2HG_U2-dzbybXLdn1SKfruOjgga5XiIX0,8254
|
13
13
|
euporie/core/completion.py,sha256=97pe7PdeUsahbgYLwvKhmik5aDAdZFZFOuOmhi9I8d8,5478
|
14
|
-
euporie/core/config.py,sha256=
|
14
|
+
euporie/core/config.py,sha256=JCoBmGVGegDWfnQItmcGCHn_Plv-6dwQjZpoBRrezkM,22811
|
15
15
|
euporie/core/current.py,sha256=BdSVCLngNpZdtYJaxdijuu8N9yRcoU_wr0jI6RGRSms,557
|
16
16
|
euporie/core/data_structures.py,sha256=eA54Cg305R1mVX6YGTRPIvTN4piEFKrltehif49l92o,1800
|
17
17
|
euporie/core/diagnostics.py,sha256=5rS3DbJqNiPVfOb3tU4RKyq2rIMoS3O3_0-a62zknPE,1686
|
18
|
-
euporie/core/filters.py,sha256=
|
18
|
+
euporie/core/filters.py,sha256=R41Yf18znfTQQEagpLicZC-1HEdOxWbL2K6zgdCyt6M,8314
|
19
19
|
euporie/core/format.py,sha256=oFlD3aX_uVeLhqxo2n-zaUBsiNKpWqhx6W-5arFY5C4,4154
|
20
|
-
euporie/core/graphics.py,sha256=
|
20
|
+
euporie/core/graphics.py,sha256=zc4Vff851i6E_fy0vJ-GbMHk1VvMZNFIXvY4kBBOH8Y,32655
|
21
21
|
euporie/core/history.py,sha256=uO14q8keGEtH1R9loaZrBfy66GfXcJhxyXW95-35niA,2542
|
22
22
|
euporie/core/inspection.py,sha256=JhUttlOqvcYOLTSqrn49zSACbaeGLwbwK-BVOLllh6Y,2563
|
23
23
|
euporie/core/io.py,sha256=ipl11Uo3mOmbqTjqC9k1Z8nwXmgNWgY-7ROI3WG4FwY,4469
|
24
|
-
euporie/core/kernel.py,sha256=
|
24
|
+
euporie/core/kernel.py,sha256=lqc7fbiZdeHBVDWtOdztsXWENUWQyi887Vbj8Fq_uSw,47360
|
25
25
|
euporie/core/keys.py,sha256=hfxzZjh4dbDdEkel1YXu8p5RgGwD44oZ9mptHZ0TcfA,3309
|
26
26
|
euporie/core/launch.py,sha256=drtCrvVmGS19nMjL21Q0YwB7zZ0EK0E-0Wa_rRS0N70,1540
|
27
27
|
euporie/core/lexers.py,sha256=AXNDYOR0BZf0sYj9o8YSb0oF4AGYZdKygwFIUKJ3XFM,1083
|
28
28
|
euporie/core/log.py,sha256=6d8Dk5SA2fYr2QL1BqATmMtTU_BQ_DuONqNSQAYiOek,16323
|
29
29
|
euporie/core/lsp.py,sha256=LU-sPEl-jeGA-nqlJMoFl0SzcTS9cY9KDKVmU3bDXdk,49204
|
30
|
-
euporie/core/margins.py,sha256=
|
30
|
+
euporie/core/margins.py,sha256=QDWboU3K5YriRmahe1ZJsitZtfpLkWqKrt6dS0jsnyo,24942
|
31
31
|
euporie/core/path.py,sha256=tm1mAtPlwwvXO7YdN5ZD1HG2x5i3tMT83v80N_V4Rk8,2275
|
32
32
|
euporie/core/processors.py,sha256=63vwLEuSdp5B_PuQ-zv--qtC05GTlbhXVojISzHUnIk,5478
|
33
33
|
euporie/core/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
34
34
|
euporie/core/pygments.py,sha256=TE3VrZ-QKe4n6hmoYuNmt0l0XR6qmko7JvO5YHSt_rU,2588
|
35
35
|
euporie/core/reference.py,sha256=x8-7405xgTEcK7ImqikQtVAXXqFanz61UQ3mn7v_4-o,65039
|
36
36
|
euporie/core/renderer.py,sha256=XhjSsNFiHBZigtBy7Bp942jfs0iz1Il2GIwNNKOZp00,17264
|
37
|
-
euporie/core/style.py,sha256=
|
37
|
+
euporie/core/style.py,sha256=vmh2otvH2ZAcmgrvbibHJosDRy-5n5RzDi3FY5DiGOc,33606
|
38
38
|
euporie/core/suggest.py,sha256=T86TsEY1_Z7XnW9ncUDKwP4utJc-wYFDV5U8MY78Q7A,5512
|
39
|
-
euporie/core/terminal.py,sha256=
|
40
|
-
euporie/core/utils.py,sha256=
|
39
|
+
euporie/core/terminal.py,sha256=hlbjlIEo6YkMujobwppPsu7bIeSrO6maeeLP9IwLxcY,17906
|
40
|
+
euporie/core/utils.py,sha256=0p_Kmcsx77H8zvTCAJ6S6Aag3z1l611dst2reB2FZpw,2686
|
41
41
|
euporie/core/validation.py,sha256=cA40YnpWdB1Wpi-B4DeyQ541IEFNh2q6ypCqbVT0aXU,1180
|
42
42
|
euporie/core/comm/__init__.py,sha256=jTf9gPhonyl-UOEC7lc8RwLGJiNhFSuDZqm8rpZRnnI,52
|
43
43
|
euporie/core/comm/base.py,sha256=72PF6upybtBnNB3M8oNkR8WDzC2vptRS9TmIKJkNRq4,4047
|
44
|
-
euporie/core/comm/ipywidgets.py,sha256=
|
44
|
+
euporie/core/comm/ipywidgets.py,sha256=O37QczvaDksi6f-xoaVuAekKAJE3K7EnW27ZMPIDpY8,52738
|
45
45
|
euporie/core/comm/registry.py,sha256=cxH5r6BZe-NUy0zFqxTriAnP0_spMY3m9r1Na688i7o,1353
|
46
46
|
euporie/core/convert/__init__.py,sha256=SdXTdFh5Exb7NLtiY7pDuv4AcQdP5b1syQSoZeanJco,391
|
47
|
-
euporie/core/convert/datum.py,sha256=
|
47
|
+
euporie/core/convert/datum.py,sha256=6EtBAagMUOJAgpCKAUqKdPeJfKc2pCLLbB7fTGAEB3w,14410
|
48
48
|
euporie/core/convert/mime.py,sha256=uQwXw2hUsfS_dMeR4Ci6Zv4fORIBnEa9rdRa-nVT-Ls,3142
|
49
|
-
euporie/core/convert/registry.py,sha256=
|
49
|
+
euporie/core/convert/registry.py,sha256=vVBM78Rf778wDFGdnmxc9mkDPGczeLUVsehZv6u9w0s,2902
|
50
50
|
euporie/core/convert/utils.py,sha256=h1qlZBQ0YqV-EgdIDZcO14KJwIqA5FfDOW_nd4ZtIDA,2438
|
51
51
|
euporie/core/convert/formats/__init__.py,sha256=sPJqKh1aA0V2jJs5cXUBmAEadsozUsGxv55irlrVr68,164
|
52
52
|
euporie/core/convert/formats/ansi.py,sha256=SqkwtKqo-7wD2_tCgsJYwsCcM4vBgXPA5tGB7oVqtcM,14327
|
@@ -64,7 +64,7 @@ euporie/core/convert/formats/sixel.py,sha256=gsBDwXowN5eg-X-khzUjhYcNUsNl2up3zQV
|
|
64
64
|
euporie/core/convert/formats/svg.py,sha256=SY-rioXSm5lK6LLp3mu3YeFYTFOJ-jCvEwH-wusfU1s,805
|
65
65
|
euporie/core/ft/__init__.py,sha256=Ib-pswos3RiOM2Vn8GCZ4rwuoTNPeBJ0jhgRpwu7BKE,55
|
66
66
|
euporie/core/ft/ansi.py,sha256=ICUBohoOVtbkf96T3EsFcHf-oSsWMxD7uyRoEFnhS1I,5796
|
67
|
-
euporie/core/ft/html.py,sha256=
|
67
|
+
euporie/core/ft/html.py,sha256=ncmpObJQWaNYCqzqqXmDyk4hCm60tfvvz8epnoEjcDQ,179401
|
68
68
|
euporie/core/ft/table.py,sha256=L6rtT1XHArydL7gYX1m98MPoKCDYk8L7jibKRiayaGc,53325
|
69
69
|
euporie/core/ft/utils.py,sha256=Or3eZwoJi2NbYQg0M2mk815RlKcDmGXr7K5-7JJcT1k,27773
|
70
70
|
euporie/core/key_binding/__init__.py,sha256=zFKrJrZARNht6Tl4TT5Fw3fk-IrD8SBYk5mBJ5K_F1A,47
|
@@ -73,50 +73,51 @@ euporie/core/key_binding/micro_state.py,sha256=h_CBBiIUa4mHf70ZZDNbXreC0p0H3boNV
|
|
73
73
|
euporie/core/key_binding/registry.py,sha256=UBT_dPpndgzgrKoI7AdbL4PmZUGvZ4hBC7YGkGNTIXA,1348
|
74
74
|
euporie/core/key_binding/utils.py,sha256=UZ0ymB4vLPFaxbx9jhqR_cKaSt08efrlvFtb1KZixcU,2407
|
75
75
|
euporie/core/key_binding/vi_state.py,sha256=ek3Wxsckihsr5x9ULiDtNnVkOEiCBzoF4m4qY6wAB9Q,702
|
76
|
-
euporie/core/key_binding/bindings/__init__.py,sha256=
|
76
|
+
euporie/core/key_binding/bindings/__init__.py,sha256=qbDXRvt21fwd-esuCU5ljYwoYSK_AGVDjJ_SijdCnsg,288
|
77
77
|
euporie/core/key_binding/bindings/basic.py,sha256=djhGhPC6yDPfgXcNXfh14wLhFdraUBQH8VMfkZnLZvI,1648
|
78
78
|
euporie/core/key_binding/bindings/completion.py,sha256=npf61P0NvmrYMG8qT-1AYDReLcoMHsgdG5gzBloSTWk,2081
|
79
79
|
euporie/core/key_binding/bindings/micro.py,sha256=NZSeYZIlN2kA-nNRC8_0ECqT4jRbGOfcTllKnpRrXh8,28020
|
80
|
-
euporie/core/key_binding/bindings/mouse.py,sha256=
|
80
|
+
euporie/core/key_binding/bindings/mouse.py,sha256=UGzOFMA-3FaN_Fag_4LigBQ7Gk2pn5_s7PAj_myCRTo,6949
|
81
81
|
euporie/core/key_binding/bindings/page_navigation.py,sha256=FWIv4iqWUCMjFHLu-I5Z08NIULXuTIjrn9fC25XImYg,4142
|
82
|
+
euporie/core/key_binding/bindings/vi.py,sha256=XutOsbBI8ywyWR5XY2pUN14Vga6R0vrDK27q7ZhE8pM,1567
|
82
83
|
euporie/core/layout/__init__.py,sha256=T5iGOnMGfNwVffJlfFMwGTFBLV7RkOuKw5gVp6cl4wA,59
|
83
|
-
euporie/core/layout/cache.py,sha256=
|
84
|
-
euporie/core/layout/containers.py,sha256=
|
84
|
+
euporie/core/layout/cache.py,sha256=i4yDyFWM9zxnB1CCW7oV9kJvp5D_IJMoVOfs53QXgrU,15144
|
85
|
+
euporie/core/layout/containers.py,sha256=ECzq_Q8XQKuG5v51JP90QJLvlDJ796bpOdl5PVuVz6w,44637
|
85
86
|
euporie/core/layout/controls.py,sha256=iFklysBxk_roWKfNN4Hdjqf4sFdEBzNWZq2OavlpJHY,825
|
86
|
-
euporie/core/layout/decor.py,sha256=
|
87
|
+
euporie/core/layout/decor.py,sha256=8EuHM4cDr4njagA2SuPeXMmj5tpK7q609r2w8o9BUoI,14108
|
87
88
|
euporie/core/layout/mouse.py,sha256=GJvFwOCZ8x-CppW8rGmJ6kV6JdW0Ndjihf8IwkuBI6Q,5165
|
88
|
-
euporie/core/layout/print.py,sha256=
|
89
|
+
euporie/core/layout/print.py,sha256=cVOD2BYciQKC9-mWFz9dw6Ttc60MUnDjjBI7jT7Zxco,5154
|
89
90
|
euporie/core/layout/screen.py,sha256=0xP9ZErMcw51nPgBbrm-DSQqFq5WNvsh9fw1amz2Z28,2224
|
90
|
-
euporie/core/layout/scroll.py,sha256=
|
91
|
+
euporie/core/layout/scroll.py,sha256=aluts7jUkzIXqJKyOhNr27eI3miTh27dOYcpmaJsV_w,32824
|
91
92
|
euporie/core/tabs/__init__.py,sha256=Grm9EO1gnBO1o-k6Nqnlzo8XLIgFZSXNAdz49Vvh4zY,55
|
92
|
-
euporie/core/tabs/base.py,sha256=
|
93
|
-
euporie/core/tabs/notebook.py,sha256
|
93
|
+
euporie/core/tabs/base.py,sha256=69KU5ZN73aPIBswllXwrSEUa-A1CoCmXD1_E1TGWGP8,21989
|
94
|
+
euporie/core/tabs/notebook.py,sha256=-g5wuKdH6iWL69ti9hKpdPJrndTvuAfp5Rl8f_sm18M,18152
|
94
95
|
euporie/core/widgets/__init__.py,sha256=ektso_Ea1-pZB04alUujQsa2r-kv8xAF0SmQOv_bvHQ,52
|
95
|
-
euporie/core/widgets/cell.py,sha256=
|
96
|
+
euporie/core/widgets/cell.py,sha256=cP0yU-7drPvyloPMvxRe73nZg732pAo-XEh4V5ScTq0,34697
|
96
97
|
euporie/core/widgets/cell_outputs.py,sha256=FSTvEYvwqNiHvj1UgbDYyQnW8pZpfdz2sKodxysqFsE,17334
|
97
98
|
euporie/core/widgets/decor.py,sha256=GPZG7-h3MKynQIXJ_YoR6tPpYxtmrXi0uoyVCovSjBQ,8770
|
98
|
-
euporie/core/widgets/dialog.py,sha256=
|
99
|
+
euporie/core/widgets/dialog.py,sha256=pnF1uyTkovXb-6bhB9LWZU_XkV9L6h5G1NDe-GN2i28,32951
|
99
100
|
euporie/core/widgets/display.py,sha256=UicJq9iSzHrrYXdXTXWPvBsC69ttZU8GHJ7xRK5Fbmo,21767
|
100
|
-
euporie/core/widgets/file_browser.py,sha256=
|
101
|
+
euporie/core/widgets/file_browser.py,sha256=kH1bIap6zkB6KV_1GoA34yd95LIZ3b20cgqJWQlWMik,20733
|
101
102
|
euporie/core/widgets/formatted_text_area.py,sha256=J7P_TNXPZKZkiBdjAVkPvkfRY1veXe4tzXU241k4b-Q,4037
|
102
|
-
euporie/core/widgets/forms.py,sha256=
|
103
|
-
euporie/core/widgets/inputs.py,sha256=
|
104
|
-
euporie/core/widgets/layout.py,sha256=
|
103
|
+
euporie/core/widgets/forms.py,sha256=rrLbgMo4YQRTeG0sLd45PCaL2ztckd99RIeZQvnhDmo,85475
|
104
|
+
euporie/core/widgets/inputs.py,sha256=Rpsy-kouiDeoSWPs89l1pSTXGnyAV0_tufQ3EqZp1P8,21826
|
105
|
+
euporie/core/widgets/layout.py,sha256=G1Tgy0bQbJfpnnlAQx0NzJ6gzaOnrPiXuXZov20dhQo,23507
|
105
106
|
euporie/core/widgets/menu.py,sha256=K5Zkv_wKs7-2ZgMDygLDTKj5Vkh7MPLwc9ZWIhXa_xM,32856
|
106
107
|
euporie/core/widgets/pager.py,sha256=mbqB2-mX8bORUKM5492s5K9rpoGrvrBN1qY7uYE9o0g,6527
|
107
108
|
euporie/core/widgets/palette.py,sha256=e15dnPAg7VYjjahae-XsWViCjUA63jR5fdS3Oyof3MY,10847
|
108
109
|
euporie/core/widgets/search.py,sha256=szGAC19LYhAnMvQGLRWrjPoUjQa9Q3nhyugQ3uFshaU,11816
|
109
|
-
euporie/core/widgets/status.py,sha256=
|
110
|
+
euporie/core/widgets/status.py,sha256=LphylR8zFVs5Oq3s_Pd-1B0BfPd8UAR5BvsjEG4ggxo,5560
|
110
111
|
euporie/core/widgets/tree.py,sha256=BG7QRsI2GzSJPReNQu9zWFjO0iy8TeJwrmCmP5dc2ek,3760
|
111
112
|
euporie/data/desktop/euporie-console.desktop,sha256=DI08G0Dl2s5asM6afWUfkKvO5YmcBm-pWQZzUHiNnqc,153
|
112
113
|
euporie/data/desktop/euporie-notebook.desktop,sha256=RtpJzvizTDuOp0BLa2bLgVHx11LG6L7PL-oF-wHTsgU,155
|
113
114
|
euporie/hub/__init__.py,sha256=NcrOlSFgI4y5gEbD4lFY-Ryd1K79EeMoeAp41A6tDT0,44
|
114
115
|
euporie/hub/__main__.py,sha256=m2EnzIDLO4dHlDt41JNKpUvAUSw6wD-X0V3YhymXqxc,289
|
115
|
-
euporie/hub/app.py,sha256=
|
116
|
+
euporie/hub/app.py,sha256=nsihRIlimet6HoFNCZwmY8iyBUPSdoRxTwRw9iwC_iQ,6285
|
116
117
|
euporie/hub/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
117
118
|
euporie/notebook/__init__.py,sha256=rOE71d95pym_ILYVg07NO9oDYbSB0AskxbC8cr4htiU,44
|
118
119
|
euporie/notebook/__main__.py,sha256=m2EnzIDLO4dHlDt41JNKpUvAUSw6wD-X0V3YhymXqxc,289
|
119
|
-
euporie/notebook/app.py,sha256=
|
120
|
+
euporie/notebook/app.py,sha256=QQFvWorsxTxzcUdVVmc4d0FpbC88neTTbxbsLQu5xKw,22481
|
120
121
|
euporie/notebook/current.py,sha256=rQ_R9B0b8JmWILxEyGzGfuVY2iVkHTghq4qRiC-MYSU,387
|
121
122
|
euporie/notebook/enums.py,sha256=g7quMch8KAlaaYJS0UppWqx6tx-ZFt7HxFcmEfam5OM,221
|
122
123
|
euporie/notebook/filters.py,sha256=c2PncF-n4dE67cFmVmhsMhFVWCfxePAaCW6mb6zm0Yo,1502
|
@@ -125,22 +126,22 @@ euporie/notebook/tabs/__init__.py,sha256=CnHrMzmr4tKEd8Rs8swFvNDWj0fCiLChdqha0At
|
|
125
126
|
euporie/notebook/tabs/display.py,sha256=y8wMa-MsQZky_JgJEwUtMUGIbLnFiAZMfrX1u-km6VM,2595
|
126
127
|
euporie/notebook/tabs/edit.py,sha256=Hop0AIvIaXJ9SaWtgxpocjGN0JEcsNuPkBsZPcJ76UE,6529
|
127
128
|
euporie/notebook/tabs/json.py,sha256=xKDHYkA59aleBpm6qLuic5GNPNQU6qApLuIT1vZzJrg,2179
|
128
|
-
euporie/notebook/tabs/log.py,sha256=
|
129
|
-
euporie/notebook/tabs/notebook.py,sha256=
|
129
|
+
euporie/notebook/tabs/log.py,sha256=qGyjx4Cz9WZ7QP6blh4lCJaJpSDBWnFMpCLRR90aE6U,3546
|
130
|
+
euporie/notebook/tabs/notebook.py,sha256=pho5gJZFV5un8hQ5wBc-_JwsRVy6r1YE3wuTJTSKn80,43120
|
130
131
|
euporie/notebook/widgets/__init__.py,sha256=74tOl0bYuWkaKT-4pgD5zmdiIkoFYx8uGj4SxcLHLtQ,48
|
131
132
|
euporie/notebook/widgets/side_bar.py,sha256=EDFAulshV7YqA50w84RRl88UI60AehIXYYA2exlFh0M,7243
|
132
133
|
euporie/preview/__init__.py,sha256=B6RsBuuT0JJk1v6U5n95VuFXcOeFLq6UGgt4w-n_nEI,51
|
133
134
|
euporie/preview/__main__.py,sha256=m2EnzIDLO4dHlDt41JNKpUvAUSw6wD-X0V3YhymXqxc,289
|
134
|
-
euporie/preview/app.py,sha256=
|
135
|
+
euporie/preview/app.py,sha256=qbDKbSvE_D2_OMU20atVXkWNT8nRjb_BtSRxYzDgsEI,8272
|
135
136
|
euporie/preview/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
136
137
|
euporie/preview/tabs/__init__.py,sha256=rY6DfQ-8qRo_AiICCD-zTyhJBnuMjawWDd8tRxR6q58,43
|
137
|
-
euporie/preview/tabs/notebook.py,sha256=
|
138
|
-
euporie/web/tabs/web.py,sha256=
|
138
|
+
euporie/preview/tabs/notebook.py,sha256=KcKB84cUwqB9mbUC7ZfLSDlmhIjYhfSD6uiYX334uEc,8339
|
139
|
+
euporie/web/tabs/web.py,sha256=LAVjWdGkTRHT2rtmnU0ITbQzV5aIOAhH5am0kKuynC4,5227
|
139
140
|
euporie/web/widgets/webview.py,sha256=PA8hWqJs8FLMEFNAHYKz4Zt2fJTg-BSyuCji6isxz3o,20800
|
140
|
-
euporie-2.8.
|
141
|
-
euporie-2.8.
|
142
|
-
euporie-2.8.
|
143
|
-
euporie-2.8.
|
144
|
-
euporie-2.8.
|
145
|
-
euporie-2.8.
|
146
|
-
euporie-2.8.
|
141
|
+
euporie-2.8.4.data/data/share/applications/euporie-console.desktop,sha256=DI08G0Dl2s5asM6afWUfkKvO5YmcBm-pWQZzUHiNnqc,153
|
142
|
+
euporie-2.8.4.data/data/share/applications/euporie-notebook.desktop,sha256=RtpJzvizTDuOp0BLa2bLgVHx11LG6L7PL-oF-wHTsgU,155
|
143
|
+
euporie-2.8.4.dist-info/METADATA,sha256=QbvlH35_CH8vp3NcF3AKGBpjOaKHfD-UpX26uucjzf0,6415
|
144
|
+
euporie-2.8.4.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87
|
145
|
+
euporie-2.8.4.dist-info/entry_points.txt,sha256=iHdjwf9iCAipy7w3tXCH2W_SavHVCSHpJk_84--b7rE,776
|
146
|
+
euporie-2.8.4.dist-info/licenses/LICENSE,sha256=rI0bfSsCfCVw6d8vk7WokRxd3t8yx5xV4fC5fwaMgCg,1079
|
147
|
+
euporie-2.8.4.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|