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.
Files changed (48) hide show
  1. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/PKG-INFO +12 -2
  2. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/__cli__.py +2 -2
  3. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/ch_utils/engine.py +29 -2
  4. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/datafile.py +19 -1
  5. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/feedback_manager.py +3 -0
  6. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird_cli.egg-info/PKG-INFO +12 -2
  7. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/setup.cfg +0 -0
  8. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/ch_utils/constants.py +0 -0
  9. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/check_pypi.py +0 -0
  10. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/client.py +0 -0
  11. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/config.py +0 -0
  12. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/connector_settings.py +0 -0
  13. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/connectors.py +0 -0
  14. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/context.py +0 -0
  15. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/data_connectors/credentials.py +0 -0
  16. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/datatypes.py +0 -0
  17. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/git_settings.py +0 -0
  18. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/sql.py +0 -0
  19. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/sql_template.py +0 -0
  20. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/sql_template_fmt.py +0 -0
  21. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/sql_toolset.py +0 -0
  22. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/syncasync.py +0 -0
  23. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli.py +0 -0
  24. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/auth.py +0 -0
  25. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/branch.py +0 -0
  26. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/cicd.py +0 -0
  27. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/cli.py +0 -0
  28. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/common.py +0 -0
  29. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/config.py +0 -0
  30. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/connection.py +0 -0
  31. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/datasource.py +0 -0
  32. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/exceptions.py +0 -0
  33. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/job.py +0 -0
  34. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/pipe.py +0 -0
  35. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/regions.py +0 -0
  36. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/telemetry.py +0 -0
  37. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/test.py +0 -0
  38. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/tinyunit/tinyunit.py +0 -0
  39. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/tinyunit/tinyunit_lib.py +0 -0
  40. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/token.py +0 -0
  41. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/workspace.py +0 -0
  42. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tb_cli_modules/workspace_members.py +0 -0
  43. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird/tornado_template.py +0 -0
  44. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird_cli.egg-info/SOURCES.txt +0 -0
  45. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird_cli.egg-info/dependency_links.txt +0 -0
  46. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird_cli.egg-info/entry_points.txt +0 -0
  47. {tinybird-cli-3.3.1.dev12 → tinybird-cli-3.3.1.dev14}/tinybird_cli.egg-info/requires.txt +0 -0
  48. {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.dev12
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
- - `Add` Check backfill on preview is required when `tb deploy` modified datasources. Disable check with `TB_CHECK_BACKFILL_REQUIRED=0`.
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.dev12'
8
- __revision__ = '059af77'
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(exclude=["engine", "engine_full"], include_empty_details=include_empty_details)
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.dev12
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
- - `Add` Check backfill on preview is required when `tb deploy` modified datasources. Disable check with `TB_CHECK_BACKFILL_REQUIRED=0`.
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
  ************