dara-core 1.19.0__py3-none-any.whl → 1.20.0__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 (52) hide show
  1. dara/core/__init__.py +1 -0
  2. dara/core/auth/basic.py +13 -7
  3. dara/core/auth/definitions.py +2 -2
  4. dara/core/auth/utils.py +1 -1
  5. dara/core/base_definitions.py +7 -42
  6. dara/core/data_utils.py +16 -17
  7. dara/core/definitions.py +8 -8
  8. dara/core/interactivity/__init__.py +6 -0
  9. dara/core/interactivity/actions.py +26 -22
  10. dara/core/interactivity/any_data_variable.py +7 -135
  11. dara/core/interactivity/any_variable.py +1 -1
  12. dara/core/interactivity/client_variable.py +71 -0
  13. dara/core/interactivity/data_variable.py +8 -266
  14. dara/core/interactivity/derived_data_variable.py +6 -290
  15. dara/core/interactivity/derived_variable.py +381 -201
  16. dara/core/interactivity/filtering.py +29 -2
  17. dara/core/interactivity/loop_variable.py +2 -2
  18. dara/core/interactivity/non_data_variable.py +5 -68
  19. dara/core/interactivity/plain_variable.py +87 -14
  20. dara/core/interactivity/server_variable.py +325 -0
  21. dara/core/interactivity/state_variable.py +69 -0
  22. dara/core/interactivity/switch_variable.py +15 -15
  23. dara/core/interactivity/tabular_variable.py +94 -0
  24. dara/core/interactivity/url_variable.py +10 -90
  25. dara/core/internal/cache_store/cache_store.py +5 -20
  26. dara/core/internal/dependency_resolution.py +27 -69
  27. dara/core/internal/devtools.py +10 -3
  28. dara/core/internal/execute_action.py +9 -3
  29. dara/core/internal/multi_resource_lock.py +70 -0
  30. dara/core/internal/normalization.py +0 -5
  31. dara/core/internal/pandas_utils.py +105 -3
  32. dara/core/internal/pool/definitions.py +1 -1
  33. dara/core/internal/pool/task_pool.py +9 -6
  34. dara/core/internal/pool/utils.py +19 -14
  35. dara/core/internal/registries.py +3 -2
  36. dara/core/internal/registry.py +1 -1
  37. dara/core/internal/registry_lookup.py +5 -3
  38. dara/core/internal/routing.py +52 -121
  39. dara/core/internal/store.py +2 -29
  40. dara/core/internal/tasks.py +372 -182
  41. dara/core/internal/utils.py +25 -3
  42. dara/core/internal/websocket.py +1 -1
  43. dara/core/js_tooling/js_utils.py +2 -0
  44. dara/core/logging.py +10 -6
  45. dara/core/persistence.py +26 -4
  46. dara/core/umd/dara.core.umd.js +1091 -1469
  47. dara/core/visual/dynamic_component.py +17 -13
  48. {dara_core-1.19.0.dist-info → dara_core-1.20.0.dist-info}/METADATA +11 -11
  49. {dara_core-1.19.0.dist-info → dara_core-1.20.0.dist-info}/RECORD +52 -47
  50. {dara_core-1.19.0.dist-info → dara_core-1.20.0.dist-info}/LICENSE +0 -0
  51. {dara_core-1.19.0.dist-info → dara_core-1.20.0.dist-info}/WHEEL +0 -0
  52. {dara_core-1.19.0.dist-info → dara_core-1.20.0.dist-info}/entry_points.txt +0 -0
@@ -33,17 +33,13 @@ from typing import (
33
33
  overload,
34
34
  )
35
35
 
36
+ import anyio
36
37
  from fastapi.encoders import jsonable_encoder
37
38
 
38
39
  from dara.core.base_definitions import BaseTask
39
40
  from dara.core.definitions import BaseFallback, ComponentInstance, PyComponentDef
40
- from dara.core.interactivity import (
41
- AnyDataVariable,
42
- AnyVariable,
43
- DerivedVariable,
44
- UrlVariable,
45
- Variable,
46
- )
41
+ from dara.core.interactivity import AnyVariable
42
+ from dara.core.interactivity.state_variable import StateVariable
47
43
  from dara.core.internal.cache_store import CacheStore
48
44
  from dara.core.internal.dependency_resolution import resolve_dependency
49
45
  from dara.core.internal.encoder_registry import deserialize
@@ -173,6 +169,12 @@ def py_component(
173
169
  dynamic_kwargs: Dict[str, AnyVariable] = {}
174
170
  static_kwargs: Dict[str, Any] = {}
175
171
  for key, kwarg in all_kwargs.items():
172
+ if isinstance(kwarg, StateVariable):
173
+ raise ValueError(
174
+ 'StateVariable cannot be used as input to py_component. '
175
+ 'StateVariables are internal variables for tracking DerivedVariable client state and using them as inputs would create complex dependencies that are '
176
+ 'difficult to debug. Consider using the StateVariable with an If component or SwitchVariable.'
177
+ )
176
178
  if isinstance(kwarg, AnyVariable):
177
179
  dynamic_kwargs[key] = kwarg
178
180
  else:
@@ -199,9 +201,7 @@ def py_component(
199
201
  params = OrderedDict()
200
202
  for var_name, typ in func.__annotations__.items():
201
203
  if isclass(typ):
202
- new_type = Union[
203
- typ, Variable[typ], DerivedVariable[typ], UrlVariable[typ], AnyDataVariable # type: ignore
204
- ]
204
+ new_type = Union[typ, AnyVariable]
205
205
  if old_signature.parameters.get(var_name) is not None:
206
206
  params[var_name] = old_signature.parameters[var_name].replace(annotation=new_type)
207
207
  new_annotations[var_name] = new_type
@@ -250,12 +250,15 @@ async def render_component(
250
250
  annotations = definition.func.__annotations__
251
251
  resolved_dyn_kwargs = {}
252
252
 
253
- for key, value in values.items():
254
- val = await resolve_dependency(value, store, task_mgr)
253
+ async def _resolve_kwarg(val: Any, key: str):
254
+ val = await resolve_dependency(val, store, task_mgr)
255
255
  typ = annotations.get(key)
256
-
257
256
  resolved_dyn_kwargs[key] = deserialize(val, typ)
258
257
 
258
+ async with anyio.create_task_group() as tg:
259
+ for key, value in values.items():
260
+ tg.start_soon(_resolve_kwarg, value, key)
261
+
259
262
  # Merge resolved dynamic kwargs with static kwargs received
260
263
  resolved_kwargs = {**resolved_dyn_kwargs, **static_kwargs}
261
264
 
@@ -289,6 +292,7 @@ async def render_component(
289
292
  eng_logger.info(
290
293
  f'PyComponent {definition.func.__name__} returning task', {'uid': definition.name, 'task_id': task}
291
294
  )
295
+ task_mgr.register_task(task)
292
296
 
293
297
  return task
294
298
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dara-core
3
- Version: 1.19.0
3
+ Version: 1.20.0
4
4
  Summary: Dara Framework Core
5
5
  Home-page: https://dara.causalens.com/
6
6
  License: Apache-2.0
@@ -21,10 +21,10 @@ Requires-Dist: cachetools (>=5.0.0,<6.0.0)
21
21
  Requires-Dist: certifi (>=2024.7.4)
22
22
  Requires-Dist: click (==8.1.3)
23
23
  Requires-Dist: colorama (>=0.4.6,<0.5.0)
24
- Requires-Dist: create-dara-app (==1.19.0)
24
+ Requires-Dist: create-dara-app (==1.20.0)
25
25
  Requires-Dist: croniter (>=1.0.15,<3.0.0)
26
26
  Requires-Dist: cryptography (>=42.0.4)
27
- Requires-Dist: dara-components (==1.19.0) ; extra == "all"
27
+ Requires-Dist: dara-components (==1.20.0) ; extra == "all"
28
28
  Requires-Dist: exceptiongroup (>=1.1.3,<2.0.0)
29
29
  Requires-Dist: fastapi (>=0.115.0,<0.116.0)
30
30
  Requires-Dist: fastapi_vite_dara (==0.4.0)
@@ -34,7 +34,7 @@ Requires-Dist: jinja2 (>=2.1.1,<3.2.0)
34
34
  Requires-Dist: jsonpatch (>=1.33)
35
35
  Requires-Dist: odfpy
36
36
  Requires-Dist: openpyxl
37
- Requires-Dist: packaging (>=23.1,<24.0)
37
+ Requires-Dist: packaging (>=23.1)
38
38
  Requires-Dist: pandas (>=1.1.0,<3.0.0)
39
39
  Requires-Dist: prometheus-client (>=0.14.1,<0.15.0)
40
40
  Requires-Dist: pyarrow
@@ -55,7 +55,7 @@ Description-Content-Type: text/markdown
55
55
 
56
56
  # Dara Application Framework
57
57
 
58
- <img src="https://github.com/causalens/dara/blob/v1.19.0/img/dara_light.svg?raw=true">
58
+ <img src="https://github.com/causalens/dara/blob/v1.20.0/img/dara_light.svg?raw=true">
59
59
 
60
60
  ![Master tests](https://github.com/causalens/dara/actions/workflows/tests.yml/badge.svg?branch=master)
61
61
  [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)
@@ -100,7 +100,7 @@ source .venv/bin/activate
100
100
  dara start
101
101
  ```
102
102
 
103
- ![Dara App](https://github.com/causalens/dara/blob/v1.19.0/img/components_gallery.png?raw=true)
103
+ ![Dara App](https://github.com/causalens/dara/blob/v1.20.0/img/components_gallery.png?raw=true)
104
104
 
105
105
  Note: `pip` installation uses [PEP 660](https://peps.python.org/pep-0660/) `pyproject.toml`-based editable installs which require `pip >= 21.3` and `setuptools >= 64.0.0`. You can upgrade both with:
106
106
 
@@ -117,9 +117,9 @@ Explore some of our favorite apps - a great way of getting started and getting t
117
117
 
118
118
  | Dara App | Description |
119
119
  | -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
120
- | ![Large Language Model](https://github.com/causalens/dara/blob/v1.19.0/img/llm.png?raw=true) | Demonstrates how to use incorporate a LLM chat box into your decision app to understand model insights |
121
- | ![Plot Interactivity](https://github.com/causalens/dara/blob/v1.19.0/img/plot_interactivity.png?raw=true) | Demonstrates how to enable the user to interact with plots, trigger actions based on clicks, mouse movements and other interactions with `Bokeh` or `Plotly` plots |
122
- | ![Graph Editor](https://github.com/causalens/dara/blob/v1.19.0/img/graph_viewer.png?raw=true) | Demonstrates how to use the `CausalGraphViewer` component to display your graphs or networks, customising the displayed information through colors and tooltips, and updating the page based on user interaction. |
120
+ | ![Large Language Model](https://github.com/causalens/dara/blob/v1.20.0/img/llm.png?raw=true) | Demonstrates how to use incorporate a LLM chat box into your decision app to understand model insights |
121
+ | ![Plot Interactivity](https://github.com/causalens/dara/blob/v1.20.0/img/plot_interactivity.png?raw=true) | Demonstrates how to enable the user to interact with plots, trigger actions based on clicks, mouse movements and other interactions with `Bokeh` or `Plotly` plots |
122
+ | ![Graph Editor](https://github.com/causalens/dara/blob/v1.20.0/img/graph_viewer.png?raw=true) | Demonstrates how to use the `CausalGraphViewer` component to display your graphs or networks, customising the displayed information through colors and tooltips, and updating the page based on user interaction. |
123
123
 
124
124
  Check out our [App Gallery](https://dara.causalens.com/gallery) for more inspiration!
125
125
 
@@ -146,9 +146,9 @@ And the supporting UI packages and tools.
146
146
  - `ui-utils` - miscellaneous utility functions
147
147
  - `ui-widgets` - widget components
148
148
 
149
- More information on the repository structure can be found in the [CONTRIBUTING.md](https://github.com/causalens/dara/blob/v1.19.0/CONTRIBUTING.md) file.
149
+ More information on the repository structure can be found in the [CONTRIBUTING.md](https://github.com/causalens/dara/blob/v1.20.0/CONTRIBUTING.md) file.
150
150
 
151
151
  ## License
152
152
 
153
- Dara is open-source and licensed under the [Apache 2.0 License](https://github.com/causalens/dara/blob/v1.19.0/LICENSE).
153
+ Dara is open-source and licensed under the [Apache 2.0 License](https://github.com/causalens/dara/blob/v1.20.0/LICENSE).
154
154
 
@@ -1,73 +1,78 @@
1
- dara/core/__init__.py,sha256=S3jroKACAF3lolRPObTTJat4wbMZ9A61ZBqQfDOBvxY,2137
1
+ dara/core/__init__.py,sha256=wcVLfKdziyk6yH50o55A4kAsaJIBoIMGd9RR4igTttw,2159
2
2
  dara/core/actions.py,sha256=rC5Tu79AFNWMv0CJuchBnoy6pETIFh_1RTSqxrolArI,947
3
3
  dara/core/auth/__init__.py,sha256=H0bJoXff5wIRZmHvvQ3y9p5SXA9lM8OuLCGceYGqfb0,851
4
4
  dara/core/auth/base.py,sha256=qxmiIzx-n2g4ZWicgxsYtHjiB14AemOWM_GNxcr98mE,3294
5
- dara/core/auth/basic.py,sha256=rkWKl7kNQKklTlwwUDoyEPiElUSdFcVvQBIXeIUPRSw,4743
6
- dara/core/auth/definitions.py,sha256=7SoUBlYQhccop4Rl0XlHjSBjBU41ZbCZHS7Y-fL9g84,3501
5
+ dara/core/auth/basic.py,sha256=8ebWpHx53ObkuzTHIKSRdtsmKq0R5v8RuQXhZcnpTsA,4933
6
+ dara/core/auth/definitions.py,sha256=wTsFWzX7bGHTU_vxGW50pqcmB_AmhETIIUdGB5UrMBU,3467
7
7
  dara/core/auth/routes.py,sha256=0o5KXApRbkL0F5qFsarQk_cq5lbQ3QfIHR_mwLRgBEY,7217
8
- dara/core/auth/utils.py,sha256=IZTxKijxiCr8JAqvPLkMcraZqR4_ThFYZ3Hp4uHfCaU,7344
9
- dara/core/base_definitions.py,sha256=eyEbhbBYDqiQshVVpkALrh8fK3Z5OcFvx1yT-rbxgL0,17888
8
+ dara/core/auth/utils.py,sha256=iEWP5qwfH17Mi-5t3sP-DNMUrWN0oSRk96NhieY2Zw4,7334
9
+ dara/core/base_definitions.py,sha256=ptc6OSx-qElWWSuZB4-06kWmnj6hekpKR47eeB36igQ,16915
10
10
  dara/core/cli.py,sha256=V__LAK3ozWGsVTEQHqvJwqSfpC3o6R76YGABJ-YVoSE,8185
11
11
  dara/core/configuration.py,sha256=gi5AmdxyRSgegcNKFtnHshsMRz8fznswt60JlNZp-3s,22374
12
12
  dara/core/css.py,sha256=UkNZ6n7RDBLsHmpZvn_a3K2nAwxVggQJbQMKNbgXONA,1753
13
- dara/core/data_utils.py,sha256=cQpaNoXrvwkhXUozfIMJNdvy1lAayr-zZGH8duNCy5I,12630
13
+ dara/core/data_utils.py,sha256=RD5_GdyGyGr1LVThCo8mpuOMWrd9_c1iyRqjuyoarXM,12578
14
14
  dara/core/defaults.py,sha256=Sa7ZU4QvPndaJm-oXrVn9gRfkdUgFtsX8RkSRhf16JQ,4306
15
- dara/core/definitions.py,sha256=Kq0RaUdc_SLWbqpv0URUbZSHbSFLx0LZ1v5oxGDUep8,18851
15
+ dara/core/definitions.py,sha256=ykxPR4qYXafzsDxN4j3AN-pScSm-1Tx3SS3OWdFJ_k8,18839
16
16
  dara/core/http.py,sha256=-OzbCHlYSnfVnw2492C_UmaWOI5oSONfWk03eEGxSRI,4761
17
- dara/core/interactivity/__init__.py,sha256=4gD69m5nRf6lefKdNx9K_fRJOqmsAwjALZqKiPtvutk,2415
18
- dara/core/interactivity/actions.py,sha256=7CwHN2gmdzffQzggsWqWW7ppNfdJ0MGSChZiVP9-gbc,47973
19
- dara/core/interactivity/any_data_variable.py,sha256=BftnTPSDjOAqxTz_p4L0n5ngk8dvDip8nu9RZeBDI-c,5323
20
- dara/core/interactivity/any_variable.py,sha256=8r9AIu6kBBFYsnTlYprEH8pxUM8RYXs0B2Hr09TrAuw,13678
17
+ dara/core/interactivity/__init__.py,sha256=ZppwTvxaCsaAdf0qX6j1qTcmbj6wxVcbiaMZfwTVKtU,2679
18
+ dara/core/interactivity/actions.py,sha256=1emp5K18R1DK1b8R_j_8wVrVlNdRlHe7D3mVOTfwb_o,48188
19
+ dara/core/interactivity/any_data_variable.py,sha256=GhT6lzCDRlQtYG2gNNUHq4th7K3RacqDfkjaq7o4mCc,317
20
+ dara/core/interactivity/any_variable.py,sha256=b6aMOZZc9Q4IFPPjuIbFgqYdw52-6QRsxNRj5ohZeL0,13648
21
+ dara/core/interactivity/client_variable.py,sha256=bFc4gmKKVfAvZHmv5Y2ME1VMTxSM_v_0lcmyRNTLOKk,2320
21
22
  dara/core/interactivity/condition.py,sha256=69tdxgLqNbU-AlwHTWFdp-hvxGDugNnb_McDrz0mDtE,1575
22
- dara/core/interactivity/data_variable.py,sha256=VM1QSU1LBfzp-kOt80v6c4jKtTRwLko8R3UcoXDOuR0,11833
23
- dara/core/interactivity/derived_data_variable.py,sha256=XYAp3o6rAmGzrLBdrxvlgDSjqE7mzLcmxeiq6eQmCMA,15435
24
- dara/core/interactivity/derived_variable.py,sha256=fU0IE6u8mLJyozYl2s0jmxjwPmU0J_Z7vO7KMsYkCTg,24262
25
- dara/core/interactivity/filtering.py,sha256=Lce3YnBcC8T-DaLimH06zNcLun2iLm6dVTZerTJRrpA,9022
26
- dara/core/interactivity/loop_variable.py,sha256=EqZX3bMCwKmI2Yu4pQ7TJG9hf3PY2AlAIBLxEzHFbTw,2998
27
- dara/core/interactivity/non_data_variable.py,sha256=IMH5cNce2O6RUbu4HB_VLT-BBnDnGHr3lp09XU_lWa4,2378
28
- dara/core/interactivity/plain_variable.py,sha256=vNb8kqHhjy066dqB_kNfqBGq1fJgPhuSLSDl8N3i88Q,9247
29
- dara/core/interactivity/switch_variable.py,sha256=az4Fmksdv50YWW-9t8n8WxBim-2OnwRGFOW2Tz9fEUA,14194
30
- dara/core/interactivity/url_variable.py,sha256=1ZPFHO3gq7ZuATHt4S9x5ijmk4GBVlUv5KJN6DkM49w,4357
23
+ dara/core/interactivity/data_variable.py,sha256=cJ7ssuNotvbK01MJFPYJ_0zBAC4PAIOERIVR948G0Dk,2535
24
+ dara/core/interactivity/derived_data_variable.py,sha256=N2cNcFmHxmNixJ_sfF_VGqYrzEA4b90aNL0RUmuMpRA,3696
25
+ dara/core/interactivity/derived_variable.py,sha256=RTessKdELHfKK-ApC4KfhUS8neMADctCE0WXJirqHa4,32393
26
+ dara/core/interactivity/filtering.py,sha256=rXv9ye_HqYFdZCDJ5x22AKSS_gIXB-zJDxxi4FuqAvo,9752
27
+ dara/core/interactivity/loop_variable.py,sha256=eiw9AVYzE7-qkBtww0qxYAGtG5SknKs_MMd6GD1gi8M,2994
28
+ dara/core/interactivity/non_data_variable.py,sha256=I-Nm5nEbt06X62xiUeAZsiutH-nPTY0iGJDurzbQB3M,189
29
+ dara/core/interactivity/plain_variable.py,sha256=MlfQpmI1HBrKI3xOI_BDlvrdXpoTKdqj4sQ0kZOqlr0,12603
30
+ dara/core/interactivity/server_variable.py,sha256=jtE0BqfNXz9W4BaWuaP29hqNRW_LZpYPROV2Xv-JL1E,11223
31
+ dara/core/interactivity/state_variable.py,sha256=1sSQjjjwedR9_IVPIk9h39ywR4hklYoTUMPy3FA6TVU,2487
32
+ dara/core/interactivity/switch_variable.py,sha256=RTFVeB5joWh7-zjx-miP0OjYmDW8GbgkWZHLUsMasiY,14177
33
+ dara/core/interactivity/tabular_variable.py,sha256=aw9wIzhkoWA-YyAfNWTZPmW0OAa-4yOb_dN55jrhu9w,3366
34
+ dara/core/interactivity/url_variable.py,sha256=iJ78QC2J_fCJ1K_hjksMwyzGBHOywBLAHBWdw-PYL1I,2301
31
35
  dara/core/internal/__init__.py,sha256=QN0wbG9HPQ_vXh8BO8DnBXeYLIENVTNtRmYzZf1lx7c,577
32
36
  dara/core/internal/cache_store/__init__.py,sha256=7JCmQwNIMzfyLZGnsk0BbT1EdDFO_PRZz86E9ATcC6c,139
33
37
  dara/core/internal/cache_store/base_impl.py,sha256=LsUht9zS6lU8i6FO8JPTNNQTvMHH0PbFxxW_WjPZ_o4,1367
34
- dara/core/internal/cache_store/cache_store.py,sha256=nDkZ2QniqUSNa2c8nowGom1Hz1c64mBQdOElupBDw2I,9028
38
+ dara/core/internal/cache_store/cache_store.py,sha256=MtaPHDMKnN_4O9axU4CO2Q-SmzqpHbDQxVxWGNFhqRc,8617
35
39
  dara/core/internal/cache_store/keep_all.py,sha256=gzxDozXTpDInGySQLKB-1BrUsXYsQgzOKoujmwKxbDM,2469
36
40
  dara/core/internal/cache_store/lru.py,sha256=YRzmBIG5l5a5_MZxMoa3ajLImmKhA0I8IdCNBsMIV5A,5366
37
41
  dara/core/internal/cache_store/ttl.py,sha256=m2w6ElfKemD6uysLyZAfXytnstUdI8oJP8Up4GuWCQY,4985
38
42
  dara/core/internal/cgroup.py,sha256=yKCTY8RxyxnNy-Mw4tfzeZew1dL8qw381gHBVE96-OA,3217
39
43
  dara/core/internal/custom_response.py,sha256=aSPonh8AdRjioTk1MaPwdaJHkO4R4aG_osGAGCIHbtg,1341
40
- dara/core/internal/dependency_resolution.py,sha256=FSy4sb4EtMv7P8KrPeWAo_VPb3stdg09DE1kefzCrEQ,11817
41
- dara/core/internal/devtools.py,sha256=gqDT6laqe3rgTjTweswDLMiQ-EwEr5psyBJbygQtWPg,2378
44
+ dara/core/internal/dependency_resolution.py,sha256=7_M1Mrhdb17wuuOHnbKjnCu1a0okAr904HkBiQxo0I8,10326
45
+ dara/core/internal/devtools.py,sha256=kzbmkDd-PHc2epCQ6D-bTm7G_2algxDOiyhzJWK0QlI,2620
42
46
  dara/core/internal/download.py,sha256=_AciKp4ZsJxq60LRnvhLsA7KNWMDAXRbSKpin8-vBmU,3589
43
47
  dara/core/internal/encoder_registry.py,sha256=KTYBLIGHpJDOLzCp_9899D7EIISK0zxCKbn4Gktllxk,11200
44
- dara/core/internal/execute_action.py,sha256=V5JmAkh-PoXHCNr0xcTtdw4UMOeY6VEOVvW_U8CeuS4,6779
48
+ dara/core/internal/execute_action.py,sha256=luO5mTFj5Pl5H1Pxtsw5qNBnb64kL5fKBLad5tpzT6Q,7018
45
49
  dara/core/internal/hashing.py,sha256=Iz3FyiroHc_bC8AEtSUFFAIHh6j4Bq_EvxLqInIkAUM,1124
46
50
  dara/core/internal/import_discovery.py,sha256=oyBZayWhfZma4bg-8bamnS4QO1Oba9geGtez_BHut38,8128
47
- dara/core/internal/normalization.py,sha256=NDrj3QyqxSLL6sVgATYFehLAJp8IXSBul0h8kG2McAM,6265
48
- dara/core/internal/pandas_utils.py,sha256=SQ6IzsphfSUYheOJSA-zzITRO8zVwVcjfQvsfxpIdr4,2953
51
+ dara/core/internal/multi_resource_lock.py,sha256=mUoc6KKk8mpLGCXfa6nFd60yNuas4b6wsAk8VrvGDxI,2496
52
+ dara/core/internal/normalization.py,sha256=N7NNzrOCIuCHqFBxZ3s5kKBeP57_949FzI-B6onTLAo,6071
53
+ dara/core/internal/pandas_utils.py,sha256=-t7wa7ydPqA_yJlF3ib1awJRfm7m69ULIeZwkWWD_f4,6549
49
54
  dara/core/internal/pool/__init__.py,sha256=pBbXE5GR3abVC9Lg3i0QxfdmsrBDMJUYAYb0SiAEBkk,657
50
55
  dara/core/internal/pool/channel.py,sha256=TbyIE-PnfzzsQYhl3INOs5UIHHbF_h9bMFne5FjbWlQ,4948
51
- dara/core/internal/pool/definitions.py,sha256=ICw_Krf-ziVGkzKl4qvvIgKC0Z06bvUehELH5-VMjV0,4645
52
- dara/core/internal/pool/task_pool.py,sha256=Ea1Mlg7f7eiIqCeL3QRzDAxfnyuQtxsb9zQ9fMYOr6g,17632
53
- dara/core/internal/pool/utils.py,sha256=0JfmL71lmebDFf-g19rYFf3NY6DyshNNnnj-B-qts-Y,5231
56
+ dara/core/internal/pool/definitions.py,sha256=27dtsyHsztc7zgr2axMWCn1O9pBNI_VKByGxjvKHBGc,4649
57
+ dara/core/internal/pool/task_pool.py,sha256=MqzUtoGEjeXdpCdTmBXQmQt582u0suiL5vwrsj1slhY,17780
58
+ dara/core/internal/pool/utils.py,sha256=HoNlHy2V0VmX5Xm2cqsFbPIOV74E2MslzTFgyNRmiB0,5411
54
59
  dara/core/internal/pool/worker.py,sha256=eBi3FS652goZxu9chaRT89eHDvqJW0aHjt8I5UgyESA,6808
55
60
  dara/core/internal/port_utils.py,sha256=3NN94CubNrIYQKmPM4SEwstY-UMqsbbe1M_JhyPcncA,1654
56
- dara/core/internal/registries.py,sha256=9D9pltnh-0UTuTr0nVccqGamPJtMt8bmGuOCa12-58Y,3591
57
- dara/core/internal/registry.py,sha256=4eCFuspakBnINwnxqRUFYNiEFSBdJrSaFgeA_PPa_Mc,4368
58
- dara/core/internal/registry_lookup.py,sha256=yq1OeKUQHsoAOnMX8CT6D9FzCnx_dp9YbxDJMneQB7E,2349
59
- dara/core/internal/routing.py,sha256=Ew14Rkdl31MUIXhRTITcv5lDZUWvD9ciIpG1HegTTPw,23827
61
+ dara/core/internal/registries.py,sha256=1lY9xrggiyUlM32pPyzFEfflW3_37QGOxTDrfWQ4CN4,3659
62
+ dara/core/internal/registry.py,sha256=TJsD6eUQIBvcuTn_x3371pF-gxo6VtHUX5h-haca-00,4372
63
+ dara/core/internal/registry_lookup.py,sha256=RlT6Np658GCykdOXeLA6Gm1BTBcdDbhtOJDwJUB3Tkc,2430
64
+ dara/core/internal/routing.py,sha256=qe0U-gqXnzkm6osvpipJV6DE2ePqhtXBVGD1JSRrTOo,21148
60
65
  dara/core/internal/scheduler.py,sha256=rmj-NnHHToWBPuteKlf0RmKcav2Hz0Z9-l4uyrAGKSI,13069
61
66
  dara/core/internal/settings.py,sha256=DxRvXcelawaKemTcX6JIVIilibn0XO5Bd98dCXau4zg,3937
62
- dara/core/internal/store.py,sha256=kLRDuYEFwqpJMS0CmL5jGmETs645Xcug4jlelJqk5w4,7706
63
- dara/core/internal/tasks.py,sha256=n1lbFI0Rj6BTRY_VfWVnZm9s4tDxx45bOqdQ7QCOoSU,25252
64
- dara/core/internal/utils.py,sha256=4rZHqRzhrPwvFOOP0csVklbVTzY5w6p4tnMHptxoUJ0,8404
65
- dara/core/internal/websocket.py,sha256=6Fk-MU6mcGZ26KD_q0fjLwvyO1Y4DErABd8PYxUN2wA,21984
67
+ dara/core/internal/store.py,sha256=Z4EUMwHR0DR-TVCL9csSGYE3toxh15iRpBP2c7MUgr8,6442
68
+ dara/core/internal/tasks.py,sha256=WgQcgyChnUe4Dy16dw4LpFAcSECVoxFjVJHkPnfZFaA,34790
69
+ dara/core/internal/utils.py,sha256=nUnwy1BLW9HUQro9ASAYb-AlNJkbaT_bQ1bE2e1q1wo,9088
70
+ dara/core/internal/websocket.py,sha256=rcipt5XY48akMuLHFdvUUIgNLqzJx7ovLeiPsYVMELM,21953
66
71
  dara/core/jinja/index.html,sha256=1gkCFiihXOUH7vp7tT5gH8mKeJB4KqNg394xO3a0usI,1208
67
72
  dara/core/jinja/index_autojs.html,sha256=u1diDUnRT4djZqN1T6lIE01GhlfL6SJ_yLYcyapruss,1342
68
73
  dara/core/js_tooling/custom_js_scaffold/index.tsx,sha256=FEzSV5o5Nyzxw6eXvGLi7BkEBkXf3brV34_7ATLnY7o,68
69
74
  dara/core/js_tooling/custom_js_scaffold/local-js-component.tsx,sha256=Ojsyeh9MYJnH_XJXGkSc8PAUZIqJcqcGTu_uRITo_88,709
70
- dara/core/js_tooling/js_utils.py,sha256=70VqTjAC1PaSW2NYmJyd-raNZlf3dz77SPJdKSDrPlo,26833
75
+ dara/core/js_tooling/js_utils.py,sha256=X8KZLGjdrVk7K8SEg-lrGbbT6W-rp81YMq9lHhK60Jo,26948
71
76
  dara/core/js_tooling/statics/favicon.ico,sha256=CJP26erMMIwQB8FFmyhoUJ-Cx1cXEopiVGxFwyxcpo0,47068
72
77
  dara/core/js_tooling/statics/tsconfig.json,sha256=ubnFjwvPHbx2F7wVWsU2VHLDeEnnOwXkTIk7hLNY8ZM,446
73
78
  dara/core/js_tooling/templates/.npmrc,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -76,14 +81,14 @@ dara/core/js_tooling/templates/_entry_autojs.template.tsx,sha256=c9eNln0iLHUjhxs
76
81
  dara/core/js_tooling/templates/dara.config.json,sha256=RZG_R_xJv_5rYIoz2QZulcG49wD0JURTzshtAzG_di4,84
77
82
  dara/core/js_tooling/templates/vite.config.template.ts,sha256=W-R9LtXPMv7vQkqMawMmeFrjaQ22xrGU0iYyS_nHkh4,1199
78
83
  dara/core/log_configs/logging.yaml,sha256=YJyD18psAmSVz6587dcEOyoulLuRFFu1g8yMXl1ylM0,706
79
- dara/core/logging.py,sha256=kbq-PjRIWXWZ_x66-ZLrgp6oxvDlKrvkkJFwSRNo-us,12976
84
+ dara/core/logging.py,sha256=8kJPQfRpivxzJXpmsK6-sYnWjR_VBDHzIelD1rstIeM,13260
80
85
  dara/core/main.py,sha256=uw1BI4dSN-TowmnIUNLMDqL6I5t-3qeQsnVN9J73nGc,18507
81
86
  dara/core/metrics/__init__.py,sha256=2UqpWHv-Ie58QLJIHJ9Szfjq8xifAuwy5FYGUIFwWtI,823
82
87
  dara/core/metrics/cache.py,sha256=c1PSst_oZZvuVzBXYWdpf8Sbb97u6q0HS2dlsEVLpQU,2632
83
88
  dara/core/metrics/runtime.py,sha256=YP-6Dz0GeI9_Yr7bUk_-OqShyFySGH_AKpDO126l6es,1833
84
89
  dara/core/metrics/utils.py,sha256=inR1Ab5hmWZY2lsgGwLCQOEdyhCD9PumU52X2JbwlKY,2251
85
- dara/core/persistence.py,sha256=qINdOxpyvlPGBB9Vy09TPWQnmk0ej4SzUx03AV1YbX0,18561
86
- dara/core/umd/dara.core.umd.js,sha256=CtuTH6c1LIGKRgaJgqE41tWxi3YUItgAwKO--UWLC1I,4768905
90
+ dara/core/persistence.py,sha256=10Hrvb2z5c9r0Hof7gpiiWfuKAAu6TLqLKoiZA9KpZo,18901
91
+ dara/core/umd/dara.core.umd.js,sha256=JqfZfeArSHmREYQv7eRo-MvblT-t9bdkt1QKrg71Rvg,4726244
87
92
  dara/core/umd/style.css,sha256=YQtQ4veiSktnyONl0CU1iU1kKfcQhreH4iASi1MP7Ak,4095007
88
93
  dara/core/visual/__init__.py,sha256=QN0wbG9HPQ_vXh8BO8DnBXeYLIENVTNtRmYzZf1lx7c,577
89
94
  dara/core/visual/components/__init__.py,sha256=wuGRk8bogiLWPOXAF-Fo4F6_L__0tBrI2p2SqgH2lnE,2385
@@ -100,15 +105,15 @@ dara/core/visual/components/topbar_frame.py,sha256=7L4Bi7Ba_gdfS6yoduXQ3k0-XQaNu
100
105
  dara/core/visual/components/types.py,sha256=uH2IGufr4-I8cNbZgnEd3YbqoPFgyqG91rfNXZVG7a0,686
101
106
  dara/core/visual/css/Property.py,sha256=XJzlMeASyrquhXmaQZvrsgin3xlVfm94dHRY9aJkhXk,43028
102
107
  dara/core/visual/css/__init__.py,sha256=r2W1B5yRQhmxBRoRyldzOopaobb2sgkEh_mUjWUvtko,367328
103
- dara/core/visual/dynamic_component.py,sha256=WzZoVRGaHVPUZ94D1-eihnCK1huEJh3T9eRUXtZ-4gg,13723
108
+ dara/core/visual/dynamic_component.py,sha256=hlOBRm3V1DlDAzyi--wWDOqC_bD-ofq5LXa4Mn5hBk0,14302
104
109
  dara/core/visual/progress_updater.py,sha256=IdtWihnMYk8hqsHqDd0nzuuHeQu8wjnZT42s0oSq9ro,5895
105
110
  dara/core/visual/template.py,sha256=y0KJU2913Q10y1TVMpTVnIxIoUsabzYfpUHEGuX2QyM,5707
106
111
  dara/core/visual/themes/__init__.py,sha256=aM4mgoIYo2neBSw5FRzswsht7PUKjLthiHLmFIkyRKw,794
107
112
  dara/core/visual/themes/dark.py,sha256=UQGDooOc8ric73eHs9E0ltYP4UCrwqQ3QxqN_fb4PwY,1942
108
113
  dara/core/visual/themes/definitions.py,sha256=nS_gQvOzCt5hTmj74d0_siq_9QWuj6wNuir4VCHy0Dk,2779
109
114
  dara/core/visual/themes/light.py,sha256=-Tviq8oEwGbdFULoDOqPuHO0UpAZGsBy8qFi0kAGolQ,1944
110
- dara_core-1.19.0.dist-info/LICENSE,sha256=r9u1w2RvpLMV6YjuXHIKXRBKzia3fx_roPwboGcLqCc,10944
111
- dara_core-1.19.0.dist-info/METADATA,sha256=netF8aDhe0ku_RfblwGzLo5E68zMMTMhXeKvLB2NfV4,7540
112
- dara_core-1.19.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
113
- dara_core-1.19.0.dist-info/entry_points.txt,sha256=H__D5sNIGuPIhVam0DChNL-To5k8Y7nY7TAFz9Mz6cc,139
114
- dara_core-1.19.0.dist-info/RECORD,,
115
+ dara_core-1.20.0.dist-info/LICENSE,sha256=r9u1w2RvpLMV6YjuXHIKXRBKzia3fx_roPwboGcLqCc,10944
116
+ dara_core-1.20.0.dist-info/METADATA,sha256=hAW5rfPIeUEXAk_DYZTkoo2B4hu8nvNpOSAR67fnPII,7534
117
+ dara_core-1.20.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
118
+ dara_core-1.20.0.dist-info/entry_points.txt,sha256=H__D5sNIGuPIhVam0DChNL-To5k8Y7nY7TAFz9Mz6cc,139
119
+ dara_core-1.20.0.dist-info/RECORD,,