dara-core 1.21.15__py3-none-any.whl → 1.21.17__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.
- dara/core/auth/base.py +5 -5
- dara/core/auth/basic.py +3 -3
- dara/core/auth/definitions.py +13 -14
- dara/core/auth/routes.py +7 -5
- dara/core/auth/utils.py +11 -10
- dara/core/base_definitions.py +30 -36
- dara/core/cli.py +7 -8
- dara/core/configuration.py +51 -58
- dara/core/css.py +2 -2
- dara/core/data_utils.py +12 -17
- dara/core/defaults.py +3 -3
- dara/core/definitions.py +58 -63
- dara/core/http.py +4 -4
- dara/core/interactivity/actions.py +34 -42
- dara/core/interactivity/any_data_variable.py +1 -1
- dara/core/interactivity/any_variable.py +6 -5
- dara/core/interactivity/client_variable.py +1 -2
- dara/core/interactivity/condition.py +2 -2
- dara/core/interactivity/data_variable.py +2 -4
- dara/core/interactivity/derived_data_variable.py +7 -10
- dara/core/interactivity/derived_variable.py +45 -51
- dara/core/interactivity/filtering.py +19 -19
- dara/core/interactivity/loop_variable.py +2 -4
- dara/core/interactivity/non_data_variable.py +1 -1
- dara/core/interactivity/plain_variable.py +21 -18
- dara/core/interactivity/server_variable.py +13 -15
- dara/core/interactivity/state_variable.py +4 -5
- dara/core/interactivity/switch_variable.py +16 -16
- dara/core/interactivity/tabular_variable.py +3 -3
- dara/core/interactivity/url_variable.py +3 -3
- dara/core/internal/cache_store/cache_store.py +6 -6
- dara/core/internal/cache_store/keep_all.py +3 -3
- dara/core/internal/cache_store/lru.py +8 -8
- dara/core/internal/cache_store/ttl.py +4 -4
- dara/core/internal/custom_response.py +3 -3
- dara/core/internal/dependency_resolution.py +6 -10
- dara/core/internal/devtools.py +2 -3
- dara/core/internal/download.py +5 -6
- dara/core/internal/encoder_registry.py +7 -11
- dara/core/internal/execute_action.py +5 -5
- dara/core/internal/hashing.py +1 -2
- dara/core/internal/import_discovery.py +7 -9
- dara/core/internal/normalization.py +12 -15
- dara/core/internal/pandas_utils.py +6 -6
- dara/core/internal/pool/channel.py +3 -4
- dara/core/internal/pool/definitions.py +9 -9
- dara/core/internal/pool/task_pool.py +8 -8
- dara/core/internal/pool/utils.py +4 -3
- dara/core/internal/pool/worker.py +3 -3
- dara/core/internal/registries.py +4 -4
- dara/core/internal/registry.py +3 -3
- dara/core/internal/registry_lookup.py +4 -4
- dara/core/internal/routing.py +23 -22
- dara/core/internal/scheduler.py +8 -8
- dara/core/internal/settings.py +1 -2
- dara/core/internal/store.py +9 -9
- dara/core/internal/tasks.py +30 -30
- dara/core/internal/utils.py +9 -15
- dara/core/internal/websocket.py +18 -18
- dara/core/js_tooling/js_utils.py +19 -19
- dara/core/logging.py +13 -13
- dara/core/main.py +4 -5
- dara/core/metrics/cache.py +2 -4
- dara/core/persistence.py +19 -25
- dara/core/router/compat.py +1 -3
- dara/core/router/components.py +10 -10
- dara/core/router/dependency_graph.py +2 -4
- dara/core/router/router.py +43 -42
- dara/core/visual/components/dynamic_component.py +1 -3
- dara/core/visual/components/fallback.py +3 -3
- dara/core/visual/components/for_cmp.py +5 -5
- dara/core/visual/components/menu.py +1 -3
- dara/core/visual/components/router_content.py +1 -3
- dara/core/visual/components/sidebar_frame.py +8 -10
- dara/core/visual/components/theme_provider.py +3 -3
- dara/core/visual/components/topbar_frame.py +8 -10
- dara/core/visual/css/__init__.py +277 -277
- dara/core/visual/dynamic_component.py +18 -22
- dara/core/visual/progress_updater.py +1 -1
- dara/core/visual/template.py +10 -12
- dara/core/visual/themes/definitions.py +46 -46
- {dara_core-1.21.15.dist-info → dara_core-1.21.17.dist-info}/METADATA +13 -14
- dara_core-1.21.17.dist-info/RECORD +127 -0
- dara_core-1.21.15.dist-info/RECORD +0 -127
- {dara_core-1.21.15.dist-info → dara_core-1.21.17.dist-info}/LICENSE +0 -0
- {dara_core-1.21.15.dist-info → dara_core-1.21.17.dist-info}/WHEEL +0 -0
- {dara_core-1.21.15.dist-info → dara_core-1.21.17.dist-info}/entry_points.txt +0 -0
|
@@ -19,17 +19,13 @@ import contextlib
|
|
|
19
19
|
import json
|
|
20
20
|
import uuid
|
|
21
21
|
from collections import OrderedDict
|
|
22
|
-
from collections.abc import Mapping
|
|
22
|
+
from collections.abc import Callable, Mapping
|
|
23
23
|
from contextvars import ContextVar
|
|
24
24
|
from functools import wraps
|
|
25
25
|
from inspect import Parameter, Signature, isclass, signature
|
|
26
26
|
from typing import (
|
|
27
27
|
Any,
|
|
28
|
-
Callable,
|
|
29
28
|
ClassVar,
|
|
30
|
-
Dict,
|
|
31
|
-
Optional,
|
|
32
|
-
Union,
|
|
33
29
|
overload,
|
|
34
30
|
)
|
|
35
31
|
|
|
@@ -55,8 +51,8 @@ CURRENT_COMPONENT_ID = ContextVar('current_component_id', default='')
|
|
|
55
51
|
class PyComponentInstance(ComponentInstance):
|
|
56
52
|
func_name: str
|
|
57
53
|
dynamic_kwargs: Mapping[str, AnyVariable]
|
|
58
|
-
polling_interval:
|
|
59
|
-
js_module: ClassVar[
|
|
54
|
+
polling_interval: int | None = None
|
|
55
|
+
js_module: ClassVar[str | None] = None
|
|
60
56
|
|
|
61
57
|
|
|
62
58
|
# sync/async simple
|
|
@@ -69,21 +65,21 @@ def py_component(function: Callable) -> Callable[..., PyComponentInstance]: ...
|
|
|
69
65
|
def py_component(
|
|
70
66
|
function: None = None,
|
|
71
67
|
*,
|
|
72
|
-
placeholder:
|
|
73
|
-
fallback:
|
|
74
|
-
track_progress:
|
|
75
|
-
polling_interval:
|
|
68
|
+
placeholder: BaseFallback | ComponentInstance | None = None,
|
|
69
|
+
fallback: BaseFallback | ComponentInstance | None = None,
|
|
70
|
+
track_progress: bool | None = False,
|
|
71
|
+
polling_interval: int | None = None,
|
|
76
72
|
) -> Callable[[Callable], Callable[..., PyComponentInstance]]: ...
|
|
77
73
|
|
|
78
74
|
|
|
79
75
|
def py_component(
|
|
80
|
-
function:
|
|
76
|
+
function: Callable | None = None,
|
|
81
77
|
*,
|
|
82
|
-
placeholder:
|
|
83
|
-
fallback:
|
|
84
|
-
track_progress:
|
|
85
|
-
polling_interval:
|
|
86
|
-
) ->
|
|
78
|
+
placeholder: BaseFallback | ComponentInstance | None = None,
|
|
79
|
+
fallback: BaseFallback | ComponentInstance | None = None,
|
|
80
|
+
track_progress: bool | None = False,
|
|
81
|
+
polling_interval: int | None = None,
|
|
82
|
+
) -> Callable[..., PyComponentInstance] | Callable[[Callable], Callable[..., PyComponentInstance]]:
|
|
87
83
|
"""
|
|
88
84
|
A decorator that can be used to trigger a component function to be rerun whenever a give variable changes. It should be
|
|
89
85
|
called with a list of Variables and will call the wrapped function with the current values of each.
|
|
@@ -166,8 +162,8 @@ def py_component(
|
|
|
166
162
|
)
|
|
167
163
|
|
|
168
164
|
# Split args based on whether they are static or dynamic
|
|
169
|
-
dynamic_kwargs:
|
|
170
|
-
static_kwargs:
|
|
165
|
+
dynamic_kwargs: dict[str, AnyVariable] = {}
|
|
166
|
+
static_kwargs: dict[str, Any] = {}
|
|
171
167
|
for key, kwarg in all_kwargs.items():
|
|
172
168
|
if isinstance(kwarg, StateVariable):
|
|
173
169
|
raise ValueError(
|
|
@@ -201,7 +197,7 @@ def py_component(
|
|
|
201
197
|
params = OrderedDict()
|
|
202
198
|
for var_name, typ in func.__annotations__.items():
|
|
203
199
|
if isclass(typ):
|
|
204
|
-
new_type =
|
|
200
|
+
new_type = typ | AnyVariable
|
|
205
201
|
if old_signature.parameters.get(var_name) is not None:
|
|
206
202
|
params[var_name] = old_signature.parameters[var_name].replace(annotation=new_type)
|
|
207
203
|
new_annotations[var_name] = new_type
|
|
@@ -314,9 +310,9 @@ def _make_render_safe(handler: Callable):
|
|
|
314
310
|
:param handler: the user handler to wrap
|
|
315
311
|
"""
|
|
316
312
|
|
|
317
|
-
async def _render_safe(**kwargs:
|
|
313
|
+
async def _render_safe(**kwargs: dict[str, Any]) -> NormalizedPayload[ComponentInstance | None]:
|
|
318
314
|
result = await run_user_handler(handler, kwargs=kwargs)
|
|
319
|
-
safe_result:
|
|
315
|
+
safe_result: ComponentInstance | None = None
|
|
320
316
|
|
|
321
317
|
if result is None:
|
|
322
318
|
safe_result = None
|
|
@@ -17,9 +17,9 @@ limitations under the License.
|
|
|
17
17
|
|
|
18
18
|
import inspect
|
|
19
19
|
from collections import OrderedDict
|
|
20
|
+
from collections.abc import Callable
|
|
20
21
|
from functools import wraps
|
|
21
22
|
from inspect import Signature, signature
|
|
22
|
-
from typing import Callable
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
class ProgressUpdater:
|
dara/core/visual/template.py
CHANGED
|
@@ -15,8 +15,6 @@ See the License for the specific language governing permissions and
|
|
|
15
15
|
limitations under the License.
|
|
16
16
|
"""
|
|
17
17
|
|
|
18
|
-
from typing import List, Optional
|
|
19
|
-
|
|
20
18
|
from dara.core.base_definitions import Action
|
|
21
19
|
from dara.core.definitions import (
|
|
22
20
|
ComponentInstance,
|
|
@@ -35,16 +33,16 @@ class TemplateRouter:
|
|
|
35
33
|
"""
|
|
36
34
|
|
|
37
35
|
def __init__(self):
|
|
38
|
-
self._routes:
|
|
36
|
+
self._routes: list[TemplateRoute] = []
|
|
39
37
|
|
|
40
38
|
def add_route(
|
|
41
39
|
self,
|
|
42
40
|
name: str,
|
|
43
41
|
route: str,
|
|
44
42
|
content: ComponentInstance,
|
|
45
|
-
icon:
|
|
46
|
-
include_in_menu:
|
|
47
|
-
on_load:
|
|
43
|
+
icon: str | None = None,
|
|
44
|
+
include_in_menu: bool | None = True,
|
|
45
|
+
on_load: Action | None = None,
|
|
48
46
|
):
|
|
49
47
|
"""
|
|
50
48
|
Add a single route to the router.
|
|
@@ -88,7 +86,7 @@ class TemplateRouter:
|
|
|
88
86
|
]
|
|
89
87
|
|
|
90
88
|
@staticmethod
|
|
91
|
-
def from_pages(pages:
|
|
89
|
+
def from_pages(pages: list[Page]):
|
|
92
90
|
"""
|
|
93
91
|
Create a template router from a list of page objects
|
|
94
92
|
|
|
@@ -117,11 +115,11 @@ class TemplateBuilder:
|
|
|
117
115
|
to_template() to perform final validation and build the Template object.
|
|
118
116
|
"""
|
|
119
117
|
|
|
120
|
-
layout:
|
|
121
|
-
name:
|
|
122
|
-
_router:
|
|
118
|
+
layout: ComponentInstance | None
|
|
119
|
+
name: str | None
|
|
120
|
+
_router: TemplateRouter | None
|
|
123
121
|
|
|
124
|
-
def __init__(self, name:
|
|
122
|
+
def __init__(self, name: str | None = None):
|
|
125
123
|
"""
|
|
126
124
|
:param name: the name for the template
|
|
127
125
|
"""
|
|
@@ -139,7 +137,7 @@ class TemplateBuilder:
|
|
|
139
137
|
self._router = TemplateRouter()
|
|
140
138
|
return self._router
|
|
141
139
|
|
|
142
|
-
def add_router_from_pages(self, pages:
|
|
140
|
+
def add_router_from_pages(self, pages: list[Page]):
|
|
143
141
|
"""
|
|
144
142
|
Add a router to the template based on an apps pages. The router instance is returned and can then be configured
|
|
145
143
|
as the user wishes. Currently each template can only have one router registered with it.
|
|
@@ -15,7 +15,7 @@ See the License for the specific language governing permissions and
|
|
|
15
15
|
limitations under the License.
|
|
16
16
|
"""
|
|
17
17
|
|
|
18
|
-
from typing import Literal
|
|
18
|
+
from typing import Literal
|
|
19
19
|
|
|
20
20
|
from dara.core.base_definitions import DaraBaseModel as BaseModel
|
|
21
21
|
from dara.core.interactivity.client_variable import ClientVariable
|
|
@@ -26,42 +26,42 @@ class ThemeColors(BaseModel):
|
|
|
26
26
|
Expected colors in a theme
|
|
27
27
|
"""
|
|
28
28
|
|
|
29
|
-
primary:
|
|
30
|
-
primaryHover:
|
|
31
|
-
primaryDown:
|
|
32
|
-
secondary:
|
|
33
|
-
secondaryHover:
|
|
34
|
-
secondaryDown:
|
|
35
|
-
background:
|
|
36
|
-
text:
|
|
37
|
-
grey1:
|
|
38
|
-
grey2:
|
|
39
|
-
grey3:
|
|
40
|
-
grey4:
|
|
41
|
-
grey5:
|
|
42
|
-
grey6:
|
|
43
|
-
blue1:
|
|
44
|
-
blue2:
|
|
45
|
-
blue3:
|
|
46
|
-
blue4:
|
|
47
|
-
violet:
|
|
48
|
-
turquoise:
|
|
49
|
-
purple:
|
|
50
|
-
teal:
|
|
51
|
-
orange:
|
|
52
|
-
plum:
|
|
53
|
-
error:
|
|
54
|
-
errorHover:
|
|
55
|
-
errorDown:
|
|
56
|
-
success:
|
|
57
|
-
successHover:
|
|
58
|
-
successDown:
|
|
59
|
-
warning:
|
|
60
|
-
warningHover:
|
|
61
|
-
warningDown:
|
|
62
|
-
modalBg:
|
|
63
|
-
shadowLight:
|
|
64
|
-
shadowMedium:
|
|
29
|
+
primary: str | None = None
|
|
30
|
+
primaryHover: str | None = None
|
|
31
|
+
primaryDown: str | None = None
|
|
32
|
+
secondary: str | None = None
|
|
33
|
+
secondaryHover: str | None = None
|
|
34
|
+
secondaryDown: str | None = None
|
|
35
|
+
background: str | None = None
|
|
36
|
+
text: str | None = None
|
|
37
|
+
grey1: str | None = None
|
|
38
|
+
grey2: str | None = None
|
|
39
|
+
grey3: str | None = None
|
|
40
|
+
grey4: str | None = None
|
|
41
|
+
grey5: str | None = None
|
|
42
|
+
grey6: str | None = None
|
|
43
|
+
blue1: str | None = None
|
|
44
|
+
blue2: str | None = None
|
|
45
|
+
blue3: str | None = None
|
|
46
|
+
blue4: str | None = None
|
|
47
|
+
violet: str | None = None
|
|
48
|
+
turquoise: str | None = None
|
|
49
|
+
purple: str | None = None
|
|
50
|
+
teal: str | None = None
|
|
51
|
+
orange: str | None = None
|
|
52
|
+
plum: str | None = None
|
|
53
|
+
error: str | None = None
|
|
54
|
+
errorHover: str | None = None
|
|
55
|
+
errorDown: str | None = None
|
|
56
|
+
success: str | None = None
|
|
57
|
+
successHover: str | None = None
|
|
58
|
+
successDown: str | None = None
|
|
59
|
+
warning: str | None = None
|
|
60
|
+
warningHover: str | None = None
|
|
61
|
+
warningDown: str | None = None
|
|
62
|
+
modalBg: str | None = None
|
|
63
|
+
shadowLight: str | None = None
|
|
64
|
+
shadowMedium: str | None = None
|
|
65
65
|
|
|
66
66
|
|
|
67
67
|
class ThemeFont(BaseModel):
|
|
@@ -69,7 +69,7 @@ class ThemeFont(BaseModel):
|
|
|
69
69
|
Expected font options in a theme
|
|
70
70
|
"""
|
|
71
71
|
|
|
72
|
-
size:
|
|
72
|
+
size: str | None = None
|
|
73
73
|
|
|
74
74
|
|
|
75
75
|
class ThemeShadows(BaseModel):
|
|
@@ -77,8 +77,8 @@ class ThemeShadows(BaseModel):
|
|
|
77
77
|
Expected shadow options in a theme
|
|
78
78
|
"""
|
|
79
79
|
|
|
80
|
-
light:
|
|
81
|
-
medium:
|
|
80
|
+
light: str | None = None
|
|
81
|
+
medium: str | None = None
|
|
82
82
|
|
|
83
83
|
|
|
84
84
|
class ThemeDef(BaseModel):
|
|
@@ -86,10 +86,10 @@ class ThemeDef(BaseModel):
|
|
|
86
86
|
Defines the theme schema
|
|
87
87
|
"""
|
|
88
88
|
|
|
89
|
-
colors:
|
|
90
|
-
font:
|
|
91
|
-
shadow:
|
|
92
|
-
themeType:
|
|
89
|
+
colors: ThemeColors | None = None
|
|
90
|
+
font: ThemeFont | None = None
|
|
91
|
+
shadow: ThemeShadows | None = None
|
|
92
|
+
themeType: Literal['light'] | Literal['dark'] | None = None
|
|
93
93
|
|
|
94
94
|
|
|
95
95
|
class BaseTheme(BaseModel):
|
|
@@ -97,5 +97,5 @@ class BaseTheme(BaseModel):
|
|
|
97
97
|
Defines the base theming scheme of an app
|
|
98
98
|
"""
|
|
99
99
|
|
|
100
|
-
main:
|
|
101
|
-
base:
|
|
100
|
+
main: ThemeDef | ClientVariable | Literal['light'] | Literal['dark']
|
|
101
|
+
base: Literal['light'] | Literal['dark'] | None = None
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dara-core
|
|
3
|
-
Version: 1.21.
|
|
3
|
+
Version: 1.21.17
|
|
4
4
|
Summary: Dara Framework Core
|
|
5
5
|
Home-page: https://dara.causalens.com/
|
|
6
6
|
License: Apache-2.0
|
|
7
7
|
Author: Sam Smith
|
|
8
8
|
Author-email: sam@causalens.com
|
|
9
|
-
Requires-Python: >=3.
|
|
9
|
+
Requires-Python: >=3.10.0,<3.13.0
|
|
10
10
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
11
11
|
Classifier: Programming Language :: Python :: 3
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
13
12
|
Classifier: Programming Language :: Python :: 3.10
|
|
14
13
|
Classifier: Programming Language :: Python :: 3.11
|
|
15
14
|
Classifier: Programming Language :: Python :: 3.12
|
|
@@ -19,12 +18,12 @@ Requires-Dist: anyio (>=4.0.0)
|
|
|
19
18
|
Requires-Dist: async-asgi-testclient (>=1.4.11,<2.0.0)
|
|
20
19
|
Requires-Dist: cachetools (>=5.0.0,<6.0.0)
|
|
21
20
|
Requires-Dist: certifi (>=2024.7.4)
|
|
22
|
-
Requires-Dist: click (
|
|
21
|
+
Requires-Dist: click (>=8.1.3,<9.0.0)
|
|
23
22
|
Requires-Dist: colorama (>=0.4.6,<0.5.0)
|
|
24
|
-
Requires-Dist: create-dara-app (==1.21.
|
|
23
|
+
Requires-Dist: create-dara-app (==1.21.17)
|
|
25
24
|
Requires-Dist: croniter (>=1.0.15,<3.0.0)
|
|
26
25
|
Requires-Dist: cryptography (>=42.0.4)
|
|
27
|
-
Requires-Dist: dara-components (==1.21.
|
|
26
|
+
Requires-Dist: dara-components (==1.21.17) ; extra == "all"
|
|
28
27
|
Requires-Dist: exceptiongroup (>=1.1.3,<2.0.0)
|
|
29
28
|
Requires-Dist: fastapi (>=0.115.0,<0.116.0)
|
|
30
29
|
Requires-Dist: fastapi_vite_dara (==0.4.0)
|
|
@@ -38,7 +37,7 @@ Requires-Dist: packaging (>=23.1)
|
|
|
38
37
|
Requires-Dist: pandas (>=1.1.0,<3.0.0)
|
|
39
38
|
Requires-Dist: prometheus-client (>=0.14.1,<0.15.0)
|
|
40
39
|
Requires-Dist: pyarrow
|
|
41
|
-
Requires-Dist: pydantic (>=2.
|
|
40
|
+
Requires-Dist: pydantic (>=2.11.7,<3.0.0)
|
|
42
41
|
Requires-Dist: pydantic-settings (>=2.8.1,<3.0.0)
|
|
43
42
|
Requires-Dist: pyjwt (>=2.3.0,<3.0.0)
|
|
44
43
|
Requires-Dist: python-dotenv (>=0.19.2)
|
|
@@ -55,7 +54,7 @@ Description-Content-Type: text/markdown
|
|
|
55
54
|
|
|
56
55
|
# Dara Application Framework
|
|
57
56
|
|
|
58
|
-
<img src="https://github.com/causalens/dara/blob/v1.21.
|
|
57
|
+
<img src="https://github.com/causalens/dara/blob/v1.21.17/img/dara_light.svg?raw=true">
|
|
59
58
|
|
|
60
59
|

|
|
61
60
|
[](https://www.apache.org/licenses/LICENSE-2.0)
|
|
@@ -100,7 +99,7 @@ source .venv/bin/activate
|
|
|
100
99
|
dara start
|
|
101
100
|
```
|
|
102
101
|
|
|
103
|
-

|
|
104
103
|
|
|
105
104
|
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
105
|
|
|
@@ -117,9 +116,9 @@ Explore some of our favorite apps - a great way of getting started and getting t
|
|
|
117
116
|
|
|
118
117
|
| Dara App | Description |
|
|
119
118
|
| -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
120
|
-
|  | Demonstrates how to use incorporate a LLM chat box into your decision app to understand model insights |
|
|
120
|
+
|  | 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 |
|
|
121
|
+
|  | 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
122
|
|
|
124
123
|
Check out our [App Gallery](https://dara.causalens.com/gallery) for more inspiration!
|
|
125
124
|
|
|
@@ -146,9 +145,9 @@ And the supporting UI packages and tools.
|
|
|
146
145
|
- `ui-utils` - miscellaneous utility functions
|
|
147
146
|
- `ui-widgets` - widget components
|
|
148
147
|
|
|
149
|
-
More information on the repository structure can be found in the [CONTRIBUTING.md](https://github.com/causalens/dara/blob/v1.21.
|
|
148
|
+
More information on the repository structure can be found in the [CONTRIBUTING.md](https://github.com/causalens/dara/blob/v1.21.17/CONTRIBUTING.md) file.
|
|
150
149
|
|
|
151
150
|
## License
|
|
152
151
|
|
|
153
|
-
Dara is open-source and licensed under the [Apache 2.0 License](https://github.com/causalens/dara/blob/v1.21.
|
|
152
|
+
Dara is open-source and licensed under the [Apache 2.0 License](https://github.com/causalens/dara/blob/v1.21.17/LICENSE).
|
|
154
153
|
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
dara/core/__init__.py,sha256=yTp-lXT0yy9XqLGYWlmjPgFG5g2eEg2KhKo8KheTHoo,1408
|
|
2
|
+
dara/core/actions.py,sha256=rC5Tu79AFNWMv0CJuchBnoy6pETIFh_1RTSqxrolArI,947
|
|
3
|
+
dara/core/auth/__init__.py,sha256=H0bJoXff5wIRZmHvvQ3y9p5SXA9lM8OuLCGceYGqfb0,851
|
|
4
|
+
dara/core/auth/base.py,sha256=fPkRXmgMYCbsED4SxRu3h729KIPi1PUSTeiGRLhUOm8,3263
|
|
5
|
+
dara/core/auth/basic.py,sha256=sglIaogCslG2HlDMjFsaaJhOJeXUW-QQLTIYPaUPxAU,4927
|
|
6
|
+
dara/core/auth/definitions.py,sha256=DWvhvXTLQyJ0x-P_r4SycVOWht7R_us_ca2a4biJlTY,3379
|
|
7
|
+
dara/core/auth/routes.py,sha256=dtOxpFotnt4XQ4spW3mbyM7ThYRvfIA_oRK5X5lyYHg,7256
|
|
8
|
+
dara/core/auth/utils.py,sha256=12dbakr4DkZu8PjS57YlV79Oh-SVaqkoYliCSAseywQ,7307
|
|
9
|
+
dara/core/base_definitions.py,sha256=YY3slxMtyQP-38LojBtjxyTKCcCdE2xEwKBvRTYlhOA,18402
|
|
10
|
+
dara/core/cli.py,sha256=i9-Xtdee80b153TSU9fFSWbHQYCi01ci_Lo8SzwnW7M,8130
|
|
11
|
+
dara/core/configuration.py,sha256=PAxtnIF86kRh3D7DrdB3lxwl2QkA008aKSykvcLGlCE,23353
|
|
12
|
+
dara/core/css.py,sha256=c1TMGzOcXYIy-qU-TxeirGlq2BNEigP80eDG3ItjRbU,1740
|
|
13
|
+
dara/core/data_utils.py,sha256=haR-SPCFm90RfOIndPBGOpFtOEmhiJgizmzcqzZOZBg,12455
|
|
14
|
+
dara/core/defaults.py,sha256=b65eh02Xcsl9kinIch_MYOMEklcs7M7pfJ_oCpWiIs8,4734
|
|
15
|
+
dara/core/definitions.py,sha256=S1ZvbsW7atxdESdDwGl-WR4Ezc_ukjVSHzhpOqyak2Y,18036
|
|
16
|
+
dara/core/http.py,sha256=gFkUV3jBY6lx0ZIIzeFw8zEH6WAb8uIKfo_t8heZDEw,4739
|
|
17
|
+
dara/core/interactivity/__init__.py,sha256=LTH2OOGtJSE4684xVrkjQXpxUMlf7_re8joIOm0EjV8,2728
|
|
18
|
+
dara/core/interactivity/actions.py,sha256=zK5316fT_bhg2LwXFhrtfqzoHBOi6SSzXw6EeuKgElk,48281
|
|
19
|
+
dara/core/interactivity/any_data_variable.py,sha256=qnJAgTV_AleBwobz2GovezvX2pXrcSwD18yKQPjt32I,306
|
|
20
|
+
dara/core/interactivity/any_variable.py,sha256=mOCBW5m1CCM-gzOMlN-rnlAIktb2rZJAPWE-WKiR3-A,13648
|
|
21
|
+
dara/core/interactivity/client_variable.py,sha256=Ku59TBDXrqEsMkc-upQ_GspWqHGBdtisDvpzGV6NUSs,2289
|
|
22
|
+
dara/core/interactivity/condition.py,sha256=BHfRA5kkULBjLbS9Q2NpkWUxcCicm0aKTTrsEWQQCVE,1567
|
|
23
|
+
dara/core/interactivity/data_variable.py,sha256=FJ6vtsZ-39C2KrOIaxSnjOBCD0mOHjvunMUkUjXon6Q,2500
|
|
24
|
+
dara/core/interactivity/derived_data_variable.py,sha256=nfHYrd2a4dT7penr2JhPVnHAv3MGpKn1pIIF5mh4xQo,3611
|
|
25
|
+
dara/core/interactivity/derived_variable.py,sha256=RMZbc1capmj_ceSG45GiQpheNgE1y9TIf8xl08YYHdY,32276
|
|
26
|
+
dara/core/interactivity/filtering.py,sha256=_F0OtECufYCptRI6h98_vDliG9xcPD5SItlQkjiNqR4,9667
|
|
27
|
+
dara/core/interactivity/loop_variable.py,sha256=vA09qhs7DJ7x_4oefhGG0K3MKrpkAnMXviWw2eBi_pU,2953
|
|
28
|
+
dara/core/interactivity/non_data_variable.py,sha256=k2yXTowWmH5UhG9iJfYo_bUG7AT5fdKSwX5LcDQ71-4,178
|
|
29
|
+
dara/core/interactivity/plain_variable.py,sha256=tuEY6FRvDpKvaXAqnz7ik0vXFxWOJ9jy9shUL21Z1dA,13087
|
|
30
|
+
dara/core/interactivity/server_variable.py,sha256=s1OoLIyWIVF0TAId5Pv3b6ZZpBEHjzTotYQufAYHjZI,11109
|
|
31
|
+
dara/core/interactivity/state_variable.py,sha256=Xpiazq25XS12dgvr3m1ojoqSy7svdmMaRMBxABusOzQ,2441
|
|
32
|
+
dara/core/interactivity/switch_variable.py,sha256=dhmAnF2KmL4944TJVipV-30BPYSLoD-uxyBP49W3V9Q,14099
|
|
33
|
+
dara/core/interactivity/tabular_variable.py,sha256=rUz9jnU6ya_0J7dhIN8d0VCDfzO7N5AsvksrHNtCO7k,3337
|
|
34
|
+
dara/core/interactivity/url_variable.py,sha256=lAtHgYvLA8RE-eFfv4Ix27T5YLGT5e0c0q9O5eQPOos,2282
|
|
35
|
+
dara/core/internal/__init__.py,sha256=QN0wbG9HPQ_vXh8BO8DnBXeYLIENVTNtRmYzZf1lx7c,577
|
|
36
|
+
dara/core/internal/cache_store/__init__.py,sha256=7JCmQwNIMzfyLZGnsk0BbT1EdDFO_PRZz86E9ATcC6c,139
|
|
37
|
+
dara/core/internal/cache_store/base_impl.py,sha256=LsUht9zS6lU8i6FO8JPTNNQTvMHH0PbFxxW_WjPZ_o4,1367
|
|
38
|
+
dara/core/internal/cache_store/cache_store.py,sha256=FnjVGEIIlJQ5cWI9CjiFe2Ak6e698F3LWiol2NIp4V8,8592
|
|
39
|
+
dara/core/internal/cache_store/keep_all.py,sha256=0Rh0WLYb1JUq8rPBjdehCxktHTW0gAAflZtOn20M3gU,2450
|
|
40
|
+
dara/core/internal/cache_store/lru.py,sha256=6Jd4TmUX1LaEPnOraf8cSnL9Rx-A_LDhjqOTWihGKzM,5332
|
|
41
|
+
dara/core/internal/cache_store/ttl.py,sha256=WzSZfdhK-nTf0fwCwtaRbJ-9I-FeTNBXgnZgSvZMbKQ,4966
|
|
42
|
+
dara/core/internal/cgroup.py,sha256=yKCTY8RxyxnNy-Mw4tfzeZew1dL8qw381gHBVE96-OA,3217
|
|
43
|
+
dara/core/internal/custom_response.py,sha256=MM0xEX7kVZWyX943Obl7sic3bxXr6kHGLWe6pc5pcYg,1304
|
|
44
|
+
dara/core/internal/dependency_resolution.py,sha256=6dHMEFfT3Fg9bstZgxSFFJpF13HMNN_rlCdg0ozJF3A,10264
|
|
45
|
+
dara/core/internal/devtools.py,sha256=4LsK7sqES33fAqb53dyH3n0OSWang3W-MiPsmo57aXU,2586
|
|
46
|
+
dara/core/internal/download.py,sha256=wBSUapMY6evZ_sA5ZgvnWhaRtzVMIDIC51mPzFCMWuM,3548
|
|
47
|
+
dara/core/internal/encoder_registry.py,sha256=Q8F5Y2uZVkx7EUtk4MZ99wvPBWaMnPKcFZzK92FYNPw,11159
|
|
48
|
+
dara/core/internal/execute_action.py,sha256=di2WBTHw6smcRRYv1uqJbnnMxPTRq2uxYLdq5YdGeZg,9310
|
|
49
|
+
dara/core/internal/hashing.py,sha256=LTX249EpWfJ8ikx66o8t4gtSYxvcC00RKLOW6epbqCA,1094
|
|
50
|
+
dara/core/internal/import_discovery.py,sha256=8DFtLulbOIoPr4yxnS1OO431dZA27hLEjylklW_cm6s,8042
|
|
51
|
+
dara/core/internal/multi_resource_lock.py,sha256=mUoc6KKk8mpLGCXfa6nFd60yNuas4b6wsAk8VrvGDxI,2496
|
|
52
|
+
dara/core/internal/normalization.py,sha256=dgZZemPq8NP04uvcEwElqDd8JV6FYx_UuFfgyrOZSNk,6008
|
|
53
|
+
dara/core/internal/pandas_utils.py,sha256=1au2ixLfqdvwuFApwah580Y0WD6puw_Q0lBgFtK-Hdo,6514
|
|
54
|
+
dara/core/internal/pool/__init__.py,sha256=pBbXE5GR3abVC9Lg3i0QxfdmsrBDMJUYAYb0SiAEBkk,657
|
|
55
|
+
dara/core/internal/pool/channel.py,sha256=mLYa-R4KBGjRENDc9r1Hym5TpIeLv9y5kLJtjI7YXZA,4911
|
|
56
|
+
dara/core/internal/pool/definitions.py,sha256=cfyCWH01Lm-rJOgxvy5N83hdbouJErDFo_lOM1m0Kd8,4612
|
|
57
|
+
dara/core/internal/pool/task_pool.py,sha256=zwIq2GssU6PRb1fmvtgpxwN0u_JmxU5fDi39QbYStJI,17739
|
|
58
|
+
dara/core/internal/pool/utils.py,sha256=DpWGfD-7fnQzjdgMk0qki2ZvRo-cjUHYkQxoFjJxrZw,5477
|
|
59
|
+
dara/core/internal/pool/worker.py,sha256=Ih0z1mqCNrX8Mo9I-LybfTDp46O9bvkl6TW7MZ-_oAU,6801
|
|
60
|
+
dara/core/internal/port_utils.py,sha256=3NN94CubNrIYQKmPM4SEwstY-UMqsbbe1M_JhyPcncA,1654
|
|
61
|
+
dara/core/internal/registries.py,sha256=j_Z3KqmiNHK3HsYmQI2O23B12MsT31SPvo3ezemASR8,3654
|
|
62
|
+
dara/core/internal/registry.py,sha256=Wqt7tEOmf5bR8D6lFIcLd3W1EtlENT364vRhxSqeOIQ,4356
|
|
63
|
+
dara/core/internal/registry_lookup.py,sha256=XgZ4PL4RLyKWNTXkh08lL6mmU492xgdPUsvFKA6pKDY,2411
|
|
64
|
+
dara/core/internal/routing.py,sha256=zp-5RDLIbpEabfd5ePaTVlnckQQ5uOHObjMjj0A1c7c,26631
|
|
65
|
+
dara/core/internal/scheduler.py,sha256=3LYdWAyFp8N1s9Xfud9XYwUbjcHpI-hCay3jZ5zRAiQ,12991
|
|
66
|
+
dara/core/internal/settings.py,sha256=tlJmmpN_bSwxIZPJcb9EyUcCxicV4LM0xj2G6Qvj_9A,3900
|
|
67
|
+
dara/core/internal/store.py,sha256=aq37Tk4J3DoqzLVHuZRbZFkpghKP-oiCbpQfIE95gCo,6399
|
|
68
|
+
dara/core/internal/tasks.py,sha256=qkJH3cu4o27SBKxkFjS_TUDispq0R0uHICKRbzMYOmU,35989
|
|
69
|
+
dara/core/internal/utils.py,sha256=rlxxLXPVZ0SpzGDHEe2bqSTvOJCRD5Fn6YeUNflrWC4,9007
|
|
70
|
+
dara/core/internal/websocket.py,sha256=etFWnCZwFg9aiLpjB1sMSfJUjPRvSAq_5RyOu_AH_dY,21864
|
|
71
|
+
dara/core/jinja/index.html,sha256=5Sq_FwXn0F4dOyRFprfoh_tn0GUq6_aLYyYdpzQLdeM,3312
|
|
72
|
+
dara/core/jinja/index_autojs.html,sha256=wkDPReUsMKfVvafFEawrj_3TdH8m_nliV0XuuGK8dyM,3884
|
|
73
|
+
dara/core/js_tooling/custom_js_scaffold/index.tsx,sha256=FEzSV5o5Nyzxw6eXvGLi7BkEBkXf3brV34_7ATLnY7o,68
|
|
74
|
+
dara/core/js_tooling/custom_js_scaffold/local-js-component.tsx,sha256=Ojsyeh9MYJnH_XJXGkSc8PAUZIqJcqcGTu_uRITo_88,709
|
|
75
|
+
dara/core/js_tooling/js_utils.py,sha256=uGQK55ysRth2Ji4FkbXVweJOpwbZ5CvFt5UC0hwsNyE,27506
|
|
76
|
+
dara/core/js_tooling/statics/favicon.ico,sha256=CJP26erMMIwQB8FFmyhoUJ-Cx1cXEopiVGxFwyxcpo0,47068
|
|
77
|
+
dara/core/js_tooling/statics/tsconfig.json,sha256=ubnFjwvPHbx2F7wVWsU2VHLDeEnnOwXkTIk7hLNY8ZM,446
|
|
78
|
+
dara/core/js_tooling/templates/.npmrc,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
79
|
+
dara/core/js_tooling/templates/_entry.template.tsx,sha256=oTeiSLDmq4J-2pM7qjA2RgUocT6Rla7BNwyEAJGvdCc,161
|
|
80
|
+
dara/core/js_tooling/templates/_entry_autojs.template.tsx,sha256=c9eNln0iLHUjhxsgXsF67hPcu4coloh0luvrhdM4ETM,202
|
|
81
|
+
dara/core/js_tooling/templates/dara.config.json,sha256=RZG_R_xJv_5rYIoz2QZulcG49wD0JURTzshtAzG_di4,84
|
|
82
|
+
dara/core/js_tooling/templates/vite.config.template.ts,sha256=W-R9LtXPMv7vQkqMawMmeFrjaQ22xrGU0iYyS_nHkh4,1199
|
|
83
|
+
dara/core/log_configs/logging.yaml,sha256=YJyD18psAmSVz6587dcEOyoulLuRFFu1g8yMXl1ylM0,706
|
|
84
|
+
dara/core/logging.py,sha256=Exe8dz8sbE1NDwRnqSoPCTnWtYe8BPLrO1n9gJQ1neQ,13214
|
|
85
|
+
dara/core/main.py,sha256=045oWfEHd86b5WnanEWNNsMzYj_ugg-YIqcsxDk9tn8,20772
|
|
86
|
+
dara/core/metrics/__init__.py,sha256=2UqpWHv-Ie58QLJIHJ9Szfjq8xifAuwy5FYGUIFwWtI,823
|
|
87
|
+
dara/core/metrics/cache.py,sha256=3Sw2JWofa1vxc39NwQ8LOdTd9sX3gkrPSojjjnr-u1I,2594
|
|
88
|
+
dara/core/metrics/runtime.py,sha256=YP-6Dz0GeI9_Yr7bUk_-OqShyFySGH_AKpDO126l6es,1833
|
|
89
|
+
dara/core/metrics/utils.py,sha256=inR1Ab5hmWZY2lsgGwLCQOEdyhCD9PumU52X2JbwlKY,2251
|
|
90
|
+
dara/core/persistence.py,sha256=EAEER1T0MHBrtT-iLZ-eXzAsqwu4Klqw5mDlTPSdPkI,19322
|
|
91
|
+
dara/core/router/__init__.py,sha256=yGI_MgLQU37ircCtYVNjnhqCjWQxKd5amoNqvMyrhOs,121
|
|
92
|
+
dara/core/router/compat.py,sha256=B83wq46AwQARTDfZwGrpr0slrnQmi_T7shOUNpqltSM,3112
|
|
93
|
+
dara/core/router/components.py,sha256=Wsf_bBnnN-1EE5jhbjPSOyDv_TVKEsY4royyOQOazM4,6132
|
|
94
|
+
dara/core/router/dependency_graph.py,sha256=A0xGuZWSOCGs7rwHbeZC5vLvZouUt-2fnEX9VM2Ukp0,2280
|
|
95
|
+
dara/core/router/router.py,sha256=5Nh7ms7ynnUWEV1FuCus-XvGp4NAe4OB1jdS2x5SS7Q,31249
|
|
96
|
+
dara/core/umd/dara.core.umd.cjs,sha256=CAfqSc0a7SEK9gTJUoKr0bksjFjfeCpKlq0Ls5XSDp0,5152269
|
|
97
|
+
dara/core/umd/style.css,sha256=yT3PKpi2sKI2-kQIF8xtVbTPQqgpK7-Ua7tfzDPuSsI,4095881
|
|
98
|
+
dara/core/visual/__init__.py,sha256=QN0wbG9HPQ_vXh8BO8DnBXeYLIENVTNtRmYzZf1lx7c,577
|
|
99
|
+
dara/core/visual/components/__init__.py,sha256=nmCsnMLXeZAjkhMYz-mIFodpVY-69IO1fvwwXbFlMQ4,2447
|
|
100
|
+
dara/core/visual/components/dynamic_component.py,sha256=opa6zp_IGJgjgn7DOS35JmBbX7nHcmUQL44cMzELQc8,660
|
|
101
|
+
dara/core/visual/components/fallback.py,sha256=-7lJwqPrm47Xbqs3rYEUw2JXuJRJpd_wYMt7no8uWkE,4746
|
|
102
|
+
dara/core/visual/components/for_cmp.py,sha256=SxUR0KYYHbLYZqPGesfSM-GSzCBL2eXyqYDlYYLkYdQ,6316
|
|
103
|
+
dara/core/visual/components/invalid_component.py,sha256=Q6O9rAwVUNZXjEmliAKLfWf2lsyYK5JhgQvMM6jVco8,901
|
|
104
|
+
dara/core/visual/components/menu.py,sha256=_Q_aGrCssOe29WFmRfRFOIOpFDn2HEn2TKF2ll_Ddss,1088
|
|
105
|
+
dara/core/visual/components/menu_link.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
106
|
+
dara/core/visual/components/powered_by_causalens.py,sha256=AOeEDKCqRcLhdVDcpcXnAwGupfMvrJo2cZ26q3CYpMc,285
|
|
107
|
+
dara/core/visual/components/progress_tracker.py,sha256=5p_nEJf7RK2oPimXL4YhAN7v0Jcx2HHQzlLxPr7Co38,1705
|
|
108
|
+
dara/core/visual/components/raw_string.py,sha256=jtG9hDZz3s-sCg__Eg4__XkD80OhnNaWiRo-W88LK4M,921
|
|
109
|
+
dara/core/visual/components/router_content.py,sha256=6M5GO3HKIeLRQeGyza6GB6XlA4o5wA--li8CB0WmYlY,953
|
|
110
|
+
dara/core/visual/components/sidebar_frame.py,sha256=oJhIewMCr6M-sg7otzCFct0LLiGMITl8FCcuph8pWes,1238
|
|
111
|
+
dara/core/visual/components/theme_provider.py,sha256=1IWS7eY51-k47LwBwqPP-JWxEe5QWX75DgNAB_6uJ4k,1440
|
|
112
|
+
dara/core/visual/components/topbar_frame.py,sha256=GWjrOauwebk6wVsW57R_S2i5iseZPRu3FUDUTqJ6l-k,1202
|
|
113
|
+
dara/core/visual/components/types.py,sha256=uH2IGufr4-I8cNbZgnEd3YbqoPFgyqG91rfNXZVG7a0,686
|
|
114
|
+
dara/core/visual/css/Property.py,sha256=XJzlMeASyrquhXmaQZvrsgin3xlVfm94dHRY9aJkhXk,43028
|
|
115
|
+
dara/core/visual/css/__init__.py,sha256=urRPwRUvt15wUkmKuoJDyS4bTt6AG1MfKzuImRG8SUI,365451
|
|
116
|
+
dara/core/visual/dynamic_component.py,sha256=V1S4HIVpmI4tX-XxvdetnjCcmdcf10YTU_7a8K6KRjM,14171
|
|
117
|
+
dara/core/visual/progress_updater.py,sha256=HHY-xNEBoeUVbheYtZ4Yuhi8VHV3SRfygpfOCyBU-U8,5904
|
|
118
|
+
dara/core/visual/template.py,sha256=1Z-Qv3uctjRtRJnzq-xx5tRBLxFfRGYSCngPrBVbP1I,5651
|
|
119
|
+
dara/core/visual/themes/__init__.py,sha256=aM4mgoIYo2neBSw5FRzswsht7PUKjLthiHLmFIkyRKw,794
|
|
120
|
+
dara/core/visual/themes/dark.py,sha256=UQGDooOc8ric73eHs9E0ltYP4UCrwqQ3QxqN_fb4PwY,1942
|
|
121
|
+
dara/core/visual/themes/definitions.py,sha256=jywX4ObSPSW5ppm5mki50L_dPEIeAWweYre1C225STk,2697
|
|
122
|
+
dara/core/visual/themes/light.py,sha256=-Tviq8oEwGbdFULoDOqPuHO0UpAZGsBy8qFi0kAGolQ,1944
|
|
123
|
+
dara_core-1.21.17.dist-info/LICENSE,sha256=r9u1w2RvpLMV6YjuXHIKXRBKzia3fx_roPwboGcLqCc,10944
|
|
124
|
+
dara_core-1.21.17.dist-info/METADATA,sha256=9ENqijyvgYrI0rtsh-UR-abNBoUZYmu7WUHkYu9SJeg,7502
|
|
125
|
+
dara_core-1.21.17.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
126
|
+
dara_core-1.21.17.dist-info/entry_points.txt,sha256=H__D5sNIGuPIhVam0DChNL-To5k8Y7nY7TAFz9Mz6cc,139
|
|
127
|
+
dara_core-1.21.17.dist-info/RECORD,,
|