euporie 2.8.5__py3-none-any.whl → 2.8.7__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.
Files changed (74) hide show
  1. euporie/console/app.py +2 -0
  2. euporie/console/tabs/console.py +27 -17
  3. euporie/core/__init__.py +2 -2
  4. euporie/core/__main__.py +2 -2
  5. euporie/core/_settings.py +7 -2
  6. euporie/core/app/_commands.py +20 -12
  7. euporie/core/app/_settings.py +34 -4
  8. euporie/core/app/app.py +31 -18
  9. euporie/core/bars/command.py +53 -27
  10. euporie/core/bars/search.py +43 -2
  11. euporie/core/border.py +7 -2
  12. euporie/core/comm/base.py +2 -2
  13. euporie/core/comm/ipywidgets.py +3 -3
  14. euporie/core/commands.py +44 -24
  15. euporie/core/completion.py +14 -6
  16. euporie/core/convert/datum.py +7 -7
  17. euporie/core/data_structures.py +20 -1
  18. euporie/core/filters.py +40 -9
  19. euporie/core/format.py +2 -3
  20. euporie/core/ft/html.py +47 -40
  21. euporie/core/graphics.py +199 -31
  22. euporie/core/history.py +15 -5
  23. euporie/core/inspection.py +16 -9
  24. euporie/core/kernel/__init__.py +53 -1
  25. euporie/core/kernel/base.py +571 -0
  26. euporie/core/kernel/{client.py → jupyter.py} +173 -430
  27. euporie/core/kernel/{manager.py → jupyter_manager.py} +4 -3
  28. euporie/core/kernel/local.py +694 -0
  29. euporie/core/key_binding/bindings/basic.py +6 -3
  30. euporie/core/keys.py +26 -25
  31. euporie/core/layout/cache.py +31 -7
  32. euporie/core/layout/containers.py +88 -13
  33. euporie/core/layout/scroll.py +69 -170
  34. euporie/core/log.py +2 -5
  35. euporie/core/path.py +61 -13
  36. euporie/core/style.py +2 -1
  37. euporie/core/suggest.py +155 -74
  38. euporie/core/tabs/__init__.py +12 -4
  39. euporie/core/tabs/_commands.py +76 -0
  40. euporie/core/tabs/_settings.py +16 -0
  41. euporie/core/tabs/base.py +89 -9
  42. euporie/core/tabs/kernel.py +83 -38
  43. euporie/core/tabs/notebook.py +28 -76
  44. euporie/core/utils.py +2 -19
  45. euporie/core/validation.py +8 -8
  46. euporie/core/widgets/_settings.py +19 -2
  47. euporie/core/widgets/cell.py +32 -32
  48. euporie/core/widgets/cell_outputs.py +10 -1
  49. euporie/core/widgets/dialog.py +60 -76
  50. euporie/core/widgets/display.py +2 -2
  51. euporie/core/widgets/forms.py +71 -59
  52. euporie/core/widgets/inputs.py +7 -4
  53. euporie/core/widgets/layout.py +281 -93
  54. euporie/core/widgets/menu.py +56 -16
  55. euporie/core/widgets/palette.py +3 -1
  56. euporie/core/widgets/tree.py +86 -76
  57. euporie/notebook/app.py +35 -16
  58. euporie/notebook/tabs/display.py +2 -2
  59. euporie/notebook/tabs/edit.py +11 -46
  60. euporie/notebook/tabs/json.py +8 -4
  61. euporie/notebook/tabs/notebook.py +26 -8
  62. euporie/preview/tabs/notebook.py +17 -13
  63. euporie/web/__init__.py +1 -0
  64. euporie/web/tabs/__init__.py +14 -0
  65. euporie/web/tabs/web.py +30 -5
  66. euporie/web/widgets/__init__.py +1 -0
  67. euporie/web/widgets/webview.py +5 -4
  68. {euporie-2.8.5.dist-info → euporie-2.8.7.dist-info}/METADATA +4 -2
  69. {euporie-2.8.5.dist-info → euporie-2.8.7.dist-info}/RECORD +74 -68
  70. {euporie-2.8.5.dist-info → euporie-2.8.7.dist-info}/entry_points.txt +1 -1
  71. {euporie-2.8.5.dist-info → euporie-2.8.7.dist-info}/licenses/LICENSE +1 -1
  72. {euporie-2.8.5.data → euporie-2.8.7.data}/data/share/applications/euporie-console.desktop +0 -0
  73. {euporie-2.8.5.data → euporie-2.8.7.data}/data/share/applications/euporie-notebook.desktop +0 -0
  74. {euporie-2.8.5.dist-info → euporie-2.8.7.dist-info}/WHEEL +0 -0
euporie/web/tabs/web.py CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ import asyncio
5
6
  import logging
6
7
  from typing import TYPE_CHECKING
7
8
 
@@ -16,14 +17,13 @@ from euporie.core.data_structures import DiBool
16
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
- from euporie.core.utils import run_in_thread_with_context
20
20
  from euporie.core.widgets.display import DisplayWindow
21
21
  from euporie.core.widgets.forms import Button, Text
22
22
  from euporie.web.widgets.webview import WebViewControl
23
23
 
24
24
  if TYPE_CHECKING:
25
25
  from pathlib import Path
26
- from typing import Any, Callable
26
+ from typing import Any, Callable, ClassVar
27
27
 
28
28
  from prompt_toolkit.layout.containers import AnyContainer
29
29
 
@@ -38,6 +38,7 @@ class WebTab(Tab):
38
38
 
39
39
  name = "Web Viewer"
40
40
  weight = 2
41
+ mime_types: ClassVar[set[str]] = {"text/html", "text/markdown"}
41
42
 
42
43
  def __init__(self, app: BaseApp, path: Path | None) -> None:
43
44
  """Call when the tab is created."""
@@ -45,13 +46,16 @@ class WebTab(Tab):
45
46
  self.status: Callable[[], StatusBarFields] | None = None
46
47
 
47
48
  def _load() -> None:
49
+ old_container = self.container
48
50
  self.container = self.load_container()
51
+ if self.app.layout.has_focus(old_container):
52
+ self.focus()
53
+ self.app.invalidate()
49
54
 
50
- run_in_thread_with_context(_load)
55
+ self._load_task = app.create_background_task(asyncio.to_thread(_load))
51
56
 
52
57
  def focus(self) -> None:
53
58
  """Focus the webview when this tab is focused."""
54
- super().focus()
55
59
  self.app.layout.focus(self.webview)
56
60
 
57
61
  @property
@@ -67,13 +71,16 @@ class WebTab(Tab):
67
71
  def load_url(self, url: str | Path, new_tab: bool = False, **kwargs: Any) -> bool:
68
72
  """Load a new URL, or the URL in the address-bar."""
69
73
  log.debug("Loading %s", url)
74
+ self.webview.loading = True
75
+ self.app.invalidate()
70
76
  if not url:
71
77
  return False
72
78
  if isinstance(url, str):
73
- url = UPath(url)
79
+ url = UPath(url, protocol="https" if ":" not in url else None)
74
80
  if not new_tab and get_mime(url) in self.mime_types:
75
81
  self.webview.load_url(url, **kwargs)
76
82
  else:
83
+ self.webview.loading = False
77
84
  get_app().open_file(url)
78
85
  return True
79
86
 
@@ -83,6 +90,8 @@ class WebTab(Tab):
83
90
  if url is not None:
84
91
  self.path = UPath(url)
85
92
  self.url_bar.text = str(url)
93
+ # Focus the webview
94
+ self.app.layout.current_control = self.webview
86
95
 
87
96
  def load_container(self) -> AnyContainer:
88
97
  """Abcract method for loading the notebook's main container."""
@@ -108,10 +117,25 @@ class WebTab(Tab):
108
117
  disabled=Condition(lambda: not self.webview.next_stack),
109
118
  on_click=lambda x: self.webview.nav_next(),
110
119
  )
120
+ button_refresh = Button(
121
+ "↻",
122
+ on_click=lambda x: (self.load_url(self.path) and False) or None,
123
+ )
124
+
125
+ def _select_url() -> None:
126
+ """Select all in url bar when it gains focus."""
127
+ from prompt_toolkit.selection import SelectionState
128
+
129
+ buffer = self.url_bar.buffer
130
+ buffer.selection_state = SelectionState(0)
131
+ buffer.cursor_position = len(buffer.text)
132
+ buffer.selection_state.enter_shift_mode()
133
+
111
134
  self.url_bar = Text(
112
135
  text=str(path),
113
136
  show_borders=DiBool(top=True, right=False, bottom=True, left=True),
114
137
  accept_handler=lambda buf: self.load_url(buf.text),
138
+ on_focus=_select_url,
115
139
  )
116
140
  button_go = Button(
117
141
  "➜",
@@ -126,6 +150,7 @@ class WebTab(Tab):
126
150
  [
127
151
  FocusedStyle(button_prev),
128
152
  FocusedStyle(button_next),
153
+ FocusedStyle(button_refresh),
129
154
  FocusedStyle(self.url_bar),
130
155
  FocusedStyle(button_go),
131
156
  ],
@@ -0,0 +1 @@
1
+ """Contain widgets used in the web viewer."""
@@ -132,16 +132,14 @@ class WebViewControl(UIControl):
132
132
  if changed:
133
133
  self.on_cursor_position_changed.fire()
134
134
 
135
- def get_dom(self, url: Path, x: bool = False) -> HTML:
135
+ def get_dom(self, url: Path) -> HTML:
136
136
  """Load a HTML page as renderable formatted text."""
137
137
  markup = str(
138
138
  Datum(
139
139
  data=url.read_text(),
140
140
  format=(format_ := get_format(url, default="html")),
141
141
  path=url,
142
- ).convert(
143
- to="html",
144
- )
142
+ ).convert(to="html")
145
143
  )
146
144
  return HTML(
147
145
  markup=markup,
@@ -327,6 +325,7 @@ class WebViewControl(UIControl):
327
325
  """Handle click events."""
328
326
  url = node.attrs.get("_link_path")
329
327
  title = node.attrs.get("title")
328
+ alt = node.attrs.get("alt")
330
329
  if url:
331
330
  # TODO - Check for #anchor links and scroll accordingly
332
331
  if (
@@ -345,6 +344,8 @@ class WebViewControl(UIControl):
345
344
  self.status.clear()
346
345
  if title:
347
346
  self.status.append(str(title))
347
+ if title:
348
+ self.status.append(str(alt))
348
349
  if url:
349
350
  self.status.append(str(url))
350
351
  return None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: euporie
3
- Version: 2.8.5
3
+ Version: 2.8.7
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
@@ -85,10 +85,12 @@ If you're working with Jupyter notebooks in a terminal only environment, like an
85
85
  Install
86
86
  *******
87
87
 
88
- You can install euporie with `pipx <https://pipxproject.github.io/>`_ (recommended) or ``pip``:
88
+ You can install euporie with `uv <https://docs.astral.sh/uv/>`_ (recommended), or with `pipx <https://pipxproject.github.io/>`_ or ``pip``):
89
89
 
90
90
  .. code-block:: console
91
91
 
92
+ $ uv tool install euporie
93
+ $ # OR
92
94
  $ pipx install euporie
93
95
  $ # OR
94
96
  $ python -m pip install --user euporie
@@ -2,61 +2,61 @@ 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=cNYdKABGXpH6GMxIyE9OAn5uR-bnM2aSOa7FLcghTyA,5663
5
+ euporie/console/app.py,sha256=EvmL4djuIWN_WlPyZt2tsc4Bc8SZTPphTlB0yGFPj1o,5736
6
6
  euporie/console/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  euporie/console/tabs/__init__.py,sha256=Grm9EO1gnBO1o-k6Nqnlzo8XLIgFZSXNAdz49Vvh4zY,55
8
- euporie/console/tabs/console.py,sha256=370iUk9HKG0D8tTZ043b5XEF14bVDqe8XxrDf7PRxgw,31267
9
- euporie/core/__init__.py,sha256=MieVj9t7Kw-nlTylEe1fTf3ZvyVQqpBIc2TaNRVAZYo,313
10
- euporie/core/__main__.py,sha256=NshbuP78pqo7qx4P0_VVE_nqXa-rl76G4OFarworpm0,1292
11
- euporie/core/_settings.py,sha256=pjZZJmyBjVMjr2cH6w3ANAugqKXofCxBGVWRc1PZ7Lw,2873
12
- euporie/core/border.py,sha256=kJbpyxwJBtIRpFOpXhDtaCT1_oyVRjRiYKG4lXn3-iA,48507
8
+ euporie/console/tabs/console.py,sha256=G_md1U6pRZeL34ejokzzrCNKfNKiLkyphCha7z2xuy0,31783
9
+ euporie/core/__init__.py,sha256=571U9ICO5WEQH6bWSEMLa3A991JAJIfl4wkqlFtuaiY,313
10
+ euporie/core/__main__.py,sha256=QkRamWXgrPiRj7h4sYNhHNpVOUJuEpRuvZE-YLK1dUU,1255
11
+ euporie/core/_settings.py,sha256=JspB4eMUXry4r5g4Wzn4aV0FmzSVmWf1G96Jcr5bcDE,2937
12
+ euporie/core/border.py,sha256=HktTPL-sKxaiM8_DPdaetFI5fOvEBVJrw3tmgsKT2jY,48835
13
13
  euporie/core/clipboard.py,sha256=A2LdeyWKWuG0rPy6QoefmBbRtOtpzz_R6FLwBfU5Dr4,2060
14
- euporie/core/commands.py,sha256=J7Unzj1cEcgP-3n_Frvgjd0CjjvHSb2YvegrzQQgx00,8518
15
- euporie/core/completion.py,sha256=cy_eAusesqd4UV4Nl1bNPAEoQ0MDqGLVNmvQ2rClOmw,5516
14
+ euporie/core/commands.py,sha256=aBBCSBm7AJRCoiOZzbIOucExqm5nYf--SrbiysBRkFc,9035
15
+ euporie/core/completion.py,sha256=HZMTFJS1z6KW2o2QrfF-JH4fNDwK-iKb06Z0DAjL-3k,5770
16
16
  euporie/core/config.py,sha256=ngRZ8MRhDMiJEmQhPtfZb3Kf8Rfij4Rp7nTH0armch8,25137
17
- euporie/core/data_structures.py,sha256=eA54Cg305R1mVX6YGTRPIvTN4piEFKrltehif49l92o,1800
17
+ euporie/core/data_structures.py,sha256=2ml-q-y5Ft0pyq1Xc-NySCLMoEir71M9e2PLfvPbegc,2350
18
18
  euporie/core/diagnostics.py,sha256=KywmOqa1_Lfk5SsO1Fd0Vl801DvVKvAD4pOOpdLijAM,1680
19
- euporie/core/filters.py,sha256=8vnVkasT1pXbY4ObAJ0wfhjMSHLUjHzk_hbpfSwVZBs,9328
20
- euporie/core/format.py,sha256=oFlD3aX_uVeLhqxo2n-zaUBsiNKpWqhx6W-5arFY5C4,4154
21
- euporie/core/graphics.py,sha256=jFGWUAmoG0aPrZ0Jm5yz8W4ce6BcT0hDfklpFV8N_3U,36966
22
- euporie/core/history.py,sha256=l-QxzSLbzws3fmrZEIrHVv8ucw0PuCYBOcMyAODMlP0,2558
23
- euporie/core/inspection.py,sha256=HG78a9LQ8vK_DGlSAbzzvvZ3npa2i1zuTprCrhT4H8I,2601
19
+ euporie/core/filters.py,sha256=t-s9g-wSPhDd3iXcLtiwT5IsIfK7vIuicV-KU-eB19A,10237
20
+ euporie/core/format.py,sha256=D8svQC9ZFO4rSkjtTIaRTfZ32KRgIN12KTjEeqM5Hag,4163
21
+ euporie/core/graphics.py,sha256=tD7hvCYDXqToHgrC1bMm0a7THZUd77sRF0a1Fje0a38,45595
22
+ euporie/core/history.py,sha256=y9DAWrQmOMSBqTza3QMqE28X-MRYm8OPiigQ9dDlyUE,2829
23
+ euporie/core/inspection.py,sha256=sN--ttxjdpinafHqrb21uqqdp8U0TbYqT7BYAfutqZg,2796
24
24
  euporie/core/io.py,sha256=VrTfRcU6B-hsFhrNcdG_oC6dR1Q9jCMTpL8PPBjhE3g,10981
25
- euporie/core/keys.py,sha256=Fhes_MnAjHd2x6fajzeM5VHF-XKYb0lEGDsvAURzwmM,411217
25
+ euporie/core/keys.py,sha256=Ld9iKl-Qe8Ps2g8tpA9ViBIgZmQz6oncTPNiqgXNfqk,411225
26
26
  euporie/core/lexers.py,sha256=AXNDYOR0BZf0sYj9o8YSb0oF4AGYZdKygwFIUKJ3XFM,1083
27
- euporie/core/log.py,sha256=-DDGwvBA22th5bX7tJcrLLyQTX-mGIyAqQB2wT1-5Yo,17293
27
+ euporie/core/log.py,sha256=gdnBd35OmCQ-wNPr54lMkw_Vl_9JyZjBt_TmACCHWbo,17222
28
28
  euporie/core/lsp.py,sha256=bez_TPAfGXfVP_PbjbNH1woZIHTmrH2gvt3yV5E64o0,52952
29
29
  euporie/core/margins.py,sha256=mKnlUO1QaSMGqA_VsRfvpuvZrZyGLppm-zyniZnXPXk,24946
30
- euporie/core/path.py,sha256=ucQ9ijfqhIcY-SxgGl07a1qLK0rq10drZqfc-MRZI-k,2306
30
+ euporie/core/path.py,sha256=3Pa6hMS0sHWm5vC3kDooen1Rya-UFYVlJaxv2IcryQ0,3873
31
31
  euporie/core/processors.py,sha256=63vwLEuSdp5B_PuQ-zv--qtC05GTlbhXVojISzHUnIk,5478
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
35
  euporie/core/renderer.py,sha256=JNqDP3y7NbM_y-JJZUNWy3qH4H3Et2hPRaM0YtLUTxM,18760
36
- euporie/core/style.py,sha256=CJUzs0s0sIiaxGL06kcBW8FzrS0yb4V_arQT6Da7dKU,34795
37
- euporie/core/suggest.py,sha256=2bDpp83j4cjIXYVc--XBUyKP0owP3z-ygK1qFGdkTHM,6094
38
- euporie/core/utils.py,sha256=t0otJYETOmMUPojAc6Ej26iBkclZSib2L3w9X9SkgTQ,6086
39
- euporie/core/validation.py,sha256=xWWAk7uCzX5yU3qUOIyCv1eN-KfbnNdy1YLRJpHN_Cg,1187
36
+ euporie/core/style.py,sha256=buMXvz_jI75voUI3s7qa_1Q-2i0HnnQO-KpEAmfU62s,34851
37
+ euporie/core/suggest.py,sha256=zmlL0DP6_HeDPZ4vGjEIi9TivqGZ000Y3TN75LBPbVM,9079
38
+ euporie/core/utils.py,sha256=mgvt95AIOrx0NqlxSXYwWj6RKIB0t9g3OU66__F2XPY,5612
39
+ euporie/core/validation.py,sha256=PuLECbqaDGI9qHfJyliFS4gWF0u_UrYHTfsWFOfwfq0,1191
40
40
  euporie/core/app/__init__.py,sha256=v5RgV1dRhKjWxojUE-hCNXRWIbEvYEYU7rL55fPaTno,88
41
- euporie/core/app/_commands.py,sha256=DXRP92hwVOwNaKXEJp4aVFdhaFhk12y3w_BMBtB0Otc,1685
42
- euporie/core/app/_settings.py,sha256=RgPE8bbBXv0BC7rwgNlL-xRzMfUEl20rbuVK6KBFu80,12132
43
- euporie/core/app/app.py,sha256=zjih0aPPhJ63jWaJTfh5s7lhnjsCnqLfkIITOQqcoHw,35404
41
+ euporie/core/app/_commands.py,sha256=biJzOxFY4ASISyYO9A0uSRO9gJDVODEvF4V74WN0FH8,2078
42
+ euporie/core/app/_settings.py,sha256=iHtUxVSkiuPOaDjW9dpg044HpgEV62XsqFIx1U3_bDQ,12797
43
+ euporie/core/app/app.py,sha256=0mjMNrnb1The3h7RgL8qPGuK9naLwNlekpQviFPXvdc,35842
44
44
  euporie/core/app/base.py,sha256=an8aAKnLzSt1mr-JUY8QHAtpZ-RtCUIlNBR0oOsYn_E,1418
45
45
  euporie/core/app/current.py,sha256=u-5FXQUq9ikRxwb0fXI2_83uarPOMFLWRQ_7GDBQa5g,798
46
46
  euporie/core/app/cursor.py,sha256=O_zz7qw1Vn_OmsUI8jEwqPtYugKBGVLBtPhqu5ZboE4,1132
47
47
  euporie/core/app/dummy.py,sha256=hHCJUDwYOH1NmwVmtYz9SfGIgt57MjYoGGW5SrDnZw4,353
48
48
  euporie/core/app/launch.py,sha256=Uf16rnEc9VgH-skXiY252CsuV64c5A4OKOKEbpU9lpc,643
49
49
  euporie/core/bars/__init__.py,sha256=hZeIvEXxd3LPbwQND7G5VMV1x8Zn6kq3pDXQhkXA7_E,245
50
- euporie/core/bars/command.py,sha256=e-lgRBGkDNWbPHzvC-7JbGn1E9S2Tsllj-Uf_250E88,5989
50
+ euporie/core/bars/command.py,sha256=QGCxmYYkjuTiVCrDtc77vwzKJFkaEnHzgGkh09p-1YA,6969
51
51
  euporie/core/bars/menu.py,sha256=boFuIMYxWJ96bjqGGNGS19iZMoMGvXvF09RuihATnXk,9593
52
- euporie/core/bars/search.py,sha256=qTETqtWQXCGzOKN0IU4Nd662pUVZkOTn_0CKD2u6oEQ,12077
52
+ euporie/core/bars/search.py,sha256=N1lDOYvcP6N4MLq0Trd63Gc1a--V9jtILnMYz7ZZkHc,13496
53
53
  euporie/core/bars/status.py,sha256=-00GMuatEXwUk86TmTJdJZ5nJKqhp1JjuwaTIgDw0LE,5082
54
54
  euporie/core/comm/__init__.py,sha256=jTf9gPhonyl-UOEC7lc8RwLGJiNhFSuDZqm8rpZRnnI,52
55
- euporie/core/comm/base.py,sha256=24ny0a6zwR2lAd0x0_00aBK10mMHGBCjEn0oZr2kRkc,4108
56
- euporie/core/comm/ipywidgets.py,sha256=Amymtm3knWsbCeaf2kbMBWhOE_YHzaCG1sF1KCMQ4K4,53032
55
+ euporie/core/comm/base.py,sha256=-zXNOXimuD7Aeo2scADnvSimZa6pF8obT51vluBz2co,4123
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=0gJ4UCZvvgg7x7WB9oRCmZAFdw_NgqgB4LBFId4EmiE,15895
59
+ euporie/core/convert/datum.py,sha256=RKafPCxCIMfPK2emWp-HMMXPGZ23o7ret9SJdtIMdMM,15909
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
@@ -76,12 +76,14 @@ euporie/core/convert/formats/sixel.py,sha256=DV9ifN09XgRFvacc3D6UOdOhSMIT3sjp9Sg
76
76
  euporie/core/convert/formats/svg.py,sha256=SY-rioXSm5lK6LLp3mu3YeFYTFOJ-jCvEwH-wusfU1s,805
77
77
  euporie/core/ft/__init__.py,sha256=Ib-pswos3RiOM2Vn8GCZ4rwuoTNPeBJ0jhgRpwu7BKE,55
78
78
  euporie/core/ft/ansi.py,sha256=Cw_oEQ-RfuNOW3p4K0ihHLAJp4WKgF3mfc0yIvTryyk,5805
79
- euporie/core/ft/html.py,sha256=RGw2Ux2PEVodFciV3qTqT8VGt-CiiQfBBSmk0rpRzIo,179068
79
+ euporie/core/ft/html.py,sha256=GPrJYV8b9afi87v_PmAFQgMCJ5oZFL2_1cCYiajdmrM,179530
80
80
  euporie/core/ft/table.py,sha256=vnqtWOfKgoAylbTLEXXgVOh40TsrsHThcEAG7FGby2k,53332
81
81
  euporie/core/ft/utils.py,sha256=Dg77ofKHvcMuuocNtmE6vO3fZsizWDNgXnLfNlGTfOY,27838
82
- euporie/core/kernel/__init__.py,sha256=alFXMeoNhHgwioXUaCF2jLs5Ychw8w29lwpcac3gwM0,53
83
- euporie/core/kernel/client.py,sha256=3wCss_iGYgFC619Kjn420GuY6pwbXgqUBKjRX-cTBJI,44380
84
- euporie/core/kernel/manager.py,sha256=K3sjXy1HwpF7d-6SfKVmhfHFAVnJ5JFwyfmz4nlkk28,3994
82
+ euporie/core/kernel/__init__.py,sha256=OzDNoLffqunS-mZb23U0a2_tOx-E0QtmT25rVLj76bU,1540
83
+ euporie/core/kernel/base.py,sha256=nAgUVwMb0IIfgfjv13L7kov7PXSzBo3MfMf12ipoOGs,17937
84
+ euporie/core/kernel/jupyter.py,sha256=R2H3eTYLQwLSc9pRadyETNFHrIqY1b9I6uxqAdQHXS8,36206
85
+ euporie/core/kernel/jupyter_manager.py,sha256=tvft5LGjXYXPJBO3tNOKvyicnz-FwS1wbUQ2Q6OtEwY,4031
86
+ euporie/core/kernel/local.py,sha256=mEWx0H8vGsZYHlEDUmklisCiMmRQaxVlaNao_nQpDGI,22580
85
87
  euporie/core/key_binding/__init__.py,sha256=zFKrJrZARNht6Tl4TT5Fw3fk-IrD8SBYk5mBJ5K_F1A,47
86
88
  euporie/core/key_binding/key_processor.py,sha256=eZu7V7HmpvwGDz7z3upEQyqNLXX_D16VBojCNOplxTw,5757
87
89
  euporie/core/key_binding/micro_state.py,sha256=h_CBBiIUa4mHf70ZZDNbXreC0p0H3boNVzHnHVuIAp8,1276
@@ -89,7 +91,7 @@ euporie/core/key_binding/registry.py,sha256=Q-E8I-PhmWD9PkgFulPZdXTBPrySg7IDK7va
89
91
  euporie/core/key_binding/utils.py,sha256=5na4KCumbmCy8ouRAlO4IsscQ8VTvYHY6SKsmS2T-pg,3009
90
92
  euporie/core/key_binding/vi_state.py,sha256=ek3Wxsckihsr5x9ULiDtNnVkOEiCBzoF4m4qY6wAB9Q,702
91
93
  euporie/core/key_binding/bindings/__init__.py,sha256=hgemHFN9TR7LD4YCMhPoQEJ4r5hZ3LhcMDMVPsSPD48,227
92
- euporie/core/key_binding/bindings/basic.py,sha256=l8nvSQuNE0LidnBCBf6Q1PICGY1OktzSBil2Zf-tULg,2862
94
+ euporie/core/key_binding/bindings/basic.py,sha256=cTnpjkpZ6bcX3XdMrTpU0HC7J8dkO7p6TZXhP5uKyv0,2938
93
95
  euporie/core/key_binding/bindings/completion.py,sha256=aR6iS9X-EPAHDN4IagTR0yyiZNSkNOCjMyLNOMWGWYk,1997
94
96
  euporie/core/key_binding/bindings/micro.py,sha256=loB-9jG-N-Tyb1P3MZ2I8CS0p5acu2cN8Cs0KKXz_GQ,27878
95
97
  euporie/core/key_binding/bindings/mouse.py,sha256=WQpDIpGx9zpffHDjSFK6wa9UYb4MFwx3A-xWRaU9_o4,6925
@@ -97,36 +99,37 @@ euporie/core/key_binding/bindings/page_navigation.py,sha256=FWIv4iqWUCMjFHLu-I5Z
97
99
  euporie/core/key_binding/bindings/terminal.py,sha256=_IxHXzI9N2YtNeecmvb9G5gQpsuSvKcmkfoFLuv-0tI,6061
98
100
  euporie/core/key_binding/bindings/vi.py,sha256=XutOsbBI8ywyWR5XY2pUN14Vga6R0vrDK27q7ZhE8pM,1567
99
101
  euporie/core/layout/__init__.py,sha256=T5iGOnMGfNwVffJlfFMwGTFBLV7RkOuKw5gVp6cl4wA,59
100
- euporie/core/layout/cache.py,sha256=Usk0kgyEqESLYUejPiX9lmEwoi9beno9gyASdA6wOAg,15126
101
- euporie/core/layout/containers.py,sha256=QmEnj5t6dp_09HplmHpd6HnOgIF0d5zZvaFA2JE9dGw,46069
102
+ euporie/core/layout/cache.py,sha256=AkZgwETYwqq4o5MNj0BWly3aZcZCrQGEUR6Li9q-3Xo,16054
103
+ euporie/core/layout/containers.py,sha256=AQFvIpO97SkFj3ijYf4VGwOXkoGmVRUt_MInKperOqw,48092
102
104
  euporie/core/layout/controls.py,sha256=iFklysBxk_roWKfNN4Hdjqf4sFdEBzNWZq2OavlpJHY,825
103
105
  euporie/core/layout/decor.py,sha256=aUJXdeDujk4hDG5uvEdF44sRBzTak12x1J5W7YQxfSk,14128
104
106
  euporie/core/layout/mouse.py,sha256=VgOzavrQoCpNcPozCVx-o8yhNBODvANHNaIMGBijKeA,5169
105
107
  euporie/core/layout/print.py,sha256=gAqApRCTh13A74Uda7NoPAYCksacUzDnj6M2ftPyVig,5185
106
108
  euporie/core/layout/screen.py,sha256=0xP9ZErMcw51nPgBbrm-DSQqFq5WNvsh9fw1amz2Z28,2224
107
- euporie/core/layout/scroll.py,sha256=WMKnaY6ECIqPAOl9xdpNMzUwZncOyNCsVqwxYPqWVZs,32897
108
- euporie/core/tabs/__init__.py,sha256=eZRQcRy4cQs4Cgd1YeF9Q0yN7wtb6qjy5hC2yS6-ccA,928
109
- euporie/core/tabs/_settings.py,sha256=0oSzDwRu_SzmqUDCHp9Sy2JhU4HMA2zSjWLjc07OqAY,3156
110
- euporie/core/tabs/base.py,sha256=cFfeH0I2GtQzC9ItZeu9Sn9OP01n4WzzlYVmyG-KH_c,5077
111
- euporie/core/tabs/kernel.py,sha256=upavHFs7VuVzg_MSBa2-Tt8pjH32nKgCf3AWUyyWqOk,15646
112
- euporie/core/tabs/notebook.py,sha256=VXPtDe5-LEqPdaGazg2unai5EOybvJuhmYcXVXTNohQ,17035
109
+ euporie/core/layout/scroll.py,sha256=lAV6vf0tSM-shQyO79r2vF5MaTx4Ek7lRvaYRHTt47c,29145
110
+ euporie/core/tabs/__init__.py,sha256=7IzC_LLd-61JH6CBLDEeLhTtlEyFbQtgRqGbVUWBNP8,1176
111
+ euporie/core/tabs/_commands.py,sha256=M1emj8w8ni-_EfE3PHTWQ_SJR0VYXBMLgLExIpLXvZc,1903
112
+ euporie/core/tabs/_settings.py,sha256=MgC_WPy28g44PvhY_3Y1EwR7yikid4gEXZoV1Ydtq6w,3659
113
+ euporie/core/tabs/base.py,sha256=VnBM8CDdzufQPr51vC8BZOxDkFtlsrmmYBob9s9Q1LU,7713
114
+ euporie/core/tabs/kernel.py,sha256=gsaW_2GUWBeeUtrNOTrrr6He_ShkLcA5XjiDXdS_No8,17348
115
+ euporie/core/tabs/notebook.py,sha256=rZa2LRaCCEl3kb4hniQEQtly_uCBBF92dYFYcv8ID2g,15024
113
116
  euporie/core/widgets/__init__.py,sha256=ektso_Ea1-pZB04alUujQsa2r-kv8xAF0SmQOv_bvHQ,52
114
- euporie/core/widgets/_settings.py,sha256=ARwoXb80MCPRR4RHnDGcGMLQ9wvP5QZBikXLv7seVAY,4774
115
- euporie/core/widgets/cell.py,sha256=qjilhDW-l5DCUb6cZNUX9YGo8gkhq4WxTUxaUFFyW1c,33846
116
- euporie/core/widgets/cell_outputs.py,sha256=iRPd3jPnMZVBq7Zg7OHIhlDGmsS0jkfru37xwp8Nll0,17008
117
+ euporie/core/widgets/_settings.py,sha256=69ZJ6Ihl-HmyFPOyxGAL2HvxIASOJLEeOr8AuCtK48Q,5248
118
+ euporie/core/widgets/cell.py,sha256=rmwrfONJ-mLUB7UHqKVf9gwzHECtu-4y1YU9lEmW5RM,33876
119
+ euporie/core/widgets/cell_outputs.py,sha256=tIDBIWPnwavGlKDykDr_mOfbOgkpD94N_wV3RHVXGAA,17257
117
120
  euporie/core/widgets/decor.py,sha256=_K3bSNpvAFdn5ZZyNFVjZPv6QV4fNIlNMdRpYjc4MU0,7895
118
- euporie/core/widgets/dialog.py,sha256=iQ6A4yr2pui-R91RbvMBErwacj-ppnRFdYTb02k9_KQ,33100
119
- euporie/core/widgets/display.py,sha256=JnfMg3z1KcE23AnuRZziAnWVYkIIuFSJqF64Abf3GWw,21575
121
+ euporie/core/widgets/dialog.py,sha256=2yvNzDqDjsOBWVfeSgR4Lv1LC73tQIeI_qz2YIx7H1k,32987
122
+ euporie/core/widgets/display.py,sha256=Ht5INitUzG8-zY5jDbBNWarS_lgoH3559lJYS3OREtg,21557
120
123
  euporie/core/widgets/file_browser.py,sha256=jj8l5cpX7S6d1HlYXUg3TXdsvmhFneIOiotKpwCVgoQ,20050
121
124
  euporie/core/widgets/formatted_text_area.py,sha256=J7P_TNXPZKZkiBdjAVkPvkfRY1veXe4tzXU241k4b-Q,4037
122
- euporie/core/widgets/forms.py,sha256=kKrrkUh2aygJSuu_xAoA3z8Xh15M4U5W6F_lKg1Wc2I,85594
123
- euporie/core/widgets/inputs.py,sha256=As5VogmCy0ytMXMrVeth4K7Cu_fsN0K3WBDTjxOEwHw,20208
124
- euporie/core/widgets/layout.py,sha256=VVer3siFblvhG3IdsokQigjBNOasMJR-BzmnQYuU1LU,23538
125
+ euporie/core/widgets/forms.py,sha256=G_omvjVhbWjY0HYb8s7gs9MqPyABBwAJElyCACsHv_0,85850
126
+ euporie/core/widgets/inputs.py,sha256=Rmlv1Y9XHvbT1SoyI1zn1ltj_y8tqgl1kOAz2iuOkX0,20303
127
+ euporie/core/widgets/layout.py,sha256=jPChBUf8FEbj_c6RwBooaATFnecm_MrSTpJFkPxOFFQ,30521
125
128
  euporie/core/widgets/logo.py,sha256=VU9hSVAiguS5lI0EccQoPm8roAuQNgvFUO5IREvXWFo,1487
126
- euporie/core/widgets/menu.py,sha256=RExXL3-FSEQDAmKI7fDyF6B9wnQrm06gVEwOfvdwbWU,32880
129
+ euporie/core/widgets/menu.py,sha256=1vb7ORM3Avhx2k1D_QpSb4VtwjhBrmDQl1ZEJL3ub2s,34890
127
130
  euporie/core/widgets/pager.py,sha256=gEc68A_KSwttoXgI6d4JrXwRN4HsgTXxc0-i_QounjY,6413
128
- euporie/core/widgets/palette.py,sha256=gedT8628eMC9VgpGLNRQvmZbRWryJDMF-_7-bwb0rTg,10858
129
- euporie/core/widgets/tree.py,sha256=BG7QRsI2GzSJPReNQu9zWFjO0iy8TeJwrmCmP5dc2ek,3760
131
+ euporie/core/widgets/palette.py,sha256=Uv5n1Lvls7FnSZ_481L5zvkRsbSzzshhDmTy3gpNomQ,10950
132
+ euporie/core/widgets/tree.py,sha256=ql5vbpelnCWZacUk7kqdCK1uXfzRzLl34U2_hu65rUY,4288
130
133
  euporie/data/desktop/euporie-console.desktop,sha256=DI08G0Dl2s5asM6afWUfkKvO5YmcBm-pWQZzUHiNnqc,153
131
134
  euporie/data/desktop/euporie-notebook.desktop,sha256=RtpJzvizTDuOp0BLa2bLgVHx11LG6L7PL-oF-wHTsgU,155
132
135
  euporie/hub/__init__.py,sha256=NcrOlSFgI4y5gEbD4lFY-Ryd1K79EeMoeAp41A6tDT0,44
@@ -137,7 +140,7 @@ euporie/notebook/__init__.py,sha256=rOE71d95pym_ILYVg07NO9oDYbSB0AskxbC8cr4htiU,
137
140
  euporie/notebook/__main__.py,sha256=m2EnzIDLO4dHlDt41JNKpUvAUSw6wD-X0V3YhymXqxc,289
138
141
  euporie/notebook/_commands.py,sha256=YsymSk5a4lx_DmspJDxtYzKld8dNzqAUJTnH5rInCdE,595
139
142
  euporie/notebook/_settings.py,sha256=lVGMG9j2GawFi-SShv7qzs-WutGw2cFGP3XLGdXphII,2909
140
- euporie/notebook/app.py,sha256=WftQw3sxzmaAM_AsnSJ2FaV33wESn4i2iNxG9xm8CXw,18648
143
+ euporie/notebook/app.py,sha256=IjD7FPxdsd2NIgcMKWtrU-LlbviIRjYoUiEsRkaZ7QY,19409
141
144
  euporie/notebook/current.py,sha256=rQ_R9B0b8JmWILxEyGzGfuVY2iVkHTghq4qRiC-MYSU,387
142
145
  euporie/notebook/enums.py,sha256=g7quMch8KAlaaYJS0UppWqx6tx-ZFt7HxFcmEfam5OM,221
143
146
  euporie/notebook/filters.py,sha256=fHhPVVVX4aFbWfXB2UKlTjn-cMX-hJzkAQqZU3itm7g,1506
@@ -145,11 +148,11 @@ euporie/notebook/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
145
148
  euporie/notebook/tabs/__init__.py,sha256=JkFfg6tW3gbzRSUoC1lTeyDy_ZMHEfvknmvilW67UpA,1506
146
149
  euporie/notebook/tabs/_commands.py,sha256=wNPY84H_nWMO1fEwUuJ4oIK2wg4yfVmsA_y-ua3CZjM,19096
147
150
  euporie/notebook/tabs/_settings.py,sha256=-itfgWAk22SxA8ThdbVlHYfnv1PfYnvLTAKMjbJ90rs,766
148
- euporie/notebook/tabs/display.py,sha256=4xUrOmG8VrWtDBnpQpTopTr1aHFJ2icvWtxAaHSaeT8,2596
149
- euporie/notebook/tabs/edit.py,sha256=3gBjj-0nHRvT9iu9wByrtm-LwNP1aNNT4e_ZedcQnaA,6660
150
- euporie/notebook/tabs/json.py,sha256=ublrtQsrFBOSoLDurQQay9Ist5_9sf3FL8hSIwCx2_E,2192
151
+ euporie/notebook/tabs/display.py,sha256=SSRdbHPs34Wuu49WHnmJWmqT-lGiggB7Gf3_uvSFBHA,2572
152
+ euporie/notebook/tabs/edit.py,sha256=B-zsn-BqaMNLoFDiUhFpqTjIe-rAyh3XqyUzbCyxJCM,5107
153
+ euporie/notebook/tabs/json.py,sha256=MthLU28-xGO2mRP7_G3aAWb-nJZ9ek0C6mjW1uRCT28,2356
151
154
  euporie/notebook/tabs/log.py,sha256=jKgsvkCNdQJ-6PzbG1tbRK-pR8DazPoemARHkOfH7fU,3062
152
- euporie/notebook/tabs/notebook.py,sha256=JtyPtyHckJlxU-aDwRIlk1IHNbFzEFQ6JrHn1UWtdAs,24072
155
+ euporie/notebook/tabs/notebook.py,sha256=1LN1a7msmAlOxG0JZBCfgGqebkhY-HW2CKeM9zh0cZg,24606
153
156
  euporie/notebook/widgets/__init__.py,sha256=74tOl0bYuWkaKT-4pgD5zmdiIkoFYx8uGj4SxcLHLtQ,48
154
157
  euporie/notebook/widgets/_commands.py,sha256=9VjBlj7Uz2R3kCSKdLi0k7Cv9zpqDeNVPd1cH0ra4o4,266
155
158
  euporie/notebook/widgets/_settings.py,sha256=HiUQqBca3d4nrgfDZiCLnriV_PX4OZY8FJDjLZyUWzM,453
@@ -160,13 +163,16 @@ euporie/preview/_settings.py,sha256=_N3Dfzg5XOE_L-yq3HgAV68FKgz2nD1UHwLRXVSqI64,
160
163
  euporie/preview/app.py,sha256=jmmlrvkKN8ZK1277VGxbAc2ejZaXWj7FDN4loNl_dd0,7623
161
164
  euporie/preview/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
162
165
  euporie/preview/tabs/__init__.py,sha256=rY6DfQ-8qRo_AiICCD-zTyhJBnuMjawWDd8tRxR6q58,43
163
- euporie/preview/tabs/notebook.py,sha256=vbLKKssAB235xKWLgUNoaSBTjt0DbCcoJZjdCz3QaZM,6406
164
- euporie/web/tabs/web.py,sha256=pJ9AB9BnncYBSbj0SreMbKWGb2GfOz65jYzdcl4eDZc,5154
165
- euporie/web/widgets/webview.py,sha256=4LohRnbBNDK1603GcDYBASL6FyzPzQTfBW637IbXAvs,20414
166
- euporie-2.8.5.data/data/share/applications/euporie-console.desktop,sha256=DI08G0Dl2s5asM6afWUfkKvO5YmcBm-pWQZzUHiNnqc,153
167
- euporie-2.8.5.data/data/share/applications/euporie-notebook.desktop,sha256=RtpJzvizTDuOp0BLa2bLgVHx11LG6L7PL-oF-wHTsgU,155
168
- euporie-2.8.5.dist-info/METADATA,sha256=kOnH8_69FjDw0CuMKvU1RwveX4sWXQV6oBPcMvznY50,6430
169
- euporie-2.8.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
170
- euporie-2.8.5.dist-info/entry_points.txt,sha256=d53wF7X_94DSfKmr0Rq4MqWsSkDUko2TfCKpWUQ8ViA,790
171
- euporie-2.8.5.dist-info/licenses/LICENSE,sha256=qk66SWkX4TkJwDMw8-KC3KMkOScd_LTl-nQdlM-vjQM,1079
172
- euporie-2.8.5.dist-info/RECORD,,
166
+ euporie/preview/tabs/notebook.py,sha256=MRAP0g-1_r-361yM9GHy-i5-G8dtAg34iNazp1SlxSA,6482
167
+ euporie/web/__init__.py,sha256=wE-4WBbzcpWVu5YisLrUhYOn3ZlBK2YZryjc1r96qrY,38
168
+ euporie/web/tabs/__init__.py,sha256=0DbkceML8N_qefZFZB7CJQw_FX0gkuNdabQoEu0zV9E,340
169
+ euporie/web/tabs/web.py,sha256=CY8tfy_yrZYLWY2pEyOgJsqIHCfGIj9WVKnK6v9Jg8g,6195
170
+ euporie/web/widgets/__init__.py,sha256=xIxCPl9KiisYgsX-V1LvDT6BETZRF3nC-ZsP8DP7nOY,46
171
+ euporie/web/widgets/webview.py,sha256=WhV-e7CeTK3z8fw27cl-aqjeSckLXug1fUINBAkx8Gk,20469
172
+ euporie-2.8.7.data/data/share/applications/euporie-console.desktop,sha256=DI08G0Dl2s5asM6afWUfkKvO5YmcBm-pWQZzUHiNnqc,153
173
+ euporie-2.8.7.data/data/share/applications/euporie-notebook.desktop,sha256=RtpJzvizTDuOp0BLa2bLgVHx11LG6L7PL-oF-wHTsgU,155
174
+ euporie-2.8.7.dist-info/METADATA,sha256=DgLdP5Mssz27ASjUZK3Ubgcz3jmSGS6prfxdXRc2aDM,6515
175
+ euporie-2.8.7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
176
+ euporie-2.8.7.dist-info/entry_points.txt,sha256=cJPvjp7siwHeqCcCdu-Q9OCcsp4ylbLv0S4RP7g3Bf0,798
177
+ euporie-2.8.7.dist-info/licenses/LICENSE,sha256=yB-auuST68VxkNPXb-E7gVdFzOJShyBnoPyyveuAiYc,1079
178
+ euporie-2.8.7.dist-info/RECORD,,
@@ -13,7 +13,7 @@ notebook = euporie.notebook.app:NotebookApp
13
13
  preview = euporie.preview.app:PreviewApp
14
14
 
15
15
  [jupyter_client.kernel_provisioners]
16
- logging-local-provisioner = euporie.core.kernel.manager:LoggingLocalProvisioner
16
+ logging-local-provisioner = euporie.core.kernel.jupyter_manager:LoggingLocalProvisioner
17
17
 
18
18
  [pygments.lexers]
19
19
  argparse = euporie.core.pygments:ArgparseLexer
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2024 Josiah Outram Halstead
3
+ Copyright (c) 2025 Josiah Outram Halstead
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal