squirrels 0.5.0rc0__py3-none-any.whl → 0.5.1__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.
Potentially problematic release.
This version of squirrels might be problematic. Click here for more details.
- dateutils/__init__.py +6 -0
- dateutils/_enums.py +25 -0
- squirrels/dateutils.py → dateutils/_implementation.py +58 -111
- dateutils/types.py +6 -0
- squirrels/__init__.py +10 -12
- squirrels/_api_routes/__init__.py +5 -0
- squirrels/_api_routes/auth.py +271 -0
- squirrels/_api_routes/base.py +171 -0
- squirrels/_api_routes/dashboards.py +158 -0
- squirrels/_api_routes/data_management.py +148 -0
- squirrels/_api_routes/datasets.py +265 -0
- squirrels/_api_routes/oauth2.py +298 -0
- squirrels/_api_routes/project.py +252 -0
- squirrels/_api_server.py +245 -781
- squirrels/_arguments/__init__.py +0 -0
- squirrels/{arguments → _arguments}/init_time_args.py +7 -2
- squirrels/{arguments → _arguments}/run_time_args.py +13 -35
- squirrels/_auth.py +720 -212
- squirrels/_command_line.py +81 -41
- squirrels/_compile_prompts.py +147 -0
- squirrels/_connection_set.py +16 -7
- squirrels/_constants.py +29 -9
- squirrels/{_dashboards_io.py → _dashboards.py} +87 -6
- squirrels/_data_sources.py +570 -0
- squirrels/{dataset_result.py → _dataset_types.py} +2 -4
- squirrels/_exceptions.py +9 -37
- squirrels/_initializer.py +83 -59
- squirrels/_logging.py +117 -0
- squirrels/_manifest.py +129 -62
- squirrels/_model_builder.py +10 -52
- squirrels/_model_configs.py +3 -3
- squirrels/_model_queries.py +1 -1
- squirrels/_models.py +249 -118
- squirrels/{package_data → _package_data}/base_project/.env +16 -4
- squirrels/{package_data → _package_data}/base_project/.env.example +15 -3
- squirrels/{package_data → _package_data}/base_project/connections.yml +4 -3
- squirrels/{package_data → _package_data}/base_project/dashboards/dashboard_example.py +4 -4
- squirrels/_package_data/base_project/dashboards/dashboard_example.yml +22 -0
- squirrels/{package_data → _package_data}/base_project/duckdb_init.sql +1 -0
- squirrels/_package_data/base_project/macros/macros_example.sql +17 -0
- squirrels/{package_data → _package_data}/base_project/models/builds/build_example.py +2 -2
- squirrels/{package_data → _package_data}/base_project/models/builds/build_example.sql +1 -1
- squirrels/{package_data → _package_data}/base_project/models/builds/build_example.yml +2 -0
- squirrels/_package_data/base_project/models/dbviews/dbview_example.sql +17 -0
- squirrels/_package_data/base_project/models/dbviews/dbview_example.yml +32 -0
- squirrels/_package_data/base_project/models/federates/federate_example.py +48 -0
- squirrels/_package_data/base_project/models/federates/federate_example.sql +21 -0
- squirrels/{package_data → _package_data}/base_project/models/federates/federate_example.yml +7 -7
- squirrels/{package_data → _package_data}/base_project/models/sources.yml +5 -6
- squirrels/{package_data → _package_data}/base_project/parameters.yml +32 -45
- squirrels/_package_data/base_project/pyconfigs/connections.py +18 -0
- squirrels/{package_data → _package_data}/base_project/pyconfigs/context.py +31 -22
- squirrels/_package_data/base_project/pyconfigs/parameters.py +141 -0
- squirrels/_package_data/base_project/pyconfigs/user.py +44 -0
- squirrels/{package_data → _package_data}/base_project/seeds/seed_categories.yml +1 -1
- squirrels/{package_data → _package_data}/base_project/seeds/seed_subcategories.yml +1 -1
- squirrels/_package_data/base_project/squirrels.yml.j2 +61 -0
- squirrels/_package_data/templates/dataset_results.html +112 -0
- squirrels/_package_data/templates/oauth_login.html +271 -0
- squirrels/_package_data/templates/squirrels_studio.html +20 -0
- squirrels/_parameter_configs.py +76 -55
- squirrels/_parameter_options.py +348 -0
- squirrels/_parameter_sets.py +53 -45
- squirrels/_parameters.py +1664 -0
- squirrels/_project.py +403 -242
- squirrels/_py_module.py +3 -2
- squirrels/_request_context.py +33 -0
- squirrels/_schemas/__init__.py +0 -0
- squirrels/_schemas/auth_models.py +167 -0
- squirrels/_schemas/query_param_models.py +75 -0
- squirrels/{_api_response_models.py → _schemas/response_models.py} +48 -18
- squirrels/_seeds.py +1 -1
- squirrels/_sources.py +23 -19
- squirrels/_utils.py +121 -39
- squirrels/_version.py +1 -1
- squirrels/arguments.py +7 -0
- squirrels/auth.py +4 -0
- squirrels/connections.py +3 -0
- squirrels/dashboards.py +2 -81
- squirrels/data_sources.py +14 -563
- squirrels/parameter_options.py +13 -348
- squirrels/parameters.py +14 -1266
- squirrels/types.py +16 -0
- {squirrels-0.5.0rc0.dist-info → squirrels-0.5.1.dist-info}/METADATA +42 -30
- squirrels-0.5.1.dist-info/RECORD +98 -0
- squirrels/package_data/base_project/dashboards/dashboard_example.yml +0 -22
- squirrels/package_data/base_project/macros/macros_example.sql +0 -15
- squirrels/package_data/base_project/models/dbviews/dbview_example.sql +0 -12
- squirrels/package_data/base_project/models/dbviews/dbview_example.yml +0 -26
- squirrels/package_data/base_project/models/federates/federate_example.py +0 -44
- squirrels/package_data/base_project/models/federates/federate_example.sql +0 -17
- squirrels/package_data/base_project/pyconfigs/connections.py +0 -14
- squirrels/package_data/base_project/pyconfigs/parameters.py +0 -93
- squirrels/package_data/base_project/pyconfigs/user.py +0 -23
- squirrels/package_data/base_project/squirrels.yml.j2 +0 -71
- squirrels-0.5.0rc0.dist-info/RECORD +0 -70
- /squirrels/{package_data → _package_data}/base_project/assets/expenses.db +0 -0
- /squirrels/{package_data → _package_data}/base_project/assets/weather.db +0 -0
- /squirrels/{package_data → _package_data}/base_project/docker/.dockerignore +0 -0
- /squirrels/{package_data → _package_data}/base_project/docker/Dockerfile +0 -0
- /squirrels/{package_data → _package_data}/base_project/docker/compose.yml +0 -0
- /squirrels/{package_data/base_project/.gitignore → _package_data/base_project/gitignore} +0 -0
- /squirrels/{package_data → _package_data}/base_project/seeds/seed_categories.csv +0 -0
- /squirrels/{package_data → _package_data}/base_project/seeds/seed_subcategories.csv +0 -0
- /squirrels/{package_data → _package_data}/base_project/tmp/.gitignore +0 -0
- {squirrels-0.5.0rc0.dist-info → squirrels-0.5.1.dist-info}/WHEEL +0 -0
- {squirrels-0.5.0rc0.dist-info → squirrels-0.5.1.dist-info}/entry_points.txt +0 -0
- {squirrels-0.5.0rc0.dist-info → squirrels-0.5.1.dist-info}/licenses/LICENSE +0 -0
|
File without changes
|
|
@@ -19,6 +19,11 @@ class ConnectionsArgs:
|
|
|
19
19
|
return self._env_vars.copy()
|
|
20
20
|
|
|
21
21
|
|
|
22
|
+
@dataclass
|
|
23
|
+
class AuthProviderArgs(ConnectionsArgs):
|
|
24
|
+
pass
|
|
25
|
+
|
|
26
|
+
|
|
22
27
|
@dataclass
|
|
23
28
|
class ParametersArgs(ConnectionsArgs):
|
|
24
29
|
pass
|
|
@@ -88,14 +93,14 @@ class BuildModelArgs(_WithConnectionDictArgs):
|
|
|
88
93
|
|
|
89
94
|
def run_sql_on_dataframes(self, sql_query: str, *, dataframes: dict[str, pl.LazyFrame] | None = None, **kwargs) -> pl.DataFrame:
|
|
90
95
|
"""
|
|
91
|
-
Uses a dictionary of dataframes to execute a SQL query in an embedded in-memory database
|
|
96
|
+
Uses a dictionary of dataframes to execute a SQL query in an embedded in-memory DuckDB database
|
|
92
97
|
|
|
93
98
|
Arguments:
|
|
94
99
|
sql_query: The SQL query to run
|
|
95
100
|
dataframes: A dictionary of table names to their polars LazyFrame. If None, uses results of dependent models
|
|
96
101
|
|
|
97
102
|
Returns:
|
|
98
|
-
The result as a polars
|
|
103
|
+
The result as a polars DataFrame from running the query
|
|
99
104
|
"""
|
|
100
105
|
if dataframes is None:
|
|
101
106
|
dataframes = {x: self.ref(x) for x in self._dependencies}
|
|
@@ -1,45 +1,23 @@
|
|
|
1
1
|
from typing import Callable, Any, Coroutine
|
|
2
2
|
import polars as pl
|
|
3
3
|
|
|
4
|
-
from .init_time_args import
|
|
5
|
-
from ..
|
|
6
|
-
from ..
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
class AuthLoginArgs(_WithConnectionDictArgs):
|
|
10
|
-
|
|
11
|
-
def __init__(
|
|
12
|
-
self, conn_args: ConnectionsArgs, _connections: dict[str, Any],
|
|
13
|
-
username: str,
|
|
14
|
-
password: str
|
|
15
|
-
):
|
|
16
|
-
super().__init__(conn_args.project_path, conn_args.proj_vars, conn_args.env_vars, _connections)
|
|
17
|
-
self.username = username
|
|
18
|
-
self.password = password
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
class AuthTokenArgs(_WithConnectionDictArgs):
|
|
22
|
-
|
|
23
|
-
def __init__(
|
|
24
|
-
self, conn_args: ConnectionsArgs, _connections: dict[str, Any],
|
|
25
|
-
token: str
|
|
26
|
-
):
|
|
27
|
-
super().__init__(conn_args.project_path, conn_args.proj_vars, conn_args.env_vars, _connections)
|
|
28
|
-
self.token = token
|
|
4
|
+
from .init_time_args import ParametersArgs, BuildModelArgs
|
|
5
|
+
from .._schemas.auth_models import AbstractUser
|
|
6
|
+
from .._parameters import Parameter, TextValue
|
|
29
7
|
|
|
30
8
|
|
|
31
9
|
class ContextArgs(ParametersArgs):
|
|
32
10
|
|
|
33
11
|
def __init__(
|
|
34
12
|
self, param_args: ParametersArgs,
|
|
35
|
-
user:
|
|
36
|
-
prms: dict[str, Parameter],
|
|
37
|
-
|
|
13
|
+
user: AbstractUser,
|
|
14
|
+
prms: dict[str, Parameter],
|
|
15
|
+
configurables: dict[str, str]
|
|
38
16
|
):
|
|
39
17
|
super().__init__(param_args.project_path, param_args.proj_vars, param_args.env_vars)
|
|
40
18
|
self.user = user
|
|
41
19
|
self._prms = prms
|
|
42
|
-
self.
|
|
20
|
+
self._configurables = configurables
|
|
43
21
|
self._placeholders = {}
|
|
44
22
|
|
|
45
23
|
@property
|
|
@@ -50,14 +28,14 @@ class ContextArgs(ParametersArgs):
|
|
|
50
28
|
return self._prms.copy()
|
|
51
29
|
|
|
52
30
|
@property
|
|
53
|
-
def
|
|
31
|
+
def configurables(self) -> dict[str, str]:
|
|
54
32
|
"""
|
|
55
|
-
A dictionary of
|
|
33
|
+
A dictionary of configurable name to value (set by application)
|
|
56
34
|
"""
|
|
57
|
-
return self.
|
|
35
|
+
return self._configurables.copy()
|
|
58
36
|
|
|
59
37
|
@property
|
|
60
|
-
def
|
|
38
|
+
def _placeholders_copy(self) -> dict[str, Any]:
|
|
61
39
|
"""
|
|
62
40
|
A dictionary of placeholder name to placeholder value
|
|
63
41
|
"""
|
|
@@ -102,8 +80,8 @@ class ModelArgs(BuildModelArgs, ContextArgs):
|
|
|
102
80
|
self._env_vars = ctx_args.env_vars
|
|
103
81
|
self.user = ctx_args.user
|
|
104
82
|
self._prms = ctx_args.prms
|
|
105
|
-
self.
|
|
106
|
-
self._placeholders = ctx_args.
|
|
83
|
+
self._configurables = ctx_args.configurables
|
|
84
|
+
self._placeholders = ctx_args._placeholders_copy
|
|
107
85
|
self._connections = build_model_args.connections
|
|
108
86
|
self._dependencies = build_model_args.dependencies
|
|
109
87
|
self._ref = build_model_args.ref
|