tinybird 0.0.1.dev248__tar.gz → 0.0.1.dev249__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 (135) hide show
  1. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/PKG-INFO +1 -1
  2. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/ch_utils/engine.py +3 -2
  3. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/__cli__.py +2 -2
  4. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/agent/agent.py +22 -7
  5. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/agent/models.py +2 -1
  6. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/deployment.py +22 -1
  7. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird.egg-info/PKG-INFO +1 -1
  8. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/setup.cfg +0 -0
  9. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/__cli__.py +0 -0
  10. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/ch_utils/constants.py +0 -0
  11. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/check_pypi.py +0 -0
  12. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/client.py +0 -0
  13. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/config.py +0 -0
  14. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/connectors.py +0 -0
  15. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/context.py +0 -0
  16. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/datafile/common.py +0 -0
  17. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/datafile/exceptions.py +0 -0
  18. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/datafile/parse_connection.py +0 -0
  19. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/datafile/parse_datasource.py +0 -0
  20. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/datafile/parse_pipe.py +0 -0
  21. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/datatypes.py +0 -0
  22. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/feedback_manager.py +0 -0
  23. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/git_settings.py +0 -0
  24. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/prompts.py +0 -0
  25. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/sql.py +0 -0
  26. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/sql_template.py +0 -0
  27. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/sql_template_fmt.py +0 -0
  28. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/sql_toolset.py +0 -0
  29. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/syncasync.py +0 -0
  30. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/check_pypi.py +0 -0
  31. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/cli.py +0 -0
  32. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/client.py +0 -0
  33. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/config.py +0 -0
  34. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/agent/__init__.py +0 -0
  35. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/agent/animations.py +0 -0
  36. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/agent/banner.py +0 -0
  37. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/agent/memory.py +0 -0
  38. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/agent/prompts.py +0 -0
  39. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/agent/tools/__init__.py +0 -0
  40. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/agent/tools/append.py +0 -0
  41. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/agent/tools/build.py +0 -0
  42. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/agent/tools/create_datafile.py +0 -0
  43. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/agent/tools/deploy.py +0 -0
  44. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/agent/tools/deploy_check.py +0 -0
  45. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/agent/tools/explore.py +0 -0
  46. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/agent/tools/mock.py +0 -0
  47. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/agent/tools/plan.py +0 -0
  48. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/agent/tools/preview_datafile.py +0 -0
  49. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/agent/tools/read_fixture_data.py +0 -0
  50. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/agent/utils.py +0 -0
  51. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/build.py +0 -0
  52. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/build_common.py +0 -0
  53. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/cicd.py +0 -0
  54. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/cli.py +0 -0
  55. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/common.py +0 -0
  56. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/config.py +0 -0
  57. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/connection.py +0 -0
  58. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/copy.py +0 -0
  59. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/create.py +0 -0
  60. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/datafile/build.py +0 -0
  61. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/datafile/build_common.py +0 -0
  62. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/datafile/build_datasource.py +0 -0
  63. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/datafile/build_pipe.py +0 -0
  64. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/datafile/diff.py +0 -0
  65. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/datafile/fixture.py +0 -0
  66. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/datafile/format_common.py +0 -0
  67. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/datafile/format_datasource.py +0 -0
  68. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/datafile/format_pipe.py +0 -0
  69. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/datafile/pipe_checker.py +0 -0
  70. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/datafile/playground.py +0 -0
  71. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/datafile/pull.py +0 -0
  72. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/datasource.py +0 -0
  73. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/deployment_common.py +0 -0
  74. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/deprecations.py +0 -0
  75. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/dev_server.py +0 -0
  76. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/endpoint.py +0 -0
  77. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/exceptions.py +0 -0
  78. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/feedback_manager.py +0 -0
  79. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/info.py +0 -0
  80. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/infra.py +0 -0
  81. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/job.py +0 -0
  82. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/llm.py +0 -0
  83. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/llm_utils.py +0 -0
  84. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/local.py +0 -0
  85. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/local_common.py +0 -0
  86. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/login.py +0 -0
  87. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/login_common.py +0 -0
  88. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/logout.py +0 -0
  89. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/materialization.py +0 -0
  90. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/mock.py +0 -0
  91. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/mock_common.py +0 -0
  92. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/open.py +0 -0
  93. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/pipe.py +0 -0
  94. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/project.py +0 -0
  95. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/regions.py +0 -0
  96. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/secret.py +0 -0
  97. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/secret_common.py +0 -0
  98. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/shell.py +0 -0
  99. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/sink.py +0 -0
  100. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/table.py +0 -0
  101. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/telemetry.py +0 -0
  102. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/test.py +0 -0
  103. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/tinyunit/tinyunit.py +0 -0
  104. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/tinyunit/tinyunit_lib.py +0 -0
  105. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/token.py +0 -0
  106. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/watch.py +0 -0
  107. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/workspace.py +0 -0
  108. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb/modules/workspace_members.py +0 -0
  109. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb_cli.py +0 -0
  110. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb_cli_modules/auth.py +0 -0
  111. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb_cli_modules/branch.py +0 -0
  112. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb_cli_modules/cicd.py +0 -0
  113. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb_cli_modules/cli.py +0 -0
  114. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb_cli_modules/common.py +0 -0
  115. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb_cli_modules/config.py +0 -0
  116. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb_cli_modules/connection.py +0 -0
  117. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb_cli_modules/datasource.py +0 -0
  118. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb_cli_modules/exceptions.py +0 -0
  119. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb_cli_modules/fmt.py +0 -0
  120. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb_cli_modules/job.py +0 -0
  121. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb_cli_modules/pipe.py +0 -0
  122. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb_cli_modules/regions.py +0 -0
  123. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb_cli_modules/tag.py +0 -0
  124. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb_cli_modules/telemetry.py +0 -0
  125. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb_cli_modules/test.py +0 -0
  126. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb_cli_modules/tinyunit/tinyunit.py +0 -0
  127. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb_cli_modules/tinyunit/tinyunit_lib.py +0 -0
  128. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb_cli_modules/workspace.py +0 -0
  129. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tb_cli_modules/workspace_members.py +0 -0
  130. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird/tornado_template.py +0 -0
  131. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird.egg-info/SOURCES.txt +0 -0
  132. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird.egg-info/dependency_links.txt +0 -0
  133. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird.egg-info/entry_points.txt +0 -0
  134. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/tinybird.egg-info/requires.txt +0 -0
  135. {tinybird-0.0.1.dev248 → tinybird-0.0.1.dev249}/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.dev248
3
+ Version: 0.0.1.dev249
4
4
  Summary: Tinybird Command Line Tool
5
5
  Home-page: https://www.tinybird.co/docs/forward/commands
6
6
  Author: Tinybird
@@ -134,8 +134,9 @@ class TableDetails:
134
134
  _version = self.details.get("version", None)
135
135
  return _version
136
136
 
137
- def is_replicated(self):
138
- return "Replicated" in self.details.get("engine", None)
137
+ def is_replicated(self) -> bool:
138
+ engine: Optional[str] = self.details.get("engine", None)
139
+ return engine is not None and "Replicated" in engine
139
140
 
140
141
  def is_mergetree_family(self) -> bool:
141
142
  return self.engine is not None and "mergetree" in self.engine.lower()
@@ -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.dev248'
8
- __revision__ = '8eed30e'
7
+ __version__ = '0.0.1.dev249'
8
+ __revision__ = 'ef4e98c'
@@ -1,3 +1,4 @@
1
+ import shlex
1
2
  import subprocess
2
3
  import sys
3
4
  from datetime import datetime
@@ -60,14 +61,23 @@ from tinybird.tb.modules.project import Project
60
61
 
61
62
 
62
63
  class TinybirdAgent:
63
- def __init__(self, token: str, host: str, project: Project, dangerously_skip_permissions: bool):
64
+ def __init__(
65
+ self,
66
+ token: str,
67
+ user_token: str,
68
+ host: str,
69
+ workspace_id: str,
70
+ project: Project,
71
+ dangerously_skip_permissions: bool,
72
+ ):
64
73
  self.token = token
74
+ self.user_token = user_token
65
75
  self.host = host
66
76
  self.dangerously_skip_permissions = dangerously_skip_permissions
67
77
  self.project = project
68
78
  self.messages: list[ModelMessage] = []
69
79
  self.agent = Agent(
70
- model=create_model(token, host),
80
+ model=create_model(user_token, host, workspace_id),
71
81
  deps_type=TinybirdAgentContext,
72
82
  system_prompt=f"""
73
83
  You are a Tinybird Code, an agentic CLI that can help users to work with Tinybird.
@@ -221,9 +231,10 @@ Today is {datetime.now().strftime("%Y-%m-%d")}
221
231
  def run_agent(config: dict[str, Any], project: Project, dangerously_skip_permissions: bool):
222
232
  token = config.get("token", None)
223
233
  host = config.get("host", None)
224
-
234
+ user_token = config.get("user_token", None)
235
+ workspace_id = config.get("id", None)
225
236
  try:
226
- if not token or not host:
237
+ if not token or not host or not workspace_id or not user_token:
227
238
  yes = click.confirm(
228
239
  FeedbackManager.warning(
229
240
  message="Tinybird Code requires authentication. Do you want to authenticate now? [Y/n]"
@@ -238,16 +249,17 @@ def run_agent(config: dict[str, Any], project: Project, dangerously_skip_permiss
238
249
  click.echo()
239
250
  cli_config = CLIConfig.get_project_config()
240
251
  token = cli_config.get_token()
252
+ user_token = cli_config.get_user_token()
241
253
  host = cli_config.get_host()
242
254
 
243
- if not token or not host:
255
+ if not token or not host or not user_token:
244
256
  click.echo(
245
257
  FeedbackManager.error(message="Tinybird Code requires authentication. Run 'tb login' first.")
246
258
  )
247
259
  return
248
260
 
249
261
  display_banner()
250
- agent = TinybirdAgent(token, host, project, dangerously_skip_permissions)
262
+ agent = TinybirdAgent(token, user_token, host, workspace_id, project, dangerously_skip_permissions)
251
263
  click.echo()
252
264
  click.echo(FeedbackManager.info(message="Describe what you want to create and I'll help you build it"))
253
265
  click.echo(FeedbackManager.info(message="Run /help for more commands"))
@@ -273,7 +285,10 @@ def run_agent(config: dict[str, Any], project: Project, dangerously_skip_permiss
273
285
  }
274
286
  ),
275
287
  )
276
-
288
+ if user_input.startswith("tb "):
289
+ cmd_parts = shlex.split(user_input)
290
+ subprocess.run(cmd_parts, check=True)
291
+ continue
277
292
  if user_input.lower() in ["/exit", "/quit"]:
278
293
  click.echo(FeedbackManager.info(message="Goodbye!"))
279
294
  break
@@ -7,11 +7,12 @@ from pydantic_ai.providers.anthropic import AnthropicProvider
7
7
  def create_model(
8
8
  token: str,
9
9
  base_url: str,
10
+ workspace_id: str,
10
11
  model: AnthropicModelName = "claude-4-sonnet-20250514",
11
12
  ):
12
13
  client = AsyncAnthropic(
13
14
  base_url=base_url,
14
- http_client=AsyncClient(params={"token": token}),
15
+ http_client=AsyncClient(params={"token": token, "workspace_id": workspace_id}),
15
16
  auth_token=token,
16
17
  )
17
18
  return AnthropicModel(
@@ -211,6 +211,7 @@ def deployment_ls(ctx: click.Context, include_deleted: bool) -> None:
211
211
  List all the deployments you have in the project.
212
212
  """
213
213
  client = ctx.ensure_object(dict)["client"]
214
+ output = ctx.ensure_object(dict)["output"]
214
215
 
215
216
  TINYBIRD_API_KEY = client.token
216
217
  HEADERS = {"Authorization": f"Bearer {TINYBIRD_API_KEY}"}
@@ -243,7 +244,27 @@ def deployment_ls(ctx: click.Context, include_deleted: bool) -> None:
243
244
  )
244
245
 
245
246
  table.reverse()
246
- echo_safe_humanfriendly_tables_format_smart_table(table, column_names=columns)
247
+
248
+ # Handle different output formats
249
+ if output == "json":
250
+ # Create JSON structure
251
+ deployments_json = []
252
+ for row in table:
253
+ deployments_json.append({"id": row[0], "status": row[1], "created_at": row[2]})
254
+ from tinybird.tb.modules.common import echo_json
255
+
256
+ echo_json({"deployments": deployments_json})
257
+ elif output == "csv":
258
+ # Create CSV output
259
+ csv_output = f"{columns[0]},{columns[1]},{columns[2]}\n"
260
+ for row in table:
261
+ csv_output += f"{row[0]},{row[1]},{row[2]}\n"
262
+ from tinybird.tb.modules.common import force_echo
263
+
264
+ force_echo(csv_output)
265
+ else:
266
+ # Default human-readable output
267
+ echo_safe_humanfriendly_tables_format_smart_table(table, column_names=columns)
247
268
 
248
269
 
249
270
  @deployment_group.command(name="promote")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: tinybird
3
- Version: 0.0.1.dev248
3
+ Version: 0.0.1.dev249
4
4
  Summary: Tinybird Command Line Tool
5
5
  Home-page: https://www.tinybird.co/docs/forward/commands
6
6
  Author: Tinybird