tinybird-cli 3.3.1.dev12__tar.gz → 3.3.1.dev14__tar.gz
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.
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/PKG-INFO +12 -2
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/__cli__.py +2 -2
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/ch_utils/engine.py +29 -2
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/datafile.py +19 -1
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/feedback_manager.py +3 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird_cli.egg-info/PKG-INFO +12 -2
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/setup.cfg +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/ch_utils/constants.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/check_pypi.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/client.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/config.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/connector_settings.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/connectors.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/context.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/data_connectors/credentials.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/datatypes.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/git_settings.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/sql.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/sql_template.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/sql_template_fmt.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/sql_toolset.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/syncasync.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/auth.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/branch.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/cicd.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/cli.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/common.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/config.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/connection.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/datasource.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/exceptions.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/job.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/pipe.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/regions.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/telemetry.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/test.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/tinyunit/tinyunit.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/tinyunit/tinyunit_lib.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/token.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/workspace.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/workspace_members.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tornado_template.py +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird_cli.egg-info/SOURCES.txt +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird_cli.egg-info/dependency_links.txt +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird_cli.egg-info/entry_points.txt +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird_cli.egg-info/requires.txt +0 -0
- {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird_cli.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: tinybird-cli
|
|
3
|
-
Version: 3.3.1.
|
|
3
|
+
Version: 3.3.1.dev14
|
|
4
4
|
Summary: Tinybird Command Line Tool
|
|
5
5
|
Home-page: https://docs.tinybird.co/cli.html
|
|
6
6
|
Author: Tinybird
|
|
@@ -19,6 +19,16 @@ Changelog
|
|
|
19
19
|
|
|
20
20
|
---------
|
|
21
21
|
|
|
22
|
+
3.3.1.dev14
|
|
23
|
+
************
|
|
24
|
+
|
|
25
|
+
- `Added` Support `tb deploy` .datasource with `INDICES`
|
|
26
|
+
|
|
27
|
+
3.3.1.dev13
|
|
28
|
+
************
|
|
29
|
+
|
|
30
|
+
- `Added` Support `tb push` .datasource with `INDICES`
|
|
31
|
+
|
|
22
32
|
3.3.1.dev12
|
|
23
33
|
************
|
|
24
34
|
|
|
@@ -27,7 +37,7 @@ Changelog
|
|
|
27
37
|
3.3.1.dev11
|
|
28
38
|
************
|
|
29
39
|
|
|
30
|
-
- `
|
|
40
|
+
- `Added` Check backfill on preview is required when `tb deploy` modified datasources. Disable check with `TB_CHECK_BACKFILL_REQUIRED=0`.
|
|
31
41
|
|
|
32
42
|
3.3.1.dev10
|
|
33
43
|
************
|
|
@@ -4,5 +4,5 @@ __description__ = 'Tinybird Command Line Tool'
|
|
|
4
4
|
__url__ = 'https://docs.tinybird.co/cli.html'
|
|
5
5
|
__author__ = 'Tinybird'
|
|
6
6
|
__author_email__ = 'support@tinybird.co'
|
|
7
|
-
__version__ = '3.3.1.
|
|
8
|
-
__revision__ = '
|
|
7
|
+
__version__ = '3.3.1.dev14'
|
|
8
|
+
__revision__ = '5fde94c'
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
import re
|
|
3
3
|
from collections import defaultdict
|
|
4
|
+
from dataclasses import asdict
|
|
4
5
|
from typing import Any, Callable, Dict, Iterable, List, Optional
|
|
5
6
|
|
|
6
|
-
from ..sql import col_name, engine_replicated_to_local, parse_table_structure
|
|
7
|
+
from ..sql import TableIndex, col_name, engine_replicated_to_local, parse_indices_structure, parse_table_structure
|
|
7
8
|
|
|
8
9
|
DEFAULT_EMPTY_PARAMETERS = ["ttl", "partition_key", "sorting_key"]
|
|
9
10
|
DEFAULT_JOIN_EMPTY_PARAMETERS = ["join_strictness", "join_type", "key_columns"]
|
|
@@ -204,6 +205,10 @@ class TableDetails:
|
|
|
204
205
|
"row_count": self.details.get("total_rows", None),
|
|
205
206
|
}
|
|
206
207
|
|
|
208
|
+
@property
|
|
209
|
+
def indices(self) -> List[TableIndex]:
|
|
210
|
+
return _parse_indices(str(self.details.get("create_table_query", "")))
|
|
211
|
+
|
|
207
212
|
def to_json(self, exclude: Optional[List[str]] = None, include_empty_details: bool = False):
|
|
208
213
|
# name, database are not exported since they are not part of the engine
|
|
209
214
|
d: Dict[str, Any] = {
|
|
@@ -234,6 +239,8 @@ class TableDetails:
|
|
|
234
239
|
d["version"] = self.version
|
|
235
240
|
if self.ttl:
|
|
236
241
|
d["ttl"] = self.ttl.strip()
|
|
242
|
+
if self.indices:
|
|
243
|
+
d["indices"] = [asdict(index) for index in self.indices]
|
|
237
244
|
|
|
238
245
|
if self.engine_full:
|
|
239
246
|
engine_params = engine_params_from_engine_full(self.engine_full)
|
|
@@ -253,7 +260,9 @@ class TableDetails:
|
|
|
253
260
|
return d
|
|
254
261
|
|
|
255
262
|
def to_datafile(self, include_empty_details: bool = False) -> str:
|
|
256
|
-
d: Dict[str, Any] = self.to_json(
|
|
263
|
+
d: Dict[str, Any] = self.to_json(
|
|
264
|
+
exclude=["engine", "engine_full", "indices"], include_empty_details=include_empty_details
|
|
265
|
+
)
|
|
257
266
|
engine: str = self.engine
|
|
258
267
|
|
|
259
268
|
datafile: str = ""
|
|
@@ -774,3 +783,21 @@ def ttl_condition_from_engine_full(engine_full: Optional[str]) -> Optional[str]:
|
|
|
774
783
|
except Exception as e:
|
|
775
784
|
logging.error(str(e))
|
|
776
785
|
return None
|
|
786
|
+
|
|
787
|
+
|
|
788
|
+
def _parse_indices(create_table_query_expr: str) -> List[TableIndex]:
|
|
789
|
+
if create_table_query_expr == "":
|
|
790
|
+
return []
|
|
791
|
+
try:
|
|
792
|
+
from tinybird.sql_toolset import format_sql
|
|
793
|
+
|
|
794
|
+
indices = [
|
|
795
|
+
line.strip()
|
|
796
|
+
for line in format_sql(create_table_query_expr).splitlines()
|
|
797
|
+
if line.strip().startswith("INDEX")
|
|
798
|
+
]
|
|
799
|
+
except ModuleNotFoundError:
|
|
800
|
+
# this is not needed from CLI
|
|
801
|
+
return []
|
|
802
|
+
|
|
803
|
+
return parse_indices_structure(indices)
|
|
@@ -65,7 +65,7 @@ from tinybird.tb_cli_modules.exceptions import CLIGitReleaseException, CLIPipeEx
|
|
|
65
65
|
from .ch_utils.engine import ENABLED_ENGINES
|
|
66
66
|
from .client import AuthException, CanNotBeDeletedException, DoesNotExistException, TinyB
|
|
67
67
|
from .feedback_manager import FeedbackManager
|
|
68
|
-
from .sql import parse_table_structure, schema_to_sql_columns
|
|
68
|
+
from .sql import parse_indices_structure, parse_table_structure, schema_to_sql_columns
|
|
69
69
|
from .sql_template import get_used_tables_in_template, render_sql_template
|
|
70
70
|
from .tornado_template import UnClosedIfError
|
|
71
71
|
|
|
@@ -824,6 +824,17 @@ def parse(
|
|
|
824
824
|
parser_state.current_node["schema"] = ",".join(schema_to_sql_columns(sh))
|
|
825
825
|
parser_state.current_node["columns"] = sh
|
|
826
826
|
|
|
827
|
+
def indices(*args, **kwargs):
|
|
828
|
+
s = _unquote("".join(args))
|
|
829
|
+
if not s:
|
|
830
|
+
return
|
|
831
|
+
try:
|
|
832
|
+
indices = parse_indices_structure(s.splitlines())
|
|
833
|
+
except Exception as e:
|
|
834
|
+
raise ParseException(FeedbackManager.error_parsing_indices(line=kwargs["lineno"], error=e))
|
|
835
|
+
|
|
836
|
+
parser_state.current_node["indices"] = indices
|
|
837
|
+
|
|
827
838
|
def assign_var(v: str) -> Callable[[VarArg(str), KwArg(Any)], None]:
|
|
828
839
|
def _f(*args: str, **kwargs: Any):
|
|
829
840
|
s = _unquote((" ".join(args)).strip())
|
|
@@ -970,6 +981,7 @@ def parse(
|
|
|
970
981
|
"source": sources,
|
|
971
982
|
"maintainer": assign("maintainer"),
|
|
972
983
|
"schema": schema,
|
|
984
|
+
"indices": indices,
|
|
973
985
|
"engine": set_engine,
|
|
974
986
|
"partition_key": assign_var("partition_key"),
|
|
975
987
|
"sorting_key": assign_var("sorting_key"),
|
|
@@ -1307,10 +1319,16 @@ async def process_file(
|
|
|
1307
1319
|
return name
|
|
1308
1320
|
|
|
1309
1321
|
description = node.get("description", "")
|
|
1322
|
+
indices_list = node.get("indices", [])
|
|
1323
|
+
indices = None
|
|
1324
|
+
if indices_list:
|
|
1325
|
+
indices = "\n".join([index.to_sql() for index in indices_list])
|
|
1310
1326
|
params = {
|
|
1311
1327
|
"name": append_version_to_name(name, version),
|
|
1312
1328
|
"description": description,
|
|
1313
1329
|
"schema": schema,
|
|
1330
|
+
"indices": indices,
|
|
1331
|
+
"indices_list": indices_list,
|
|
1314
1332
|
"format": _format,
|
|
1315
1333
|
}
|
|
1316
1334
|
|
|
@@ -96,6 +96,9 @@ class FeedbackManager:
|
|
|
96
96
|
error_pull = error_message("there was a problem while pulling: {error}")
|
|
97
97
|
error_parsing_file = error_message("error parsing {filename}:{lineno} {error}")
|
|
98
98
|
error_parsing_schema = error_message("error parsing schema (line {line}): {error}")
|
|
99
|
+
error_parsing_indices = error_message(
|
|
100
|
+
"error parsing indices (line {line}): {error}. Usage: `name expr TYPE type_full GRANULARITY granularity`. Separate multiple indices by a new line."
|
|
101
|
+
)
|
|
99
102
|
error_sorting_key = error_message("SORTING_KEY should be set with {engine}")
|
|
100
103
|
error_unknown_resource = error_message("Unknown resource '{resource}'")
|
|
101
104
|
error_file_extension = error_message(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: tinybird-cli
|
|
3
|
-
Version: 3.3.1.
|
|
3
|
+
Version: 3.3.1.dev14
|
|
4
4
|
Summary: Tinybird Command Line Tool
|
|
5
5
|
Home-page: https://docs.tinybird.co/cli.html
|
|
6
6
|
Author: Tinybird
|
|
@@ -19,6 +19,16 @@ Changelog
|
|
|
19
19
|
|
|
20
20
|
---------
|
|
21
21
|
|
|
22
|
+
3.3.1.dev14
|
|
23
|
+
************
|
|
24
|
+
|
|
25
|
+
- `Added` Support `tb deploy` .datasource with `INDICES`
|
|
26
|
+
|
|
27
|
+
3.3.1.dev13
|
|
28
|
+
************
|
|
29
|
+
|
|
30
|
+
- `Added` Support `tb push` .datasource with `INDICES`
|
|
31
|
+
|
|
22
32
|
3.3.1.dev12
|
|
23
33
|
************
|
|
24
34
|
|
|
@@ -27,7 +37,7 @@ Changelog
|
|
|
27
37
|
3.3.1.dev11
|
|
28
38
|
************
|
|
29
39
|
|
|
30
|
-
- `
|
|
40
|
+
- `Added` Check backfill on preview is required when `tb deploy` modified datasources. Disable check with `TB_CHECK_BACKFILL_REQUIRED=0`.
|
|
31
41
|
|
|
32
42
|
3.3.1.dev10
|
|
33
43
|
************
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/data_connectors/credentials.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/tinyunit/tinyunit.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/workspace_members.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird_cli.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird_cli.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|