euporie 2.8.8__py3-none-any.whl → 2.8.10__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/app.py CHANGED
@@ -101,8 +101,6 @@ class ConsoleApp(BaseApp):
101
101
 
102
102
  def load_container(self) -> FloatContainer:
103
103
  """Return a container with all opened tabs."""
104
- self.tabs = [Console(self)]
105
-
106
104
  self.command_bar = CommandBar()
107
105
  self.search_bar = SearchBar()
108
106
  self.pager = Pager()
@@ -115,6 +113,8 @@ class ConsoleApp(BaseApp):
115
113
  self.dialogs["shortcuts"] = ShortcutsDialog(self)
116
114
  self.dialogs["confirm"] = ConfirmDialog(self)
117
115
 
116
+ self.tabs = [Console(self)]
117
+
118
118
  return FloatContainer(
119
119
  DisableMouseOnScroll(
120
120
  HSplit(
euporie/core/__init__.py CHANGED
@@ -1,7 +1,7 @@
1
1
  """This package defines the euporie application and its components."""
2
2
 
3
3
  __app_name__ = "euporie"
4
- __version__ = "2.8.8"
4
+ __version__ = "2.8.10"
5
5
  __logo__ = "⚈"
6
6
  __strapline__ = "Jupyter in the terminal"
7
7
  __author__ = "Josiah Outram Halstead"
euporie/core/config.py CHANGED
@@ -32,8 +32,9 @@ from euporie.core.commands import add_cmd, get_cmd
32
32
 
33
33
  if TYPE_CHECKING:
34
34
  from collections.abc import Iterable, Mapping, Sequence
35
- from typing import IO, Any, Callable, ClassVar, Optional
35
+ from typing import Any, Callable, ClassVar, Optional
36
36
 
37
+ from _typeshed import SupportsWrite
37
38
  from prompt_toolkit.filters.base import FilterOrBool
38
39
 
39
40
  from euporie.core.widgets.menu import MenuItem
@@ -58,7 +59,9 @@ class ArgumentParser(argparse.ArgumentParser):
58
59
  super().__init__(*args, **kwargs)
59
60
  self.config = config
60
61
 
61
- def _print_message(self, message: str, file: IO[str] | None = None) -> None:
62
+ def _print_message(
63
+ self, message: str, file: SupportsWrite[str] | None = None
64
+ ) -> None:
62
65
  from prompt_toolkit.formatted_text.base import FormattedText
63
66
  from prompt_toolkit.lexers.pygments import _token_cache
64
67
  from prompt_toolkit.shortcuts.utils import print_formatted_text
@@ -143,7 +143,7 @@ class Datum(Generic[T], metaclass=_MetaDatum):
143
143
  tuple[str, int | None, int | None, str | None, str | None, bool],
144
144
  asyncio.Event,
145
145
  ] = {}
146
- self._finalizer = finalize(self, self._cleanup_datum_sizes, self.hash)
146
+ self._finalizer: finalize = finalize(self, self._cleanup_datum_sizes, self.hash)
147
147
  self._finalizer.atexit = False
148
148
 
149
149
  def __repr__(self) -> str:
@@ -350,7 +350,7 @@ class Datum(Generic[T], metaclass=_MetaDatum):
350
350
  """Get the dimensions of displayable data in pixels.
351
351
 
352
352
  Foreground and background color are set at this point if they are available, as
353
- data conversion outputs are cached and re-used.
353
+ data conversion outputs are cached and reused.
354
354
 
355
355
  Returns:
356
356
  A tuple of the data's width in terminal columns and its aspect ratio, when
euporie/core/ft/utils.py CHANGED
@@ -6,7 +6,6 @@ import re
6
6
  from enum import Enum
7
7
  from typing import TYPE_CHECKING, cast
8
8
 
9
- from prompt_toolkit.formatted_text.base import OneStyleAndTextTuple, StyleAndTextTuples
10
9
  from prompt_toolkit.formatted_text.utils import (
11
10
  fragment_list_to_text,
12
11
  split_lines,
@@ -23,6 +22,11 @@ from euporie.core.data_structures import DiBool, DiInt, DiStr
23
22
  if TYPE_CHECKING:
24
23
  from collections.abc import Iterable
25
24
 
25
+ from prompt_toolkit.formatted_text.base import (
26
+ OneStyleAndTextTuple,
27
+ StyleAndTextTuples,
28
+ )
29
+
26
30
  _ZERO_WIDTH_FRAGMENTS = ("[ZeroWidthEscape]", "[ReverseOverwrite]")
27
31
 
28
32
 
@@ -800,7 +804,7 @@ def apply_reverse_overwrites(ft: StyleAndTextTuples) -> StyleAndTextTuples:
800
804
  """Pate `overwrites` over the end of `transformed_line`."""
801
805
  # Remove the ``[ReverseOverwrite]`` from the overwrite fragments
802
806
  top = cast(
803
- StyleAndTextTuples,
807
+ "StyleAndTextTuples",
804
808
  [(x[0].replace("[ReverseOverwrite]", ""), *x[1:]) for x in overwrites],
805
809
  )
806
810
  top_width = fragment_list_width(top)
euporie/core/io.py CHANGED
@@ -184,14 +184,6 @@ class Vt100_Output(PtkVt100_Output):
184
184
  """Disable SGR-pixel mouse positioning."""
185
185
  self.write_raw("\x1b[?1016l")
186
186
 
187
- def enable_private_sixel_colors(self) -> None:
188
- """Enable private color registers for sixel graphics."""
189
- self.write_raw("\x1b[1070h")
190
-
191
- def disable_private_sixel_colors(self) -> None:
192
- """Disable private color registers for sixel graphics."""
193
- self.write_raw("\x1b[1070l")
194
-
195
187
  def enable_extended_keys(self) -> None:
196
188
  """Request extended keys."""
197
189
  # xterm
@@ -1,4 +1,12 @@
1
- """Overrides for PTK containers which only render visible lines."""
1
+ """Overrides for PTK containers with optimized rendering.
2
+
3
+ This module provides enhanced versions of prompt_toolkit containers that:
4
+ - Only render visible lines rather than the entire content
5
+ - Use cached dimension calculations for better performance
6
+ - Support bounded write positions to clip rendering
7
+ - Share padding window instances for efficiency
8
+ - Apply cursor line styles more efficiently
9
+ """
2
10
 
3
11
  from __future__ import annotations
4
12
 
@@ -56,7 +64,11 @@ log = logging.getLogger(__name__)
56
64
 
57
65
 
58
66
  class DimensionTuple(NamedTuple):
59
- """A hashable representation of a PTK :py:class:`Dimension`."""
67
+ """A hashable representation of a PTK :py:class:`Dimension`.
68
+
69
+ This allows caching dimension calculations by making them hashable.
70
+ Used internally by distribute_dimensions() for performance optimization.
71
+ """
60
72
 
61
73
  min: int
62
74
  max: int
@@ -68,7 +80,18 @@ class DimensionTuple(NamedTuple):
68
80
  def distribute_dimensions(
69
81
  size: int, dimensions: tuple[DimensionTuple, ...]
70
82
  ) -> list[int] | None:
71
- """Return the heights for all rows, or None when there is not enough space."""
83
+ """Return the heights/widths for all rows/columns, or None when there is not enough space.
84
+
85
+ This is a cached version of prompt_toolkit's dimension distribution logic that improves
86
+ performance by memoizing calculations based on the input dimensions.
87
+
88
+ Args:
89
+ size: Total size to distribute
90
+ dimensions: Tuple of DimensionTuple objects specifying min/max/preferred sizes
91
+
92
+ Returns:
93
+ List of distributed sizes or None if not enough space
94
+ """
72
95
  if not dimensions:
73
96
  return []
74
97
 
@@ -118,7 +141,13 @@ def distribute_dimensions(
118
141
 
119
142
  @lru_cache(maxsize=None)
120
143
  class DummyContainer(Container):
121
- """Base class for user interface layout."""
144
+ """A minimal container with fixed dimensions.
145
+
146
+ This is a more efficient version of prompt_toolkit's DummyContainer that:
147
+ - Supports explicit width/height
148
+ - Uses caching for better performance
149
+ - Avoids unnecessary style calculations
150
+ """
122
151
 
123
152
  def __init__(self, width: int = 0, height: int = 0) -> None:
124
153
  """Define width and height if any."""
euporie/core/renderer.py CHANGED
@@ -291,7 +291,6 @@ class Renderer(PtkRenderer):
291
291
  style, output, full_screen, mouse_support, cpr_not_supported_callback
292
292
  )
293
293
  self._extended_keys_enabled = False
294
- self._private_sixel_colors_enabled = False
295
294
  self._sgr_pixel_enabled = False
296
295
  self.extend_height = to_filter(extend_height)
297
296
  self.extend_width = to_filter(extend_width)
@@ -304,10 +303,6 @@ class Renderer(PtkRenderer):
304
303
  output.disable_extended_keys()
305
304
  self._extended_keys_enabled = False
306
305
 
307
- # Disable private sixel colors before resetting the output
308
- output.disable_private_sixel_colors()
309
- self._private_sixel_colors_enabled = False
310
-
311
306
  # Disable sgr pixel mode
312
307
  output.disable_sgr_pixel()
313
308
  self._sgr_pixel_enabled = False
@@ -370,13 +365,6 @@ class Renderer(PtkRenderer):
370
365
  output.enable_extended_keys()
371
366
  self._extended_keys_enabled = True
372
367
 
373
- # Ensable private sixel graphic color registers
374
- if not self._private_sixel_colors_enabled and isinstance(
375
- self.output, Vt100_Output
376
- ):
377
- self.output.enable_private_sixel_colors()
378
- self._private_sixel_colors_enabled = True
379
-
380
368
  # Create screen and write layout to it.
381
369
  size = output.get_size()
382
370
  screen = Screen()
@@ -171,10 +171,7 @@ class Cell:
171
171
  weak_self.kernel_tab.dirty = True
172
172
  weak_self.on_change()
173
173
  # Re-render markdown cells when edited outside of edit mode
174
- if (
175
- weak_self.cell_type == "markdown"
176
- and not weak_self.kernel_tab.in_edit_mode()
177
- ):
174
+ if weak_self.cell_type == "markdown" and not weak_self.kernel_tab.edit_mode:
178
175
  weak_self.output_area.json = weak_self.output_json
179
176
  weak_self.refresh()
180
177
 
@@ -633,10 +630,9 @@ class Cell:
633
630
 
634
631
  """
635
632
  cp = self.input_box.buffer.cursor_position
636
- self._set_input(value)
637
- self.input_box.text = self.json["source"]
638
633
  cp = max(0, min(cp, len(value)))
639
- self.input_box.buffer.cursor_position = cp
634
+ self._set_input(value)
635
+ self.input_box.buffer.document = Document(value, cp)
640
636
 
641
637
  @property
642
638
  def output_json(self) -> list[dict[str, Any]]:
@@ -360,11 +360,13 @@ class KernelInput(TextArea):
360
360
 
361
361
  def reformat(self) -> None:
362
362
  """Reformat the cell's input."""
363
- text = self.buffer.text
363
+ original_text = new_text = self.buffer.text
364
364
  language = self.language
365
365
  for formatter in self.formatters:
366
- text = formatter._format(text, language)
367
- self.buffer.text = text
366
+ new_text = formatter._format(original_text, language)
367
+ # Do not trigger a text-changed event if the reformatting results in no change
368
+ if new_text != original_text:
369
+ self.buffer.text = new_text
368
370
 
369
371
  async def inspect(self, auto: bool = False) -> None:
370
372
  """Get contextual help for the current cursor position in the current cell."""
@@ -145,7 +145,10 @@ class PreviewNotebook(BaseNotebook):
145
145
  cell = self._cell
146
146
  cell_json = self.json["cells"][self.cell_index]
147
147
  cell.json = cell_json
148
- cell.input = cell_json["source"]
148
+ # Update cell text without trigger any "text-changed" callbacks, which are
149
+ # unncesessary in the preview app
150
+ cell._set_input(cell_json["source"])
151
+ cell.input_box.buffer._set_text(cell_json["source"])
149
152
  cell.output_area.json = cell.output_json
150
153
  return cell
151
154
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: euporie
3
- Version: 2.8.8
3
+ Version: 2.8.10
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
@@ -2,18 +2,18 @@ euporie/console/__init__.py,sha256=Xgd2sBDyLKQ3_kiRmkRIVNHw6MGB-f-mB1YOxhta0Oc,5
2
2
  euporie/console/__main__.py,sha256=m2EnzIDLO4dHlDt41JNKpUvAUSw6wD-X0V3YhymXqxc,289
3
3
  euporie/console/_commands.py,sha256=89IYo7RaFftffmgXGfPv5p2nm3_4NC--U3AdTPBWT_g,3856
4
4
  euporie/console/_settings.py,sha256=jZroKFFsTzyEhP1Sis41Se70hwxqDmpa2Lb19XnMnRQ,1587
5
- euporie/console/app.py,sha256=EvmL4djuIWN_WlPyZt2tsc4Bc8SZTPphTlB0yGFPj1o,5736
5
+ euporie/console/app.py,sha256=sYuvEds1LctZ4ZrXq7Cl7O_VYLRbi48S-IxejH4hiA0,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=G_md1U6pRZeL34ejokzzrCNKfNKiLkyphCha7z2xuy0,31783
9
- euporie/core/__init__.py,sha256=W-PhIUFAz0WRo0jFbklz-iJSXeZeq8HFr-V6ivy9uy0,313
9
+ euporie/core/__init__.py,sha256=JI7aHe_wKQ9j_6tcvz5_04mxDqkrOHmUcRxTeviyA4k,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
13
  euporie/core/clipboard.py,sha256=A2LdeyWKWuG0rPy6QoefmBbRtOtpzz_R6FLwBfU5Dr4,2060
14
14
  euporie/core/commands.py,sha256=aBBCSBm7AJRCoiOZzbIOucExqm5nYf--SrbiysBRkFc,9035
15
15
  euporie/core/completion.py,sha256=HZMTFJS1z6KW2o2QrfF-JH4fNDwK-iKb06Z0DAjL-3k,5770
16
- euporie/core/config.py,sha256=ngRZ8MRhDMiJEmQhPtfZb3Kf8Rfij4Rp7nTH0armch8,25137
16
+ euporie/core/config.py,sha256=wgjeCSgLIkRo1PXt6z41z1agkToSnMR6wfSmbF6LCT8,25198
17
17
  euporie/core/data_structures.py,sha256=2ml-q-y5Ft0pyq1Xc-NySCLMoEir71M9e2PLfvPbegc,2350
18
18
  euporie/core/diagnostics.py,sha256=KywmOqa1_Lfk5SsO1Fd0Vl801DvVKvAD4pOOpdLijAM,1680
19
19
  euporie/core/filters.py,sha256=t-s9g-wSPhDd3iXcLtiwT5IsIfK7vIuicV-KU-eB19A,10237
@@ -21,7 +21,7 @@ euporie/core/format.py,sha256=D8svQC9ZFO4rSkjtTIaRTfZ32KRgIN12KTjEeqM5Hag,4163
21
21
  euporie/core/graphics.py,sha256=tD7hvCYDXqToHgrC1bMm0a7THZUd77sRF0a1Fje0a38,45595
22
22
  euporie/core/history.py,sha256=y9DAWrQmOMSBqTza3QMqE28X-MRYm8OPiigQ9dDlyUE,2829
23
23
  euporie/core/inspection.py,sha256=sN--ttxjdpinafHqrb21uqqdp8U0TbYqT7BYAfutqZg,2796
24
- euporie/core/io.py,sha256=G8H7kUK7p8HvO2WKN9TuRv0ud2ja76ObCvROakaZeYo,10981
24
+ euporie/core/io.py,sha256=Q67fvsXIhJr87fPLY1kgRvnWzf7m5rqcyQU1xXwn494,10671
25
25
  euporie/core/keys.py,sha256=Ld9iKl-Qe8Ps2g8tpA9ViBIgZmQz6oncTPNiqgXNfqk,411225
26
26
  euporie/core/lexers.py,sha256=AXNDYOR0BZf0sYj9o8YSb0oF4AGYZdKygwFIUKJ3XFM,1083
27
27
  euporie/core/log.py,sha256=gdnBd35OmCQ-wNPr54lMkw_Vl_9JyZjBt_TmACCHWbo,17222
@@ -32,7 +32,7 @@ euporie/core/processors.py,sha256=63vwLEuSdp5B_PuQ-zv--qtC05GTlbhXVojISzHUnIk,54
32
32
  euporie/core/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
33
  euporie/core/pygments.py,sha256=TE3VrZ-QKe4n6hmoYuNmt0l0XR6qmko7JvO5YHSt_rU,2588
34
34
  euporie/core/reference.py,sha256=x8-7405xgTEcK7ImqikQtVAXXqFanz61UQ3mn7v_4-o,65039
35
- euporie/core/renderer.py,sha256=JNqDP3y7NbM_y-JJZUNWy3qH4H3Et2hPRaM0YtLUTxM,18760
35
+ euporie/core/renderer.py,sha256=jvohWKbwxhIqWpUHezPMl3PcNkd_beIqUVlkZpRXi24,18252
36
36
  euporie/core/style.py,sha256=buMXvz_jI75voUI3s7qa_1Q-2i0HnnQO-KpEAmfU62s,34851
37
37
  euporie/core/suggest.py,sha256=zmlL0DP6_HeDPZ4vGjEIi9TivqGZ000Y3TN75LBPbVM,9079
38
38
  euporie/core/utils.py,sha256=mgvt95AIOrx0NqlxSXYwWj6RKIB0t9g3OU66__F2XPY,5612
@@ -56,7 +56,7 @@ 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=RKafPCxCIMfPK2emWp-HMMXPGZ23o7ret9SJdtIMdMM,15909
59
+ euporie/core/convert/datum.py,sha256=m3zFbwplo6KiE6-I7ezTG8XFJP1bZs7rW__Dam0tNjM,15918
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
@@ -78,7 +78,7 @@ euporie/core/ft/__init__.py,sha256=Ib-pswos3RiOM2Vn8GCZ4rwuoTNPeBJ0jhgRpwu7BKE,5
78
78
  euporie/core/ft/ansi.py,sha256=Cw_oEQ-RfuNOW3p4K0ihHLAJp4WKgF3mfc0yIvTryyk,5805
79
79
  euporie/core/ft/html.py,sha256=GPrJYV8b9afi87v_PmAFQgMCJ5oZFL2_1cCYiajdmrM,179530
80
80
  euporie/core/ft/table.py,sha256=vnqtWOfKgoAylbTLEXXgVOh40TsrsHThcEAG7FGby2k,53332
81
- euporie/core/ft/utils.py,sha256=Dg77ofKHvcMuuocNtmE6vO3fZsizWDNgXnLfNlGTfOY,27838
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/base.py,sha256=nAgUVwMb0IIfgfjv13L7kov7PXSzBo3MfMf12ipoOGs,17937
84
84
  euporie/core/kernel/jupyter.py,sha256=R2H3eTYLQwLSc9pRadyETNFHrIqY1b9I6uxqAdQHXS8,36206
@@ -100,7 +100,7 @@ euporie/core/key_binding/bindings/terminal.py,sha256=_IxHXzI9N2YtNeecmvb9G5gQpsu
100
100
  euporie/core/key_binding/bindings/vi.py,sha256=XutOsbBI8ywyWR5XY2pUN14Vga6R0vrDK27q7ZhE8pM,1567
101
101
  euporie/core/layout/__init__.py,sha256=T5iGOnMGfNwVffJlfFMwGTFBLV7RkOuKw5gVp6cl4wA,59
102
102
  euporie/core/layout/cache.py,sha256=AkZgwETYwqq4o5MNj0BWly3aZcZCrQGEUR6Li9q-3Xo,16054
103
- euporie/core/layout/containers.py,sha256=AQFvIpO97SkFj3ijYf4VGwOXkoGmVRUt_MInKperOqw,48092
103
+ euporie/core/layout/containers.py,sha256=ySDSaMjkSPZeE5T1GNPI-FYUcU9VipCiNAF_UfVCXEY,49189
104
104
  euporie/core/layout/controls.py,sha256=iFklysBxk_roWKfNN4Hdjqf4sFdEBzNWZq2OavlpJHY,825
105
105
  euporie/core/layout/decor.py,sha256=aUJXdeDujk4hDG5uvEdF44sRBzTak12x1J5W7YQxfSk,14128
106
106
  euporie/core/layout/mouse.py,sha256=VgOzavrQoCpNcPozCVx-o8yhNBODvANHNaIMGBijKeA,5169
@@ -115,7 +115,7 @@ euporie/core/tabs/kernel.py,sha256=gsaW_2GUWBeeUtrNOTrrr6He_ShkLcA5XjiDXdS_No8,1
115
115
  euporie/core/tabs/notebook.py,sha256=rZa2LRaCCEl3kb4hniQEQtly_uCBBF92dYFYcv8ID2g,15024
116
116
  euporie/core/widgets/__init__.py,sha256=ektso_Ea1-pZB04alUujQsa2r-kv8xAF0SmQOv_bvHQ,52
117
117
  euporie/core/widgets/_settings.py,sha256=69ZJ6Ihl-HmyFPOyxGAL2HvxIASOJLEeOr8AuCtK48Q,5248
118
- euporie/core/widgets/cell.py,sha256=rmwrfONJ-mLUB7UHqKVf9gwzHECtu-4y1YU9lEmW5RM,33876
118
+ euporie/core/widgets/cell.py,sha256=PqY6FBTwPFF0mfHTJtBae_8ZQkBcBkf1RQReYARkOzQ,33783
119
119
  euporie/core/widgets/cell_outputs.py,sha256=tIDBIWPnwavGlKDykDr_mOfbOgkpD94N_wV3RHVXGAA,17257
120
120
  euporie/core/widgets/decor.py,sha256=_K3bSNpvAFdn5ZZyNFVjZPv6QV4fNIlNMdRpYjc4MU0,7895
121
121
  euporie/core/widgets/dialog.py,sha256=2yvNzDqDjsOBWVfeSgR4Lv1LC73tQIeI_qz2YIx7H1k,32987
@@ -123,7 +123,7 @@ euporie/core/widgets/display.py,sha256=Ht5INitUzG8-zY5jDbBNWarS_lgoH3559lJYS3ORE
123
123
  euporie/core/widgets/file_browser.py,sha256=jj8l5cpX7S6d1HlYXUg3TXdsvmhFneIOiotKpwCVgoQ,20050
124
124
  euporie/core/widgets/formatted_text_area.py,sha256=J7P_TNXPZKZkiBdjAVkPvkfRY1veXe4tzXU241k4b-Q,4037
125
125
  euporie/core/widgets/forms.py,sha256=G_omvjVhbWjY0HYb8s7gs9MqPyABBwAJElyCACsHv_0,85850
126
- euporie/core/widgets/inputs.py,sha256=Rmlv1Y9XHvbT1SoyI1zn1ltj_y8tqgl1kOAz2iuOkX0,20303
126
+ euporie/core/widgets/inputs.py,sha256=rG-Bbi02NmVC0xNdcRefqsWoKNjpXuL6X04evvhjZ6k,20469
127
127
  euporie/core/widgets/layout.py,sha256=jPChBUf8FEbj_c6RwBooaATFnecm_MrSTpJFkPxOFFQ,30521
128
128
  euporie/core/widgets/logo.py,sha256=VU9hSVAiguS5lI0EccQoPm8roAuQNgvFUO5IREvXWFo,1487
129
129
  euporie/core/widgets/menu.py,sha256=1vb7ORM3Avhx2k1D_QpSb4VtwjhBrmDQl1ZEJL3ub2s,34890
@@ -163,16 +163,16 @@ euporie/preview/_settings.py,sha256=_N3Dfzg5XOE_L-yq3HgAV68FKgz2nD1UHwLRXVSqI64,
163
163
  euporie/preview/app.py,sha256=jmmlrvkKN8ZK1277VGxbAc2ejZaXWj7FDN4loNl_dd0,7623
164
164
  euporie/preview/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
165
165
  euporie/preview/tabs/__init__.py,sha256=rY6DfQ-8qRo_AiICCD-zTyhJBnuMjawWDd8tRxR6q58,43
166
- euporie/preview/tabs/notebook.py,sha256=MRAP0g-1_r-361yM9GHy-i5-G8dtAg34iNazp1SlxSA,6482
166
+ euporie/preview/tabs/notebook.py,sha256=mr3pF7KUwhxyu592Dwws1oZmYEfT9NNoCfUBUC7vDAs,6672
167
167
  euporie/web/__init__.py,sha256=wE-4WBbzcpWVu5YisLrUhYOn3ZlBK2YZryjc1r96qrY,38
168
168
  euporie/web/tabs/__init__.py,sha256=0DbkceML8N_qefZFZB7CJQw_FX0gkuNdabQoEu0zV9E,340
169
169
  euporie/web/tabs/web.py,sha256=CY8tfy_yrZYLWY2pEyOgJsqIHCfGIj9WVKnK6v9Jg8g,6195
170
170
  euporie/web/widgets/__init__.py,sha256=xIxCPl9KiisYgsX-V1LvDT6BETZRF3nC-ZsP8DP7nOY,46
171
171
  euporie/web/widgets/webview.py,sha256=WhV-e7CeTK3z8fw27cl-aqjeSckLXug1fUINBAkx8Gk,20469
172
- euporie-2.8.8.data/data/share/applications/euporie-console.desktop,sha256=DI08G0Dl2s5asM6afWUfkKvO5YmcBm-pWQZzUHiNnqc,153
173
- euporie-2.8.8.data/data/share/applications/euporie-notebook.desktop,sha256=RtpJzvizTDuOp0BLa2bLgVHx11LG6L7PL-oF-wHTsgU,155
174
- euporie-2.8.8.dist-info/METADATA,sha256=sHBdZT1_tIT-eqB8p45RAD4n-q-X_5mpD_qlmaSK-qg,6515
175
- euporie-2.8.8.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
176
- euporie-2.8.8.dist-info/entry_points.txt,sha256=cJPvjp7siwHeqCcCdu-Q9OCcsp4ylbLv0S4RP7g3Bf0,798
177
- euporie-2.8.8.dist-info/licenses/LICENSE,sha256=yB-auuST68VxkNPXb-E7gVdFzOJShyBnoPyyveuAiYc,1079
178
- euporie-2.8.8.dist-info/RECORD,,
172
+ euporie-2.8.10.data/data/share/applications/euporie-console.desktop,sha256=DI08G0Dl2s5asM6afWUfkKvO5YmcBm-pWQZzUHiNnqc,153
173
+ euporie-2.8.10.data/data/share/applications/euporie-notebook.desktop,sha256=RtpJzvizTDuOp0BLa2bLgVHx11LG6L7PL-oF-wHTsgU,155
174
+ euporie-2.8.10.dist-info/METADATA,sha256=uaIPeA1WJT9fKVrwWb8NXLDQybI3i2VONIHB8GvEin8,6516
175
+ euporie-2.8.10.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
176
+ euporie-2.8.10.dist-info/entry_points.txt,sha256=cJPvjp7siwHeqCcCdu-Q9OCcsp4ylbLv0S4RP7g3Bf0,798
177
+ euporie-2.8.10.dist-info/licenses/LICENSE,sha256=yB-auuST68VxkNPXb-E7gVdFzOJShyBnoPyyveuAiYc,1079
178
+ euporie-2.8.10.dist-info/RECORD,,