solara-ui 1.34.1__py2.py3-none-any.whl → 1.35.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.34.1"
3
+ __version__ = "1.35.0"
4
4
  github_url = "https://github.com/widgetti/solara"
5
5
  git_branch = "master"
6
6
 
@@ -342,7 +342,7 @@ def AppLayout(
342
342
  ):
343
343
  if not show_app_bar:
344
344
  AppIcon(sidebar_open, on_click=lambda: set_sidebar_open(not sidebar_open))
345
- v.Html(tag="div", children=children_sidebar, style_="padding: 12px;").meta(ref="sidebar-content")
345
+ v.Html(tag="div", children=children_sidebar, style_="padding: 12px; height: 100%").meta(ref="sidebar-content")
346
346
  if show_app_bar:
347
347
  # if hide_on_scroll is True, and we have a little bit of scrolling, vuetify seems to act strangely
348
348
  # when scrolling (on @mariobuikhuizen/vuetify v2.2.26-rc.0
@@ -51,12 +51,12 @@ class FileListWidget(vy.VuetifyTemplate):
51
51
  @solara.component
52
52
  def FileBrowser(
53
53
  directory: Union[None, str, Path, solara.Reactive[Path]] = None,
54
- on_directory_change: Callable[[Path], None] = None,
55
- on_path_select: Callable[[Optional[Path]], None] = None,
56
- on_file_open: Callable[[Path], None] = None,
54
+ on_directory_change: Optional[Callable[[Path], None]] = None,
55
+ on_path_select: Optional[Callable[[Optional[Path]], None]] = None,
56
+ on_file_open: Optional[Callable[[Path], None]] = None,
57
57
  filter: Callable[[Path], bool] = lambda x: True,
58
58
  directory_first: bool = False,
59
- on_file_name: Callable[[str], None] = None,
59
+ on_file_name: Optional[Callable[[str], None]] = None,
60
60
  start_directory=None,
61
61
  can_select=False,
62
62
  ):
@@ -98,11 +98,11 @@ def FileBrowser(
98
98
  scroll_pos, set_scroll_pos = solara.use_state(0)
99
99
  selected, set_selected = solara.use_state(None)
100
100
 
101
- def change_dir(new_dir: str):
101
+ def change_dir(new_dir: Path):
102
102
  if os.access(new_dir, os.R_OK):
103
- current_dir.value = Path(new_dir)
103
+ current_dir.value = new_dir
104
104
  if on_directory_change:
105
- on_directory_change(Path(new_dir))
105
+ on_directory_change(new_dir)
106
106
  set_warning(None)
107
107
  return True
108
108
  else:
@@ -114,8 +114,7 @@ def FileBrowser(
114
114
  on_path_select(None)
115
115
  return
116
116
  if item["name"] == "..":
117
- current_dir_str = str(current_dir.value)
118
- new_dir = current_dir_str[: current_dir_str.rfind(os.path.sep)]
117
+ new_dir = current_dir.value.parent
119
118
  action_change_directory = (can_select and double_click) or (not can_select and not double_click)
120
119
  if action_change_directory and change_dir(new_dir):
121
120
  if scroll_pos_stack:
@@ -128,17 +127,17 @@ def FileBrowser(
128
127
  on_path_select(None)
129
128
  if can_select and not double_click:
130
129
  if on_path_select:
131
- on_path_select(Path(new_dir))
130
+ on_path_select(new_dir)
132
131
  return
133
132
 
134
- path = os.path.join(current_dir.value, item["name"])
133
+ path = current_dir.value / item["name"]
135
134
  is_file = item["is_file"]
136
135
  if (can_select and double_click) or (not can_select and not double_click):
137
136
  if is_file:
138
137
  if on_file_open:
139
- on_file_open(Path(path))
138
+ on_file_open(path)
140
139
  if on_file_name is not None:
141
- on_file_name(path)
140
+ on_file_name(str(path))
142
141
  else:
143
142
  if change_dir(path):
144
143
  set_scroll_pos_stack(scroll_pos_stack + [scroll_pos])
@@ -149,7 +148,7 @@ def FileBrowser(
149
148
  on_path_select(None)
150
149
  elif can_select and not double_click:
151
150
  if on_path_select:
152
- on_path_select(Path(path))
151
+ on_path_select(path)
153
152
  else: # not can_select and double_click is ignored
154
153
  raise RuntimeError("Combination should not happen") # pragma: no cover
155
154
 
@@ -185,10 +185,7 @@ module.exports = {
185
185
  document.head.appendChild(script);
186
186
  });
187
187
  },
188
- getBaseUrl() {
189
- if (window.solara && window.solara.rootPath !== undefined) {
190
- return solara.rootPath + "/";
191
- }
188
+ getJupyterBaseUrl() {
192
189
  // if base url is set, we use ./ for relative paths compared to the base url
193
190
  if (document.getElementsByTagName("base").length) {
194
191
  return "./";
@@ -205,7 +202,7 @@ module.exports = {
205
202
  return base
206
203
  },
207
204
  getCdn() {
208
- return this.cdn || (typeof solara_cdn !== "undefined" && solara_cdn) || `${this.getBaseUrl()}_solara/cdn`;
205
+ return this.cdn || (window.solara ? window.solara.cdn : `${this.getJupyterBaseUrl()}_solara/cdn`);
209
206
  }
210
207
  },
211
208
  updated() {
@@ -1,4 +1,5 @@
1
1
  import logging
2
+ import os
2
3
  import pathlib
3
4
  import shutil
4
5
 
@@ -22,7 +23,16 @@ def put_in_cache(base_cache_dir: pathlib.Path, path, data: bytes):
22
23
 
23
24
 
24
25
  def get_from_cache(base_cache_dir: pathlib.Path, path):
25
- cache_path = base_cache_dir / path
26
+ cache_path = pathlib.Path(base_cache_dir / path)
27
+ # Make sure cache_path is a subdirectory of base_cache_dir
28
+ # so we don't accidentally read files from the parent directory
29
+ # which is a security risk.
30
+ # We use os.path.normpath() because we do not want to follow symlinks
31
+ # in editable installs, since some packages are symlinked
32
+ if not os.path.normpath(cache_path).startswith(str(base_cache_dir.resolve())):
33
+ logger.warning("Trying to read from outside of cache directory: %s is not a subdir of %s", cache_path, base_cache_dir)
34
+ raise PermissionError("Trying to read from outside of cache directory")
35
+
26
36
  try:
27
37
  logger.info("Opening cache file: %s", cache_path)
28
38
  return cache_path.read_bytes()
solara/server/esm.py CHANGED
@@ -40,7 +40,7 @@ def get_module_names():
40
40
  def create_modules():
41
41
  kernel_id = kernel_context.get_current_context().id
42
42
  _modules_added = _modules_added_per_kernel[kernel_id]
43
- logger.info("define modules %s", _modules)
43
+ logger.info("create modules %s", _modules)
44
44
  widgets = {}
45
45
  with lock:
46
46
  for name, (module, dependencies) in _modules.items():
@@ -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.34.1-py2.py3-none-any.whl", keep_going=True)
122
+ await micropip.install("/wheels/solara-1.35.0-py2.py3-none-any.whl", keep_going=True)
123
123
  import solara
124
124
 
125
125
  el = solara.Warning("lala")
solara/server/threaded.py CHANGED
@@ -2,15 +2,24 @@ import logging
2
2
  import threading
3
3
  import time
4
4
  from typing import Optional
5
+ import socket
5
6
 
6
7
  logger = logging.getLogger("solara.server.threaded")
7
8
 
8
9
 
10
+ def get_free_port():
11
+ sock = socket.socket()
12
+ sock.bind(("", 0))
13
+ port = sock.getsockname()[1]
14
+ sock.close()
15
+ return port
16
+
17
+
9
18
  class ServerBase(threading.Thread):
10
19
  name = "not set"
11
20
 
12
21
  def __init__(self, port: int, host: str = "localhost", **kwargs):
13
- self.port = port
22
+ self.port = get_free_port() if port == 0 else port
14
23
  self.host = host
15
24
  self.base_url = f"http://{self.host}:{self.port}"
16
25
 
@@ -37,6 +37,7 @@ logger = logging.getLogger("solara.pytest_plugin")
37
37
  TEST_PORT_START = int(os.environ.get("PORT", "18765")) + 100 # do not interfere with the solara integration tests
38
38
  TEST_HOST = solara.server.settings.main.host
39
39
  TIMEOUT = float(os.environ.get("SOLARA_PW_TIMEOUT", "18"))
40
+ PYTEST_IPYWIDGETS_SOLARA_APP_WAIT_TIMEOUT = int(os.environ.get("PYTEST_IPYWIDGETS_SOLARA_APP_WAIT_TIMEOUT", "10"))
40
41
 
41
42
 
42
43
  @pytest.fixture(scope="session")
@@ -192,7 +193,7 @@ def _solara_test(solara_server, solara_app, page_session: "playwright.sync_api.P
192
193
  run_events[id] = run_event = threading.Event()
193
194
  page_session.goto(solara_server.base_url + f"?id={id}")
194
195
  try:
195
- assert run_event.wait(10)
196
+ assert run_event.wait(PYTEST_IPYWIDGETS_SOLARA_APP_WAIT_TIMEOUT)
196
197
  context = used_contexts[id]
197
198
  with context:
198
199
  test_output_warmup = widgets.Output()
@@ -1,5 +1,11 @@
1
1
  # Solara Changelog
2
2
 
3
+ ## Version 1.34.1
4
+
5
+ * Bug Fix: Using `SOLARA_ASSETS_PROXY=False` (default on [py.cafe](https://py.cafe)) would break grid layout. [#705](https://github.com/widgetti/solara/pull/705)
6
+ * Bug Fix: Hot reload work in more situations on Linux. [#702](https://github.com/widgetti/solara/pull/702)
7
+
8
+
3
9
  ## Version 1.34.0
4
10
 
5
11
  * Feature: Enhancements for Solara `InputDate` and `InputDateRange` components [#672](https://github.com/widgetti/solara/pull/672):
@@ -411,3 +411,7 @@ To configure the ports the socket is bound to when starting the test servers, us
411
411
  #### Vuetify warmup
412
412
 
413
413
  By default, we insert an ipyvuetify widget with an icon into the frontend to force loading all the vuetify assets, such as CSS and fonts. However, if you are using the solara test plugin to test pure ipywidgets or a 3rd ipywidget based party library you might not need this. Disable this vuetify warmup phase by passing the `--no-solara-vuetify-warmup` argument to pytest, or setting the environment variable `SOLARA_TEST_VUETIFY_WARMUP` to a falsey value (e.g. `SOLARA_TEST_VUETIFY_WARMUP=0`).
414
+
415
+ #### Changing the application wait timeout
416
+
417
+ By default, we wait for 10 seconds for the browser to connect to the server when the solara server is used for testing. On slower systems, this may be too short. To change this timeout, set the `PYTEST_IPYWIDGETS_SOLARA_APP_WAIT_TIMEOUT` environment variable to the desired value in seconds (e.g. `PYTEST_IPYWIDGETS_SOLARA_APP_WAIT_TIMEOUT=20`).
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: solara-ui
3
- Version: 1.34.1
3
+ Version: 1.35.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,6 +1,6 @@
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=v8fBJkfXZVb1DFOx-aQqbbTGUKHnrTrh6DAscLmXObs,3584
3
+ solara/__init__.py,sha256=SDPK0vT6QxeWzzWF9qbyAr5f9oYiBkHmqlY1dPqwMVc,3584
4
4
  solara/__main__.py,sha256=_RSUhoxkTruY4MMlSJ9qBKWdsgNSasuYs1EBbufnNrM,23656
5
5
  solara/alias.py,sha256=9vfLzud77NP8in3OID9b5mmIO8NyrnFjN2_aE0lSb1k,216
6
6
  solara/autorouting.py,sha256=IXNqJBaKjniuQIHGq_LSqoWXec9qq34t2b6UEqj4YBE,22677
@@ -23,7 +23,7 @@ solara/toestand.py,sha256=cGVw1TAX_Kn9u2IN_GHhCPEOP8W3N0PwA-WHuvk8EgU,23570
23
23
  solara/util.py,sha256=ex3Hggy-kTQa4DTEMDlhFTihzqnTfjxWCbHk0ihaZSM,8934
24
24
  solara/components/__init__.py,sha256=kVFPHiqv0-G_jQoL5NJnYskB9l9_2Y9jxVP3fFY8cVg,2636
25
25
  solara/components/alert.py,sha256=sNjlrCu2niR6LD9gZFXwvSBMszCKt6nRH58kE7RgsDw,5144
26
- solara/components/applayout.py,sha256=cBYK0JuXAiYO2mGNvjGFOWXMkB6HyRVSwd140Hs4Gw8,16740
26
+ solara/components/applayout.py,sha256=Q1n8foPT1szjIKqjUum6QxFnUvNj_MheMmyc8r7FIsI,16753
27
27
  solara/components/button.py,sha256=8Q4s3cD7mULDzASAmUlKGAOcOuXgDFHJMC1PJS5DHYc,3143
28
28
  solara/components/card.py,sha256=2xNXrIRJ4jGJtRbirX1Xp8V2h3HtW9vnxhLGUCrPr9I,2797
29
29
  solara/components/checkbox.py,sha256=MLQ9Hxvtv5aKLj4XO3ILWtGc6nKOUH560A2bBt0Z030,1445
@@ -40,7 +40,7 @@ solara/components/download.vue,sha256=xdh4olwVvGkQwGNRMU5eVUW1FGvcXrYrCyjddJbvH7
40
40
  solara/components/echarts.py,sha256=yaj3dQ1OiPD2XqpL_iPa545NRhgnmjJlz4-BqSdvsEw,2625
41
41
  solara/components/echarts.vue,sha256=ogs-9-aurH_VXXV4YBvi-pPX-ZEt1jZaU7M7kZaDpkA,3552
42
42
  solara/components/figure_altair.py,sha256=t4EEwXrdoisrbV5j2MS-HBlPc5HSFCK5r4mRXvYRH9w,1150
43
- solara/components/file_browser.py,sha256=Rj9YpGHU365GPcOJUTyI_0S1FQyWv8FSvq7TMLUwl2o,7410
43
+ solara/components/file_browser.py,sha256=701vg4_c0au9va206sx3pQDX6NL1VFqs7ewQ0RAbn6k,7331
44
44
  solara/components/file_download.py,sha256=Lil0qyiozU_Pxyb_HgnJXOumrxMeDwwavEmZZw6kAs8,7475
45
45
  solara/components/file_drop.py,sha256=3j8TkhGZK21lqpjOAc9tNMsvKjmUNhr7YUKbGB99Y1Q,4711
46
46
  solara/components/file_drop.vue,sha256=ywQvWjqLIRNMAL6ZrdLpHCK4ZprrVbh0n2AJFanVlR8,2243
@@ -51,7 +51,7 @@ solara/components/head_tag.vue,sha256=vw0PJzAajq1XbyKhrTakfzJGF_beXAjupkFXPKJbVD
51
51
  solara/components/image.py,sha256=o44iu0_wv3cPKnKv47mw10d2f67vuBaW2Jhs775hNAM,4503
52
52
  solara/components/input.py,sha256=wzpJXEH9MYVtZetqJQd4MTfRhsjg_juCpdiD4VHhZ0c,14593
53
53
  solara/components/link.py,sha256=bYXVencL9hjBcrGniXdE0JlSzBE9bkUFFmd4apfYhjk,1842
54
- solara/components/markdown.py,sha256=XV3ph86-DQaFoiEl1kHbb7uRV0A0hNGscI7cRMjZ2jk,13093
54
+ solara/components/markdown.py,sha256=agHcpMxBLDn7JJeb42GHDUwF2mVP7KOZ4fcKBOuruWo,12959
55
55
  solara/components/markdown_editor.py,sha256=Ii_IVzl99JBVqegRu1aHdOC-hTIzbHXzuNKlRVvAEx0,634
56
56
  solara/components/markdown_editor.vue,sha256=_QXDv1EdyFNCZdXTZL5dPDm8kCHNl2xT1jioEnHgaMg,8748
57
57
  solara/components/matplotlib.py,sha256=c7iQhOIG_8aKTOz_Xnw3wXa0sgfiBunIzOxRhljQlzw,2029
@@ -102,8 +102,8 @@ solara/scope/__init__.py,sha256=0sP3B6L4Aai0b6nadPtEETb8XqdGmSFKvQusNH0-yvY,2987
102
102
  solara/scope/types.py,sha256=HTf_wnkpkhhtGaeFsB690KBP623CUuqiMssd72-u9yg,1540
103
103
  solara/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
104
104
  solara/server/app.py,sha256=6cWds871ZTD-zT5H2p3ep0cXX9AqT2VnKk3kIEbek60,20336
105
- solara/server/cdn_helper.py,sha256=fbFmwjh2w708fKEQzLFewcXWFA-dZmdSEQrJ-3Ix_PU,2487
106
- solara/server/esm.py,sha256=W2qDIRsygSVKb5qEu2KyxpX-4E6sXFreZsBbPLZTKT4,2951
105
+ solara/server/cdn_helper.py,sha256=BvqxkA3jKi1fEZ5g3FZjphx2NY6PnoxnSCG9JK6zdBE,3101
106
+ solara/server/esm.py,sha256=dX9pzTJQ6kd6qNHQgzC938O5LTowLhuATXO0Q1paz44,2951
107
107
  solara/server/fastapi.py,sha256=qVIHn0_Kxr6zWqcBWySu5nnJ6pNTSDqb4EHIh-cqH_8,93
108
108
  solara/server/flask.py,sha256=7VsZ12XouYJvlObZ-ZotL4aupXWQE7OsyghJynWr0wk,9027
109
109
  solara/server/jupytertools.py,sha256=cYFIUjLX7n0uuEXqWVWvmV6sV7R_MNg8ZZlabQgw8vk,1320
@@ -116,7 +116,7 @@ solara/server/settings.py,sha256=8QpVW_hYe4QvSVvDMeobpUEFa_jjCAGrSKgCGzjZ3As,734
116
116
  solara/server/shell.py,sha256=xKox0fvDxdcWleE8p2ffCkihvjLJsWn2FujMbgUjYn0,8677
117
117
  solara/server/starlette.py,sha256=8cVrYxkt2hm7RaO9E12wHAqabK_viLPSbgUUXA19fRA,23599
118
118
  solara/server/telemetry.py,sha256=GPKGA5kCIqJb76wgxQ2_U2uV_s0r-1tKqv-GVxo5hs8,6038
119
- solara/server/threaded.py,sha256=X2OgHZX4NV505at0D540mWto_PSqKvaVvM3eN6EsHVw,2160
119
+ solara/server/threaded.py,sha256=k9k461md4MxEFX-RLit5RpVRPFlQNwr-qp5pprT8JB0,2347
120
120
  solara/server/utils.py,sha256=I_PaObYgXz--fw-5G_K_uwxfEVSPynQud8Pn-MHDR3c,648
121
121
  solara/server/websocket.py,sha256=hUYw9TeVf4vHKL8TGG4RAZGLL7rmkt1INVq5qSYRWOo,1076
122
122
  solara/server/assets/custom.css,sha256=4p04-uxHTobfr6Xkvf1iOrYiks8NciWLT_EwHZSy6jw,15
@@ -135,7 +135,7 @@ solara/server/static/highlight-dark.css,sha256=gmC3pr3x2BqJgTswNoN6AkqfEhBk24hPF
135
135
  solara/server/static/highlight.css,sha256=k8ZdT5iwrGQ5tXTQHAXuxvZrSUq3kwCdEpy3mlFoZjs,2637
136
136
  solara/server/static/main-vuetify.js,sha256=-FLlUqclZdVhCXsqawzpxtQ9vpaDA6KQdwoDKJCr_AI,8926
137
137
  solara/server/static/main.js,sha256=mcx4JNQ4Lg4pNdUIqMoZos1mZyYFS48yd_JNFFJUqIE,5679
138
- solara/server/static/solara_bootstrap.py,sha256=jnG16n2l9bKTkREWdpmYzIR2h0r2zYoaY1mtVbYyYQY,3195
138
+ solara/server/static/solara_bootstrap.py,sha256=zwGV7dvJYWueF5Kl6dGZ0ACt2xAAAgcLr4V_19iRBiU,3195
139
139
  solara/server/static/sun.svg,sha256=jEKBAGCr7b9zNYv0VUb7lMWKjnU2dX69_Ye_DZWGXJI,6855
140
140
  solara/server/static/webworker.js,sha256=cjAFz7-SygStHJnYlJUlJs-gE_7YQeQ-WBDcmKYyjvo,1372
141
141
  solara/server/templates/index.html.j2,sha256=JXQo1M-STFHLBOFetgG7509cAq8xUP0VAEtYDzz35fY,31
@@ -168,7 +168,7 @@ solara/template/portal/solara_portal/pages/article/__init__.py,sha256=6PgHyyeK1_
168
168
  solara/template/portal/solara_portal/pages/viz/__init__.py,sha256=l65uqBpFJ6Uh5XytXhLMnR-8G4FBnjqJg86OJX7_LO0,2858
169
169
  solara/template/portal/solara_portal/pages/viz/overview.py,sha256=GPlzFxUR0LRQhR96a_CVWquGTjHhDehL1PR03Tcm3gs,365
170
170
  solara/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
171
- solara/test/pytest_plugin.py,sha256=p-9OX1SiWLTsgJxqFuQHDYNQ7Wfkp-MYZNJUVG8II2k,26284
171
+ solara/test/pytest_plugin.py,sha256=n0iXaY1hPXu4qeEbXvc68I4pBZrVn9dspWXw0hv5L1s,26438
172
172
  solara/website/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
173
173
  solara/website/utils.py,sha256=TfoExocZ8ko2hTcA7XDKI5FfKZ4gi3JTc_f9Oi5L7Fs,855
174
174
  solara/website/assets/custom.css,sha256=yBAhh-21ycWwDC2HLDKuMbNAR9ROj3gmF1wOdoq5olM,9888
@@ -204,7 +204,7 @@ solara/website/pages/apps/multipage/__init__.py,sha256=zljTAXbsV8hqb67dwmx_PhzN-
204
204
  solara/website/pages/apps/multipage/page1.py,sha256=5hK0RZ8UBBOaZcPKaplbLeb0VvaerhB6m3Jn5C0afRM,872
205
205
  solara/website/pages/apps/multipage/page2.py,sha256=uRJ8YPFyKy7GR_Ii8DJSx3akb3H15rQAJZETMt9jVEk,1422
206
206
  solara/website/pages/changelog/__init__.py,sha256=iBCpD5LVrFxQtEHX116u_6vqNBktZD3AXR65eTZblFo,227
207
- solara/website/pages/changelog/changelog.md,sha256=NvVUyfiiANkllIWeEmDe4DH954FEwuMcGRKsfWJ3QS4,15847
207
+ solara/website/pages/changelog/changelog.md,sha256=Qo0G88hN0lhmf9e666WOmBIBJj9aiA-ZMiREYSHMJXM,16144
208
208
  solara/website/pages/contact/__init__.py,sha256=L6o45fHAMClqyWdHWxI6JuiwUTP-U-yXCgd3lxMUcxA,223
209
209
  solara/website/pages/contact/contact.md,sha256=zp66RGhOE_tdkRaWKZqGbuk-PnOqBWhDVvX5zSLXoHw,798
210
210
  solara/website/pages/documentation/__init__.py,sha256=zJh3kmr6OhFPbax8Igp-LN-m9cZNrs9sq9ifFuC8Kic,6003
@@ -213,7 +213,7 @@ solara/website/pages/documentation/advanced/content/00-overview.md,sha256=GY7d74
213
213
  solara/website/pages/documentation/advanced/content/10-howto/00-overview.md,sha256=mG2UzdSn7ReVNIYFGYv7ODxPI5s_ux8j-J8HlWxE6Wo,324
214
214
  solara/website/pages/documentation/advanced/content/10-howto/10-multipage.md,sha256=V52UWqYUnC7AaqbfpnM9-rOUEONZxczt-3k6FIjO77E,7417
215
215
  solara/website/pages/documentation/advanced/content/10-howto/20-layout.md,sha256=0STmZU16cfcgi7mGdGvDdCOfV7RUPMl160RUG2rHM64,5792
216
- solara/website/pages/documentation/advanced/content/10-howto/30-testing.md,sha256=R1y042FP5ptBofEAkAdW3G901C2tWrVARIMUbJqb7XY,19197
216
+ solara/website/pages/documentation/advanced/content/10-howto/30-testing.md,sha256=_tD7fwDdesaGS6eJvvnkOHPjEEyPKUPbDQq4VPYsygk,19588
217
217
  solara/website/pages/documentation/advanced/content/10-howto/31-debugging.md,sha256=KUmLAJj2iiEL6im3lkOI8gRjaX4JM6uH565mTZNjV3I,1791
218
218
  solara/website/pages/documentation/advanced/content/10-howto/40-embed.md,sha256=tufVLEUJ_nqpow5iwD_1Huw9Sa-4n-alNrvrY50A4WA,2119
219
219
  solara/website/pages/documentation/advanced/content/10-howto/50-ipywidget_libraries.md,sha256=nIrx3eHDUAQpP-JxeE6DqhkAiHBHfT3pX_k_VqgLGno,5091
@@ -434,9 +434,9 @@ solara/widgets/vue/gridlayout.vue,sha256=nFZJotdznqI9tUYZ1Elv9OLA0adazxvVZAggMHH
434
434
  solara/widgets/vue/html.vue,sha256=48K5rjp0AdJDeRV6F3nOHW3J0WXPeHn55r5pGClK2fU,112
435
435
  solara/widgets/vue/navigator.vue,sha256=SLrzBI0Eiys-7maXA4e8yyD13-O5b4AnCGE9wKuJDHE,3646
436
436
  solara/widgets/vue/vegalite.vue,sha256=E3dlfhR-Ol7nqQZN6wCZC_3Tz98CJW0i_EU39mj0XHw,3986
437
- solara_ui-1.34.1.data/data/etc/jupyter/jupyter_notebook_config.d/solara.json,sha256=3UhTBQi6z7F7pPjmqXxfddv79c8VGR9H7zStDLp6AwY,115
438
- solara_ui-1.34.1.data/data/etc/jupyter/jupyter_server_config.d/solara.json,sha256=D9J-rYxAzyD5GOqWvuPjacGUVFHsYtTfZ4FUbRzRvIA,113
439
- solara_ui-1.34.1.dist-info/METADATA,sha256=WjX7Qv0tfxAgyDJJ9H50fQS_SU5bVCcYm84xCKXMQvg,7284
440
- solara_ui-1.34.1.dist-info/WHEEL,sha256=L5_n4Kc1NmrSdVgbp6hdnwwVwBnoYOCnbHBRMD-qNJ4,105
441
- solara_ui-1.34.1.dist-info/licenses/LICENSE,sha256=fFJUz-CWzZ9nEc4QZKu44jMEoDr5fEW-SiqljKpD82E,1086
442
- solara_ui-1.34.1.dist-info/RECORD,,
437
+ solara_ui-1.35.0.data/data/etc/jupyter/jupyter_notebook_config.d/solara.json,sha256=3UhTBQi6z7F7pPjmqXxfddv79c8VGR9H7zStDLp6AwY,115
438
+ solara_ui-1.35.0.data/data/etc/jupyter/jupyter_server_config.d/solara.json,sha256=D9J-rYxAzyD5GOqWvuPjacGUVFHsYtTfZ4FUbRzRvIA,113
439
+ solara_ui-1.35.0.dist-info/METADATA,sha256=_-WkmPpHeaki7f02ZMmtIVuNdUW29OA8_H8mxpz3xYM,7284
440
+ solara_ui-1.35.0.dist-info/WHEEL,sha256=L5_n4Kc1NmrSdVgbp6hdnwwVwBnoYOCnbHBRMD-qNJ4,105
441
+ solara_ui-1.35.0.dist-info/licenses/LICENSE,sha256=fFJUz-CWzZ9nEc4QZKu44jMEoDr5fEW-SiqljKpD82E,1086
442
+ solara_ui-1.35.0.dist-info/RECORD,,