euporie 2.8.12__py3-none-any.whl → 2.8.14__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.
@@ -3,6 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  import logging
6
+ import weakref
6
7
  from abc import ABCMeta, abstractmethod
7
8
  from functools import cache
8
9
  from pathlib import PurePath
@@ -23,10 +24,13 @@ from euporie.core.widgets.tree import JsonView
23
24
 
24
25
  if TYPE_CHECKING:
25
26
  from typing import Any, Protocol, TypeVar
27
+ from weakref import ReferenceType
26
28
 
27
29
  from prompt_toolkit.layout.containers import AnyContainer
28
30
 
31
+ from euporie.core.config import Setting
29
32
  from euporie.core.tabs.kernel import KernelTab
33
+ from euporie.core.widgets.display import DisplayWindow
30
34
 
31
35
  KTParent = TypeVar("KTParent", bound=KernelTab)
32
36
 
@@ -64,10 +68,15 @@ class CellOutputElement(metaclass=ABCMeta):
64
68
 
65
69
  """
66
70
 
71
+ @property
72
+ def width(self) -> int | None:
73
+ """Return the current width of the output's content."""
74
+ return None
75
+
67
76
  def scroll_left(self) -> None:
68
77
  """Scroll the output left."""
69
78
 
70
- def scroll_right(self) -> None:
79
+ def scroll_right(self, max: int | None = None) -> None:
71
80
  """Scroll the output right."""
72
81
 
73
82
  @abstractmethod
@@ -147,6 +156,18 @@ class CellOutputDataElement(CellOutputElement):
147
156
  # Ensure container gets invalidated if `wrap_cell_output` changes
148
157
  self.container.control.invalidate_events.append(config.events.wrap_cell_outputs)
149
158
 
159
+ # Reset scroll position on `wrap_cell_outputs` config change
160
+ def _unregister(win: ReferenceType[DisplayWindow]) -> None:
161
+ config.events.wrap_cell_outputs -= _reset_scroll
162
+
163
+ weak_win = weakref.ref(self.container.window, _unregister)
164
+
165
+ def _reset_scroll(caller: Setting | None = None) -> None:
166
+ if (win := weak_win()) is not None:
167
+ win.reset()
168
+
169
+ config.events.wrap_cell_outputs += _reset_scroll
170
+
150
171
  @property
151
172
  def data(self) -> Any:
152
173
  """Return the control's display data."""
@@ -165,13 +186,18 @@ class CellOutputDataElement(CellOutputElement):
165
186
  )
166
187
  self.container.datum = self._datum
167
188
 
189
+ @property
190
+ def width(self) -> int:
191
+ """Return the current width of the output's content."""
192
+ return self.container.window.content.max_line_width
193
+
168
194
  def scroll_left(self) -> None:
169
195
  """Scroll the output left."""
170
196
  self.container.window._scroll_left()
171
197
 
172
- def scroll_right(self) -> None:
198
+ def scroll_right(self, max: int | None = None) -> None:
173
199
  """Scroll the output right."""
174
- self.container.window._scroll_right()
200
+ self.container.window._scroll_right(max)
175
201
 
176
202
  def __pt_container__(self) -> AnyContainer:
177
203
  """Return the display container."""
@@ -403,9 +429,9 @@ class CellOutput:
403
429
  """Scroll the currently visible output left."""
404
430
  self.element.scroll_left()
405
431
 
406
- def scroll_right(self) -> None:
432
+ def scroll_right(self, max: int | None = None) -> None:
407
433
  """Scroll the currently visible output right."""
408
- self.element.scroll_right()
434
+ self.element.scroll_right(max)
409
435
 
410
436
 
411
437
  class CellOutputArea:
@@ -499,8 +525,12 @@ class CellOutputArea:
499
525
 
500
526
  def scroll_right(self) -> None:
501
527
  """Scroll the outputs right."""
528
+ max_width = (
529
+ max(cell_output.element.width or 0 for cell_output in self.rendered_outputs)
530
+ or None
531
+ )
502
532
  for cell_output in self.rendered_outputs:
503
- cell_output.scroll_right()
533
+ cell_output.scroll_right(max_width)
504
534
 
505
535
  def __pt_container__(self) -> AnyContainer:
506
536
  """Return the cell output area container (an :class:`HSplit`)."""
@@ -511,15 +541,16 @@ class CellOutputArea:
511
541
  from prompt_toolkit.formatted_text.utils import to_plain_text
512
542
 
513
543
  outputs = []
544
+ app = get_app()
545
+ config = app.config
514
546
  for cell_output in self.rendered_outputs:
515
547
  if isinstance(cell_output.element, CellOutputDataElement):
516
- config = get_app().config
517
548
  control = cell_output.element.container.control
518
549
  for line in control.get_lines(
519
550
  control.datum,
520
551
  width=88,
521
552
  height=None,
522
- fg=(cp := get_app().color_palette).fg.base_hex,
553
+ fg=(cp := app.color_palette).fg.base_hex,
523
554
  bg=cp.bg.base_hex,
524
555
  wrap_lines=config.wrap_cell_outputs,
525
556
  ):
@@ -55,8 +55,6 @@ class DisplayControl(UIControl):
55
55
  A control which displays rendered HTML content.
56
56
  """
57
57
 
58
- _window: Window
59
-
60
58
  def __init__(
61
59
  self,
62
60
  datum: Datum,
@@ -156,6 +154,8 @@ class DisplayControl(UIControl):
156
154
  fg=fg,
157
155
  bg=bg,
158
156
  extend=not self.dont_extend_width(),
157
+ # Use as extra cache key to force re-rendering when wrap_lines changes
158
+ wrap_lines=wrap_lines,
159
159
  )
160
160
  if width and height:
161
161
  key = Datum.add_size(datum, Size(height, width))
@@ -174,6 +174,13 @@ class DisplayControl(UIControl):
174
174
  lines.extend([[]] * max(0, height - len(lines)))
175
175
  return lines
176
176
 
177
+ @property
178
+ def max_line_width(self) -> int:
179
+ """Return the current maximum line width."""
180
+ return self._max_line_width_cache[
181
+ self.datum, self.width, self.height, self.wrap_lines()
182
+ ]
183
+
177
184
  def get_max_line_width(
178
185
  self,
179
186
  datum: Datum,
@@ -428,12 +435,12 @@ class DisplayWindow(Window):
428
435
 
429
436
  return NotImplemented
430
437
 
431
- def _scroll_right(self) -> NotImplementedOrNone:
438
+ def _scroll_right(self, max: int | None = None) -> NotImplementedOrNone:
432
439
  """Scroll window right."""
433
440
  info = self.render_info
434
441
  if info is None:
435
442
  return NotImplemented
436
- content_width = self.content.content_width
443
+ content_width = max or self.content.content_width
437
444
  if self.horizontal_scroll < content_width - info.window_width:
438
445
  if info.cursor_position.y <= info.configured_scroll_offsets.right:
439
446
  self.content.move_cursor_right()
@@ -734,11 +734,11 @@ class MenuBar:
734
734
  # Show the right edge
735
735
  yield (f"{style} class:menu,border", grid.MID_RIGHT)
736
736
 
737
- for i, item in enumerate(menu.children):
738
- if not item.hidden():
739
- result.extend(one_item(i, item))
740
- if i < len(menu.children) - 1:
741
- result.append(("", "\n"))
737
+ visible_children = [x for x in menu.children if not x.hidden()]
738
+ for i, item in enumerate(visible_children):
739
+ result.extend(one_item(i, item))
740
+ if i < len(visible_children) - 1:
741
+ result.append(("", "\n"))
742
742
 
743
743
  return result
744
744
 
euporie/hub/app.py CHANGED
@@ -78,12 +78,10 @@ class HubApp(ConfigurableApp):
78
78
  name = "hub"
79
79
  _config_defaults: ClassVar[dict[str, Any]] = {
80
80
  "log_level_stdout": "info",
81
- "log_config": """
82
- {
83
- "handlers": { "stdout": {"share_stream": false} },
84
- "loggers": { "asyncssh": { "handlers":["stdout"], "level": "DEBUG" } }
85
- }
86
- """,
81
+ "log_config": {
82
+ "handlers": {"stdout": {"share_stream": False}},
83
+ "loggers": {"asyncssh": {"handlers": ["stdout"], "level": "DEBUG"}},
84
+ },
87
85
  }
88
86
 
89
87
  @classmethod
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: euporie
3
- Version: 2.8.12
3
+ Version: 2.8.14
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
@@ -6,11 +6,11 @@ euporie/console/app.py,sha256=nUmsoIQZMnQ0e506irqzvPOd31x_xUXn2w3kT1e2f9w,5736
6
6
  euporie/console/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  euporie/console/tabs/__init__.py,sha256=Grm9EO1gnBO1o-k6Nqnlzo8XLIgFZSXNAdz49Vvh4zY,55
8
8
  euporie/console/tabs/console.py,sha256=qp0uNQTRDu5qDoXGQ4LpKm6OhVjAvskzXMyctL-Trnw,31908
9
- euporie/core/__init__.py,sha256=5NaAPxLBjZEhz8iKnaFL4WDyp7Tsd6sj7jA0kPROKuU,314
9
+ euporie/core/__init__.py,sha256=5pwKU0Ka6g5W80ayzQIONGPsW5mg3lH1d1_aKfq8j5g,314
10
10
  euporie/core/__main__.py,sha256=QkRamWXgrPiRj7h4sYNhHNpVOUJuEpRuvZE-YLK1dUU,1255
11
11
  euporie/core/_settings.py,sha256=JspB4eMUXry4r5g4Wzn4aV0FmzSVmWf1G96Jcr5bcDE,2937
12
12
  euporie/core/border.py,sha256=HktTPL-sKxaiM8_DPdaetFI5fOvEBVJrw3tmgsKT2jY,48835
13
- euporie/core/clipboard.py,sha256=A2LdeyWKWuG0rPy6QoefmBbRtOtpzz_R6FLwBfU5Dr4,2060
13
+ euporie/core/clipboard.py,sha256=RT6rbi_9aGYAV9HZntOLPAWmut5vCZItAMSjqknpSG0,2534
14
14
  euporie/core/commands.py,sha256=aBBCSBm7AJRCoiOZzbIOucExqm5nYf--SrbiysBRkFc,9035
15
15
  euporie/core/completion.py,sha256=F_MQ9XyZdzVwipW7O8w2XOR-puYvTVcALC2XWmEhpYc,5752
16
16
  euporie/core/config.py,sha256=wgjeCSgLIkRo1PXt6z41z1agkToSnMR6wfSmbF6LCT8,25198
@@ -56,35 +56,35 @@ euporie/core/comm/base.py,sha256=-zXNOXimuD7Aeo2scADnvSimZa6pF8obT51vluBz2co,412
56
56
  euporie/core/comm/ipywidgets.py,sha256=Qw1LI_Er8l9leZJMsohtQBJD_K4b0KPordynXhrknFk,53013
57
57
  euporie/core/comm/registry.py,sha256=x9AhhTi4Ohxq6fdPXU9GJgH58CleYsEy-xw084TcIx0,1384
58
58
  euporie/core/convert/__init__.py,sha256=dZKZVTyYAuIKtjTbtcqvko-I89LYwr4fDbYj1J9PyEc,64
59
- euporie/core/convert/datum.py,sha256=m3zFbwplo6KiE6-I7ezTG8XFJP1bZs7rW__Dam0tNjM,15918
59
+ euporie/core/convert/datum.py,sha256=L65XBOzvWcPicviJDZmaPrN1am3TRtCoLoXKWkXYMHk,16262
60
60
  euporie/core/convert/mime.py,sha256=uQwXw2hUsfS_dMeR4Ci6Zv4fORIBnEa9rdRa-nVT-Ls,3142
61
61
  euporie/core/convert/registry.py,sha256=pDnUzXp08t-XN3lXxBimMuRSNFwskAOLeeU0OHMMN30,2904
62
62
  euporie/core/convert/utils.py,sha256=aNqorWKz_yHItJZjTXcwCJ_CANuKhv2IQPq3w2o9Iqs,3449
63
63
  euporie/core/convert/formats/__init__.py,sha256=FfUR-GAaH750KEeDF0jmtwwvrWZth0Gr-Mw9qOy5264,486
64
- euporie/core/convert/formats/ansi.py,sha256=66jcfOOiWE3uBf154eiGmwGlKbQ3GCATOcDthj1kaeY,14011
65
- euporie/core/convert/formats/base64.py,sha256=8tP29nX_patgOG9lYr-HIn0I_6VyV_SyfDi-ZZBTp6Q,878
66
- euporie/core/convert/formats/common.py,sha256=TgNL0049rzsnrznoJn5Ij95XbQO-pifU_pk2nsysX-w,4645
67
- euporie/core/convert/formats/ft.py,sha256=6RKWq0y3kbJ96kbMjfazGeBg3uha8CWoseRPa4WLWHE,2810
68
- euporie/core/convert/formats/html.py,sha256=JdjMEXVGbKLz2db86b83hfeQxS3mzKmWdzEOv0jQJNQ,2470
64
+ euporie/core/convert/formats/ansi.py,sha256=ZwJePbKfBNG2712_JgjRQEPGYLYuzPiTtXVFwbzMDHQ,13965
65
+ euporie/core/convert/formats/base64.py,sha256=QZ_rMBKc5Lrc0zTh-MPLw_jN4Z_wDtejCVLx1dYebTA,900
66
+ euporie/core/convert/formats/common.py,sha256=g4uizutWZalvMNJtD8w7DSOm3r4RW-0tMzL8KEOyb7s,4621
67
+ euporie/core/convert/formats/ft.py,sha256=fIrTkJYwCzL8zS3iKMjwZZEzyCsgOUiNaTS016iDv3I,2888
68
+ euporie/core/convert/formats/html.py,sha256=9W1gTkHZMnwSE72RTHKf6MiztHbegyKXNCeeAWVJ-90,2340
69
69
  euporie/core/convert/formats/jpeg.py,sha256=c38IZEd6HVAmKBXnDE0qmqwfWtjcwVL5ugXffV0wCpA,287
70
- euporie/core/convert/formats/markdown.py,sha256=vKTyS-HGz_smvvNxo0cJoRNgBjbRWU2Bf1sM1_bwWAM,2377
70
+ euporie/core/convert/formats/markdown.py,sha256=VTIqFFP8T42vB7BGD7Uy1oQX1fR7siMbmd-OHgJe69U,2393
71
71
  euporie/core/convert/formats/pdf.py,sha256=6d8e5tjV1j6QXMr7KBNmQ2hQzVY9Il19xg4a8E_0I0I,283
72
- euporie/core/convert/formats/pil.py,sha256=wMT7Qqe6KH1kZfr1Hg8OyIZg02lMMwowtFB1XeXLiy4,2494
73
- euporie/core/convert/formats/png.py,sha256=7lLP0v58m7Z0BPc_xxlXPmEvaVpmFp36k3aUfTNWn9E,4973
74
- euporie/core/convert/formats/rich.py,sha256=lh12hxMWvWMJ2Y3cMZBKcX8UQ4huWRWyi0H7LgpNqZE,939
75
- euporie/core/convert/formats/sixel.py,sha256=DV9ifN09XgRFvacc3D6UOdOhSMIT3sjp9SgzJTfYeJI,2493
76
- euporie/core/convert/formats/svg.py,sha256=SY-rioXSm5lK6LLp3mu3YeFYTFOJ-jCvEwH-wusfU1s,805
72
+ euporie/core/convert/formats/pil.py,sha256=vB-Z7TYkW1Onfk6MYm5PXQ4kSPRL-hBE8Cckuyy1k9M,2516
73
+ euporie/core/convert/formats/png.py,sha256=VorJeFikAsxuAm8DDALoDOvNYr4C94ryq8lXSrcNxW0,4977
74
+ euporie/core/convert/formats/rich.py,sha256=gvRJEzdZOs1HBC6S_aucOpwGrNUN4mYsZkojh-6UJn8,961
75
+ euporie/core/convert/formats/sixel.py,sha256=8e5jKspmaO1pHjlL2vweWowultYAg2nlp7du9bRMkeQ,2475
76
+ euporie/core/convert/formats/svg.py,sha256=qdROd6IRDMNlRZx8fYRbQjqzpCozkNXExnFBl6Vy-Tc,827
77
77
  euporie/core/ft/__init__.py,sha256=Ib-pswos3RiOM2Vn8GCZ4rwuoTNPeBJ0jhgRpwu7BKE,55
78
78
  euporie/core/ft/ansi.py,sha256=JhmxJYtNczJa315yhHOhpM5ohZ3kROhH7sz18WiZ3a4,6197
79
- euporie/core/ft/html.py,sha256=akjouBd6LP6Yejl7uY7AhFkTiasZce90HOI1kR91zww,179494
80
- euporie/core/ft/table.py,sha256=VfKGsWPnHaqH_fBlNgBAr2ku3WcqiRjeMENR98yu9OA,53314
79
+ euporie/core/ft/html.py,sha256=-4U2D2FhFp4VOvj5hptqQkeZo_NrzeNysiPGGlc7q4c,182791
80
+ euporie/core/ft/table.py,sha256=MC6TLc0GfRviB3xeuouZRIyq2DNxxWFFGolDf-5Tk2E,53328
81
81
  euporie/core/ft/utils.py,sha256=qcArKRg4XeQIHtxxypU5g21PQ-IlPYrjYvGY53WcvLU,27870
82
82
  euporie/core/kernel/__init__.py,sha256=OzDNoLffqunS-mZb23U0a2_tOx-E0QtmT25rVLj76bU,1540
83
83
  euporie/core/kernel/_settings.py,sha256=h2ESe2FnHG4tu3ECz7jIIOjrpCLFrRZL3jHBpWRKeIU,828
84
84
  euporie/core/kernel/base.py,sha256=nAgUVwMb0IIfgfjv13L7kov7PXSzBo3MfMf12ipoOGs,17937
85
85
  euporie/core/kernel/jupyter.py,sha256=R2H3eTYLQwLSc9pRadyETNFHrIqY1b9I6uxqAdQHXS8,36206
86
86
  euporie/core/kernel/jupyter_manager.py,sha256=tvft5LGjXYXPJBO3tNOKvyicnz-FwS1wbUQ2Q6OtEwY,4031
87
- euporie/core/kernel/local.py,sha256=M3ODqCPbGq2r2l7DATF95DPbnzt6Smta_XxkWpiVs-M,25580
87
+ euporie/core/kernel/local.py,sha256=TeT0vRYWEY1lWHE6-CACgJ5zyGUbeCFdEaB2c644NbY,25603
88
88
  euporie/core/key_binding/__init__.py,sha256=zFKrJrZARNht6Tl4TT5Fw3fk-IrD8SBYk5mBJ5K_F1A,47
89
89
  euporie/core/key_binding/key_processor.py,sha256=sGEOH3cd0yJO-81dWROzzDYjxEA5gxo1rpNbuphvv9I,5756
90
90
  euporie/core/key_binding/micro_state.py,sha256=h_CBBiIUa4mHf70ZZDNbXreC0p0H3boNVzHnHVuIAp8,1276
@@ -117,17 +117,17 @@ euporie/core/tabs/notebook.py,sha256=rZa2LRaCCEl3kb4hniQEQtly_uCBBF92dYFYcv8ID2g
117
117
  euporie/core/widgets/__init__.py,sha256=ektso_Ea1-pZB04alUujQsa2r-kv8xAF0SmQOv_bvHQ,52
118
118
  euporie/core/widgets/_settings.py,sha256=6U6tgw8YajrvP5MbdBwvaYHNXjyRsP6ewBkSmqiVAhI,5456
119
119
  euporie/core/widgets/cell.py,sha256=PqY6FBTwPFF0mfHTJtBae_8ZQkBcBkf1RQReYARkOzQ,33783
120
- euporie/core/widgets/cell_outputs.py,sha256=tIDBIWPnwavGlKDykDr_mOfbOgkpD94N_wV3RHVXGAA,17257
120
+ euporie/core/widgets/cell_outputs.py,sha256=vtVeydsO-ugrU2l59Tf9tE4UXokxEWyk9Z9aX0lXaaY,18414
121
121
  euporie/core/widgets/decor.py,sha256=_K3bSNpvAFdn5ZZyNFVjZPv6QV4fNIlNMdRpYjc4MU0,7895
122
122
  euporie/core/widgets/dialog.py,sha256=2yvNzDqDjsOBWVfeSgR4Lv1LC73tQIeI_qz2YIx7H1k,32987
123
- euporie/core/widgets/display.py,sha256=ddpPcFJGx9cRpn5kLAaMI6bxKPygFmDN3VcgcvObFVY,21557
123
+ euporie/core/widgets/display.py,sha256=L2AnzIa5BmJ7KH3WLr753vj2eHmZ12l2xMHThhQCqUs,21910
124
124
  euporie/core/widgets/file_browser.py,sha256=jj8l5cpX7S6d1HlYXUg3TXdsvmhFneIOiotKpwCVgoQ,20050
125
125
  euporie/core/widgets/formatted_text_area.py,sha256=J7P_TNXPZKZkiBdjAVkPvkfRY1veXe4tzXU241k4b-Q,4037
126
126
  euporie/core/widgets/forms.py,sha256=G_omvjVhbWjY0HYb8s7gs9MqPyABBwAJElyCACsHv_0,85850
127
127
  euporie/core/widgets/inputs.py,sha256=fVg4sEDCJKvVf-fPXMBhVmKjs1eoRLqlUSWKKxT9e_0,20469
128
128
  euporie/core/widgets/layout.py,sha256=jPChBUf8FEbj_c6RwBooaATFnecm_MrSTpJFkPxOFFQ,30521
129
129
  euporie/core/widgets/logo.py,sha256=VU9hSVAiguS5lI0EccQoPm8roAuQNgvFUO5IREvXWFo,1487
130
- euporie/core/widgets/menu.py,sha256=1vb7ORM3Avhx2k1D_QpSb4VtwjhBrmDQl1ZEJL3ub2s,34890
130
+ euporie/core/widgets/menu.py,sha256=eiawv3pfxyNRbwpEUrWQhQ4kPasQvAqABXJghx5n-mo,34922
131
131
  euporie/core/widgets/pager.py,sha256=nbFVF20kE_P2GoDHzAp_sqfiBe1mvuCvVUdjE-KFPzU,6413
132
132
  euporie/core/widgets/palette.py,sha256=Uv5n1Lvls7FnSZ_481L5zvkRsbSzzshhDmTy3gpNomQ,10950
133
133
  euporie/core/widgets/tree.py,sha256=ql5vbpelnCWZacUk7kqdCK1uXfzRzLl34U2_hu65rUY,4288
@@ -135,7 +135,7 @@ euporie/data/desktop/euporie-console.desktop,sha256=DI08G0Dl2s5asM6afWUfkKvO5Ymc
135
135
  euporie/data/desktop/euporie-notebook.desktop,sha256=RtpJzvizTDuOp0BLa2bLgVHx11LG6L7PL-oF-wHTsgU,155
136
136
  euporie/hub/__init__.py,sha256=NcrOlSFgI4y5gEbD4lFY-Ryd1K79EeMoeAp41A6tDT0,44
137
137
  euporie/hub/__main__.py,sha256=m2EnzIDLO4dHlDt41JNKpUvAUSw6wD-X0V3YhymXqxc,289
138
- euporie/hub/app.py,sha256=ZNV2VYtSwzy-x6oOqZc_F3rRUZCtLRIKDd9oYUkipfk,6751
138
+ euporie/hub/app.py,sha256=zpQLD92iG0taPqk1iFfMqHXjWTJy9yTmDQ2xnT0MThA,6755
139
139
  euporie/hub/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
140
140
  euporie/notebook/__init__.py,sha256=rOE71d95pym_ILYVg07NO9oDYbSB0AskxbC8cr4htiU,44
141
141
  euporie/notebook/__main__.py,sha256=m2EnzIDLO4dHlDt41JNKpUvAUSw6wD-X0V3YhymXqxc,289
@@ -170,10 +170,10 @@ euporie/web/tabs/__init__.py,sha256=0DbkceML8N_qefZFZB7CJQw_FX0gkuNdabQoEu0zV9E,
170
170
  euporie/web/tabs/web.py,sha256=CY8tfy_yrZYLWY2pEyOgJsqIHCfGIj9WVKnK6v9Jg8g,6195
171
171
  euporie/web/widgets/__init__.py,sha256=xIxCPl9KiisYgsX-V1LvDT6BETZRF3nC-ZsP8DP7nOY,46
172
172
  euporie/web/widgets/webview.py,sha256=RK_pgW3ebQjz25HGhlW4ouH2XFLJRfiUy6d_vz8o_d8,20469
173
- euporie-2.8.12.data/data/share/applications/euporie-console.desktop,sha256=DI08G0Dl2s5asM6afWUfkKvO5YmcBm-pWQZzUHiNnqc,153
174
- euporie-2.8.12.data/data/share/applications/euporie-notebook.desktop,sha256=RtpJzvizTDuOp0BLa2bLgVHx11LG6L7PL-oF-wHTsgU,155
175
- euporie-2.8.12.dist-info/METADATA,sha256=D7Ts2LATRHoIPvbjQZXBiWAnbR04pK6fIIaz7gJ6JEQ,6516
176
- euporie-2.8.12.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
177
- euporie-2.8.12.dist-info/entry_points.txt,sha256=cJPvjp7siwHeqCcCdu-Q9OCcsp4ylbLv0S4RP7g3Bf0,798
178
- euporie-2.8.12.dist-info/licenses/LICENSE,sha256=yB-auuST68VxkNPXb-E7gVdFzOJShyBnoPyyveuAiYc,1079
179
- euporie-2.8.12.dist-info/RECORD,,
173
+ euporie-2.8.14.data/data/share/applications/euporie-console.desktop,sha256=DI08G0Dl2s5asM6afWUfkKvO5YmcBm-pWQZzUHiNnqc,153
174
+ euporie-2.8.14.data/data/share/applications/euporie-notebook.desktop,sha256=RtpJzvizTDuOp0BLa2bLgVHx11LG6L7PL-oF-wHTsgU,155
175
+ euporie-2.8.14.dist-info/METADATA,sha256=KOhrSjFc8YIDqwlKj3syRiGH0jQ9u47kqMCX38aTiAQ,6516
176
+ euporie-2.8.14.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
177
+ euporie-2.8.14.dist-info/entry_points.txt,sha256=cJPvjp7siwHeqCcCdu-Q9OCcsp4ylbLv0S4RP7g3Bf0,798
178
+ euporie-2.8.14.dist-info/licenses/LICENSE,sha256=yB-auuST68VxkNPXb-E7gVdFzOJShyBnoPyyveuAiYc,1079
179
+ euporie-2.8.14.dist-info/RECORD,,