tinybird 3.3.2.dev0__tar.gz → 3.5.1.dev0__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-3.3.2.dev0 → tinybird-3.5.1.dev0}/PKG-INFO +11 -1
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/sql_toolset.py +19 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/__cli__.py +2 -2
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/cli.py +52 -2
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/common.py +21 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/datasource.py +2 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird.egg-info/PKG-INFO +11 -1
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/setup.cfg +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/__cli__.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/ch_utils/constants.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/ch_utils/engine.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/check_pypi.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/client.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/config.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/context.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/datafile/common.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/datafile/exceptions.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/datafile/parse_connection.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/datafile/parse_datasource.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/datafile/parse_pipe.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/datatypes.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/feedback_manager.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/git_settings.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/prompts.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/service_datasources.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/sql.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/sql_template.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/sql_template_fmt.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/syncasync.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/check_pypi.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/cli.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/client.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/config.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/__init__.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/agent.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/animations.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/banner.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/command_agent.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/compactor.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/explore_agent.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/file_agent.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/memory.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/mock_agent.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/models.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/prompts.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/testing_agent.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/tools/__init__.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/tools/analyze.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/tools/append.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/tools/build.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/tools/datafile.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/tools/deploy.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/tools/deploy_check.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/tools/diff_resource.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/tools/execute_query.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/tools/file.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/tools/get_endpoint_stats.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/tools/get_openapi_definition.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/tools/mock.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/tools/plan.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/tools/request_endpoint.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/tools/run_command.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/tools/secret.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/tools/test.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/utils.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/branch.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/build.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/build_common.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/cicd.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/config.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/connection.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/connection_kafka.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/connection_s3.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/copy.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/create.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/datafile/build.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/datafile/build_common.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/datafile/build_datasource.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/datafile/build_pipe.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/datafile/diff.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/datafile/fixture.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/datafile/format_common.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/datafile/format_connection.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/datafile/format_datasource.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/datafile/format_pipe.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/datafile/pipe_checker.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/datafile/playground.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/datafile/pull.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/deployment.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/deployment_common.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/deprecations.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/dev_server.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/endpoint.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/exceptions.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/feedback_manager.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/fmt.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/info.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/infra.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/job.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/job_common.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/llm.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/llm_utils.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/local.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/local_common.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/local_logs.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/login.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/login_common.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/logout.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/materialization.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/mock.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/mock_common.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/open.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/pipe.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/project.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/project_commands.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/regions.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/secret.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/secret_common.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/shell.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/sink.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/table.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/telemetry.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/test.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/test_common.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/tinyunit/tinyunit.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/tinyunit/tinyunit_lib.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/token.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/watch.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/workspace.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/workspace_members.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb_cli.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb_cli_modules/auth.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb_cli_modules/branch.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb_cli_modules/cicd.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb_cli_modules/cli.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb_cli_modules/common.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb_cli_modules/config.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb_cli_modules/connection.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb_cli_modules/datasource.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb_cli_modules/exceptions.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb_cli_modules/fmt.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb_cli_modules/job.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb_cli_modules/pipe.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb_cli_modules/regions.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb_cli_modules/tag.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb_cli_modules/telemetry.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb_cli_modules/test.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb_cli_modules/tinyunit/tinyunit.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb_cli_modules/tinyunit/tinyunit_lib.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb_cli_modules/workspace.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb_cli_modules/workspace_members.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tornado_template.py +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird.egg-info/SOURCES.txt +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird.egg-info/dependency_links.txt +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird.egg-info/entry_points.txt +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird.egg-info/requires.txt +0 -0
- {tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: tinybird
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.5.1.dev0
|
|
4
4
|
Summary: Tinybird Command Line Tool
|
|
5
5
|
Home-page: https://www.tinybird.co/docs/forward/commands
|
|
6
6
|
Author: Tinybird
|
|
@@ -57,6 +57,16 @@ The Tinybird command-line tool allows you to use all the Tinybird functionality
|
|
|
57
57
|
Changelog
|
|
58
58
|
----------
|
|
59
59
|
|
|
60
|
+
3.5.0
|
|
61
|
+
*******
|
|
62
|
+
|
|
63
|
+
- `Changed` AI-assisted CLI commands now show a deprecation warning indicating they will be removed in a future major release and include agent skills guidance (`npx skills add @tinybirdco/tinybird-agent-skills`).
|
|
64
|
+
|
|
65
|
+
3.4.0
|
|
66
|
+
*******
|
|
67
|
+
|
|
68
|
+
- `Changed` Prompt-based AI flows now print a deprecation warning (`tb --prompt`, `tb create --prompt`, `tb datasource create --prompt`, `tb test create`, `tb mock`) ahead of their removal in a future release.
|
|
69
|
+
|
|
60
70
|
3.3.1
|
|
61
71
|
*******
|
|
62
72
|
|
|
@@ -3,6 +3,7 @@ import logging
|
|
|
3
3
|
import re
|
|
4
4
|
import threading
|
|
5
5
|
from collections import defaultdict
|
|
6
|
+
from dataclasses import dataclass
|
|
6
7
|
from datetime import datetime
|
|
7
8
|
from functools import lru_cache
|
|
8
9
|
from typing import FrozenSet, List, Optional, Set, Tuple, Union
|
|
@@ -74,6 +75,24 @@ def explain_plan(sql: str) -> str:
|
|
|
74
75
|
return chquery.explain_ast(sql)
|
|
75
76
|
|
|
76
77
|
|
|
78
|
+
@dataclass(frozen=True)
|
|
79
|
+
class ColumnInfo:
|
|
80
|
+
name: str
|
|
81
|
+
type: str
|
|
82
|
+
nullable: bool
|
|
83
|
+
default_specifier: str = ""
|
|
84
|
+
default_expression: str | None = None
|
|
85
|
+
codec: str | None = None
|
|
86
|
+
comment: str | None = None
|
|
87
|
+
ttl: str | None = None
|
|
88
|
+
is_primary_key: bool = False
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
def get_columns_from_create_query(sql_schema: str) -> list[ColumnInfo]:
|
|
92
|
+
columns = chquery.get_columns_from_create_query(sql_schema)
|
|
93
|
+
return [ColumnInfo(**col) for col in columns]
|
|
94
|
+
|
|
95
|
+
|
|
77
96
|
def has_join(sql: str) -> bool:
|
|
78
97
|
return any(line.rstrip().startswith("TableJoin") for line in explain_plan(sql).split())
|
|
79
98
|
|
|
@@ -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__ = '3.
|
|
8
|
-
__revision__ = '
|
|
7
|
+
__version__ = '3.5.1.dev0'
|
|
8
|
+
__revision__ = '9738ed6'
|
|
@@ -36,6 +36,7 @@ from tinybird.tb.modules.common import (
|
|
|
36
36
|
force_echo,
|
|
37
37
|
getenv_bool,
|
|
38
38
|
try_update_config_with_remote,
|
|
39
|
+
warn_prompt_ai_deprecation,
|
|
39
40
|
)
|
|
40
41
|
from tinybird.tb.modules.config import CURRENT_VERSION, CLIConfig
|
|
41
42
|
from tinybird.tb.modules.datafile.build import build_graph
|
|
@@ -54,6 +55,52 @@ DEFAULT_PATTERNS: List[Tuple[str, Union[str, Callable[[str], str]]]] = [
|
|
|
54
55
|
VERSION = f"{__cli__.__version__} (rev {__cli__.__revision__})"
|
|
55
56
|
|
|
56
57
|
|
|
58
|
+
def _get_raw_cli_args(ctx: Context) -> List[str]:
|
|
59
|
+
root_ctx = ctx.find_root()
|
|
60
|
+
root_obj = root_ctx.obj if isinstance(root_ctx.obj, dict) else {}
|
|
61
|
+
raw_args = root_obj.get("_tb_raw_args")
|
|
62
|
+
if isinstance(raw_args, list):
|
|
63
|
+
return raw_args
|
|
64
|
+
return sys.argv[1:]
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def _argv_has_option(args: List[str], flag: str) -> bool:
|
|
68
|
+
return any(arg == flag or arg.startswith(f"{flag}=") for arg in args)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
def _argv_has_sequence(args: List[str], command_parts: List[str]) -> bool:
|
|
72
|
+
sequence_len = len(command_parts)
|
|
73
|
+
return any(args[i : i + sequence_len] == command_parts for i in range(len(args) - sequence_len + 1))
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
def _should_warn_prompt_ai_deprecation(
|
|
77
|
+
ctx: Context,
|
|
78
|
+
is_agent_mode: bool,
|
|
79
|
+
is_prompt_mode: bool,
|
|
80
|
+
) -> bool:
|
|
81
|
+
raw_args = _get_raw_cli_args(ctx)
|
|
82
|
+
|
|
83
|
+
if is_agent_mode or is_prompt_mode:
|
|
84
|
+
return True
|
|
85
|
+
|
|
86
|
+
if ctx.invoked_subcommand == "mock":
|
|
87
|
+
return True
|
|
88
|
+
|
|
89
|
+
if ctx.invoked_subcommand == "test" and _argv_has_sequence(raw_args, ["test", "create"]):
|
|
90
|
+
return True
|
|
91
|
+
|
|
92
|
+
if ctx.invoked_subcommand == "create" and (
|
|
93
|
+
_argv_has_option(raw_args, "--prompt") or _argv_has_option(raw_args, "-p")
|
|
94
|
+
):
|
|
95
|
+
return True
|
|
96
|
+
|
|
97
|
+
return (
|
|
98
|
+
ctx.invoked_subcommand == "datasource"
|
|
99
|
+
and _argv_has_sequence(raw_args, ["datasource", "create"])
|
|
100
|
+
and _argv_has_option(raw_args, "--prompt")
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
|
|
57
104
|
@click.group(
|
|
58
105
|
cls=CatchAuthExceptions,
|
|
59
106
|
context_settings={
|
|
@@ -129,6 +176,7 @@ def cli(
|
|
|
129
176
|
click.echo(FeedbackManager.warning_disabled_ssl_checks())
|
|
130
177
|
|
|
131
178
|
is_agent_mode = ctx.invoked_subcommand is None
|
|
179
|
+
is_prompt_mode = prompt is not None
|
|
132
180
|
if not environ.get("PYTEST", None) and version_warning and not token and not is_agent_mode:
|
|
133
181
|
latest_version = CheckPypi().get_latest_version()
|
|
134
182
|
if latest_version:
|
|
@@ -215,6 +263,10 @@ def cli(
|
|
|
215
263
|
return
|
|
216
264
|
|
|
217
265
|
ctx.ensure_object(dict)["project"] = project
|
|
266
|
+
|
|
267
|
+
if _should_warn_prompt_ai_deprecation(ctx, is_agent_mode, is_prompt_mode):
|
|
268
|
+
warn_prompt_ai_deprecation()
|
|
269
|
+
|
|
218
270
|
client = create_ctx_client(
|
|
219
271
|
ctx,
|
|
220
272
|
config,
|
|
@@ -235,8 +287,6 @@ def cli(
|
|
|
235
287
|
# Check if current folder is tracked from previous sessions
|
|
236
288
|
check_current_folder_in_sessions(ctx)
|
|
237
289
|
|
|
238
|
-
is_prompt_mode = prompt is not None
|
|
239
|
-
|
|
240
290
|
if is_agent_mode or is_prompt_mode:
|
|
241
291
|
if any(arg in sys.argv for arg in ["--cloud", "--local", "--branch"]):
|
|
242
292
|
raise CLIException(
|
|
@@ -74,6 +74,10 @@ _PATTERN_AWS_ARN = re.compile(r"arn:aws:iam::(\d+):root")
|
|
|
74
74
|
SUPPORTED_FORMATS = ["csv", "ndjson", "json", "parquet"]
|
|
75
75
|
OLDEST_ROLLBACK = "oldest_rollback"
|
|
76
76
|
MAIN_BRANCH = "main"
|
|
77
|
+
PROMPT_AI_DEPRECATION_WARNING = (
|
|
78
|
+
"Tinybird Code and `--prompt` commands are now deprecated and will be removed in the next major release.\n"
|
|
79
|
+
"You can instead bring the best of Tinybird Code to your preferred coding agent with skills. Run: npx skills add @tinybirdco/tinybird-agent-skills\n"
|
|
80
|
+
)
|
|
77
81
|
|
|
78
82
|
|
|
79
83
|
def obfuscate_token(value: Optional[str]) -> Optional[str]:
|
|
@@ -82,6 +86,17 @@ def obfuscate_token(value: Optional[str]) -> Optional[str]:
|
|
|
82
86
|
return f"{value[:4]}...{value[-8:]}"
|
|
83
87
|
|
|
84
88
|
|
|
89
|
+
def warn_prompt_ai_deprecation() -> None:
|
|
90
|
+
ctx = click.get_current_context(silent=True)
|
|
91
|
+
if ctx:
|
|
92
|
+
root_ctx = ctx.find_root()
|
|
93
|
+
root_obj = root_ctx.ensure_object(dict)
|
|
94
|
+
if root_obj.get("_prompt_ai_deprecation_warned"):
|
|
95
|
+
return
|
|
96
|
+
root_obj["_prompt_ai_deprecation_warned"] = True
|
|
97
|
+
click.echo(FeedbackManager.warning(message=PROMPT_AI_DEPRECATION_WARNING))
|
|
98
|
+
|
|
99
|
+
|
|
85
100
|
def gather_with_concurrency(n, *tasks):
|
|
86
101
|
results = []
|
|
87
102
|
for task in tasks:
|
|
@@ -237,6 +252,12 @@ class CatchAuthExceptions(AliasedGroup):
|
|
|
237
252
|
add_telemetry_sysinfo_event()
|
|
238
253
|
super().__init__(*args, **kwargs)
|
|
239
254
|
|
|
255
|
+
def parse_args(self, ctx: click.Context, args: List[str]) -> List[str]:
|
|
256
|
+
# Keep original invocation args so root-level handlers can inspect
|
|
257
|
+
# subcommand flags without relying on sys.argv (e.g. in CliRunner tests).
|
|
258
|
+
ctx.ensure_object(dict)["_tb_raw_args"] = list(args)
|
|
259
|
+
return super().parse_args(ctx, args)
|
|
260
|
+
|
|
240
261
|
def format_epilog(self, ctx: Context, formatter: click.formatting.HelpFormatter) -> None:
|
|
241
262
|
super().format_epilog(ctx, formatter)
|
|
242
263
|
|
|
@@ -38,6 +38,7 @@ from tinybird.tb.modules.common import (
|
|
|
38
38
|
get_format_from_filename_or_url,
|
|
39
39
|
normalize_datasource_name,
|
|
40
40
|
push_data,
|
|
41
|
+
warn_prompt_ai_deprecation,
|
|
41
42
|
)
|
|
42
43
|
from tinybird.tb.modules.config import CLIConfig
|
|
43
44
|
from tinybird.tb.modules.connection_kafka import (
|
|
@@ -975,6 +976,7 @@ ENGINE "MergeTree"
|
|
|
975
976
|
return
|
|
976
977
|
|
|
977
978
|
if datasource_type == "prompt":
|
|
979
|
+
warn_prompt_ai_deprecation()
|
|
978
980
|
if not config.get("user_token"):
|
|
979
981
|
raise Exception("This action requires authentication. Run 'tb login' first.")
|
|
980
982
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: tinybird
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.5.1.dev0
|
|
4
4
|
Summary: Tinybird Command Line Tool
|
|
5
5
|
Home-page: https://www.tinybird.co/docs/forward/commands
|
|
6
6
|
Author: Tinybird
|
|
@@ -57,6 +57,16 @@ The Tinybird command-line tool allows you to use all the Tinybird functionality
|
|
|
57
57
|
Changelog
|
|
58
58
|
----------
|
|
59
59
|
|
|
60
|
+
3.5.0
|
|
61
|
+
*******
|
|
62
|
+
|
|
63
|
+
- `Changed` AI-assisted CLI commands now show a deprecation warning indicating they will be removed in a future major release and include agent skills guidance (`npx skills add @tinybirdco/tinybird-agent-skills`).
|
|
64
|
+
|
|
65
|
+
3.4.0
|
|
66
|
+
*******
|
|
67
|
+
|
|
68
|
+
- `Changed` Prompt-based AI flows now print a deprecation warning (`tb --prompt`, `tb create --prompt`, `tb datasource create --prompt`, `tb test create`, `tb mock`) ahead of their removal in a future release.
|
|
69
|
+
|
|
60
70
|
3.3.1
|
|
61
71
|
*******
|
|
62
72
|
|
|
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
|
|
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-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/tools/diff_resource.py
RENAMED
|
File without changes
|
{tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/tools/execute_query.py
RENAMED
|
File without changes
|
|
File without changes
|
{tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/tools/get_endpoint_stats.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/agent/tools/request_endpoint.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
|
{tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/datafile/build_datasource.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/datafile/format_connection.py
RENAMED
|
File without changes
|
{tinybird-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb/modules/datafile/format_datasource.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
|
|
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
|
|
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-3.3.2.dev0 → tinybird-3.5.1.dev0}/tinybird/tb_cli_modules/tinyunit/tinyunit_lib.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
|