tinybird 0.0.1.dev278__py3-none-any.whl → 0.0.1.dev280__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 tinybird might be problematic. Click here for more details.

tinybird/tb/__cli__.py CHANGED
@@ -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.dev278'
8
- __revision__ = '422553e'
7
+ __version__ = '0.0.1.dev280'
8
+ __revision__ = 'e419ff7'
@@ -14,7 +14,9 @@ from pydantic_ai import Agent, RunContext, Tool
14
14
  from pydantic_ai.messages import ModelMessage, ModelRequest, UserPromptPart
15
15
  from requests import Response
16
16
 
17
+ from tinybird.tb.check_pypi import CheckPypi
17
18
  from tinybird.tb.client import TinyB
19
+ from tinybird.tb.config import CURRENT_VERSION
18
20
  from tinybird.tb.modules.agent.animations import ThinkingAnimation
19
21
  from tinybird.tb.modules.agent.banner import display_banner
20
22
  from tinybird.tb.modules.agent.command_agent import CommandAgent
@@ -54,6 +56,7 @@ from tinybird.tb.modules.common import (
54
56
  echo_safe_humanfriendly_tables_format_pretty_table,
55
57
  get_region_from_host,
56
58
  get_regions,
59
+ update_cli,
57
60
  )
58
61
  from tinybird.tb.modules.config import CLIConfig
59
62
  from tinybird.tb.modules.deployment_common import create_deployment
@@ -64,7 +67,6 @@ from tinybird.tb.modules.local_common import get_tinybird_local_client
64
67
  from tinybird.tb.modules.login_common import login
65
68
  from tinybird.tb.modules.mock_common import append_mock_data, create_mock_data
66
69
  from tinybird.tb.modules.project import Project
67
- from tinybird.tb.modules.secret_common import load_secrets
68
70
  from tinybird.tb.modules.test_common import run_tests as run_tests_common
69
71
 
70
72
 
@@ -206,7 +208,6 @@ class TinybirdAgent:
206
208
  str: The summary of the result.
207
209
  """
208
210
  result = self.explore_agent.run(task, deps=ctx.deps, usage=ctx.usage)
209
- self.explore_agent.clear_messages()
210
211
  return result.output or "No result returned"
211
212
 
212
213
  @self.agent.instructions
@@ -297,7 +298,6 @@ class TinybirdAgent:
297
298
  local_host=local_client.host,
298
299
  local_token=local_client.token,
299
300
  run_id=run_id,
300
- load_secrets_local=partial(load_secrets, project=project, client=local_client),
301
301
  )
302
302
 
303
303
  def run(self, user_prompt: str, config: dict[str, Any]) -> None:
@@ -371,6 +371,19 @@ class TinybirdAgent:
371
371
  def run_agent(
372
372
  config: dict[str, Any], project: Project, dangerously_skip_permissions: bool, prompt: Optional[str] = None
373
373
  ):
374
+ if not prompt:
375
+ latest_version = CheckPypi().get_latest_version()
376
+ if latest_version and "x.y.z" not in CURRENT_VERSION and latest_version != CURRENT_VERSION:
377
+ yes = click.confirm(
378
+ FeedbackManager.warning(
379
+ message=f"New version available. {CURRENT_VERSION} -> {latest_version}. Do you want to update now? [Y/n]"
380
+ ),
381
+ show_default=False,
382
+ default=True,
383
+ prompt_suffix="",
384
+ )
385
+ if yes:
386
+ update_cli()
374
387
  click.echo(FeedbackManager.highlight(message="» Initializing Tinybird Code..."))
375
388
  token = config.get("token", None)
376
389
  host = config.get("host", None)
@@ -84,7 +84,6 @@ def create_or_update_secrets(ctx: RunContext[TinybirdAgentContext], secrets: dic
84
84
  action = "Updating" if env_file_path.exists() and updated_keys else "Creating"
85
85
  click.echo(FeedbackManager.highlight(message=f"» {action} secrets in .env.local..."))
86
86
  env_file_path.write_text(new_content)
87
- ctx.deps.load_secrets_local()
88
87
  ctx.deps.build_project(test=False, silent=True, load_fixtures=False)
89
88
 
90
89
  # Generate success message
@@ -61,7 +61,6 @@ class TinybirdAgentContext(BaseModel):
61
61
  get_connection_datafile_cloud: Callable[..., str]
62
62
  get_connection_datafile_local: Callable[..., str]
63
63
  run_tests: Callable[..., Optional[str]]
64
- load_secrets_local: Callable[..., None]
65
64
  dangerously_skip_permissions: bool
66
65
  token: str
67
66
  user_token: str
@@ -20,7 +20,6 @@ from tinybird.tb.modules.datafile.playground import folder_playground
20
20
  from tinybird.tb.modules.dev_server import BuildStatus, start_server
21
21
  from tinybird.tb.modules.feedback_manager import FeedbackManager
22
22
  from tinybird.tb.modules.project import Project
23
- from tinybird.tb.modules.secret_common import load_secrets
24
23
  from tinybird.tb.modules.shell import Shell, print_table_formatted
25
24
  from tinybird.tb.modules.watch import watch_files, watch_project
26
25
 
@@ -47,7 +46,6 @@ def build(ctx: click.Context, watch: bool) -> None:
47
46
  )
48
47
  )
49
48
 
50
- load_secrets(project, tb_client)
51
49
  click.echo(FeedbackManager.highlight_building_project())
52
50
  process(project=project, tb_client=tb_client, watch=False)
53
51
  if watch:
@@ -76,7 +74,6 @@ def dev(ctx: click.Context, data_origin: str, ui: bool) -> None:
76
74
  # Wait for the server to start
77
75
  time.sleep(0.5)
78
76
 
79
- load_secrets(project, tb_client)
80
77
  click.echo(FeedbackManager.highlight_building_project())
81
78
  process(project=project, tb_client=tb_client, watch=True, build_status=build_status)
82
79
  run_watch(
@@ -14,7 +14,6 @@ from tinybird.tb.modules.datafile.fixture import FixtureExtension, get_fixture_d
14
14
  from tinybird.tb.modules.dev_server import BuildStatus
15
15
  from tinybird.tb.modules.feedback_manager import FeedbackManager
16
16
  from tinybird.tb.modules.project import Project
17
- from tinybird.tb.modules.secret_common import load_secrets
18
17
  from tinybird.tb.modules.shell import print_table_formatted
19
18
 
20
19
 
@@ -49,7 +48,6 @@ def process(
49
48
  build_status.building = False
50
49
  build_status.error = None
51
50
  elif file_changed and (file_changed.endswith(".env.local") or file_changed.endswith(".env")):
52
- load_secrets(project, tb_client)
53
51
  if build_status:
54
52
  build_status.building = False
55
53
  build_status.error = None
@@ -121,7 +121,8 @@ def cli(
121
121
  if getenv_bool("TB_DISABLE_SSL_CHECKS", False):
122
122
  click.echo(FeedbackManager.warning_disabled_ssl_checks())
123
123
 
124
- if not environ.get("PYTEST", None) and version_warning and not token:
124
+ is_agent_mode = ctx.invoked_subcommand is None
125
+ if not environ.get("PYTEST", None) and version_warning and not token and not is_agent_mode:
125
126
  latest_version = CheckPypi().get_latest_version()
126
127
  if latest_version:
127
128
  if "x.y.z" in CURRENT_VERSION:
@@ -195,16 +196,15 @@ def cli(
195
196
  if "--help" in sys.argv or "-h" in sys.argv:
196
197
  return
197
198
 
198
- client = create_ctx_client(ctx, config, cloud, staging, show_warnings=version_warning)
199
+ ctx.ensure_object(dict)["project"] = project
200
+ client = create_ctx_client(ctx, config, cloud, staging, project=project, show_warnings=version_warning)
199
201
 
200
202
  if client:
201
203
  ctx.ensure_object(dict)["client"] = client
202
204
 
203
- ctx.ensure_object(dict)["project"] = project
204
205
  ctx.ensure_object(dict)["env"] = get_target_env(cloud)
205
206
  ctx.ensure_object(dict)["output"] = output
206
207
 
207
- is_agent_mode = ctx.invoked_subcommand is None
208
208
  is_prompt_mode = prompt is not None
209
209
 
210
210
  if is_agent_mode or is_prompt_mode:
@@ -368,7 +368,9 @@ def __hide_click_output() -> None:
368
368
  click.secho = silent_secho # type: ignore
369
369
 
370
370
 
371
- def create_ctx_client(ctx: Context, config: Dict[str, Any], cloud: bool, staging: bool, show_warnings: bool = True):
371
+ def create_ctx_client(
372
+ ctx: Context, config: Dict[str, Any], cloud: bool, staging: bool, project: Project, show_warnings: bool = True
373
+ ):
372
374
  commands_without_ctx_client = [
373
375
  "auth",
374
376
  "check",
@@ -9,6 +9,7 @@ import json
9
9
  import os
10
10
  import re
11
11
  import socket
12
+ import subprocess
12
13
  import sys
13
14
  import time
14
15
  import uuid
@@ -2234,3 +2235,30 @@ def force_echo(string: str) -> None:
2234
2235
 
2235
2236
  def echo_json(data: Dict[str, Any], indent: Union[None, int, str] = None) -> None:
2236
2237
  force_echo(json.dumps(data, indent=indent))
2238
+
2239
+
2240
+ def update_cli() -> None:
2241
+ click.echo(FeedbackManager.highlight(message="» Updating Tinybird CLI..."))
2242
+
2243
+ try:
2244
+ process = subprocess.Popen(
2245
+ ["uv", "tool", "upgrade", "tinybird"],
2246
+ stdout=subprocess.PIPE,
2247
+ stderr=subprocess.PIPE,
2248
+ text=True,
2249
+ )
2250
+ except FileNotFoundError:
2251
+ raise CLIException(
2252
+ FeedbackManager.error(
2253
+ message="Cannot find required tool: uv. Reinstall using: curl https://tinybird.co | sh"
2254
+ )
2255
+ )
2256
+
2257
+ stdout, stderr = process.communicate()
2258
+ if "Nothing to upgrade" not in stdout + stderr:
2259
+ for line in stdout.split("\n") + stderr.split("\n"):
2260
+ if "Updated tinybird" in line:
2261
+ click.echo(FeedbackManager.info(message=f"» {line}"))
2262
+ click.echo(FeedbackManager.success(message="✓ Tinybird CLI updated"))
2263
+ else:
2264
+ click.echo(FeedbackManager.info(message="✓ Tinybird CLI is already up-to-date"))
@@ -139,3 +139,10 @@ class CLILocalException(CLIException):
139
139
 
140
140
  def __init__(self, message: str, **kw_telemetry_event_data: Any) -> None:
141
141
  super().__init__(message, "local_error", **kw_telemetry_event_data)
142
+
143
+
144
+ class CLISecretException(CLIException):
145
+ """Exceptions generated by the secret commands"""
146
+
147
+ def __init__(self, message: str, **kw_telemetry_event_data: Any) -> None:
148
+ super().__init__(message, "secret_error", **kw_telemetry_event_data)
@@ -1,4 +1,3 @@
1
- import subprocess
2
1
  from pathlib import Path
3
2
 
4
3
  import click
@@ -6,7 +5,7 @@ import requests
6
5
 
7
6
  from docker.client import DockerClient
8
7
  from tinybird.tb.modules.cli import cli
9
- from tinybird.tb.modules.exceptions import CLIException
8
+ from tinybird.tb.modules.common import update_cli
10
9
  from tinybird.tb.modules.feedback_manager import FeedbackManager
11
10
  from tinybird.tb.modules.local_common import (
12
11
  TB_CONTAINER_NAME,
@@ -42,33 +41,6 @@ def remove_tinybird_local(docker_client: DockerClient, persist_data: bool) -> No
42
41
  pass
43
42
 
44
43
 
45
- def update_cli() -> None:
46
- click.echo(FeedbackManager.highlight(message="» Updating Tinybird CLI..."))
47
-
48
- try:
49
- process = subprocess.Popen(
50
- ["uv", "tool", "upgrade", "tinybird"],
51
- stdout=subprocess.PIPE,
52
- stderr=subprocess.PIPE,
53
- text=True,
54
- )
55
- except FileNotFoundError:
56
- raise CLIException(
57
- FeedbackManager.error(
58
- message="Cannot find required tool: uv. Reinstall using: curl https://tinybird.co | sh"
59
- )
60
- )
61
-
62
- stdout, stderr = process.communicate()
63
- if "Nothing to upgrade" not in stdout + stderr:
64
- for line in stdout.split("\n") + stderr.split("\n"):
65
- if "Updated tinybird" in line:
66
- click.echo(FeedbackManager.info(message=f"» {line}"))
67
- click.echo(FeedbackManager.success(message="✓ Tinybird CLI updated"))
68
- else:
69
- click.echo(FeedbackManager.info(message="✓ Tinybird CLI is already up-to-date"))
70
-
71
-
72
44
  @cli.command()
73
45
  def update() -> None:
74
46
  """Update Tinybird CLI to the latest version."""
@@ -18,6 +18,7 @@ from tinybird.tb.client import AuthNoTokenException, TinyB
18
18
  from tinybird.tb.modules.config import CLIConfig
19
19
  from tinybird.tb.modules.exceptions import CLILocalException
20
20
  from tinybird.tb.modules.feedback_manager import FeedbackManager
21
+ from tinybird.tb.modules.secret_common import load_secrets
21
22
  from tinybird.tb.modules.telemetry import add_telemetry_event
22
23
 
23
24
  TB_IMAGE_NAME = "tinybirdco/tinybird-local:latest"
@@ -34,7 +35,9 @@ def get_tinybird_local_client(
34
35
  """Get a Tinybird client connected to the local environment."""
35
36
 
36
37
  config = get_tinybird_local_config(config_obj, test=test, silent=silent)
37
- return config.get_client(host=TB_LOCAL_ADDRESS, staging=staging)
38
+ client = config.get_client(host=TB_LOCAL_ADDRESS, staging=staging)
39
+ load_secrets(config_obj.get("path", ""), client)
40
+ return client
38
41
 
39
42
 
40
43
  def get_tinybird_local_config(config_obj: Dict[str, Any], test: bool = False, silent: bool = False) -> CLIConfig:
@@ -1,20 +1,19 @@
1
+ from pathlib import Path
1
2
  from typing import Dict
2
3
 
3
- import click
4
4
  from dotenv import dotenv_values
5
5
 
6
6
  from tinybird.tb.client import TinyB
7
- from tinybird.tb.modules.feedback_manager import FeedbackManager
8
- from tinybird.tb.modules.project import Project
7
+ from tinybird.tb.modules.exceptions import CLISecretException
9
8
 
10
9
 
11
- def load_secrets(project: Project, client: TinyB):
10
+ def load_secrets(project_folder: str, client: TinyB):
12
11
  try:
13
12
  env_vars: Dict[str, str] = {}
14
13
 
15
14
  # Load secrets from .env file
16
15
  env_file = ".env"
17
- env_path = project.path / env_file
16
+ env_path = Path(project_folder) / env_file
18
17
 
19
18
  if env_path.exists():
20
19
  env_values = dotenv_values(env_path)
@@ -23,7 +22,7 @@ def load_secrets(project: Project, client: TinyB):
23
22
 
24
23
  # Load secrets from .env.local file
25
24
  env_file = ".env.local"
26
- env_path = project.path / env_file
25
+ env_path = Path(project_folder) / env_file
27
26
 
28
27
  if env_path.exists():
29
28
  env_values = dotenv_values(env_path)
@@ -33,8 +32,6 @@ def load_secrets(project: Project, client: TinyB):
33
32
  if len(env_vars.keys()) == 0:
34
33
  return
35
34
 
36
- click.echo(FeedbackManager.highlight(message="\n» Loading secrets from .env files..."))
37
-
38
35
  for name, value in env_vars.items():
39
36
  if not value:
40
37
  continue
@@ -49,8 +46,7 @@ def load_secrets(project: Project, client: TinyB):
49
46
  else:
50
47
  client.create_secret(name, value)
51
48
  except Exception as e:
52
- click.echo(FeedbackManager.error(message=f"Error setting secret '{name}': {e}"))
49
+ raise Exception(f"Error setting secret '{name}': {e}")
53
50
 
54
- click.echo(FeedbackManager.success(message="✓ Secrets loaded!"))
55
51
  except Exception as e:
56
- click.echo(FeedbackManager.error(message=f"✗ Error: {e}"))
52
+ raise CLISecretException(str(e))
@@ -25,7 +25,6 @@ from tinybird.tb.modules.llm import LLM
25
25
  from tinybird.tb.modules.llm_utils import extract_xml, parse_xml
26
26
  from tinybird.tb.modules.local_common import get_local_tokens, get_test_workspace_name
27
27
  from tinybird.tb.modules.project import Project
28
- from tinybird.tb.modules.secret_common import load_secrets
29
28
 
30
29
  yaml.SafeDumper.org_represent_str = yaml.SafeDumper.represent_str # type: ignore[attr-defined]
31
30
 
@@ -64,9 +63,10 @@ def create_test(
64
63
  tests: List[Dict[str, Any]] = []
65
64
 
66
65
  try:
67
- load_secrets(project=project, client=client)
68
66
  click.echo(FeedbackManager.highlight(message="\n» Building test environment"))
69
- build_project(project=project, tb_client=client, watch=False, silent=True)
67
+ build_error = build_project(project=project, tb_client=client, watch=False, silent=True, exit_on_error=False)
68
+ if build_error:
69
+ raise Exception(build_error)
70
70
  click.echo(FeedbackManager.info(message="✓ Done!\n"))
71
71
  config = CLIConfig.get_project_config()
72
72
  folder = project.folder
@@ -145,9 +145,11 @@ def dump_tests(tests: List[Dict[str, Any]]) -> str:
145
145
  def update_test(pipe: str, project: Project, client: TinyB) -> None:
146
146
  try:
147
147
  folder = project.folder
148
- load_secrets(project=project, client=client)
149
148
  click.echo(FeedbackManager.highlight(message="\n» Building test environment"))
150
- build_project(project=project, tb_client=client, watch=False, silent=True)
149
+ build_error = build_project(project=project, tb_client=client, watch=False, silent=True, exit_on_error=False)
150
+ if build_error:
151
+ raise Exception(build_error)
152
+
151
153
  click.echo(FeedbackManager.info(message="✓ Done!"))
152
154
  pipe_tests_path = get_pipe_path(pipe, folder)
153
155
  pipe_name = pipe_tests_path.stem
@@ -191,9 +193,10 @@ def update_test(pipe: str, project: Project, client: TinyB) -> None:
191
193
  def run_tests(name: Tuple[str, ...], project: Project, client: TinyB) -> Optional[str]:
192
194
  full_error = ""
193
195
  try:
194
- load_secrets(project=project, client=client)
195
196
  click.echo(FeedbackManager.highlight(message="\n» Building test environment"))
196
- build_project(project=project, tb_client=client, watch=False, silent=True)
197
+ build_error = build_project(project=project, tb_client=client, watch=False, silent=True, exit_on_error=False)
198
+ if build_error:
199
+ raise Exception(build_error)
197
200
  click.echo(FeedbackManager.info(message="✓ Done!"))
198
201
 
199
202
  click.echo(FeedbackManager.highlight(message="\n» Running tests"))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: tinybird
3
- Version: 0.0.1.dev278
3
+ Version: 0.0.1.dev280
4
4
  Summary: Tinybird Command Line Tool
5
5
  Home-page: https://www.tinybird.co/docs/forward/commands
6
6
  Author: Tinybird
@@ -17,16 +17,16 @@ tinybird/datafile/exceptions.py,sha256=8rw2umdZjtby85QbuRKFO5ETz_eRHwUY5l7eHsy1w
17
17
  tinybird/datafile/parse_connection.py,sha256=tRyn2Rpr1TeWet5BXmMoQgaotbGdYep1qiTak_OqC5E,1825
18
18
  tinybird/datafile/parse_datasource.py,sha256=ssW8QeFSgglVFi3sDZj_HgkJiTJ2069v2JgqnH3CkDE,1825
19
19
  tinybird/datafile/parse_pipe.py,sha256=xf4m0Tw44QWJzHzAm7Z7FwUoUUtr7noMYjU1NiWnX0k,3880
20
- tinybird/tb/__cli__.py,sha256=2Zlx71BRHozyQSYC9o2EHXBGy4kkqEUrxZ71Jeqg8eE,247
20
+ tinybird/tb/__cli__.py,sha256=Np8R1vyZCw8RP4hNX8uKd29Sq7xRKM_5NOXdcYnx258,247
21
21
  tinybird/tb/check_pypi.py,sha256=Gp0HkHHDFMSDL6nxKlOY51z7z1Uv-2LRexNTZSHHGmM,552
22
22
  tinybird/tb/cli.py,sha256=FdDFEIayjmsZEVsVSSvRiVYn_FHOVg_zWQzchnzfWho,1008
23
23
  tinybird/tb/client.py,sha256=IQRaInDjOwr9Fzaz3_xXc3aUGqh94tM2lew7IZbB9eM,53733
24
24
  tinybird/tb/config.py,sha256=mhMTGnMB5KcxGoh3dewIr2Jjsa6pHE183gCPAQWyp6o,3973
25
- tinybird/tb/modules/build.py,sha256=efD-vamK1NPaDo9R86Hn8be2DYoW0Hh5bZiH7knK5dk,7790
26
- tinybird/tb/modules/build_common.py,sha256=dthlaDn_CuwZnedQcUi7iIdDoHWfSbbbGQwiDgNcmC0,13062
25
+ tinybird/tb/modules/build.py,sha256=lSCbmrqDxqa8bG009qgp2nNRpQW7JWgSen7UQNCfLVE,7657
26
+ tinybird/tb/modules/build_common.py,sha256=KGCtyY1JGexXXhcMVFI3e-gRavmRfCoZnfGPSTYHGxk,12962
27
27
  tinybird/tb/modules/cicd.py,sha256=0KLKccha9IP749QvlXBmzdWv1On3mFwMY4DUcJlBxiE,7326
28
- tinybird/tb/modules/cli.py,sha256=4jNxb2EMimguzyGdKlJc0qyNhDaJ05ph0bTBwyj_mVs,16685
29
- tinybird/tb/modules/common.py,sha256=tj6DR2yOqMMQ0PILwFGXmMogxdrbQCgj36HdSM611rs,82657
28
+ tinybird/tb/modules/cli.py,sha256=QpEGFMtmwqnJRaK1KAtKkLsKHeJ39VHU5wFkDJJiCnk,16748
29
+ tinybird/tb/modules/common.py,sha256=zY0PFDQVWjhu2MivBtUmcXtAlv7imgO-RG_PUK37XvI,83659
30
30
  tinybird/tb/modules/config.py,sha256=gK7rgaWTDd4ZKCrNEg_Uemr26EQjqWt6TjyQKujxOws,11462
31
31
  tinybird/tb/modules/connection.py,sha256=axp8Fny1_4PSLJGN4UF6WygyRbQtM3Lbt6thxHKTxzw,17790
32
32
  tinybird/tb/modules/copy.py,sha256=dPZkcIDvxjJrlQUIvToO0vsEEEs4EYumbNV77-BzNoU,4404
@@ -37,15 +37,15 @@ tinybird/tb/modules/deployment_common.py,sha256=2NJgoONEfhFpGIPeE_wULDuUkomxPsIu
37
37
  tinybird/tb/modules/deprecations.py,sha256=rrszC1f_JJeJ8mUxGoCxckQTJFBCR8wREf4XXXN-PRc,4507
38
38
  tinybird/tb/modules/dev_server.py,sha256=57FCKuWpErwYUYgHspYDkLWEm9F4pbvVOtMrFXX1fVU,10129
39
39
  tinybird/tb/modules/endpoint.py,sha256=ksRj6mfDb9Xv63PhTkV_uKSosgysHElqagg3RTt21Do,11958
40
- tinybird/tb/modules/exceptions.py,sha256=5jK91w1LPmtqIUfDpHe_Op5OxGz8-p1BPgtLREMIni0,5217
40
+ tinybird/tb/modules/exceptions.py,sha256=KEj3E-zN7Z28igvptlngXIjlHR9vAJk59Vs4zpwm4vA,5469
41
41
  tinybird/tb/modules/feedback_manager.py,sha256=xkZjwGOV50-oc0y9h58ei4MZ1mwOMOaN_kUcGrtNH48,78132
42
42
  tinybird/tb/modules/info.py,sha256=F5vY4kHS_kyO2uSBKac92HoOb447oDeRlzpwtAHTuKc,6872
43
43
  tinybird/tb/modules/infra.py,sha256=JE9oLIyF4bi_JBoe-BgZ5HhKp_lQgSihuSV1KIS02Qs,32709
44
44
  tinybird/tb/modules/job.py,sha256=wBsnu8UPTOha2rkLvucgmw4xYv73ubmui3eeSIF68ZM,3107
45
45
  tinybird/tb/modules/llm.py,sha256=fPBBCmM3KlCksLlgJkg4joDn6y3H5QjDzE-Pm4YNf7E,1782
46
46
  tinybird/tb/modules/llm_utils.py,sha256=nS9r4FAElJw8yXtmdYrx-rtI2zXR8qXfi1QqUDCfxvg,3469
47
- tinybird/tb/modules/local.py,sha256=tpiw_F_qOIp42h3kTBwTm5GQDyuVLF0QNF1jmB0zR94,6845
48
- tinybird/tb/modules/local_common.py,sha256=_WODjW3oPshgsZ1jDFFx2nr0zrLi3Gxz5dlahWPobM8,17464
47
+ tinybird/tb/modules/local.py,sha256=L6YWHgzILAwe9s1ZqnP1usjgI1u-Hs9KzxnB5JCdwC0,5837
48
+ tinybird/tb/modules/local_common.py,sha256=8cnBh3eoHRV6Ze7Rg9bueF3Zb_wYDe54bm5cGRvrwbY,17596
49
49
  tinybird/tb/modules/login.py,sha256=zerXZqIv15pbFk5XRt746xGcVnp01YmL_403byBf4jQ,1245
50
50
  tinybird/tb/modules/login_common.py,sha256=IfthYbHmC7EtsCXCB1iF4TngPOwfaHJ6Dfi_t7oBXnI,11640
51
51
  tinybird/tb/modules/logout.py,sha256=sniI4JNxpTrVeRCp0oGJuQ3yRerG4hH5uz6oBmjv724,1009
@@ -57,19 +57,19 @@ tinybird/tb/modules/pipe.py,sha256=xPKtezhnWZ6k_g82r4XpgKslofhuIxb_PvynH4gdUzI,2
57
57
  tinybird/tb/modules/project.py,sha256=_P6wUOFTY87ixE06SjfYIROMoVr6oipi6qHu-RAHLD8,7356
58
58
  tinybird/tb/modules/regions.py,sha256=QjsL5H6Kg-qr0aYVLrvb1STeJ5Sx_sjvbOYO0LrEGMk,166
59
59
  tinybird/tb/modules/secret.py,sha256=9BIdh2PZDAbY2wRbf4ZDvkEltygztz1RMxgDmY1D0LI,3521
60
- tinybird/tb/modules/secret_common.py,sha256=HyCLAI9WniDLwfK6SAb7ZUWorWjtf8j_GghlaTaos_I,1829
60
+ tinybird/tb/modules/secret_common.py,sha256=8mEXOdNFrTuVWu7rgZ5-C8v-rB1EAdZQUHIyBIgwISI,1578
61
61
  tinybird/tb/modules/shell.py,sha256=_9PaKkkh6ZjkixVtKNAtoCPqXMXMn1aQJM_Xzirn7ZM,13621
62
62
  tinybird/tb/modules/sink.py,sha256=dK2s__my0ePIUYrqBzhPSgdWN9rbpvP1G4dT7DJzz80,3865
63
63
  tinybird/tb/modules/table.py,sha256=4XrtjM-N0zfNtxVkbvLDQQazno1EPXnxTyo7llivfXk,11035
64
64
  tinybird/tb/modules/telemetry.py,sha256=T9gtsQffWqG_4hRBaUJPzOfMkPwz7mH-R6Bn1XRYViA,11482
65
65
  tinybird/tb/modules/test.py,sha256=O2-mS4uMU6nPi7yWPpWzshAgOlYKiGS-tkM12pXQGMI,1906
66
- tinybird/tb/modules/test_common.py,sha256=kZ503FFXZwUkZ8zCGZKjBXmRKfF6ooqohkuFhzNRX48,14442
66
+ tinybird/tb/modules/test_common.py,sha256=7EpwGVs3SQTVUOM4fX3iq2fITquYvLtsEz599mN6Eqc,14525
67
67
  tinybird/tb/modules/token.py,sha256=ZhW_o7XCr90wJRhMN6816vyo_TVfnzPXyIhrhzQ7oZ0,13807
68
68
  tinybird/tb/modules/watch.py,sha256=No0bK1M1_3CYuMaIgylxf7vYFJ72lTJe3brz6xQ-mJo,8819
69
69
  tinybird/tb/modules/workspace.py,sha256=USsG8YEXlwf7F2PjTMCuQ2lB8ya-erbv8VywNJYq6mc,11173
70
70
  tinybird/tb/modules/workspace_members.py,sha256=5JdkJgfuEwbq-t6vxkBhYwgsiTDxF790wsa6Xfif9nk,8608
71
71
  tinybird/tb/modules/agent/__init__.py,sha256=i3oe3vDIWWPaicdCM0zs7D7BJ1W0k7th93ooskHAV00,54
72
- tinybird/tb/modules/agent/agent.py,sha256=YKVigMaaxPKdacE2h3uHBqLwAvJt0PvLOdoFwmLi4eI,33203
72
+ tinybird/tb/modules/agent/agent.py,sha256=g5jsJ_HHbfR5rn9AoNJdKdkk3fE_2vqBp0kSNMlG46w,33671
73
73
  tinybird/tb/modules/agent/animations.py,sha256=4WOC5_2BracttmMCrV0H91tXfWcUzQHBUaIJc5FA7tE,3490
74
74
  tinybird/tb/modules/agent/banner.py,sha256=l6cO5Fi7lbVKp-GsBP8jf3IkjOWxg2jpAt9NBCy0WR8,4085
75
75
  tinybird/tb/modules/agent/command_agent.py,sha256=Wcdtmo7vJZ5EbBFW9J7zPCME0ShG_KqF6-qHmMB1XXk,3103
@@ -79,7 +79,7 @@ tinybird/tb/modules/agent/memory.py,sha256=vBewB_64L_wHoT4tLT6UX2uxcHwSY880QZ26F
79
79
  tinybird/tb/modules/agent/models.py,sha256=IAxqlnHy8c2OeSnDrrSp2Mg38W9_r0GsDM87Wv-YNfM,925
80
80
  tinybird/tb/modules/agent/prompts.py,sha256=TSzfK255Y6oBSOgy10hVU8TxalhJVcopT27hD4gELQU,37575
81
81
  tinybird/tb/modules/agent/testing_agent.py,sha256=AtwtJViH7805i7djyBgDb7SSUtDyJnw0TWJu6lBFsrg,2953
82
- tinybird/tb/modules/agent/utils.py,sha256=U1s6_tGynArRA42GvDr5qz2acxVVKfO8NwBLMngyqSI,31788
82
+ tinybird/tb/modules/agent/utils.py,sha256=4jsQCAH2zBx13w20DOBrrDnQq9n2rKG9sGhBkJYiPzs,31744
83
83
  tinybird/tb/modules/agent/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
84
84
  tinybird/tb/modules/agent/tools/analyze.py,sha256=CR5LXg4fou-zYEksqnjpJ0icvxJVoKnTctoI1NRvqCM,3873
85
85
  tinybird/tb/modules/agent/tools/append.py,sha256=6uByExBpb9rVzB0tebWyLFbfkjEPSNxIGFbZrJTaGVI,8056
@@ -95,7 +95,7 @@ tinybird/tb/modules/agent/tools/mock.py,sha256=RvdsKIr0vKEs91GuK5vKg0fDj8SI-cdcX
95
95
  tinybird/tb/modules/agent/tools/plan.py,sha256=2KHLNkr2f1RfkbAR4mCVsv94LGosXd8-ky7v6BB1OtQ,985
96
96
  tinybird/tb/modules/agent/tools/request_endpoint.py,sha256=xseEDQez2xfnPWNOoGnRmHB2KR9WLCx_q-vzS6NtaOY,3972
97
97
  tinybird/tb/modules/agent/tools/run_command.py,sha256=ypvIU0j1XVUWghqt-dpWHm3GQIYsZwE7kRHC3Wau_H0,1708
98
- tinybird/tb/modules/agent/tools/secret.py,sha256=UbF9YIW4zh5qdF7qCeMhbhsDt_2qdjjntJE1e8HSUG0,4292
98
+ tinybird/tb/modules/agent/tools/secret.py,sha256=wUeM-5CCjXiwLEF-H121VypOw3_77OMoZthJedPENl4,4254
99
99
  tinybird/tb/modules/agent/tools/test.py,sha256=4XuEWVHLOTSO51Z9xJ08dTjk0j3IWY_JlPtSBO5aaUs,10373
100
100
  tinybird/tb/modules/datafile/build.py,sha256=NFKBrusFLU0WJNCXePAFWiEDuTaXpwc0lHlOQWEJ43s,51117
101
101
  tinybird/tb/modules/datafile/build_common.py,sha256=2yNdxe49IMA9wNvl25NemY2Iaz8L66snjOdT64dm1is,4511
@@ -117,8 +117,8 @@ tinybird/tb_cli_modules/config.py,sha256=IsgdtFRnUrkY8-Zo32lmk6O7u3bHie1QCxLwgp4
117
117
  tinybird/tb_cli_modules/exceptions.py,sha256=pmucP4kTF4irIt7dXiG-FcnI-o3mvDusPmch1L8RCWk,3367
118
118
  tinybird/tb_cli_modules/regions.py,sha256=QjsL5H6Kg-qr0aYVLrvb1STeJ5Sx_sjvbOYO0LrEGMk,166
119
119
  tinybird/tb_cli_modules/telemetry.py,sha256=Hh2Io8ZPROSunbOLuMvuIFU4TqwWPmQTqal4WS09K1A,10449
120
- tinybird-0.0.1.dev278.dist-info/METADATA,sha256=je4JoDXmuMdnk5cvk5Fl1ZXpzTrzyx9V9bJ1suLZrg8,1763
121
- tinybird-0.0.1.dev278.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
122
- tinybird-0.0.1.dev278.dist-info/entry_points.txt,sha256=LwdHU6TfKx4Qs7BqqtaczEZbImgU7Abe9Lp920zb_fo,43
123
- tinybird-0.0.1.dev278.dist-info/top_level.txt,sha256=VqqqEmkAy7UNaD8-V51FCoMMWXjLUlR0IstvK7tJYVY,54
124
- tinybird-0.0.1.dev278.dist-info/RECORD,,
120
+ tinybird-0.0.1.dev280.dist-info/METADATA,sha256=-f88Tb0lj6EhwYrZtnTE2YqLF3u_g_G0KNu2IW8KwqY,1763
121
+ tinybird-0.0.1.dev280.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
122
+ tinybird-0.0.1.dev280.dist-info/entry_points.txt,sha256=LwdHU6TfKx4Qs7BqqtaczEZbImgU7Abe9Lp920zb_fo,43
123
+ tinybird-0.0.1.dev280.dist-info/top_level.txt,sha256=VqqqEmkAy7UNaD8-V51FCoMMWXjLUlR0IstvK7tJYVY,54
124
+ tinybird-0.0.1.dev280.dist-info/RECORD,,