solara-ui 1.38.0__py2.py3-none-any.whl → 1.39.0__py2.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.
solara/__init__.py CHANGED
@@ -1,6 +1,6 @@
1
1
  """Build webapps using IPywidgets"""
2
2
 
3
- __version__ = "1.38.0"
3
+ __version__ = "1.39.0"
4
4
  github_url = "https://github.com/widgetti/solara"
5
5
  git_branch = "master"
6
6
 
@@ -11,7 +11,7 @@ from . import comm # noqa: F401
11
11
  def _using_solara_server():
12
12
  import sys
13
13
 
14
- if "solara.server" in sys.modules:
14
+ if "solara.server.starlette" in sys.modules or "solara.server.flask" in sys.modules:
15
15
  return True
16
16
  if sys.argv[0].split("/")[-1] == "solara":
17
17
  return True
solara/__main__.py CHANGED
@@ -17,6 +17,7 @@ from uvicorn.main import LEVEL_CHOICES, LOOP_CHOICES
17
17
 
18
18
  import solara
19
19
  from solara.server import settings
20
+ import solara.server.threaded
20
21
 
21
22
  from .server import telemetry
22
23
 
@@ -130,7 +131,11 @@ if "SOLARA_MODE" in os.environ:
130
131
 
131
132
 
132
133
  @cli.command()
133
- @click.option("--port", default=int(os.environ.get("PORT", 8765)))
134
+ @click.option(
135
+ "--port",
136
+ default=int(os.environ.get("PORT", 8765)),
137
+ help="Port to run the server on, 0 for a random free port, default to $PORT or 8765.",
138
+ )
134
139
  @click.option(
135
140
  "--host",
136
141
  default=settings.main.host,
@@ -302,6 +307,8 @@ def run(
302
307
  settings.ssg.enabled = ssg
303
308
  settings.search.enabled = search
304
309
  reload_dirs = restart_dirs if restart_dirs else None
310
+ if port == 0:
311
+ port = solara.server.threaded.get_free_port()
305
312
  del restart_dirs
306
313
  url = f"http://{host}:{port}"
307
314
 
solara/checks.py CHANGED
@@ -124,6 +124,9 @@ def SolaraCheck():
124
124
  def getcmdline(pid):
125
125
  # for linux
126
126
  if sys.platform == "linux":
127
+ # if /proc/{pid}/exe exists, follow the symlink
128
+ if os.path.exists(f"/proc/{pid}/exe"):
129
+ return os.readlink(f"/proc/{pid}/exe")
127
130
  with open(f"/proc/{pid}/cmdline", "rb") as f:
128
131
  return f.read().split(b"\00")[0].decode("utf-8")
129
132
  elif sys.platform == "darwin":
@@ -176,7 +179,7 @@ libraries_extra = [
176
179
  {"python": "bqplot", "classic": "bqplot/extension", "lab": "bqplot"},
177
180
  {"python": "ipyvolume", "classic": "ipyvolume/extension", "lab": "ipyvolume"},
178
181
  {"python": "ipywebrtc", "classic": "jupyter-webrtc", "lab": "jupyter-webrtc"},
179
- {"python": "ipyleaflet", "classic": "ipyleaflet/extension", "lab": "ipyleaflet"},
182
+ {"python": "ipyleaflet", "classic": "jupyter-leaflet/extension", "lab": "jupyter-leaflet"},
180
183
  ]
181
184
 
182
185
 
@@ -20,6 +20,14 @@ class EchartsWidget(ipyvuetify.VuetifyTemplate):
20
20
  on_mouseout = traitlets.Callable(None, allow_none=True)
21
21
  # same, for performance
22
22
  on_mouseout_enabled = traitlets.Bool(False).tag(sync=True)
23
+ cdn = traitlets.Unicode(None, allow_none=True).tag(sync=True)
24
+
25
+ @traitlets.default("cdn")
26
+ def _cdn(self):
27
+ import solara.settings
28
+
29
+ if not solara.settings.assets.proxy:
30
+ return solara.settings.assets.cdn
23
31
 
24
32
  def vue_on_click(self, data):
25
33
  if self.on_click is not None:
@@ -110,7 +110,7 @@ module.exports = {
110
110
  return base;
111
111
  },
112
112
  getCdn() {
113
- return window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`
113
+ return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);
114
114
  },
115
115
  },
116
116
  };
@@ -76,6 +76,12 @@ def _markdown_template(
76
76
  html,
77
77
  style="",
78
78
  ):
79
+ cdn = None
80
+ import solara.settings
81
+
82
+ if not solara.settings.assets.proxy:
83
+ cdn = solara.settings.assets.cdn
84
+
79
85
  template = (
80
86
  """
81
87
  <template>
@@ -89,6 +95,9 @@ def _markdown_template(
89
95
  <script>
90
96
  module.exports = {
91
97
  async mounted() {
98
+ this.cdn = """
99
+ + (rf"'{cdn}'" if cdn is not None else r"null")
100
+ + r""";
92
101
  await this.loadRequire();
93
102
  this.mermaid = await this.loadMermaid();
94
103
  this.mermaid.init();
@@ -11,6 +11,14 @@ class MarkdownEditorWidget(ipyvuetify.VuetifyTemplate):
11
11
 
12
12
  value = traitlets.Unicode("").tag(sync=True)
13
13
  height = traitlets.Unicode("180px").tag(sync=True)
14
+ cdn = traitlets.Unicode(None, allow_none=True).tag(sync=True)
15
+
16
+ @traitlets.default("cdn")
17
+ def _cdn(self):
18
+ import solara.settings
19
+
20
+ if not solara.settings.assets.proxy:
21
+ return solara.settings.assets.cdn
14
22
 
15
23
 
16
24
  @solara.component
@@ -264,7 +264,7 @@ module.exports = {
264
264
  return base
265
265
  },
266
266
  getCdn() {
267
- return window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`;
267
+ return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);
268
268
  },
269
269
  },
270
270
  };
@@ -13,6 +13,14 @@ class SqlCodeWidget(ipyvue.VueTemplate):
13
13
  query = traitlets.Unicode(allow_none=True, default_value=None).tag(sync=True)
14
14
  tables = traitlets.Dict(allow_none=True, default_value=None).tag(sync=True)
15
15
  height = traitlets.Unicode("180px").tag(sync=True)
16
+ cdn = traitlets.Unicode(None, allow_none=True).tag(sync=True)
17
+
18
+ @traitlets.default("cdn")
19
+ def _cdn(self):
20
+ import solara.settings
21
+
22
+ if not solara.settings.assets.proxy:
23
+ return solara.settings.assets.cdn
16
24
 
17
25
 
18
26
  @solara.component
@@ -100,7 +100,7 @@
100
100
  return base
101
101
  },
102
102
  getCdn() {
103
- return window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`;
103
+ return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);
104
104
  },
105
105
  }
106
106
  }
@@ -119,7 +119,7 @@ async def main():
119
119
  ]
120
120
  for dep in requirements:
121
121
  await micropip.install(dep, keep_going=True)
122
- await micropip.install("/wheels/solara-1.38.0-py2.py3-none-any.whl", keep_going=True)
122
+ await micropip.install("/wheels/solara-1.39.0-py2.py3-none-any.whl", keep_going=True)
123
123
  import solara
124
124
 
125
125
  el = solara.Warning("lala")
@@ -1,5 +1,16 @@
1
1
  # Solara Changelog
2
2
 
3
+ ## Version 1.38.0
4
+
5
+ * Feature: We detect and warn when there are possible reverse proxy or uvicorn misconfigurations. [#745](https://github.com/widgetti/solara/pull/745)
6
+ * Bug Fix: Auth redirect did not respect SOLARA_BASE_URL. [#747](https://github.com/widgetti/solara/pull/747)
7
+ * Bug Fix: Support for `websockets >= 13.0` and large cookies. [#751](https://github.com/widgetti/solara/pull/751)
8
+ * Bug Fix: Windows support was broken from version 1.35.0 to 1.37.2. This went undetected due to a CI configuration error. [#712](https://github.com/widgetti/solara/pull/712) [#739](https://github.com/widgetti/solara/pull/739)
9
+
10
+ ## Version 1.37.2
11
+
12
+ * Bug Fix: If matplotlib was imported before solara, we did not set the backend, now we do. [#741](https://github.com/widgetti/solara/pull/741)
13
+
3
14
  ## Version 1.37.1
4
15
 
5
16
  * Bug Fix: The newly introduced hooks validator could emit a warning on certain call syntax. This can fail CI pipelines that do now allow warnings [c7c3b6a](https://github.com/widgetti/solara/commit/c7c3b6ab2929c4da1ffc3ab8e2e423cf0cfa7567).
@@ -94,7 +94,7 @@ module.exports = {
94
94
  return base
95
95
  },
96
96
  getCdn() {
97
- return window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`;
97
+ return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);
98
98
  },
99
99
  }
100
100
  }
solara/widgets/widgets.py CHANGED
@@ -51,6 +51,14 @@ class GridLayout(v.VuetifyTemplate):
51
51
  grid_layout = traitlets.List(default_value=cast(List[Dict], [])).tag(sync=True)
52
52
  draggable = traitlets.CBool(True).tag(sync=True)
53
53
  resizable = traitlets.CBool(True).tag(sync=True)
54
+ cdn = traitlets.Unicode(None, allow_none=True).tag(sync=True)
55
+
56
+ @traitlets.default("cdn")
57
+ def _cdn(self):
58
+ import solara.settings
59
+
60
+ if not solara.settings.assets.proxy:
61
+ return solara.settings.assets.cdn
54
62
 
55
63
 
56
64
  class HTML(v.VuetifyTemplate):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: solara-ui
3
- Version: 1.38.0
3
+ Version: 1.39.0
4
4
  Dynamic: Summary
5
5
  Project-URL: Home, https://www.github.com/widgetti/solara
6
6
  Project-URL: Documentation, https://solara.dev
@@ -1,12 +1,12 @@
1
1
  prefix/etc/jupyter/jupyter_notebook_config.d/solara.json,sha256=3UhTBQi6z7F7pPjmqXxfddv79c8VGR9H7zStDLp6AwY,115
2
2
  prefix/etc/jupyter/jupyter_server_config.d/solara.json,sha256=D9J-rYxAzyD5GOqWvuPjacGUVFHsYtTfZ4FUbRzRvIA,113
3
- solara/__init__.py,sha256=j-Z-TmP3BAoJhQdzGoCQ9HfcvS9NqwfDGQfJV_Sdn5I,3597
4
- solara/__main__.py,sha256=hxMYlUg-t-KTOJSVfEHwvcTV51WHX6INpN0F_qaesUg,23672
3
+ solara/__init__.py,sha256=KRE2wTpcTbl-KKxVs9RPD6xOA0Yt5nvjW8hFlusf94g,3647
4
+ solara/__main__.py,sha256=6ZmzjN3qiBTlR4triE69008KY-TvSFPKqepZyOL4WoY,23876
5
5
  solara/alias.py,sha256=9vfLzud77NP8in3OID9b5mmIO8NyrnFjN2_aE0lSb1k,216
6
6
  solara/autorouting.py,sha256=iQ-jP5H-kdu1uZyLEFeiHG1IsOLZLzwKVtQPyXSgGSM,23093
7
7
  solara/cache.py,sha256=rZEW_xVIj3vvajntsQDnaglniTQ90izkX8vOqe1mMvE,10500
8
8
  solara/checks.html,sha256=NZoefOKYpE6NHQJchi4WE5HkDG3xpJW0kY6TOAFHQtE,3304
9
- solara/checks.py,sha256=WtMzUM1HN127juk5fFV2jdsJ1qT5Ghg21wEZfiVfIFc,7563
9
+ solara/checks.py,sha256=DaOJFkzXvqtQ3XI8q4lje7_gADB6lcRyBm-a8tfizRM,7727
10
10
  solara/comm.py,sha256=BhHFO1fBfFP0cOKxx_oKUr6-8UqpfGZbVaofYxIXrS8,765
11
11
  solara/core.py,sha256=7CeEG6GDLxwAbNauKJNNLUlZhXG4VO4Gu3F9C6sA6ZM,1430
12
12
  solara/datatypes.py,sha256=xHHjObTEf4Ar3e4Euvi0sA7UWDSbNTXuyLIf_0wcDs8,4186
@@ -39,8 +39,8 @@ solara/components/datatable.py,sha256=A64-BRM3d8ZKUURbYSfHCsqqJg7MKQhFpnJ9uqCBGM
39
39
  solara/components/datatable.vue,sha256=xoIT7tS2QSKgJHt0kHRODsDx81S9SEwk1EoVM9sgFWg,7061
40
40
  solara/components/details.py,sha256=KsGATbjlLNn9X490o8n55njy_VCE8RnL3Hx08Lsu4Kk,1587
41
41
  solara/components/download.vue,sha256=xdh4olwVvGkQwGNRMU5eVUW1FGvcXrYrCyjddJbvH7E,1069
42
- solara/components/echarts.py,sha256=yaj3dQ1OiPD2XqpL_iPa545NRhgnmjJlz4-BqSdvsEw,2625
43
- solara/components/echarts.vue,sha256=ogs-9-aurH_VXXV4YBvi-pPX-ZEt1jZaU7M7kZaDpkA,3552
42
+ solara/components/echarts.py,sha256=im5amSvl3Jfr_VoBEazOoGLFiB2dFh3QZIV_AKPG6kM,2865
43
+ solara/components/echarts.vue,sha256=EzBpAYR2Gs_sKH4Lq0WCA3Hu0uVkfKeR7R7-u0mB-cQ,3567
44
44
  solara/components/figure_altair.py,sha256=t4EEwXrdoisrbV5j2MS-HBlPc5HSFCK5r4mRXvYRH9w,1150
45
45
  solara/components/file_browser.py,sha256=701vg4_c0au9va206sx3pQDX6NL1VFqs7ewQ0RAbn6k,7331
46
46
  solara/components/file_download.py,sha256=Lil0qyiozU_Pxyb_HgnJXOumrxMeDwwavEmZZw6kAs8,7475
@@ -53,9 +53,9 @@ solara/components/head_tag.vue,sha256=vw0PJzAajq1XbyKhrTakfzJGF_beXAjupkFXPKJbVD
53
53
  solara/components/image.py,sha256=o44iu0_wv3cPKnKv47mw10d2f67vuBaW2Jhs775hNAM,4503
54
54
  solara/components/input.py,sha256=wzpJXEH9MYVtZetqJQd4MTfRhsjg_juCpdiD4VHhZ0c,14593
55
55
  solara/components/link.py,sha256=bYXVencL9hjBcrGniXdE0JlSzBE9bkUFFmd4apfYhjk,1842
56
- solara/components/markdown.py,sha256=agHcpMxBLDn7JJeb42GHDUwF2mVP7KOZ4fcKBOuruWo,12959
57
- solara/components/markdown_editor.py,sha256=Ii_IVzl99JBVqegRu1aHdOC-hTIzbHXzuNKlRVvAEx0,634
58
- solara/components/markdown_editor.vue,sha256=_QXDv1EdyFNCZdXTZL5dPDm8kCHNl2xT1jioEnHgaMg,8748
56
+ solara/components/markdown.py,sha256=nZ4R2d72Hb9xOC_zYDsAUg8voIAZ8cn9ni0QpxbInFc,13180
57
+ solara/components/markdown_editor.py,sha256=egsCsxeAuot2oolSLt_XjTUmg6S4YCtArQUIbQ9YC6E,874
58
+ solara/components/markdown_editor.vue,sha256=i_317ijGzZBX33ggtmKxkZR1dXgMDiv6kg8xApNsijM,8762
59
59
  solara/components/matplotlib.py,sha256=c7iQhOIG_8aKTOz_Xnw3wXa0sgfiBunIzOxRhljQlzw,2029
60
60
  solara/components/meta.py,sha256=IFE2EINt8YVxZOyKkCKhu68nc3-ri5d2OzsDjoH9EAI,1655
61
61
  solara/components/misc.py,sha256=_az9Jetk9lb0WgNFrbM4dKxzaxj1h7QS7z6k6yAbXLQ,12473
@@ -68,8 +68,8 @@ solara/components/slider.py,sha256=LPuTjOWojg-S-6Tib2PnCdyoZ0sLRyuENPtRAIBcqrk,1
68
68
  solara/components/slider_date.vue,sha256=TJsDmZqsXCET61JlVCYqmkWVWDlu6NSfQii9ZcAlMYA,1351
69
69
  solara/components/spinner-solara.vue,sha256=fH8AtwXUZf_YZnUj-1OWspcbVWc-mSbY2T5sebRmKrU,2928
70
70
  solara/components/spinner.py,sha256=EGB9qL6WnNchaEc8RnjPk79jm5TV9v_7UoEoDZKikBM,586
71
- solara/components/sql_code.py,sha256=XUx91w_E7q6QzOPpY1NZVuCNPh6hPP6gPJLM7cMDYs4,1190
72
- solara/components/sql_code.vue,sha256=ogqWdIOm1OnTQJj_p2UhcFPO_biv1uMaYCOCXPBJ6AQ,3815
71
+ solara/components/sql_code.py,sha256=yfg616G9HsPGLDmvxDvpqukMpFnjJogZfTn99H9aQko,1430
72
+ solara/components/sql_code.vue,sha256=Y7WU-wh7abZDymAy0Q1P3aOqk3t0YBUFm-0ODbRjzcQ,3829
73
73
  solara/components/style.py,sha256=8xv5xXkfiTyVP0oRRh1ONQn0oJ2k40yTomQFEgP0-3k,3144
74
74
  solara/components/switch.py,sha256=Vq6LgroaY3jx4PO2n1_08lqPL9g0MUZNsMPA4uqKr7I,2309
75
75
  solara/components/tab_navigation.py,sha256=xVlVx4GvLNNxeE53sGtRLkcQB3mzEWM_jTlXOnY3SEs,1047
@@ -137,7 +137,7 @@ solara/server/static/highlight-dark.css,sha256=gmC3pr3x2BqJgTswNoN6AkqfEhBk24hPF
137
137
  solara/server/static/highlight.css,sha256=k8ZdT5iwrGQ5tXTQHAXuxvZrSUq3kwCdEpy3mlFoZjs,2637
138
138
  solara/server/static/main-vuetify.js,sha256=-FLlUqclZdVhCXsqawzpxtQ9vpaDA6KQdwoDKJCr_AI,8926
139
139
  solara/server/static/main.js,sha256=mcx4JNQ4Lg4pNdUIqMoZos1mZyYFS48yd_JNFFJUqIE,5679
140
- solara/server/static/solara_bootstrap.py,sha256=x2DaqAbQuZ9aEugW1efIYP8FghP6UoblytAujsjNzu4,3195
140
+ solara/server/static/solara_bootstrap.py,sha256=wWouOwndvaHlUZibxQH6pGO9Sx_wVU9mlO9BISGia18,3195
141
141
  solara/server/static/sun.svg,sha256=jEKBAGCr7b9zNYv0VUb7lMWKjnU2dX69_Ye_DZWGXJI,6855
142
142
  solara/server/static/webworker.js,sha256=cjAFz7-SygStHJnYlJUlJs-gE_7YQeQ-WBDcmKYyjvo,1372
143
143
  solara/server/templates/index.html.j2,sha256=JXQo1M-STFHLBOFetgG7509cAq8xUP0VAEtYDzz35fY,31
@@ -206,7 +206,7 @@ solara/website/pages/apps/multipage/__init__.py,sha256=zljTAXbsV8hqb67dwmx_PhzN-
206
206
  solara/website/pages/apps/multipage/page1.py,sha256=5hK0RZ8UBBOaZcPKaplbLeb0VvaerhB6m3Jn5C0afRM,872
207
207
  solara/website/pages/apps/multipage/page2.py,sha256=uRJ8YPFyKy7GR_Ii8DJSx3akb3H15rQAJZETMt9jVEk,1422
208
208
  solara/website/pages/changelog/__init__.py,sha256=iBCpD5LVrFxQtEHX116u_6vqNBktZD3AXR65eTZblFo,227
209
- solara/website/pages/changelog/changelog.md,sha256=u9GqLFx48DXxw4BQieG_e2oG7QGRIWj0fzZ8mD2NFbk,18730
209
+ solara/website/pages/changelog/changelog.md,sha256=0AnEvNrI2bm9SuvgpoNe-AdfRUPGWejNbkSBEOXmwAQ,19531
210
210
  solara/website/pages/contact/__init__.py,sha256=L6o45fHAMClqyWdHWxI6JuiwUTP-U-yXCgd3lxMUcxA,223
211
211
  solara/website/pages/contact/contact.md,sha256=zp66RGhOE_tdkRaWKZqGbuk-PnOqBWhDVvX5zSLXoHw,798
212
212
  solara/website/pages/documentation/__init__.py,sha256=zJh3kmr6OhFPbax8Igp-LN-m9cZNrs9sq9ifFuC8Kic,6003
@@ -431,14 +431,14 @@ solara/website/public/social/github.svg,sha256=XGlfnNccpMHYjfji25r5UW9FvS9pYPR1H
431
431
  solara/website/public/social/twitter.svg,sha256=3Ub5a29H_NM2g7ed3689rKHU-K66PA8r3hWExpzGmdQ,430
432
432
  solara/website/templates/index.html.j2,sha256=NYBuEHmKeSju-b3apY0h3FEJ-tnGDhrnkY-0cZ92Rro,4358
433
433
  solara/widgets/__init__.py,sha256=D3RfEez9dllmst64_nyzzII-NZXoNMEPDnEog4ov3VE,43
434
- solara/widgets/widgets.py,sha256=wIApVzltULe9WHc4lXxZ7_9-ArwsqoQ7ravfmDsnrt0,2212
435
- solara/widgets/vue/gridlayout.vue,sha256=nFZJotdznqI9tUYZ1Elv9OLA0adazxvVZAggMHHCK5E,3427
434
+ solara/widgets/widgets.py,sha256=AIRcMhSDFpESQ1JzUszlb2NH5FwSImLnmd4kqcc9jkY,2452
435
+ solara/widgets/vue/gridlayout.vue,sha256=hk10RsEQBxkknTmqa0wtBia9LWQGdDsXlejnAj7USU8,3441
436
436
  solara/widgets/vue/html.vue,sha256=48K5rjp0AdJDeRV6F3nOHW3J0WXPeHn55r5pGClK2fU,112
437
437
  solara/widgets/vue/navigator.vue,sha256=SLrzBI0Eiys-7maXA4e8yyD13-O5b4AnCGE9wKuJDHE,3646
438
438
  solara/widgets/vue/vegalite.vue,sha256=E3dlfhR-Ol7nqQZN6wCZC_3Tz98CJW0i_EU39mj0XHw,3986
439
- solara_ui-1.38.0.data/data/etc/jupyter/jupyter_notebook_config.d/solara.json,sha256=3UhTBQi6z7F7pPjmqXxfddv79c8VGR9H7zStDLp6AwY,115
440
- solara_ui-1.38.0.data/data/etc/jupyter/jupyter_server_config.d/solara.json,sha256=D9J-rYxAzyD5GOqWvuPjacGUVFHsYtTfZ4FUbRzRvIA,113
441
- solara_ui-1.38.0.dist-info/METADATA,sha256=tfBvwmDVV6UFhPMLFYz4-736RP2kpcnXpoT34B8Ee4s,7284
442
- solara_ui-1.38.0.dist-info/WHEEL,sha256=L5_n4Kc1NmrSdVgbp6hdnwwVwBnoYOCnbHBRMD-qNJ4,105
443
- solara_ui-1.38.0.dist-info/licenses/LICENSE,sha256=fFJUz-CWzZ9nEc4QZKu44jMEoDr5fEW-SiqljKpD82E,1086
444
- solara_ui-1.38.0.dist-info/RECORD,,
439
+ solara_ui-1.39.0.data/data/etc/jupyter/jupyter_notebook_config.d/solara.json,sha256=3UhTBQi6z7F7pPjmqXxfddv79c8VGR9H7zStDLp6AwY,115
440
+ solara_ui-1.39.0.data/data/etc/jupyter/jupyter_server_config.d/solara.json,sha256=D9J-rYxAzyD5GOqWvuPjacGUVFHsYtTfZ4FUbRzRvIA,113
441
+ solara_ui-1.39.0.dist-info/METADATA,sha256=SUGUu-5ierj_oRBBe3vk4ithvQaunMQY29puFuMa9qA,7284
442
+ solara_ui-1.39.0.dist-info/WHEEL,sha256=L5_n4Kc1NmrSdVgbp6hdnwwVwBnoYOCnbHBRMD-qNJ4,105
443
+ solara_ui-1.39.0.dist-info/licenses/LICENSE,sha256=fFJUz-CWzZ9nEc4QZKu44jMEoDr5fEW-SiqljKpD82E,1086
444
+ solara_ui-1.39.0.dist-info/RECORD,,