tinybird 0.0.1.dev263__tar.gz → 0.0.1.dev265__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.

Potentially problematic release.


This version of tinybird might be problematic. Click here for more details.

Files changed (145) hide show
  1. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/PKG-INFO +1 -1
  2. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/client.py +3 -0
  3. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/__cli__.py +2 -2
  4. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/client.py +3 -0
  5. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/banner.py +8 -35
  6. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/utils.py +1 -1
  7. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/deployment_common.py +25 -0
  8. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/materialization.py +10 -1
  9. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb_cli_modules/cli.py +8 -0
  10. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb_cli_modules/pipe.py +8 -0
  11. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird.egg-info/PKG-INFO +1 -1
  12. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/setup.cfg +0 -0
  13. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/__cli__.py +0 -0
  14. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/ch_utils/constants.py +0 -0
  15. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/ch_utils/engine.py +0 -0
  16. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/check_pypi.py +0 -0
  17. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/config.py +0 -0
  18. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/connectors.py +0 -0
  19. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/context.py +0 -0
  20. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/datafile/common.py +0 -0
  21. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/datafile/exceptions.py +0 -0
  22. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/datafile/parse_connection.py +0 -0
  23. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/datafile/parse_datasource.py +0 -0
  24. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/datafile/parse_pipe.py +0 -0
  25. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/datatypes.py +0 -0
  26. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/feedback_manager.py +0 -0
  27. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/git_settings.py +0 -0
  28. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/prompts.py +0 -0
  29. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/sql.py +0 -0
  30. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/sql_template.py +0 -0
  31. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/sql_template_fmt.py +0 -0
  32. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/sql_toolset.py +0 -0
  33. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/syncasync.py +0 -0
  34. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/check_pypi.py +0 -0
  35. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/cli.py +0 -0
  36. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/config.py +0 -0
  37. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/__init__.py +0 -0
  38. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/agent.py +0 -0
  39. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/animations.py +0 -0
  40. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/command_agent.py +0 -0
  41. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/memory.py +0 -0
  42. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/models.py +0 -0
  43. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/prompts.py +0 -0
  44. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/testing_agent.py +0 -0
  45. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/tools/__init__.py +0 -0
  46. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/tools/analyze.py +0 -0
  47. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/tools/append.py +0 -0
  48. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/tools/build.py +0 -0
  49. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/tools/create_datafile.py +0 -0
  50. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/tools/deploy.py +0 -0
  51. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/tools/deploy_check.py +0 -0
  52. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/tools/diff_resource.py +0 -0
  53. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/tools/execute_query.py +0 -0
  54. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/tools/explore.py +0 -0
  55. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/tools/get_endpoint_stats.py +0 -0
  56. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/tools/get_openapi_definition.py +0 -0
  57. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/tools/mock.py +0 -0
  58. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/tools/plan.py +0 -0
  59. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/tools/preview_datafile.py +0 -0
  60. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/tools/request_endpoint.py +0 -0
  61. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/tools/run_command.py +0 -0
  62. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/agent/tools/test.py +0 -0
  63. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/build.py +0 -0
  64. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/build_common.py +0 -0
  65. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/cicd.py +0 -0
  66. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/cli.py +0 -0
  67. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/common.py +0 -0
  68. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/config.py +0 -0
  69. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/connection.py +0 -0
  70. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/copy.py +0 -0
  71. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/create.py +0 -0
  72. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/datafile/build.py +0 -0
  73. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/datafile/build_common.py +0 -0
  74. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/datafile/build_datasource.py +0 -0
  75. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/datafile/build_pipe.py +0 -0
  76. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/datafile/diff.py +0 -0
  77. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/datafile/fixture.py +0 -0
  78. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/datafile/format_common.py +0 -0
  79. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/datafile/format_datasource.py +0 -0
  80. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/datafile/format_pipe.py +0 -0
  81. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/datafile/pipe_checker.py +0 -0
  82. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/datafile/playground.py +0 -0
  83. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/datafile/pull.py +0 -0
  84. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/datasource.py +0 -0
  85. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/deployment.py +0 -0
  86. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/deprecations.py +0 -0
  87. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/dev_server.py +0 -0
  88. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/endpoint.py +0 -0
  89. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/exceptions.py +0 -0
  90. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/feedback_manager.py +0 -0
  91. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/info.py +0 -0
  92. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/infra.py +0 -0
  93. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/job.py +0 -0
  94. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/llm.py +0 -0
  95. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/llm_utils.py +0 -0
  96. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/local.py +0 -0
  97. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/local_common.py +0 -0
  98. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/login.py +0 -0
  99. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/login_common.py +0 -0
  100. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/logout.py +0 -0
  101. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/mock.py +0 -0
  102. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/mock_common.py +0 -0
  103. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/open.py +0 -0
  104. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/pipe.py +0 -0
  105. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/project.py +0 -0
  106. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/regions.py +0 -0
  107. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/secret.py +0 -0
  108. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/secret_common.py +0 -0
  109. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/shell.py +0 -0
  110. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/sink.py +0 -0
  111. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/table.py +0 -0
  112. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/telemetry.py +0 -0
  113. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/test.py +0 -0
  114. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/test_common.py +0 -0
  115. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/tinyunit/tinyunit.py +0 -0
  116. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/tinyunit/tinyunit_lib.py +0 -0
  117. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/token.py +0 -0
  118. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/watch.py +0 -0
  119. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/workspace.py +0 -0
  120. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb/modules/workspace_members.py +0 -0
  121. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb_cli.py +0 -0
  122. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb_cli_modules/auth.py +0 -0
  123. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb_cli_modules/branch.py +0 -0
  124. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb_cli_modules/cicd.py +0 -0
  125. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb_cli_modules/common.py +0 -0
  126. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb_cli_modules/config.py +0 -0
  127. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb_cli_modules/connection.py +0 -0
  128. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb_cli_modules/datasource.py +0 -0
  129. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb_cli_modules/exceptions.py +0 -0
  130. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb_cli_modules/fmt.py +0 -0
  131. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb_cli_modules/job.py +0 -0
  132. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb_cli_modules/regions.py +0 -0
  133. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb_cli_modules/tag.py +0 -0
  134. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb_cli_modules/telemetry.py +0 -0
  135. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb_cli_modules/test.py +0 -0
  136. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb_cli_modules/tinyunit/tinyunit.py +0 -0
  137. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb_cli_modules/tinyunit/tinyunit_lib.py +0 -0
  138. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb_cli_modules/workspace.py +0 -0
  139. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tb_cli_modules/workspace_members.py +0 -0
  140. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird/tornado_template.py +0 -0
  141. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird.egg-info/SOURCES.txt +0 -0
  142. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird.egg-info/dependency_links.txt +0 -0
  143. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird.egg-info/entry_points.txt +0 -0
  144. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird.egg-info/requires.txt +0 -0
  145. {tinybird-0.0.1.dev263 → tinybird-0.0.1.dev265}/tinybird.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: tinybird
3
- Version: 0.0.1.dev263
3
+ Version: 0.0.1.dev265
4
4
  Summary: Tinybird Command Line Tool
5
5
  Home-page: https://www.tinybird.co/docs/forward/commands
6
6
  Author: Tinybird
@@ -569,6 +569,7 @@ class TinyB:
569
569
  populate_condition: Optional[str] = None,
570
570
  truncate: bool = True,
571
571
  unlink_on_populate_error: bool = False,
572
+ on_demand_compute: bool = False,
572
573
  ):
573
574
  params: Dict[str, Any] = {
574
575
  "truncate": "true" if truncate else "false",
@@ -578,6 +579,8 @@ class TinyB:
578
579
  params.update({"populate_subset": populate_subset})
579
580
  if populate_condition:
580
581
  params.update({"populate_condition": populate_condition})
582
+ if on_demand_compute:
583
+ params.update({"on_demand_compute": "true"})
581
584
  response = await self._req(
582
585
  f"/v0/pipes/{pipe_name}/nodes/{node_name}/population?{urlencode(params)}", method="POST"
583
586
  )
@@ -4,5 +4,5 @@ __description__ = 'Tinybird Command Line Tool'
4
4
  __url__ = 'https://www.tinybird.co/docs/forward/commands'
5
5
  __author__ = 'Tinybird'
6
6
  __author_email__ = 'support@tinybird.co'
7
- __version__ = '0.0.1.dev263'
8
- __revision__ = '1d13423'
7
+ __version__ = '0.0.1.dev265'
8
+ __revision__ = 'b723917'
@@ -547,12 +547,15 @@ class TinyB:
547
547
  populate_subset: bool = False,
548
548
  populate_condition: Optional[str] = None,
549
549
  truncate: bool = True,
550
+ on_demand_compute: bool = False,
550
551
  ):
551
552
  params: Dict[str, Any] = {"truncate": "true" if truncate else "false", "unlink_on_populate_error": "false"}
552
553
  if populate_subset:
553
554
  params.update({"populate_subset": populate_subset})
554
555
  if populate_condition:
555
556
  params.update({"populate_condition": populate_condition})
557
+ if on_demand_compute:
558
+ params.update({"on_demand_compute": "true"})
556
559
  response = self._req(f"/v0/pipes/{pipe_name}/nodes/{node_name}/population?{urlencode(params)}", method="POST")
557
560
  return response
558
561
 
@@ -86,46 +86,19 @@ def display_banner():
86
86
  color_idx = 16 + (36 * r_idx) + (6 * g_idx) + b_idx
87
87
  return f"\033[38;5;{color_idx}m"
88
88
 
89
- # Define start and end colors for smooth gradient
90
- start_color = [0, 128, 128] # Deep teal
91
- end_color = [100, 190, 190] # Light turquoise (balanced green and blue)
89
+ # Define solid color (corresponding to #27f795)
90
+ solid_color = [39, 247, 149] # #27f795 in RGB
92
91
 
93
- # Print each line with gradient for modern terminals, solid color for limited terminals
92
+ # Print each line with solid color for all terminals
94
93
  for line in banner:
95
94
  colored_line = ""
95
+ color_code = rgb_to_ansi(*solid_color, use_truecolor=capabilities["truecolor"]) # type: ignore
96
96
 
97
- if capabilities["truecolor"]:
98
- # Use gradient for modern terminals
99
- non_space_chars = sum(1 for char in line if char != " ")
100
- char_count = 0
101
-
102
- for char in line:
103
- if char == " ":
104
- colored_line += char
105
- continue
106
-
107
- # Calculate smooth gradient position (0.0 to 1.0)
108
- if non_space_chars > 1:
109
- gradient_position = char_count / (non_space_chars - 1)
110
- else:
111
- gradient_position = 0
112
-
113
- # Interpolate color
114
- current_rgb = interpolate_color(start_color, end_color, gradient_position)
115
- color_code = rgb_to_ansi(*current_rgb, use_truecolor=True) # type: ignore
116
-
97
+ for char in line:
98
+ if char == " ":
99
+ colored_line += char
100
+ else:
117
101
  colored_line += f"{color_code}{char}"
118
- char_count += 1
119
- else:
120
- # Use solid color for limited terminals (like macOS Terminal)
121
- solid_color = start_color # Use the deep teal consistently
122
- color_code = rgb_to_ansi(*solid_color, use_truecolor=False) # type: ignore
123
-
124
- for char in line:
125
- if char == " ":
126
- colored_line += char
127
- else:
128
- colored_line += f"{color_code}{char}"
129
102
 
130
103
  click.echo(colored_line + reset)
131
104
  click.echo()
@@ -704,7 +704,7 @@ def show_input(workspace_name: str) -> str:
704
704
  cursor=CursorShape.BLOCK,
705
705
  style=PromptStyle.from_dict(
706
706
  {
707
- "prompt": "#40a8a8 bold",
707
+ "prompt": "fg:#27f795 bold",
708
708
  "": "", # Normal color for user input
709
709
  }
710
710
  ),
@@ -349,12 +349,31 @@ def create_deployment(
349
349
  promote_deployment(client.host, HEADERS, wait=wait)
350
350
 
351
351
 
352
+ def _build_data_movement_message(kind: str, source_mv_name: Optional[str]) -> str:
353
+ if kind == "backfill_with_mv_queries":
354
+ return f"Using Materialized Pipe {source_mv_name or ''}"
355
+ elif kind == "backfill_with_forward_query":
356
+ return "From live deployment using Forward Query"
357
+ else:
358
+ return ""
359
+
360
+
352
361
  def print_changes(result: dict, project: Project) -> None:
353
362
  deployment = result.get("deployment", {})
354
363
  resources_columns = ["status", "name", "type", "path"]
355
364
  resources: list[list[Union[str, None]]] = []
356
365
  tokens_columns = ["Change", "Token name", "Added permissions", "Removed permissions"]
357
366
  tokens: list[Tuple[str, str, str, str]] = []
367
+ data_movements_columns = ["Datasource", "Backfill type"]
368
+ data_movements = deployment.get("data_movements")
369
+ if data_movements is not None:
370
+ data_movements = [
371
+ (
372
+ dm.get("datasource_name"),
373
+ _build_data_movement_message(dm.get("kind"), dm.get("source_mv_name")),
374
+ )
375
+ for dm in data_movements
376
+ ]
358
377
 
359
378
  for ds in deployment.get("new_datasource_names", []):
360
379
  resources.append(["new", ds, "datasource", project.get_resource_path(ds, "datasource")])
@@ -415,3 +434,9 @@ def print_changes(result: dict, project: Project) -> None:
415
434
  echo_safe_humanfriendly_tables_format_smart_table(tokens, column_names=tokens_columns)
416
435
  else:
417
436
  click.echo(FeedbackManager.gray(message="* No changes in tokens to be deployed"))
437
+ if data_movements is not None:
438
+ if data_movements:
439
+ click.echo(FeedbackManager.info(message="\n Data that will be copied with this deployment:"))
440
+ echo_safe_humanfriendly_tables_format_smart_table(data_movements, column_names=data_movements_columns)
441
+ else:
442
+ click.echo(FeedbackManager.gray(message="* No data will be copied with this deployment"))
@@ -87,6 +87,12 @@ def materialization_ls(ctx: click.Context, match: str, format_: str):
87
87
  default=False,
88
88
  help="Waits for populate jobs to finish, showing a progress bar. Disabled by default.",
89
89
  )
90
+ @click.option(
91
+ "--on-demand-compute",
92
+ is_flag=True,
93
+ default=False,
94
+ help="Use on-demand compute instances for the populate job.",
95
+ )
90
96
  @click.pass_context
91
97
  def pipe_populate(
92
98
  ctx: click.Context,
@@ -95,6 +101,7 @@ def pipe_populate(
95
101
  sql_condition: str,
96
102
  truncate: bool,
97
103
  wait: bool,
104
+ on_demand_compute: bool,
98
105
  ):
99
106
  """Populate the result of a Materialized Node into the target materialized view"""
100
107
 
@@ -121,7 +128,9 @@ def pipe_populate(
121
128
 
122
129
  node = materialized_ids[0]
123
130
 
124
- response = cl.populate_node(pipe_name, node, populate_condition=sql_condition, truncate=truncate)
131
+ response = cl.populate_node(
132
+ pipe_name, node, populate_condition=sql_condition, truncate=truncate, on_demand_compute=on_demand_compute
133
+ )
125
134
  if "job" not in response:
126
135
  raise CLIPipeException(response)
127
136
 
@@ -602,6 +602,12 @@ def check(filenames: List[str], debug: bool) -> None:
602
602
  help="The user token is required for sharing a datasource that contains the SHARED_WITH entry.",
603
603
  type=click.types.STRING,
604
604
  )
605
+ @click.option(
606
+ "--on-demand-compute",
607
+ is_flag=True,
608
+ default=False,
609
+ help="Use on-demand compute instances for populate jobs. Only effective when used with --populate.",
610
+ )
605
611
  @click.pass_context
606
612
  @coro
607
613
  async def push(
@@ -633,6 +639,7 @@ async def push(
633
639
  check_requests_from_main: bool,
634
640
  folder: str,
635
641
  user_token: Optional[str],
642
+ on_demand_compute: bool,
636
643
  ) -> None:
637
644
  """Push files to Tinybird."""
638
645
 
@@ -674,6 +681,7 @@ async def push(
674
681
  config=CLIConfig.get_project_config(),
675
682
  user_token=user_token,
676
683
  is_internal=is_internal,
684
+ on_demand_compute=on_demand_compute,
677
685
  )
678
686
 
679
687
 
@@ -234,6 +234,12 @@ async def pipe_ls(ctx: Context, match: str, format_: str):
234
234
  default=False,
235
235
  help="Waits for populate jobs to finish, showing a progress bar. Disabled by default.",
236
236
  )
237
+ @click.option(
238
+ "--on-demand-compute",
239
+ is_flag=True,
240
+ default=False,
241
+ help="Use on-demand compute instances for the populate job.",
242
+ )
237
243
  @click.pass_context
238
244
  @coro
239
245
  async def pipe_populate(
@@ -244,6 +250,7 @@ async def pipe_populate(
244
250
  truncate: bool,
245
251
  unlink_on_populate_error: bool,
246
252
  wait: bool,
253
+ on_demand_compute: bool,
247
254
  ):
248
255
  """Populate the result of a Materialized Node into the target Materialized View"""
249
256
  cl = create_tb_client(ctx)
@@ -270,6 +277,7 @@ async def pipe_populate(
270
277
  populate_condition=sql_condition,
271
278
  truncate=truncate,
272
279
  unlink_on_populate_error=unlink_on_populate_error,
280
+ on_demand_compute=on_demand_compute,
273
281
  )
274
282
  if "job" not in response:
275
283
  raise CLIPipeException(response)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: tinybird
3
- Version: 0.0.1.dev263
3
+ Version: 0.0.1.dev265
4
4
  Summary: Tinybird Command Line Tool
5
5
  Home-page: https://www.tinybird.co/docs/forward/commands
6
6
  Author: Tinybird