tinybird 0.0.1.dev85__tar.gz → 0.0.1.dev87__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 (104) hide show
  1. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/PKG-INFO +1 -1
  2. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/sql_template.py +8 -0
  3. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/__cli__.py +2 -2
  4. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/cli.py +1 -0
  5. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/build.py +1 -0
  6. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/cli.py +3 -4
  7. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/config.py +0 -1
  8. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/create.py +3 -0
  9. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/datafile/common.py +11 -9
  10. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/deployment.py +1 -0
  11. tinybird-0.0.1.dev87/tinybird/tb/modules/logout.py +30 -0
  12. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/mock.py +1 -1
  13. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/project.py +1 -1
  14. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tornado_template.py +1 -0
  15. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird.egg-info/PKG-INFO +1 -1
  16. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird.egg-info/SOURCES.txt +1 -0
  17. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/setup.cfg +0 -0
  18. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/__cli__.py +0 -0
  19. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/ch_utils/constants.py +0 -0
  20. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/ch_utils/engine.py +0 -0
  21. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/check_pypi.py +0 -0
  22. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/client.py +0 -0
  23. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/config.py +0 -0
  24. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/connectors.py +0 -0
  25. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/context.py +0 -0
  26. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/datafile.py +0 -0
  27. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/datatypes.py +0 -0
  28. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/feedback_manager.py +0 -0
  29. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/git_settings.py +0 -0
  30. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/prompts.py +0 -0
  31. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/sql.py +0 -0
  32. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/sql_template_fmt.py +0 -0
  33. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/sql_toolset.py +0 -0
  34. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/syncasync.py +0 -0
  35. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/auth.py +0 -0
  36. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/cicd.py +0 -0
  37. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/common.py +0 -0
  38. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/copy.py +0 -0
  39. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/datafile/build.py +0 -0
  40. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/datafile/build_common.py +0 -0
  41. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/datafile/build_datasource.py +0 -0
  42. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/datafile/build_pipe.py +0 -0
  43. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/datafile/diff.py +0 -0
  44. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/datafile/exceptions.py +0 -0
  45. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/datafile/fixture.py +0 -0
  46. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/datafile/format_common.py +0 -0
  47. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/datafile/format_datasource.py +0 -0
  48. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/datafile/format_pipe.py +0 -0
  49. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/datafile/parse_datasource.py +0 -0
  50. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/datafile/parse_pipe.py +0 -0
  51. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/datafile/pipe_checker.py +0 -0
  52. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/datafile/playground.py +0 -0
  53. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/datafile/pull.py +0 -0
  54. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/datasource.py +0 -0
  55. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/endpoint.py +0 -0
  56. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/exceptions.py +0 -0
  57. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/feedback_manager.py +0 -0
  58. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/fmt.py +0 -0
  59. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/job.py +0 -0
  60. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/llm.py +0 -0
  61. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/llm_utils.py +0 -0
  62. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/local.py +0 -0
  63. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/local_common.py +0 -0
  64. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/login.py +0 -0
  65. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/materialization.py +0 -0
  66. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/pipe.py +0 -0
  67. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/playground.py +0 -0
  68. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/regions.py +0 -0
  69. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/shell.py +0 -0
  70. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/table.py +0 -0
  71. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/tag.py +0 -0
  72. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/telemetry.py +0 -0
  73. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/test.py +0 -0
  74. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/tinyunit/tinyunit.py +0 -0
  75. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/tinyunit/tinyunit_lib.py +0 -0
  76. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/token.py +0 -0
  77. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/watch.py +0 -0
  78. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/workspace.py +0 -0
  79. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb/modules/workspace_members.py +0 -0
  80. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb_cli.py +0 -0
  81. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb_cli_modules/auth.py +0 -0
  82. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb_cli_modules/branch.py +0 -0
  83. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb_cli_modules/cicd.py +0 -0
  84. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb_cli_modules/cli.py +0 -0
  85. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb_cli_modules/common.py +0 -0
  86. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb_cli_modules/config.py +0 -0
  87. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb_cli_modules/connection.py +0 -0
  88. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb_cli_modules/datasource.py +0 -0
  89. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb_cli_modules/exceptions.py +0 -0
  90. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb_cli_modules/fmt.py +0 -0
  91. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb_cli_modules/job.py +0 -0
  92. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb_cli_modules/pipe.py +0 -0
  93. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb_cli_modules/regions.py +0 -0
  94. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb_cli_modules/tag.py +0 -0
  95. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb_cli_modules/telemetry.py +0 -0
  96. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb_cli_modules/test.py +0 -0
  97. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb_cli_modules/tinyunit/tinyunit.py +0 -0
  98. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb_cli_modules/tinyunit/tinyunit_lib.py +0 -0
  99. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb_cli_modules/workspace.py +0 -0
  100. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird/tb_cli_modules/workspace_members.py +0 -0
  101. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird.egg-info/dependency_links.txt +0 -0
  102. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird.egg-info/entry_points.txt +0 -0
  103. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/tinybird.egg-info/requires.txt +0 -0
  104. {tinybird-0.0.1.dev85 → tinybird-0.0.1.dev87}/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.dev85
3
+ Version: 0.0.1.dev87
4
4
  Summary: Tinybird Command Line Tool
5
5
  Home-page: https://www.tinybird.co/docs/cli/introduction.html
6
6
  Author: Tinybird
@@ -1452,6 +1452,13 @@ def generate(self, **kwargs) -> Tuple[str, TemplateExecutionResults]:
1452
1452
  template_execution_results["activate"] = feature
1453
1453
  return Expression(f"-- activate {feature}\n")
1454
1454
 
1455
+ def set_disable_feature(feature):
1456
+ valid_features = "analyzer"
1457
+ if feature not in valid_features:
1458
+ raise SQLTemplateException(f"'{feature}' is not a valid 'disable' argument")
1459
+ template_execution_results["disable"] = feature
1460
+ return Expression(f"-- disable {feature}\n")
1461
+
1455
1462
  namespace.update(_namespace)
1456
1463
  namespace.update(kwargs)
1457
1464
  namespace.update(
@@ -1466,6 +1473,7 @@ def generate(self, **kwargs) -> Tuple[str, TemplateExecutionResults]:
1466
1473
  "backend_hint": set_backend_hint,
1467
1474
  "cache_ttl": set_cache_ttl,
1468
1475
  "activate": set_activate,
1476
+ "disable": set_disable_feature,
1469
1477
  }
1470
1478
  )
1471
1479
 
@@ -4,5 +4,5 @@ __description__ = 'Tinybird Command Line Tool'
4
4
  __url__ = 'https://www.tinybird.co/docs/cli/introduction.html'
5
5
  __author__ = 'Tinybird'
6
6
  __author_email__ = 'support@tinybird.co'
7
- __version__ = '0.0.1.dev85'
8
- __revision__ = 'd751c6c'
7
+ __version__ = '0.0.1.dev87'
8
+ __revision__ = '029c262'
@@ -17,6 +17,7 @@ import tinybird.tb.modules.fmt
17
17
  import tinybird.tb.modules.job
18
18
  import tinybird.tb.modules.local
19
19
  import tinybird.tb.modules.login
20
+ import tinybird.tb.modules.logout
20
21
  import tinybird.tb.modules.materialization
21
22
  import tinybird.tb.modules.mock
22
23
  import tinybird.tb.modules.pipe
@@ -57,6 +57,7 @@ def build_project(project: Project, tb_client: TinyB, file_changed: Optional[str
57
57
  DATAFILE_TYPE_TO_CONTENT_TYPE = {
58
58
  ".datasource": "text/plain",
59
59
  ".pipe": "text/plain",
60
+ ".connection": "text/plain",
60
61
  }
61
62
  TINYBIRD_API_URL = tb_client.host + "/v1/build"
62
63
  logging.debug(TINYBIRD_API_URL)
@@ -7,7 +7,6 @@ import json
7
7
  import logging
8
8
  import os
9
9
  import sys
10
- from os import getcwd
11
10
  from typing import Any, Callable, Dict, List, Optional, Tuple, Union
12
11
 
13
12
  import click
@@ -146,9 +145,9 @@ async def pull(ctx: Context, force: bool, fmt: bool) -> None:
146
145
  """Retrieve latest versions for project files from Tinybird."""
147
146
 
148
147
  client = ctx.ensure_object(dict)["client"]
149
- folder = getcwd()
148
+ project = ctx.ensure_object(dict)["project"]
150
149
 
151
- return await folder_pull(client, folder, force, fmt=fmt)
150
+ return await folder_pull(client, project.path, force, fmt=fmt)
152
151
 
153
152
 
154
153
  @cli.command(hidden=True)
@@ -394,7 +393,7 @@ def __unpatch_click_output():
394
393
 
395
394
 
396
395
  async def create_ctx_client(ctx: Context, config: Dict[str, Any], cloud: bool, build: bool, staging: bool):
397
- commands_without_ctx_client = ["auth", "check", "login", "local", "update", "upgrade"]
396
+ commands_without_ctx_client = ["auth", "check", "login", "local", "update", "upgrade", "logout"]
398
397
  command = ctx.invoked_subcommand
399
398
  if command in commands_without_ctx_client:
400
399
  return None
@@ -79,7 +79,6 @@ class CLIConfig:
79
79
  _projects: Dict[str, "CLIConfig"] = {}
80
80
 
81
81
  def __init__(self, path: Optional[str] = None) -> None:
82
- self.cwd = os.getcwd()
83
82
  self._path = path or self.get_tinyb_file() or os.path.join(os.getcwd(), ".tinyb")
84
83
  self._values: Dict[str, ConfigValue] = {}
85
84
  self._values["version"] = ConfigValue("version", CURRENT_VERSION, ConfigValueOrigin.DEFAULT)
@@ -51,6 +51,9 @@ async def create(
51
51
  config.persist_to_file()
52
52
  project.folder = folder
53
53
 
54
+ if cwd := config.get("cwd"):
55
+ click.echo(FeedbackManager.gray(message=f"Using '{cwd.replace(os.getcwd(), '')}' as target folder"))
56
+
54
57
  root_folder = os.getcwd()
55
58
  if config._path:
56
59
  root_folder = os.path.dirname(config._path)
@@ -168,14 +168,18 @@ class UnkownExtensionerror(Exception): ...
168
168
  class DatafileKind(Enum):
169
169
  pipe = "pipe"
170
170
  datasource = "datasource"
171
+ connection = "connection"
171
172
 
172
173
  @classmethod
173
174
  def from_extension(cls, extension: str) -> DatafileKind:
174
- if extension == ".pipe":
175
- return cls.pipe
176
- elif extension == ".datasource":
177
- return cls.datasource
178
- raise UnkownExtensionerror(f"Unknown extension {extension} for data file")
175
+ extension_map = {
176
+ ".pipe": cls.pipe,
177
+ ".datasource": cls.datasource,
178
+ ".connection": cls.connection,
179
+ }
180
+ if extension not in extension_map:
181
+ raise UnkownExtensionerror(f"Unknown extension {extension} for data file")
182
+ return extension_map[extension]
179
183
 
180
184
 
181
185
  class Datafile:
@@ -1099,9 +1103,7 @@ def parse(
1099
1103
  ) -> Datafile:
1100
1104
  """
1101
1105
  Parses `s` string into a document
1102
- >>> d = parse("MAINTAINER 'rambo' #this is me\\nNODE \\"test_01\\"\\n DESCRIPTION this is a node that does whatever\\nSQL >\\n\\n SELECT * from test_00\\n\\n\\nNODE \\"test_02\\"\\n DESCRIPTION this is a node that does whatever\\nSQL >\\n\\n SELECT * from test_01\\n WHERE a > 1\\n GROUP by a\\n")
1103
- >>> d.maintainer
1104
- 'rambo'
1106
+ >>> d = parse("NODE \\"test_01\\"\\n DESCRIPTION this is a node that does whatever\\nSQL >\\n\\n SELECT * from test_00\\n\\n\\nNODE \\"test_02\\"\\n DESCRIPTION this is a node that does whatever\\nSQL >\\n\\n SELECT * from test_01\\n WHERE a > 1\\n GROUP by a\\n")
1105
1107
  >>> len(d.nodes)
1106
1108
  2
1107
1109
  >>> d.nodes[0]
@@ -1377,7 +1379,6 @@ def parse(
1377
1379
 
1378
1380
  cmds = {
1379
1381
  "source": sources,
1380
- "maintainer": assign("maintainer"),
1381
1382
  "schema": schema,
1382
1383
  "indexes": indexes,
1383
1384
  "engine": set_engine,
@@ -1417,6 +1418,7 @@ def parse(
1417
1418
  "kafka_store_binary_headers": assign_var("kafka_store_binary_headers"),
1418
1419
  "kafka_key_avro_deserialization": assign_var("kafka_key_avro_deserialization"),
1419
1420
  "kafka_ssl_ca_pem": assign_var("kafka_ssl_ca_pem"),
1421
+ "kafka_security_protocol": assign_var("kafka_security_protocol"),
1420
1422
  "kafka_sasl_mechanism": assign_var("kafka_sasl_mechanism"),
1421
1423
  "import_service": assign_var("import_service"),
1422
1424
  "import_connection_name": assign_var("import_connection_name"),
@@ -324,6 +324,7 @@ def create_deployment(
324
324
  DATAFILE_TYPE_TO_CONTENT_TYPE = {
325
325
  ".datasource": "text/plain",
326
326
  ".pipe": "text/plain",
327
+ ".connection": "text/plain",
327
328
  }
328
329
  project: Project = ctx.ensure_object(dict)["project"]
329
330
  client = ctx.ensure_object(dict)["client"]
@@ -0,0 +1,30 @@
1
+ import click
2
+
3
+ from tinybird.tb.modules.cli import cli
4
+ from tinybird.tb.modules.config import CLIConfig
5
+ from tinybird.tb.modules.feedback_manager import FeedbackManager
6
+
7
+
8
+ @cli.command(name="logout", hidden=True)
9
+ def logout() -> None:
10
+ """
11
+ Remove authentication from Tinybird.
12
+
13
+ This command will remove the authentication credentials from the CLI configuration.
14
+ """
15
+ conf = CLIConfig.get_project_config()
16
+ if workspace_name := conf.get("name", ""):
17
+ click.echo(FeedbackManager.highlight(message=f"» Logging out from {workspace_name}..."))
18
+ else:
19
+ click.echo(FeedbackManager.highlight(message="» Logging out..."))
20
+ conf.set_user_token("")
21
+ conf.set_token("")
22
+ conf.set_workspace_token(conf.get("id", ""), "")
23
+ conf.set_token_for_host("", conf.get("host", ""))
24
+ conf["tokens"] = {}
25
+ conf["name"] = ""
26
+ conf["id"] = ""
27
+ conf["user_id"] = ""
28
+ conf["user_email"] = ""
29
+ conf.persist_to_file()
30
+ click.echo(FeedbackManager.success(message="✓ Logged out!"))
@@ -74,7 +74,7 @@ async def mock(ctx: click.Context, datasource: str, rows: int, prompt: str) -> N
74
74
  sql = extract_xml(response, "sql")
75
75
  result = await tb_client.query(f"{sql} FORMAT JSON")
76
76
  data = result.get("data", [])[:rows]
77
- if env == "build":
77
+ if env in ("build", "local"):
78
78
  persist_fixture_sql(datasource_name, sql, folder)
79
79
 
80
80
  fixture_path = persist_fixture(datasource_name, data, folder)
@@ -9,7 +9,7 @@ from tinybird.tb.modules.datafile.parse_pipe import parse_pipe
9
9
 
10
10
 
11
11
  class Project:
12
- extensions = ("datasource", "pipe")
12
+ extensions = ("datasource", "pipe", "connection")
13
13
 
14
14
  def __init__(self, folder: str):
15
15
  self.folder = folder
@@ -1042,6 +1042,7 @@ VALID_FUNCTION_NAMES = {
1042
1042
  "custom_error",
1043
1043
  "backend_hint",
1044
1044
  "activate",
1045
+ "disable",
1045
1046
  "sql_unescape",
1046
1047
  "max_threads",
1047
1048
  "tb_secret",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: tinybird
3
- Version: 0.0.1.dev85
3
+ Version: 0.0.1.dev87
4
4
  Summary: Tinybird Command Line Tool
5
5
  Home-page: https://www.tinybird.co/docs/cli/introduction.html
6
6
  Author: Tinybird
@@ -46,6 +46,7 @@ tinybird/tb/modules/llm_utils.py
46
46
  tinybird/tb/modules/local.py
47
47
  tinybird/tb/modules/local_common.py
48
48
  tinybird/tb/modules/login.py
49
+ tinybird/tb/modules/logout.py
49
50
  tinybird/tb/modules/materialization.py
50
51
  tinybird/tb/modules/mock.py
51
52
  tinybird/tb/modules/pipe.py
File without changes