euporie 2.6.1__py3-none-any.whl → 2.7.0__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 +51 -43
- euporie/core/__init__.py +5 -2
- euporie/core/app.py +74 -57
- euporie/core/comm/ipywidgets.py +7 -3
- euporie/core/config.py +51 -27
- euporie/core/convert/__init__.py +2 -0
- euporie/core/convert/datum.py +82 -45
- euporie/core/convert/formats/ansi.py +1 -2
- euporie/core/convert/formats/common.py +7 -11
- euporie/core/convert/formats/ft.py +10 -7
- euporie/core/convert/formats/png.py +7 -6
- euporie/core/convert/formats/sixel.py +1 -1
- euporie/core/convert/formats/svg.py +28 -0
- euporie/core/convert/mime.py +4 -7
- euporie/core/data_structures.py +24 -22
- euporie/core/filters.py +16 -2
- euporie/core/format.py +30 -4
- euporie/core/ft/ansi.py +2 -1
- euporie/core/ft/html.py +155 -42
- euporie/core/{widgets/graphics.py → graphics.py} +225 -227
- euporie/core/io.py +8 -0
- euporie/core/key_binding/bindings/__init__.py +8 -2
- euporie/core/key_binding/bindings/basic.py +9 -14
- euporie/core/key_binding/bindings/micro.py +0 -12
- euporie/core/key_binding/bindings/mouse.py +107 -80
- euporie/core/key_binding/bindings/page_navigation.py +129 -0
- euporie/core/key_binding/key_processor.py +9 -1
- euporie/core/layout/__init__.py +1 -0
- euporie/core/layout/containers.py +1011 -0
- euporie/core/layout/decor.py +381 -0
- euporie/core/layout/print.py +130 -0
- euporie/core/layout/screen.py +75 -0
- euporie/core/{widgets/page.py → layout/scroll.py} +166 -111
- euporie/core/log.py +1 -1
- euporie/core/margins.py +11 -5
- euporie/core/path.py +43 -176
- euporie/core/renderer.py +31 -8
- euporie/core/style.py +2 -0
- euporie/core/tabs/base.py +2 -1
- euporie/core/terminal.py +19 -21
- euporie/core/widgets/cell.py +2 -4
- euporie/core/widgets/cell_outputs.py +2 -2
- euporie/core/widgets/decor.py +3 -359
- euporie/core/widgets/dialog.py +5 -5
- euporie/core/widgets/display.py +32 -12
- euporie/core/widgets/file_browser.py +3 -4
- euporie/core/widgets/forms.py +36 -14
- euporie/core/widgets/inputs.py +171 -99
- euporie/core/widgets/layout.py +80 -5
- euporie/core/widgets/menu.py +1 -3
- euporie/core/widgets/pager.py +3 -3
- euporie/core/widgets/palette.py +3 -2
- euporie/core/widgets/status_bar.py +2 -6
- euporie/core/widgets/tree.py +3 -6
- euporie/notebook/app.py +8 -8
- euporie/notebook/tabs/notebook.py +2 -2
- euporie/notebook/widgets/side_bar.py +1 -1
- euporie/preview/tabs/notebook.py +2 -2
- euporie/web/tabs/web.py +6 -1
- euporie/web/widgets/webview.py +52 -32
- {euporie-2.6.1.dist-info → euporie-2.7.0.dist-info}/METADATA +9 -11
- {euporie-2.6.1.dist-info → euporie-2.7.0.dist-info}/RECORD +67 -60
- {euporie-2.6.1.dist-info → euporie-2.7.0.dist-info}/WHEEL +1 -1
- {euporie-2.6.1.data → euporie-2.7.0.data}/data/share/applications/euporie-console.desktop +0 -0
- {euporie-2.6.1.data → euporie-2.7.0.data}/data/share/applications/euporie-notebook.desktop +0 -0
- {euporie-2.6.1.dist-info → euporie-2.7.0.dist-info}/entry_points.txt +0 -0
- {euporie-2.6.1.dist-info → euporie-2.7.0.dist-info}/licenses/LICENSE +0 -0
euporie/web/tabs/web.py
CHANGED
@@ -14,10 +14,10 @@ from upath import UPath
|
|
14
14
|
from euporie.core.convert.mime import get_mime
|
15
15
|
from euporie.core.current import get_app
|
16
16
|
from euporie.core.data_structures import DiBool
|
17
|
+
from euporie.core.layout.decor import FocusedStyle
|
17
18
|
from euporie.core.margins import MarginContainer, ScrollbarMargin
|
18
19
|
from euporie.core.tabs.base import Tab
|
19
20
|
from euporie.core.utils import run_in_thread_with_context
|
20
|
-
from euporie.core.widgets.decor import FocusedStyle
|
21
21
|
from euporie.core.widgets.display import DisplayWindow
|
22
22
|
from euporie.core.widgets.forms import Button, Text
|
23
23
|
from euporie.web.widgets.webview import WebViewControl
|
@@ -51,6 +51,11 @@ class WebTab(Tab):
|
|
51
51
|
|
52
52
|
run_in_thread_with_context(_load)
|
53
53
|
|
54
|
+
def focus(self) -> None:
|
55
|
+
"""Focus the webview when this tab is focused."""
|
56
|
+
super().focus()
|
57
|
+
self.app.layout.focus(self.webview)
|
58
|
+
|
54
59
|
@property
|
55
60
|
def title(self) -> str:
|
56
61
|
"""Return the tab title."""
|
euporie/web/widgets/webview.py
CHANGED
@@ -2,7 +2,9 @@
|
|
2
2
|
|
3
3
|
from __future__ import annotations
|
4
4
|
|
5
|
+
import asyncio
|
5
6
|
import logging
|
7
|
+
from threading import Thread
|
6
8
|
from typing import TYPE_CHECKING, cast
|
7
9
|
|
8
10
|
from prompt_toolkit.cache import FastDictCache
|
@@ -16,22 +18,20 @@ from prompt_toolkit.utils import Event
|
|
16
18
|
from upath import UPath
|
17
19
|
|
18
20
|
from euporie.core.commands import add_cmd
|
19
|
-
from euporie.core.convert.datum import Datum
|
21
|
+
from euporie.core.convert.datum import Datum, get_loop
|
20
22
|
from euporie.core.convert.mime import get_format
|
21
23
|
from euporie.core.current import get_app
|
22
24
|
from euporie.core.ft.html import HTML, Node
|
23
25
|
from euporie.core.ft.utils import fragment_list_width, paste
|
26
|
+
from euporie.core.graphics import GraphicProcessor
|
24
27
|
from euporie.core.key_binding.registry import (
|
25
28
|
load_registered_bindings,
|
26
29
|
register_bindings,
|
27
30
|
)
|
28
31
|
from euporie.core.path import parse_path
|
29
|
-
from euporie.core.utils import run_in_thread_with_context
|
30
|
-
from euporie.core.widgets.graphics import (
|
31
|
-
GraphicProcessor,
|
32
|
-
)
|
33
32
|
|
34
33
|
if TYPE_CHECKING:
|
34
|
+
from concurrent.futures._base import Future
|
35
35
|
from pathlib import Path
|
36
36
|
from typing import Any, Callable, Iterable
|
37
37
|
|
@@ -71,6 +71,7 @@ class WebViewControl(UIControl):
|
|
71
71
|
self.loading = False
|
72
72
|
self.resizing = False
|
73
73
|
self.rendering = False
|
74
|
+
self.stale = False
|
74
75
|
self.lines: list[StyleAndTextTuples] = []
|
75
76
|
self.graphic_processor = GraphicProcessor(control=self)
|
76
77
|
self.width = 0
|
@@ -79,6 +80,7 @@ class WebViewControl(UIControl):
|
|
79
80
|
self.status: list[AnyFormattedText] = []
|
80
81
|
self.link_handler = link_handler or self.load_url
|
81
82
|
|
83
|
+
self.render_task: Future[None] | None = None
|
82
84
|
self.rendered = Event(self)
|
83
85
|
self.on_cursor_position_changed = Event(self)
|
84
86
|
|
@@ -89,6 +91,9 @@ class WebViewControl(UIControl):
|
|
89
91
|
# lambda: self.cursor_position, style="fg:red"
|
90
92
|
# )
|
91
93
|
|
94
|
+
self.loop = asyncio.new_event_loop()
|
95
|
+
self.render_thread = Thread(target=self.loop.run_forever, daemon=True)
|
96
|
+
|
92
97
|
self.key_bindings = load_registered_bindings(
|
93
98
|
"euporie.web.widgets.webview.WebViewControl"
|
94
99
|
)
|
@@ -128,7 +133,7 @@ class WebViewControl(UIControl):
|
|
128
133
|
if changed:
|
129
134
|
self.on_cursor_position_changed.fire()
|
130
135
|
|
131
|
-
def get_dom(self, url: Path) -> HTML:
|
136
|
+
def get_dom(self, url: Path, x: bool = False) -> HTML:
|
132
137
|
"""Load a HTML page as renderable formatted text."""
|
133
138
|
markup = str(
|
134
139
|
Datum(
|
@@ -145,8 +150,15 @@ class WebViewControl(UIControl):
|
|
145
150
|
mouse_handler=self._node_mouse_handler,
|
146
151
|
paste_fixed=False,
|
147
152
|
_initial_format=format_,
|
153
|
+
defer_assets=False,
|
154
|
+
on_change=lambda dom: self.invalidate(),
|
148
155
|
)
|
149
156
|
|
157
|
+
def invalidate(self) -> None:
|
158
|
+
"""Trigger a redraw of the webview."""
|
159
|
+
self.stale = True
|
160
|
+
self.rendered.fire()
|
161
|
+
|
150
162
|
@property
|
151
163
|
def dom(self) -> HTML:
|
152
164
|
"""Return the dom for the current URL."""
|
@@ -161,7 +173,9 @@ class WebViewControl(UIControl):
|
|
161
173
|
return dom.title
|
162
174
|
return ""
|
163
175
|
|
164
|
-
def get_lines(
|
176
|
+
def get_lines(
|
177
|
+
self, dom: HTML, width: int, height: int, assets_loaded: bool = False
|
178
|
+
) -> list[StyleAndTextTuples]:
|
165
179
|
"""Render a HTML page as lines of formatted text."""
|
166
180
|
return list(split_lines(dom.render(width, height)))
|
167
181
|
|
@@ -194,23 +208,27 @@ class WebViewControl(UIControl):
|
|
194
208
|
self.prev_stack.append(self.url)
|
195
209
|
self.load_url(self.next_stack.pop(), save_to_history=False)
|
196
210
|
|
197
|
-
def render(self) -> None:
|
211
|
+
def render(self, force: bool = False) -> None:
|
198
212
|
"""Render the HTML DOM in a thread."""
|
199
213
|
dom = self.dom
|
200
214
|
|
201
|
-
def _render() -> None:
|
215
|
+
async def _render() -> None:
|
202
216
|
assert self.url is not None
|
203
217
|
# Potentially redirect url
|
204
218
|
self.url = parse_path(self.url)
|
205
|
-
self.lines =
|
206
|
-
|
207
|
-
self.resizing = False
|
208
|
-
|
219
|
+
self.lines = list(split_lines(await dom._render(self.width, self.height)))
|
220
|
+
# Reset all possible reasons for rendering
|
221
|
+
self.loading = self.resizing = self.rendering = self.stale = False
|
222
|
+
# Let the app know we're re-rerenderd and the output needs redrawing
|
209
223
|
self.rendered.fire()
|
210
224
|
|
211
|
-
if not self.rendering:
|
225
|
+
if not self.rendering or force:
|
212
226
|
self.rendering = True
|
213
|
-
|
227
|
+
|
228
|
+
if self.render_task:
|
229
|
+
self.render_task.cancel()
|
230
|
+
|
231
|
+
self.render_task = asyncio.run_coroutine_threadsafe(_render(), get_loop())
|
214
232
|
|
215
233
|
def reset(self) -> None:
|
216
234
|
"""Reset the state of the control."""
|
@@ -239,10 +257,12 @@ class WebViewControl(UIControl):
|
|
239
257
|
loading: bool,
|
240
258
|
resizing: bool,
|
241
259
|
width: int,
|
242
|
-
|
260
|
+
height: int,
|
243
261
|
cursor_position: Point,
|
262
|
+
assets_loaded: bool,
|
244
263
|
) -> UIContent:
|
245
264
|
"""Create a cacheable UIContent."""
|
265
|
+
dom = self._dom_cache[url,]
|
246
266
|
if self.loading:
|
247
267
|
lines = [
|
248
268
|
cast("StyleAndTextTuples", []),
|
@@ -252,24 +272,22 @@ class WebViewControl(UIControl):
|
|
252
272
|
),
|
253
273
|
]
|
254
274
|
else:
|
255
|
-
lines = self.lines
|
275
|
+
lines = self.lines[:]
|
256
276
|
|
257
277
|
def get_line(i: int) -> StyleAndTextTuples:
|
258
278
|
try:
|
259
279
|
line = lines[i]
|
260
280
|
except IndexError:
|
261
|
-
|
281
|
+
line = []
|
262
282
|
|
263
283
|
# Overlay fixed lines onto this line
|
264
|
-
if not loading:
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
fixed_line = fixed_lines[visible_line]
|
272
|
-
line = paste(fixed_line, line, 0, 0, transparent=True)
|
284
|
+
if not loading and dom.fixed:
|
285
|
+
visible_line = max(0, i - self.window.vertical_scroll)
|
286
|
+
fixed_lines = list(split_lines(dom.fixed_mask))
|
287
|
+
if visible_line < len(fixed_lines):
|
288
|
+
# Paste the fixed line over the current line
|
289
|
+
fixed_line = fixed_lines[visible_line]
|
290
|
+
line = paste(fixed_line, line, 0, 0, transparent=True)
|
273
291
|
|
274
292
|
return line
|
275
293
|
|
@@ -287,10 +305,10 @@ class WebViewControl(UIControl):
|
|
287
305
|
A :class:`.UIContent` instance.
|
288
306
|
"""
|
289
307
|
# Trigger a re-render in the future if things have changed
|
290
|
-
if self.loading:
|
308
|
+
if self.stale or self.loading:
|
291
309
|
self.render()
|
292
310
|
if width != self.width: # or height != self.height:
|
293
|
-
self.resizing = True
|
311
|
+
# self.resizing = True
|
294
312
|
self.width = width
|
295
313
|
self.height = height
|
296
314
|
self.render()
|
@@ -298,10 +316,11 @@ class WebViewControl(UIControl):
|
|
298
316
|
content = self._content_cache[
|
299
317
|
self.url,
|
300
318
|
self.loading,
|
301
|
-
|
319
|
+
self.resizing,
|
302
320
|
width,
|
303
|
-
|
321
|
+
height,
|
304
322
|
self.cursor_position,
|
323
|
+
self.dom.render_count,
|
305
324
|
]
|
306
325
|
|
307
326
|
# Check for graphics in content
|
@@ -368,8 +387,9 @@ class WebViewControl(UIControl):
|
|
368
387
|
self.loading,
|
369
388
|
self.resizing,
|
370
389
|
self.width,
|
371
|
-
|
390
|
+
self.height,
|
372
391
|
self.cursor_position,
|
392
|
+
self.dom.render_count,
|
373
393
|
]
|
374
394
|
line = content.get_line(mouse_event.position.y)
|
375
395
|
except IndexError:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: euporie
|
3
|
-
Version: 2.
|
3
|
+
Version: 2.7.0
|
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
|
@@ -24,9 +24,10 @@ Requires-Python: >=3.8
|
|
24
24
|
Requires-Dist: aenum<=3.1.12,~=3.1
|
25
25
|
Requires-Dist: fastjsonschema~=2.15
|
26
26
|
Requires-Dist: flatlatex~=0.15
|
27
|
-
Requires-Dist: fsspec[http]>=2022.
|
27
|
+
Requires-Dist: fsspec[http]>=2022.12.0
|
28
28
|
Requires-Dist: imagesize~=1.3
|
29
29
|
Requires-Dist: jupyter-client>=7.1
|
30
|
+
Requires-Dist: jupytext>=1.14.0
|
30
31
|
Requires-Dist: linkify-it-py~=1.0
|
31
32
|
Requires-Dist: markdown-it-py~=2.1.0
|
32
33
|
Requires-Dist: mdit-py-plugins~=0.3.0
|
@@ -36,19 +37,16 @@ Requires-Dist: platformdirs~=3.5
|
|
36
37
|
Requires-Dist: prompt-toolkit~=3.0.36
|
37
38
|
Requires-Dist: pygments~=2.11
|
38
39
|
Requires-Dist: pyperclip~=1.8
|
39
|
-
Requires-Dist: sixelcrop~=0.1.
|
40
|
-
Requires-Dist: timg~=1.1
|
40
|
+
Requires-Dist: sixelcrop~=0.1.6
|
41
|
+
Requires-Dist: timg~=1.1.6
|
41
42
|
Requires-Dist: typing-extensions~=4.5
|
42
|
-
Requires-Dist: universal-pathlib
|
43
|
-
Provides-Extra: chafa
|
44
|
-
Requires-Dist: chafa-py>=1.0.2; extra == 'chafa'
|
43
|
+
Requires-Dist: universal-pathlib~=0.1.4
|
45
44
|
Provides-Extra: format
|
46
45
|
Requires-Dist: black>=19.3.b0; extra == 'format'
|
47
46
|
Requires-Dist: isort~=5.10.1; extra == 'format'
|
47
|
+
Requires-Dist: ruff~=0.1.0; extra == 'format'
|
48
48
|
Provides-Extra: hub
|
49
49
|
Requires-Dist: asyncssh~=2.10.1; extra == 'hub'
|
50
|
-
Provides-Extra: jupytext
|
51
|
-
Requires-Dist: jupytext>=1.14.0; extra == 'jupytext'
|
52
50
|
Description-Content-Type: text/x-rst
|
53
51
|
|
54
52
|
|logo|
|
@@ -80,8 +78,8 @@ If you're working with Jupyter notebooks in a terminal only environment, like an
|
|
80
78
|
- `Preview <https://euporie.readthedocs.io/en/latest/apps/preview.html>`_
|
81
79
|
- `Hub <https://euporie.readthedocs.io/en/latest/apps/hub.html>`_
|
82
80
|
|
83
|
-
.. image:: https://
|
84
|
-
:target: https://
|
81
|
+
.. image:: https://github.com/joouha/euporie/assets/12154190/c8ea6e23-11bb-4ffc-a9e5-111f788c51ae
|
82
|
+
:target: https://github.com/joouha/euporie/assets/12154190/c8ea6e23-11bb-4ffc-a9e5-111f788c51ae
|
85
83
|
|
86
84
|
`View more screenshots here <https://euporie.readthedocs.io/en/latest/pages/gallery.html>`_
|
87
85
|
|
@@ -3,98 +3,105 @@ euporie/console/__main__.py,sha256=m2EnzIDLO4dHlDt41JNKpUvAUSw6wD-X0V3YhymXqxc,2
|
|
3
3
|
euporie/console/app.py,sha256=QMR5rPREPeGThcsxb94ItFxGrG80pRpxF2gBcuEB-2I,8044
|
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=
|
6
|
+
euporie/console/tabs/console.py,sha256=Bf1oQFU_Tp2Kmn22qQWhPUeM8PftMEIfBCvopAo9kNs,23225
|
7
|
+
euporie/core/__init__.py,sha256=8FPhfG2Pth5gJ4wpV2-xsRa6uFeXgVWuXnM_iwKk-0Q,536
|
8
8
|
euporie/core/__main__.py,sha256=ifgDkpe2RSQVicre5seul_1y7S9FYPGl-Kyck07KPQU,424
|
9
|
-
euporie/core/app.py,sha256=
|
9
|
+
euporie/core/app.py,sha256=rkBg9pKj_EhRvv8GsPxWncDdwn-OgzG1ETjZwl2L8sw,40251
|
10
10
|
euporie/core/border.py,sha256=kJbpyxwJBtIRpFOpXhDtaCT1_oyVRjRiYKG4lXn3-iA,48507
|
11
11
|
euporie/core/clipboard.py,sha256=q7igcHI6b9EoAJOHc0Ib2x_TDBvia43M3Iqet_KnE1g,4458
|
12
12
|
euporie/core/commands.py,sha256=uOS4cJTzxSv8jEMComMDAqaAUrsPjaB_AY4tTeZFGfY,8256
|
13
13
|
euporie/core/completion.py,sha256=-bUIWP-FDOERYvNZZQ1NWNMkuzYQydTfkwNTopkuuR8,1538
|
14
|
-
euporie/core/config.py,sha256=
|
14
|
+
euporie/core/config.py,sha256=KqPnf34OHrTMsjpTpyjWkch-R9cVemnITMMOZOpwkYg,22444
|
15
15
|
euporie/core/current.py,sha256=BdSVCLngNpZdtYJaxdijuu8N9yRcoU_wr0jI6RGRSms,557
|
16
|
-
euporie/core/data_structures.py,sha256=
|
17
|
-
euporie/core/filters.py,sha256=
|
18
|
-
euporie/core/format.py,sha256=
|
16
|
+
euporie/core/data_structures.py,sha256=eA54Cg305R1mVX6YGTRPIvTN4piEFKrltehif49l92o,1800
|
17
|
+
euporie/core/filters.py,sha256=N5lcPPmsQ4Xb2f8NKEpGI2XFKozTUIAWW20q4566i6g,8371
|
18
|
+
euporie/core/format.py,sha256=gyBpNqftRI9yALBqOeGYpg8FB1zKPd0ek0FJjQ2LuMg,2601
|
19
|
+
euporie/core/graphics.py,sha256=7J66fFRLnJMSaBGxzt6NqVUME3vb8UFcKCrwkm3brII,32280
|
19
20
|
euporie/core/history.py,sha256=uO14q8keGEtH1R9loaZrBfy66GfXcJhxyXW95-35niA,2542
|
20
|
-
euporie/core/io.py,sha256=
|
21
|
+
euporie/core/io.py,sha256=y-2nDaVBCp6MNpQMCFu7hsMlzp5ae5rxAN6K0rJeYTE,3741
|
21
22
|
euporie/core/kernel.py,sha256=9n_sonP-8vbtQkf9J_Hb1H5ATS0e_fWfLFko-JP9fwg,45663
|
22
23
|
euporie/core/keys.py,sha256=JH7TcdtryESZjX7UsMIrYhJ98VrZsemkQwHqCNoMuXA,3300
|
23
24
|
euporie/core/launch.py,sha256=a51t67xWCGXVPRfzQMeHSJHaMBC5SDkGsjBGUqNSX_w,1405
|
24
25
|
euporie/core/lexers.py,sha256=-IfBpOtNJ4p44mFM0mO9A6zwmWJxrXNIZHmcZzvb5w0,1060
|
25
|
-
euporie/core/log.py,sha256=
|
26
|
-
euporie/core/margins.py,sha256=
|
27
|
-
euporie/core/path.py,sha256=
|
26
|
+
euporie/core/log.py,sha256=lgW2g5rHAwPKFfs09432bn7dshJCYRfERhjoLXfNT0Y,16011
|
27
|
+
euporie/core/margins.py,sha256=fv1FWtpiTY-ysp-MnFNyS3RbnUZx0W1MG9vt9ICWBLo,21456
|
28
|
+
euporie/core/path.py,sha256=6-cMmlUKQNyFIS67i_sUXcNMtwuqglzTXJUaR5P6Zc0,4298
|
28
29
|
euporie/core/processors.py,sha256=9Ebymv0g5zeNaxBuEO8y_zqEATvsvDLXlcD9NbkZVpo,3591
|
29
30
|
euporie/core/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
30
31
|
euporie/core/pygments.py,sha256=TE3VrZ-QKe4n6hmoYuNmt0l0XR6qmko7JvO5YHSt_rU,2588
|
31
32
|
euporie/core/reference.py,sha256=x8-7405xgTEcK7ImqikQtVAXXqFanz61UQ3mn7v_4-o,65039
|
32
|
-
euporie/core/renderer.py,sha256=
|
33
|
-
euporie/core/style.py,sha256=
|
33
|
+
euporie/core/renderer.py,sha256=XhjSsNFiHBZigtBy7Bp942jfs0iz1Il2GIwNNKOZp00,17264
|
34
|
+
euporie/core/style.py,sha256=XDMKGpNe2qPQ0YY8kEQU7c7BEszJEkZ7W4kAdwyjJ0E,32601
|
34
35
|
euporie/core/suggest.py,sha256=T86TsEY1_Z7XnW9ncUDKwP4utJc-wYFDV5U8MY78Q7A,5512
|
35
|
-
euporie/core/terminal.py,sha256=
|
36
|
+
euporie/core/terminal.py,sha256=0zzdnd-6cOds4BFU2ih23xKelhq9m-uzyzK-K2wfyws,17972
|
36
37
|
euporie/core/utils.py,sha256=ZzaLogLbZw_c8-wdk2XS6dwpgIpQotKwhN2nzalHL8Y,2702
|
37
38
|
euporie/core/validation.py,sha256=cA40YnpWdB1Wpi-B4DeyQ541IEFNh2q6ypCqbVT0aXU,1180
|
38
39
|
euporie/core/comm/__init__.py,sha256=jTf9gPhonyl-UOEC7lc8RwLGJiNhFSuDZqm8rpZRnnI,52
|
39
40
|
euporie/core/comm/base.py,sha256=72PF6upybtBnNB3M8oNkR8WDzC2vptRS9TmIKJkNRq4,4047
|
40
|
-
euporie/core/comm/ipywidgets.py,sha256=
|
41
|
+
euporie/core/comm/ipywidgets.py,sha256=obOKgcYc8OBB1PfKfNRB59ppZbnVA2eCDokSTUucZ7Q,52725
|
41
42
|
euporie/core/comm/registry.py,sha256=cxH5r6BZe-NUy0zFqxTriAnP0_spMY3m9r1Na688i7o,1353
|
42
|
-
euporie/core/convert/__init__.py,sha256=
|
43
|
-
euporie/core/convert/datum.py,sha256=
|
44
|
-
euporie/core/convert/mime.py,sha256=
|
43
|
+
euporie/core/convert/__init__.py,sha256=SdXTdFh5Exb7NLtiY7pDuv4AcQdP5b1syQSoZeanJco,391
|
44
|
+
euporie/core/convert/datum.py,sha256=XP-DU8YQuH8VMfOeYgTN1kXYsJteMFdRjqYHyg8KVEE,14227
|
45
|
+
euporie/core/convert/mime.py,sha256=W7qQ6XkARsQ2QlylDPzHpTiyIJumG0BoEhHzGGbT7jg,3093
|
45
46
|
euporie/core/convert/registry.py,sha256=IP43FE1edE2WDpjlKNylWhQV88WULpzWCIddBOQxxk8,2757
|
46
47
|
euporie/core/convert/utils.py,sha256=sM4QwEF-Ec_11aPRD6eiC3rbMDXe37_s3lps5YEknjs,3712
|
47
48
|
euporie/core/convert/formats/__init__.py,sha256=sPJqKh1aA0V2jJs5cXUBmAEadsozUsGxv55irlrVr68,164
|
48
|
-
euporie/core/convert/formats/ansi.py,sha256=
|
49
|
+
euporie/core/convert/formats/ansi.py,sha256=1o64dEEiIDBLsqbWv0NMVPwyVgV7aC4u37LgJIs0rwg,12617
|
49
50
|
euporie/core/convert/formats/base64.py,sha256=a-OB6Pjgv-aEqWB5rlNUImqnNlAkL3gPuQdw5USCBdE,824
|
50
|
-
euporie/core/convert/formats/common.py,sha256=
|
51
|
-
euporie/core/convert/formats/ft.py,sha256=
|
51
|
+
euporie/core/convert/formats/common.py,sha256=TsYUWbgE0my6Cl2hfROjOnvdFbr-KekXltiOxWxsmO8,4901
|
52
|
+
euporie/core/convert/formats/ft.py,sha256=jnrsR7eaeLNdoKUSux2b1g1vyylOQww88J8QFCVnRNs,2706
|
52
53
|
euporie/core/convert/formats/html.py,sha256=jdxLFUlC3tQHKrS3TlYGpvj6ny6q6XG4uZrQ3Lys4oE,2071
|
53
54
|
euporie/core/convert/formats/jpeg.py,sha256=c38IZEd6HVAmKBXnDE0qmqwfWtjcwVL5ugXffV0wCpA,287
|
54
55
|
euporie/core/convert/formats/markdown.py,sha256=J2AvGQAn4QUn8-tqIz0RQMxvwenND_kQzbYcLD_knXw,2275
|
55
56
|
euporie/core/convert/formats/pdf.py,sha256=6d8e5tjV1j6QXMr7KBNmQ2hQzVY9Il19xg4a8E_0I0I,283
|
56
57
|
euporie/core/convert/formats/pil.py,sha256=2aISFRSjsONPj53PHxCaJq3p9GQAMHvXmhoVFVFHPkE,2456
|
57
|
-
euporie/core/convert/formats/png.py,sha256=
|
58
|
+
euporie/core/convert/formats/png.py,sha256=xMivH9NOHjWQVqfO7H1Ed7f99UoKvNW8B2WPDvoP044,4852
|
58
59
|
euporie/core/convert/formats/rich.py,sha256=Zz9GFy0x19lmm4ESuKufrloUp46l-RAGL3Ou1_JuFmM,891
|
59
|
-
euporie/core/convert/formats/sixel.py,sha256=
|
60
|
+
euporie/core/convert/formats/sixel.py,sha256=Gq3FJMiG6knx3ouZaML4PeZGtFe7KQxZbwsWsdS6cr0,2374
|
61
|
+
euporie/core/convert/formats/svg.py,sha256=USlUCnO9Krk3eO4t5gwNj3uVqmAdK2vfcUTD5W8N0uY,763
|
60
62
|
euporie/core/ft/__init__.py,sha256=Ib-pswos3RiOM2Vn8GCZ4rwuoTNPeBJ0jhgRpwu7BKE,55
|
61
|
-
euporie/core/ft/ansi.py,sha256=
|
62
|
-
euporie/core/ft/html.py,sha256=
|
63
|
+
euporie/core/ft/ansi.py,sha256=ICUBohoOVtbkf96T3EsFcHf-oSsWMxD7uyRoEFnhS1I,5796
|
64
|
+
euporie/core/ft/html.py,sha256=vjWCI18N6QTJpiuZi4dA4YYdwuVRs33u0loDXMQ1KE0,179105
|
63
65
|
euporie/core/ft/table.py,sha256=L6rtT1XHArydL7gYX1m98MPoKCDYk8L7jibKRiayaGc,53325
|
64
66
|
euporie/core/ft/utils.py,sha256=PPV8iOrK68TbE75wu2eztLnN6WHUCLAmmU3CIi7aEEE,27219
|
65
67
|
euporie/core/key_binding/__init__.py,sha256=zFKrJrZARNht6Tl4TT5Fw3fk-IrD8SBYk5mBJ5K_F1A,47
|
66
|
-
euporie/core/key_binding/key_processor.py,sha256=
|
68
|
+
euporie/core/key_binding/key_processor.py,sha256=NDCzCYh2DszilELl6giGoxAlnWy40wAUOUiQqBL5GXU,4329
|
67
69
|
euporie/core/key_binding/micro_state.py,sha256=PrVAJoaXqc52TIh8H1ItkCFb2AwGmvWDmzzCFzbdoW8,1275
|
68
70
|
euporie/core/key_binding/registry.py,sha256=UBT_dPpndgzgrKoI7AdbL4PmZUGvZ4hBC7YGkGNTIXA,1348
|
69
71
|
euporie/core/key_binding/utils.py,sha256=UZ0ymB4vLPFaxbx9jhqR_cKaSt08efrlvFtb1KZixcU,2407
|
70
72
|
euporie/core/key_binding/vi_state.py,sha256=Xnl4DYIqSoPkfDma_hZXOsl77C_UMT0z_qTdapbl_mw,701
|
71
|
-
euporie/core/key_binding/bindings/__init__.py,sha256=
|
72
|
-
euporie/core/key_binding/bindings/basic.py,sha256=
|
73
|
+
euporie/core/key_binding/bindings/__init__.py,sha256=vzrTyqaHWRxLDdiLStPQ-AprURIie76-i3cibELIDsA,274
|
74
|
+
euporie/core/key_binding/bindings/basic.py,sha256=rbZafsto8RYGjHNaBll2iox2B3EF6yGuaQaxCsjSQRU,1649
|
73
75
|
euporie/core/key_binding/bindings/completion.py,sha256=npf61P0NvmrYMG8qT-1AYDReLcoMHsgdG5gzBloSTWk,2081
|
74
|
-
euporie/core/key_binding/bindings/micro.py,sha256=
|
75
|
-
euporie/core/key_binding/bindings/mouse.py,sha256=
|
76
|
+
euporie/core/key_binding/bindings/micro.py,sha256=OkTrwynhT__bu5h8MD9xqPuQaFlL7PTUs3kchZ1Kds4,27845
|
77
|
+
euporie/core/key_binding/bindings/mouse.py,sha256=xbsBFSF2zLtK-f_Aj2NQ5kFaWaR1fimvs7dXhBpiFFM,6545
|
78
|
+
euporie/core/key_binding/bindings/page_navigation.py,sha256=FWIv4iqWUCMjFHLu-I5Z08NIULXuTIjrn9fC25XImYg,4142
|
79
|
+
euporie/core/layout/__init__.py,sha256=T5iGOnMGfNwVffJlfFMwGTFBLV7RkOuKw5gVp6cl4wA,59
|
80
|
+
euporie/core/layout/containers.py,sha256=y6m5P-4_Ng49CCJuR5ghtumf7VwE7dOqeNEgEPDAPZ4,38831
|
81
|
+
euporie/core/layout/decor.py,sha256=gquvaVCz_rgqyQ4ao0DColsJYRwJkmGf0tsOmcfhAV4,14102
|
82
|
+
euporie/core/layout/print.py,sha256=1Kq68Hx6EbWV0FE5eK9ZL_tiSQ-RysthJjvX82vQTDk,4644
|
83
|
+
euporie/core/layout/screen.py,sha256=0xP9ZErMcw51nPgBbrm-DSQqFq5WNvsh9fw1amz2Z28,2224
|
84
|
+
euporie/core/layout/scroll.py,sha256=Mj815FMxtWrfsr4udA58e5SpWvqsTV-6Eho_jCrYkzs,45618
|
76
85
|
euporie/core/tabs/__init__.py,sha256=Grm9EO1gnBO1o-k6Nqnlzo8XLIgFZSXNAdz49Vvh4zY,55
|
77
|
-
euporie/core/tabs/base.py,sha256=
|
86
|
+
euporie/core/tabs/base.py,sha256=DmFX8p4pdAJdGbRa_FMa7O6ZS88Rk2iNBD8X1G3SfCg,13888
|
78
87
|
euporie/core/tabs/notebook.py,sha256=EXXLVAnJ5ICEWrY9a997iOFuPy10UDAxQcmRFsRaJX4,16035
|
79
88
|
euporie/core/widgets/__init__.py,sha256=ektso_Ea1-pZB04alUujQsa2r-kv8xAF0SmQOv_bvHQ,52
|
80
|
-
euporie/core/widgets/cell.py,sha256=
|
81
|
-
euporie/core/widgets/cell_outputs.py,sha256=
|
82
|
-
euporie/core/widgets/decor.py,sha256=
|
83
|
-
euporie/core/widgets/dialog.py,sha256=
|
84
|
-
euporie/core/widgets/display.py,sha256=
|
85
|
-
euporie/core/widgets/file_browser.py,sha256=
|
89
|
+
euporie/core/widgets/cell.py,sha256=mvdl4OkaTlQU-eVOmrnDRqw6q3MeJGOePwIH2mv5VPA,30239
|
90
|
+
euporie/core/widgets/cell_outputs.py,sha256=YT3WXvJnzkMpxwdURZFWtut0GOJbPhEgUGaEyMXR67c,17094
|
91
|
+
euporie/core/widgets/decor.py,sha256=GPZG7-h3MKynQIXJ_YoR6tPpYxtmrXi0uoyVCovSjBQ,8770
|
92
|
+
euporie/core/widgets/dialog.py,sha256=QrYUvj0Fi9gkfN31jXegKynD-9eqWl7wOvkBmKiykk8,32674
|
93
|
+
euporie/core/widgets/display.py,sha256=1-K2gWjXEW-UpIGR_Uei_3ha0arETM981NEC8puxDqk,20932
|
94
|
+
euporie/core/widgets/file_browser.py,sha256=ezyzQRva5491mQ38vqpiWZECb2ZZs_lfvXrtnp0iqTo,20731
|
86
95
|
euporie/core/widgets/formatted_text_area.py,sha256=KdAhBcEIn2E11hWQxW6y998uHHuw_dj0TrZcBH5ytvQ,4045
|
87
|
-
euporie/core/widgets/forms.py,sha256=
|
88
|
-
euporie/core/widgets/
|
89
|
-
euporie/core/widgets/
|
90
|
-
euporie/core/widgets/
|
91
|
-
euporie/core/widgets/
|
92
|
-
euporie/core/widgets/
|
93
|
-
euporie/core/widgets/pager.py,sha256=95zEd7f_h_VWMHGexWIbt9tt_Kp4BkxaBSD1VT5CBfg,6231
|
94
|
-
euporie/core/widgets/palette.py,sha256=K7_2alBUQRCk_aZbsxSy7_u0lphE89ur-696gX3O_KU,10814
|
96
|
+
euporie/core/widgets/forms.py,sha256=1K7NzR0zCi3wEBOE1XzzZoYxFf_Ez23ydv17YfYAKoc,83295
|
97
|
+
euporie/core/widgets/inputs.py,sha256=WFF19wUhwMMMu4SZKRwG68jZttTTAM0n1wOfmIhlUwI,16783
|
98
|
+
euporie/core/widgets/layout.py,sha256=E23fIHbYpGjheCXK9WvOcZl4GqJlWZBCluQpoR6uhXY,23481
|
99
|
+
euporie/core/widgets/menu.py,sha256=1lvs--RFMe5k0mrpvjBZPwWSFLfBOieswU8o4EKSEdI,30645
|
100
|
+
euporie/core/widgets/pager.py,sha256=lUNVz2263_p0mqNDsRTBwG36UGrZVoPKD3ZuZfZ9dGI,6273
|
101
|
+
euporie/core/widgets/palette.py,sha256=lttmqYaKBzBgjQomutqRNJd6N9CK_PFqdRykHEXvZqU,10855
|
95
102
|
euporie/core/widgets/search_bar.py,sha256=MmtSQ4FClM7fbRuS595OO6C1hTvX6_fDZJ7tTblXHkI,8235
|
96
|
-
euporie/core/widgets/status_bar.py,sha256=
|
97
|
-
euporie/core/widgets/tree.py,sha256=
|
103
|
+
euporie/core/widgets/status_bar.py,sha256=LiX9Szh0M_XMPapP-XZmGfWGT3-VuQkioE87lHPqd0U,5638
|
104
|
+
euporie/core/widgets/tree.py,sha256=BG7QRsI2GzSJPReNQu9zWFjO0iy8TeJwrmCmP5dc2ek,3760
|
98
105
|
euporie/data/desktop/euporie-console.desktop,sha256=DI08G0Dl2s5asM6afWUfkKvO5YmcBm-pWQZzUHiNnqc,153
|
99
106
|
euporie/data/desktop/euporie-notebook.desktop,sha256=RtpJzvizTDuOp0BLa2bLgVHx11LG6L7PL-oF-wHTsgU,155
|
100
107
|
euporie/hub/__init__.py,sha256=NcrOlSFgI4y5gEbD4lFY-Ryd1K79EeMoeAp41A6tDT0,44
|
@@ -103,7 +110,7 @@ euporie/hub/app.py,sha256=Q7lXpIQYruySgyk862hQdt2DUBK4aJhCEQp_JrkKK0A,6072
|
|
103
110
|
euporie/hub/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
104
111
|
euporie/notebook/__init__.py,sha256=rOE71d95pym_ILYVg07NO9oDYbSB0AskxbC8cr4htiU,44
|
105
112
|
euporie/notebook/__main__.py,sha256=m2EnzIDLO4dHlDt41JNKpUvAUSw6wD-X0V3YhymXqxc,289
|
106
|
-
euporie/notebook/app.py,sha256=
|
113
|
+
euporie/notebook/app.py,sha256=HOu0wriziOchUN3mb_JJKPBuKTT3NprRSVXJ1-D7NYA,20886
|
107
114
|
euporie/notebook/current.py,sha256=rQ_R9B0b8JmWILxEyGzGfuVY2iVkHTghq4qRiC-MYSU,387
|
108
115
|
euporie/notebook/enums.py,sha256=g7quMch8KAlaaYJS0UppWqx6tx-ZFt7HxFcmEfam5OM,221
|
109
116
|
euporie/notebook/filters.py,sha256=c2PncF-n4dE67cFmVmhsMhFVWCfxePAaCW6mb6zm0Yo,1502
|
@@ -113,21 +120,21 @@ euporie/notebook/tabs/display.py,sha256=I8Y9m6LLhV9Wc0JbfoLaY0kMjK98HHkKB8WQtEQi
|
|
113
120
|
euporie/notebook/tabs/edit.py,sha256=mtDv5olF7VCk5k0pC9a_JhUYvCFrpogDHRYzMarzHv0,5714
|
114
121
|
euporie/notebook/tabs/json.py,sha256=_cbOBq02V8CkHM99rqok6YG_lVm36B64pNi8hqeGaOU,2183
|
115
122
|
euporie/notebook/tabs/log.py,sha256=VJQRC_4SB4aZ4tVELm6ldkFCON_A_rqxBfi-sZzGBOw,3550
|
116
|
-
euporie/notebook/tabs/notebook.py,sha256=
|
123
|
+
euporie/notebook/tabs/notebook.py,sha256=NMy0yh8n8-0s20PbzNJWe6_3FKPb0PmXHsghKcVlTZg,43004
|
117
124
|
euporie/notebook/widgets/__init__.py,sha256=74tOl0bYuWkaKT-4pgD5zmdiIkoFYx8uGj4SxcLHLtQ,48
|
118
|
-
euporie/notebook/widgets/side_bar.py,sha256=
|
125
|
+
euporie/notebook/widgets/side_bar.py,sha256=EDFAulshV7YqA50w84RRl88UI60AehIXYYA2exlFh0M,7243
|
119
126
|
euporie/preview/__init__.py,sha256=B6RsBuuT0JJk1v6U5n95VuFXcOeFLq6UGgt4w-n_nEI,51
|
120
127
|
euporie/preview/__main__.py,sha256=m2EnzIDLO4dHlDt41JNKpUvAUSw6wD-X0V3YhymXqxc,289
|
121
128
|
euporie/preview/app.py,sha256=4ivLH_CptFxLTQqOYCiaTW9cmxl5cITS8dfxICx_mzo,8820
|
122
129
|
euporie/preview/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
123
130
|
euporie/preview/tabs/__init__.py,sha256=rY6DfQ-8qRo_AiICCD-zTyhJBnuMjawWDd8tRxR6q58,43
|
124
|
-
euporie/preview/tabs/notebook.py,sha256=
|
125
|
-
euporie/web/tabs/web.py,sha256=
|
126
|
-
euporie/web/widgets/webview.py,sha256=
|
127
|
-
euporie-2.
|
128
|
-
euporie-2.
|
129
|
-
euporie-2.
|
130
|
-
euporie-2.
|
131
|
-
euporie-2.
|
132
|
-
euporie-2.
|
133
|
-
euporie-2.
|
131
|
+
euporie/preview/tabs/notebook.py,sha256=K8GGW8eEKfyrcSIHuSVMc4ULYYxbO4flUdTTCe5wM54,7657
|
132
|
+
euporie/web/tabs/web.py,sha256=IojCG_FszzxaSpyR4FI_LNd5O_i5KURjAbxQQRCmuE0,5232
|
133
|
+
euporie/web/widgets/webview.py,sha256=fanFNDWh8F3471xdq_z6MXV8Z4vwerTvxil1TBp0j8w,20775
|
134
|
+
euporie-2.7.0.data/data/share/applications/euporie-console.desktop,sha256=DI08G0Dl2s5asM6afWUfkKvO5YmcBm-pWQZzUHiNnqc,153
|
135
|
+
euporie-2.7.0.data/data/share/applications/euporie-notebook.desktop,sha256=RtpJzvizTDuOp0BLa2bLgVHx11LG6L7PL-oF-wHTsgU,155
|
136
|
+
euporie-2.7.0.dist-info/METADATA,sha256=cEMC5t-w3JUTJE0wztTR16r4SsmyXHtdgqX0r10nrgw,6583
|
137
|
+
euporie-2.7.0.dist-info/WHEEL,sha256=mRYSEL3Ih6g5a_CVMIcwiF__0Ae4_gLYh01YFNwiq1k,87
|
138
|
+
euporie-2.7.0.dist-info/entry_points.txt,sha256=te9-neHvUA69MWeDL5VS_XREej4pIE61bYjPSea67sE,697
|
139
|
+
euporie-2.7.0.dist-info/licenses/LICENSE,sha256=rI0bfSsCfCVw6d8vk7WokRxd3t8yx5xV4fC5fwaMgCg,1079
|
140
|
+
euporie-2.7.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|