tinybird 4.6.7.dev0__tar.gz → 4.6.8__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-4.6.7.dev0 → tinybird-4.6.8}/PKG-INFO +11 -1
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/sql_template.py +9 -12
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/__cli__.py +2 -2
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/cli.py +4 -2
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/local.py +25 -12
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/local_common.py +6 -1
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/login_common.py +12 -3
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird.egg-info/PKG-INFO +11 -1
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/setup.cfg +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/__cli__.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/ch_utils/constants.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/ch_utils/engine.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/check_pypi.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/client.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/config.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/context.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/datafile/common.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/datafile/exceptions.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/datafile/parse_connection.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/datafile/parse_datasource.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/datafile/parse_pipe.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/datatypes.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/feedback_manager.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/git_settings.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/iterating/__init__.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/iterating/data_branch_modes.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/prompts.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/service_datasources.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/sql.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/sql_template_fmt.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/sql_toolset.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/syncasync.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/check_pypi.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/cli.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/client.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/config.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/branch.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/build.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/build_common.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/cicd.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/common.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/config.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/connection.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/connection_dynamodb.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/connection_kafka.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/connection_s3.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/copy.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/create.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/datafile/build.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/datafile/build_common.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/datafile/build_datasource.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/datafile/build_pipe.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/datafile/diff.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/datafile/fixture.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/datafile/format_common.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/datafile/format_connection.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/datafile/format_datasource.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/datafile/format_pipe.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/datafile/pipe_checker.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/datafile/playground.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/datafile/pull.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/datasource.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/deployment.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/deployment_common.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/deprecations.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/endpoint.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/exceptions.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/feedback_manager.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/fmt.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/info.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/infra.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/job.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/job_common.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/llm.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/llm_utils.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/local_logs.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/login.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/logout.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/logs.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/materialization.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/open.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/pipe.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/preview.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/project.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/project_commands.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/py_project.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/query_output.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/regions.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/secret.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/secret_common.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/sink.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/table.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/telemetry.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/test.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/test_common.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/tinyunit/tinyunit.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/token.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/ts_project.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/watch.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/workspace.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb/modules/workspace_members.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb_cli.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb_cli_modules/auth.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb_cli_modules/branch.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb_cli_modules/cicd.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb_cli_modules/cli.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb_cli_modules/common.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb_cli_modules/config.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb_cli_modules/connection.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb_cli_modules/datasource.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb_cli_modules/exceptions.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb_cli_modules/fmt.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb_cli_modules/job.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb_cli_modules/pipe.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb_cli_modules/regions.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb_cli_modules/tag.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb_cli_modules/telemetry.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb_cli_modules/test.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb_cli_modules/tinyunit/tinyunit.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb_cli_modules/workspace.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tb_cli_modules/workspace_members.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird/tornado_template.py +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird.egg-info/SOURCES.txt +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird.egg-info/dependency_links.txt +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird.egg-info/entry_points.txt +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird.egg-info/requires.txt +0 -0
- {tinybird-4.6.7.dev0 → tinybird-4.6.8}/tinybird.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: tinybird
|
|
3
|
-
Version: 4.6.
|
|
3
|
+
Version: 4.6.8
|
|
4
4
|
Summary: Tinybird Command Line Tool
|
|
5
5
|
Home-page: https://www.tinybird.co/docs/forward/commands
|
|
6
6
|
Author: Tinybird
|
|
@@ -52,6 +52,16 @@ The Tinybird command-line tool allows you to use all the Tinybird functionality
|
|
|
52
52
|
Changelog
|
|
53
53
|
----------
|
|
54
54
|
|
|
55
|
+
4.6.8
|
|
56
|
+
*******
|
|
57
|
+
|
|
58
|
+
- `Fixed` Tinybird Local CLI commands to respect Git branch local workspaces correctly.
|
|
59
|
+
|
|
60
|
+
4.6.7
|
|
61
|
+
*******
|
|
62
|
+
|
|
63
|
+
- `Fixed` `tb login` now raises an actionable error when the CLI cannot complete the authentication.
|
|
64
|
+
|
|
55
65
|
4.6.6
|
|
56
66
|
*******
|
|
57
67
|
|
|
@@ -1953,11 +1953,12 @@ def get_var_data(content, node_id=None):
|
|
|
1953
1953
|
"""
|
|
1954
1954
|
|
|
1955
1955
|
def node_to_value(x):
|
|
1956
|
-
|
|
1957
|
-
|
|
1958
|
-
|
|
1959
|
-
|
|
1960
|
-
|
|
1956
|
+
# ast.Constant supersedes the deprecated ast.Bytes/ast.Str/ast.Num/
|
|
1957
|
+
# ast.NameConstant node classes. Those were aliases of ast.Constant
|
|
1958
|
+
# since Python 3.8 (emitting DeprecationWarning on access in 3.12) and
|
|
1959
|
+
# were removed in Python 3.14. The parser only ever produces
|
|
1960
|
+
# ast.Constant nodes, so .value holds str/bytes/int/float/bool/None.
|
|
1961
|
+
if type(x) == ast.Constant: # noqa: E721
|
|
1961
1962
|
return x.value
|
|
1962
1963
|
elif type(x) == ast.Name: # noqa: E721
|
|
1963
1964
|
return x.id
|
|
@@ -1971,8 +1972,6 @@ def get_var_data(content, node_id=None):
|
|
|
1971
1972
|
if not r:
|
|
1972
1973
|
r = node_to_value(x.right)
|
|
1973
1974
|
return r
|
|
1974
|
-
elif type(x) == ast.Constant: # noqa: E721
|
|
1975
|
-
return x.value
|
|
1976
1975
|
elif type(x) == ast.UnaryOp and type(x.operand) == ast.Constant: # noqa: E721
|
|
1977
1976
|
if type(x.op) == ast.USub: # noqa: E721
|
|
1978
1977
|
return x.operand.value * -1
|
|
@@ -1991,11 +1990,9 @@ def get_var_data(content, node_id=None):
|
|
|
1991
1990
|
return []
|
|
1992
1991
|
|
|
1993
1992
|
first_elem = x.elts[0]
|
|
1994
|
-
|
|
1995
|
-
|
|
1996
|
-
|
|
1997
|
-
return [elem.n for elem in x.elts]
|
|
1998
|
-
elif type(first_elem) == ast.NameConstant or type(first_elem) == ast.Constant: # noqa: E721
|
|
1993
|
+
# See node_to_value: ast.Constant supersedes the deprecated
|
|
1994
|
+
# ast.Bytes/ast.Str/ast.Num/ast.NameConstant (removed in 3.14).
|
|
1995
|
+
if type(first_elem) == ast.Constant: # noqa: E721
|
|
1999
1996
|
return [elem.value for elem in x.elts]
|
|
2000
1997
|
elif type(first_elem) == ast.Name: # noqa: E721
|
|
2001
1998
|
return [elem.id for elem in x.elts]
|
|
@@ -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__ = '4.6.
|
|
8
|
-
__revision__ = '
|
|
7
|
+
__version__ = '4.6.8'
|
|
8
|
+
__revision__ = '13f02ee'
|
|
@@ -1153,15 +1153,17 @@ def create_ctx_client(
|
|
|
1153
1153
|
if show_warnings and command:
|
|
1154
1154
|
click.echo(FeedbackManager.gray(message="Running against Tinybird Local"))
|
|
1155
1155
|
local_branch = None
|
|
1156
|
-
if
|
|
1156
|
+
if not test:
|
|
1157
1157
|
git_branch = get_current_git_branch()
|
|
1158
1158
|
if git_branch and not is_main_git_branch(git_branch):
|
|
1159
1159
|
local_branch = get_tinybird_branch_name_from_git_branch(git_branch)
|
|
1160
1160
|
ctx.ensure_object(dict)["git_branch"] = git_branch
|
|
1161
1161
|
client, workspace_created = get_tinybird_local_client(config, test=test, staging=staging, branch=local_branch)
|
|
1162
|
-
if local_branch:
|
|
1162
|
+
if local_branch and config.get("local_workspace_name") == local_branch:
|
|
1163
1163
|
ctx.ensure_object(dict)["local_branch"] = local_branch
|
|
1164
1164
|
ctx.ensure_object(dict)["branch_created"] = workspace_created
|
|
1165
|
+
if show_warnings and command not in ("build", "dev"):
|
|
1166
|
+
click.echo(FeedbackManager.gray(message=f"Using Tinybird Local branch '{local_branch}'"))
|
|
1165
1167
|
return client
|
|
1166
1168
|
|
|
1167
1169
|
|
|
@@ -9,7 +9,12 @@ import requests
|
|
|
9
9
|
from docker.client import DockerClient
|
|
10
10
|
|
|
11
11
|
from tinybird.tb.client import AuthNoTokenException
|
|
12
|
-
from tinybird.tb.modules.cli import
|
|
12
|
+
from tinybird.tb.modules.cli import (
|
|
13
|
+
cli,
|
|
14
|
+
get_current_git_branch,
|
|
15
|
+
get_tinybird_branch_name_from_git_branch,
|
|
16
|
+
is_main_git_branch,
|
|
17
|
+
)
|
|
13
18
|
from tinybird.tb.modules.common import (
|
|
14
19
|
_get_workspace_plan_name,
|
|
15
20
|
echo_json,
|
|
@@ -80,9 +85,6 @@ def clear_local_workspace() -> None:
|
|
|
80
85
|
user_token = tokens["user_token"]
|
|
81
86
|
admin_token = tokens["admin_token"]
|
|
82
87
|
user_client = config.get_client(host=TB_LOCAL_ADDRESS, token=user_token)
|
|
83
|
-
ws_name = config.get("name")
|
|
84
|
-
if not ws_name:
|
|
85
|
-
raise AuthNoTokenException()
|
|
86
88
|
|
|
87
89
|
user_workspaces = requests.get(
|
|
88
90
|
f"{TB_LOCAL_ADDRESS}/v1/user/workspaces?with_organization=true&token={admin_token}"
|
|
@@ -90,19 +92,30 @@ def clear_local_workspace() -> None:
|
|
|
90
92
|
user_org_id = user_workspaces.get("organization_id", {})
|
|
91
93
|
local_workspaces = user_workspaces.get("workspaces", [])
|
|
92
94
|
|
|
95
|
+
branch_ws_name = None
|
|
96
|
+
ws_name = config.get("name")
|
|
97
|
+
git_branch = get_current_git_branch()
|
|
98
|
+
if git_branch and not is_main_git_branch(git_branch):
|
|
99
|
+
branch_ws_name = get_tinybird_branch_name_from_git_branch(git_branch)
|
|
100
|
+
if branch_ws_name:
|
|
101
|
+
ws_name = branch_ws_name
|
|
102
|
+
if not ws_name:
|
|
103
|
+
raise AuthNoTokenException()
|
|
104
|
+
|
|
93
105
|
ws = next((ws for ws in local_workspaces if ws["name"] == ws_name), None)
|
|
94
106
|
|
|
95
|
-
if not ws:
|
|
107
|
+
if not ws and ws_name != branch_ws_name:
|
|
96
108
|
raise CLILocalException(FeedbackManager.error(message=f"Workspace '{ws_name}' not found."))
|
|
97
109
|
|
|
98
|
-
requests.delete(f"{TB_LOCAL_ADDRESS}/v1/workspaces/{ws['id']}?token={user_token}&hard_delete_confirmation=yes")
|
|
99
|
-
user_workspaces = user_client.user_workspaces(version="v1")
|
|
100
|
-
ws = next((ws for ws in user_workspaces["workspaces"] if ws["name"] == ws_name), None)
|
|
101
|
-
|
|
102
110
|
if ws:
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
)
|
|
111
|
+
requests.delete(f"{TB_LOCAL_ADDRESS}/v1/workspaces/{ws['id']}?token={user_token}&hard_delete_confirmation=yes")
|
|
112
|
+
user_workspaces = user_client.user_workspaces(version="v1")
|
|
113
|
+
ws = next((ws for ws in user_workspaces["workspaces"] if ws["name"] == ws_name), None)
|
|
114
|
+
|
|
115
|
+
if ws:
|
|
116
|
+
raise CLILocalException(
|
|
117
|
+
FeedbackManager.error(message=f"Workspace '{ws_name}' was not cleared properly. Please try again.")
|
|
118
|
+
)
|
|
106
119
|
|
|
107
120
|
user_client.create_workspace(ws_name, assign_to_organization_id=user_org_id, version="v1")
|
|
108
121
|
user_workspaces = requests.get(f"{TB_LOCAL_ADDRESS}/v1/user/workspaces?token={admin_token}").json()
|
|
@@ -79,7 +79,10 @@ def get_tinybird_local_client(
|
|
|
79
79
|
|
|
80
80
|
|
|
81
81
|
def get_tinybird_local_config(
|
|
82
|
-
config_obj: Dict[str, Any],
|
|
82
|
+
config_obj: Dict[str, Any],
|
|
83
|
+
test: bool = False,
|
|
84
|
+
silent: bool = False,
|
|
85
|
+
branch: Optional[str] = None,
|
|
83
86
|
) -> tuple[CLIConfig, bool]:
|
|
84
87
|
"""Craft a client config with a workspace name based on the path of the project files.
|
|
85
88
|
|
|
@@ -143,6 +146,8 @@ def get_tinybird_local_config(
|
|
|
143
146
|
raise AuthNoTokenException()
|
|
144
147
|
workspace_created = True
|
|
145
148
|
|
|
149
|
+
config_obj["local_workspace_name"] = ws_name
|
|
150
|
+
|
|
146
151
|
ws_token = ws["token"]
|
|
147
152
|
config.set_token(ws_token)
|
|
148
153
|
config.set_token_for_host(TB_LOCAL_ADDRESS, ws_token)
|
|
@@ -213,13 +213,22 @@ def login(
|
|
|
213
213
|
|
|
214
214
|
# Wait for the authentication to complete or timeout
|
|
215
215
|
if auth_event.wait(timeout=SERVER_MAX_WAIT_TIME): # Wait for up to 180 seconds
|
|
216
|
-
params = {}
|
|
217
|
-
params["code"] = auth_code[0]
|
|
216
|
+
params = {"code": auth_code[0]}
|
|
218
217
|
response = requests.get(
|
|
219
218
|
f"{auth_host}/api/cli-login?{urlencode(params)}",
|
|
219
|
+
allow_redirects=False,
|
|
220
220
|
)
|
|
221
221
|
|
|
222
|
-
|
|
222
|
+
if response.status_code != 200:
|
|
223
|
+
raise Exception("Could not complete the authentication. Please try running the login command again.")
|
|
224
|
+
|
|
225
|
+
try:
|
|
226
|
+
data = response.json()
|
|
227
|
+
except ValueError:
|
|
228
|
+
raise Exception(
|
|
229
|
+
"Received an unexpected response while completing the authentication. "
|
|
230
|
+
"Please try running the login command again."
|
|
231
|
+
)
|
|
223
232
|
authenticate_with_tokens(data, cli_config)
|
|
224
233
|
else:
|
|
225
234
|
raise Exception("Authentication failed or timed out.")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: tinybird
|
|
3
|
-
Version: 4.6.
|
|
3
|
+
Version: 4.6.8
|
|
4
4
|
Summary: Tinybird Command Line Tool
|
|
5
5
|
Home-page: https://www.tinybird.co/docs/forward/commands
|
|
6
6
|
Author: Tinybird
|
|
@@ -52,6 +52,16 @@ The Tinybird command-line tool allows you to use all the Tinybird functionality
|
|
|
52
52
|
Changelog
|
|
53
53
|
----------
|
|
54
54
|
|
|
55
|
+
4.6.8
|
|
56
|
+
*******
|
|
57
|
+
|
|
58
|
+
- `Fixed` Tinybird Local CLI commands to respect Git branch local workspaces correctly.
|
|
59
|
+
|
|
60
|
+
4.6.7
|
|
61
|
+
*******
|
|
62
|
+
|
|
63
|
+
- `Fixed` `tb login` now raises an actionable error when the CLI cannot complete the authentication.
|
|
64
|
+
|
|
55
65
|
4.6.6
|
|
56
66
|
*******
|
|
57
67
|
|
|
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
|
|
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
|