tinybird 0.0.1.dev295__tar.gz → 0.0.1.dev296__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.
Files changed (150) hide show
  1. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/PKG-INFO +1 -1
  2. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/ch_utils/constants.py +4 -0
  3. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/__cli__.py +2 -2
  4. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/build_common.py +51 -7
  5. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/local_common.py +2 -1
  6. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/test_common.py +7 -1
  7. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird.egg-info/PKG-INFO +1 -1
  8. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/setup.cfg +0 -0
  9. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/__cli__.py +0 -0
  10. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/ch_utils/engine.py +0 -0
  11. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/check_pypi.py +0 -0
  12. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/client.py +0 -0
  13. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/config.py +0 -0
  14. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/connectors.py +0 -0
  15. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/context.py +0 -0
  16. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/datafile/common.py +0 -0
  17. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/datafile/exceptions.py +0 -0
  18. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/datafile/parse_connection.py +0 -0
  19. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/datafile/parse_datasource.py +0 -0
  20. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/datafile/parse_pipe.py +0 -0
  21. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/datatypes.py +0 -0
  22. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/feedback_manager.py +0 -0
  23. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/git_settings.py +0 -0
  24. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/prompts.py +0 -0
  25. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/service_datasources.py +0 -0
  26. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/sql.py +0 -0
  27. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/sql_template.py +0 -0
  28. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/sql_template_fmt.py +0 -0
  29. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/sql_toolset.py +0 -0
  30. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/syncasync.py +0 -0
  31. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/check_pypi.py +0 -0
  32. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/cli.py +0 -0
  33. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/client.py +0 -0
  34. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/config.py +0 -0
  35. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/__init__.py +0 -0
  36. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/agent.py +0 -0
  37. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/animations.py +0 -0
  38. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/banner.py +0 -0
  39. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/command_agent.py +0 -0
  40. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/compactor.py +0 -0
  41. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/explore_agent.py +0 -0
  42. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/file_agent.py +0 -0
  43. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/memory.py +0 -0
  44. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/mock_agent.py +0 -0
  45. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/models.py +0 -0
  46. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/prompts.py +0 -0
  47. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/testing_agent.py +0 -0
  48. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/tools/__init__.py +0 -0
  49. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/tools/analyze.py +0 -0
  50. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/tools/append.py +0 -0
  51. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/tools/build.py +0 -0
  52. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/tools/datafile.py +0 -0
  53. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/tools/deploy.py +0 -0
  54. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/tools/deploy_check.py +0 -0
  55. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/tools/diff_resource.py +0 -0
  56. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/tools/execute_query.py +0 -0
  57. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/tools/file.py +0 -0
  58. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/tools/get_endpoint_stats.py +0 -0
  59. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/tools/get_openapi_definition.py +0 -0
  60. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/tools/mock.py +0 -0
  61. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/tools/plan.py +0 -0
  62. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/tools/request_endpoint.py +0 -0
  63. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/tools/run_command.py +0 -0
  64. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/tools/secret.py +0 -0
  65. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/tools/test.py +0 -0
  66. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/agent/utils.py +0 -0
  67. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/build.py +0 -0
  68. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/cicd.py +0 -0
  69. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/cli.py +0 -0
  70. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/common.py +0 -0
  71. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/config.py +0 -0
  72. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/connection.py +0 -0
  73. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/copy.py +0 -0
  74. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/create.py +0 -0
  75. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/datafile/build.py +0 -0
  76. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/datafile/build_common.py +0 -0
  77. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/datafile/build_datasource.py +0 -0
  78. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/datafile/build_pipe.py +0 -0
  79. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/datafile/diff.py +0 -0
  80. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/datafile/fixture.py +0 -0
  81. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/datafile/format_common.py +0 -0
  82. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/datafile/format_datasource.py +0 -0
  83. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/datafile/format_pipe.py +0 -0
  84. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/datafile/pipe_checker.py +0 -0
  85. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/datafile/playground.py +0 -0
  86. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/datafile/pull.py +0 -0
  87. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/datasource.py +0 -0
  88. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/deployment.py +0 -0
  89. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/deployment_common.py +0 -0
  90. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/deprecations.py +0 -0
  91. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/dev_server.py +0 -0
  92. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/endpoint.py +0 -0
  93. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/exceptions.py +0 -0
  94. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/feedback_manager.py +0 -0
  95. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/info.py +0 -0
  96. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/infra.py +0 -0
  97. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/job.py +0 -0
  98. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/llm.py +0 -0
  99. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/llm_utils.py +0 -0
  100. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/local.py +0 -0
  101. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/login.py +0 -0
  102. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/login_common.py +0 -0
  103. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/logout.py +0 -0
  104. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/materialization.py +0 -0
  105. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/mock.py +0 -0
  106. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/mock_common.py +0 -0
  107. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/open.py +0 -0
  108. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/pipe.py +0 -0
  109. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/project.py +0 -0
  110. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/regions.py +0 -0
  111. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/secret.py +0 -0
  112. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/secret_common.py +0 -0
  113. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/shell.py +0 -0
  114. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/sink.py +0 -0
  115. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/table.py +0 -0
  116. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/telemetry.py +0 -0
  117. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/test.py +0 -0
  118. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/tinyunit/tinyunit.py +0 -0
  119. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/tinyunit/tinyunit_lib.py +0 -0
  120. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/token.py +0 -0
  121. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/watch.py +0 -0
  122. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/workspace.py +0 -0
  123. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb/modules/workspace_members.py +0 -0
  124. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb_cli.py +0 -0
  125. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb_cli_modules/auth.py +0 -0
  126. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb_cli_modules/branch.py +0 -0
  127. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb_cli_modules/cicd.py +0 -0
  128. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb_cli_modules/cli.py +0 -0
  129. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb_cli_modules/common.py +0 -0
  130. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb_cli_modules/config.py +0 -0
  131. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb_cli_modules/connection.py +0 -0
  132. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb_cli_modules/datasource.py +0 -0
  133. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb_cli_modules/exceptions.py +0 -0
  134. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb_cli_modules/fmt.py +0 -0
  135. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb_cli_modules/job.py +0 -0
  136. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb_cli_modules/pipe.py +0 -0
  137. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb_cli_modules/regions.py +0 -0
  138. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb_cli_modules/tag.py +0 -0
  139. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb_cli_modules/telemetry.py +0 -0
  140. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb_cli_modules/test.py +0 -0
  141. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb_cli_modules/tinyunit/tinyunit.py +0 -0
  142. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb_cli_modules/tinyunit/tinyunit_lib.py +0 -0
  143. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb_cli_modules/workspace.py +0 -0
  144. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tb_cli_modules/workspace_members.py +0 -0
  145. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird/tornado_template.py +0 -0
  146. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird.egg-info/SOURCES.txt +0 -0
  147. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird.egg-info/dependency_links.txt +0 -0
  148. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird.egg-info/entry_points.txt +0 -0
  149. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/tinybird.egg-info/requires.txt +0 -0
  150. {tinybird-0.0.1.dev295 → tinybird-0.0.1.dev296}/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.dev295
3
+ Version: 0.0.1.dev296
4
4
  Summary: Tinybird Command Line Tool
5
5
  Home-page: https://www.tinybird.co/docs/forward/commands
6
6
  Author: Tinybird
@@ -259,4 +259,8 @@ VALID_QUERY_FORMATS = (
259
259
  "TabSeparated",
260
260
  "JSONCompactEachRowWithNamesAndTypes",
261
261
  "TabSeparatedWithNamesAndTypes",
262
+ "JSONCompactEachRow",
263
+ "JSONCompact",
264
+ "JSONStringsEachRowWithProgress",
265
+ "ODBCDriver2",
262
266
  )
@@ -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.dev295'
8
- __revision__ = '6b3c823'
7
+ __version__ = '0.0.1.dev296'
8
+ __revision__ = 'b2373b7'
@@ -1,5 +1,6 @@
1
1
  import json
2
2
  import logging
3
+ import re
3
4
  import time
4
5
  from copy import deepcopy
5
6
  from pathlib import Path
@@ -31,11 +32,14 @@ def process(
31
32
  build_status: Optional[BuildStatus] = None,
32
33
  exit_on_error: bool = True,
33
34
  load_fixtures: bool = True,
35
+ project_with_vendors: Optional[Project] = None,
34
36
  ) -> Optional[str]:
35
37
  time_start = time.time()
36
38
 
37
39
  # Build vendored workspaces before build
38
- build_vendored_workspaces(project=project, tb_client=tb_client, config=config)
40
+ if not project_with_vendors:
41
+ build_vendored_workspaces(project=project, tb_client=tb_client, config=config)
42
+
39
43
  # Ensure SHARED_WITH workspaces exist before build
40
44
  build_shared_with_workspaces(project=project, tb_client=tb_client, config=config)
41
45
 
@@ -63,7 +67,13 @@ def process(
63
67
  build_status.error = None
64
68
  else:
65
69
  try:
66
- build_result = build_project(project, tb_client, silent, load_fixtures)
70
+ build_result = build_project(
71
+ project,
72
+ tb_client,
73
+ silent,
74
+ load_fixtures,
75
+ project_with_vendors=project_with_vendors,
76
+ )
67
77
  if build_status:
68
78
  build_status.building = False
69
79
  build_status.error = None
@@ -192,7 +202,11 @@ def show_data(tb_client: TinyB, filename: str, diff: Optional[str] = None):
192
202
 
193
203
 
194
204
  def build_project(
195
- project: Project, tb_client: TinyB, silent: bool = False, load_fixtures: bool = True
205
+ project: Project,
206
+ tb_client: TinyB,
207
+ silent: bool = False,
208
+ load_fixtures: bool = True,
209
+ project_with_vendors: Optional[Project] = None,
196
210
  ) -> Optional[bool]:
197
211
  MULTIPART_BOUNDARY_DATA_PROJECT = "data_project://"
198
212
  DATAFILE_TYPE_TO_CONTENT_TYPE = {
@@ -204,6 +218,7 @@ def build_project(
204
218
  logging.debug(TINYBIRD_API_URL)
205
219
  TINYBIRD_API_KEY = tb_client.token
206
220
  error: Optional[str] = None
221
+
207
222
  try:
208
223
  files = [
209
224
  ("context://", ("cli-version", "1.0.0", "text/plain")),
@@ -218,9 +233,15 @@ def build_project(
218
233
  relative_path = Path(file_path).relative_to(project_path).as_posix()
219
234
  with open(file_path, "rb") as fd:
220
235
  content_type = DATAFILE_TYPE_TO_CONTENT_TYPE.get(Path(file_path).suffix, "application/unknown")
221
- files.append(
222
- (MULTIPART_BOUNDARY_DATA_PROJECT, (relative_path, fd.read().decode("utf-8"), content_type))
223
- )
236
+ content = fd.read().decode("utf-8")
237
+ if project_with_vendors:
238
+ # Replace 'SHARED_WITH' and everything that comes after, including new lines, with 'SHARED_WITH Tinybird_Local_Test_'
239
+ content = replace_shared_with(
240
+ content,
241
+ [project_with_vendors.workspace_name],
242
+ )
243
+
244
+ files.append((MULTIPART_BOUNDARY_DATA_PROJECT, (relative_path, content, content_type)))
224
245
  HEADERS = {"Authorization": f"Bearer {TINYBIRD_API_KEY}"}
225
246
 
226
247
  r = requests.post(TINYBIRD_API_URL, files=files, headers=HEADERS)
@@ -408,7 +429,8 @@ def build_vendored_workspaces(project: Project, tb_client: TinyB, config: dict[s
408
429
  vendor_client = deepcopy(tb_client)
409
430
  vendor_client.token = ws_token
410
431
  vendor_project = Project(folder=str(ws_dir), workspace_name=workspace_name, max_depth=project.max_depth)
411
-
432
+ workspace_info = tb_client.workspace_info(version="v1")
433
+ project.workspace_name = workspace_info.get("name", "")
412
434
  # Do not exit on error to allow main project to continue
413
435
  process(
414
436
  project=vendor_project,
@@ -418,6 +440,7 @@ def build_vendored_workspaces(project: Project, tb_client: TinyB, config: dict[s
418
440
  exit_on_error=True,
419
441
  load_fixtures=True,
420
442
  config=config,
443
+ project_with_vendors=project,
421
444
  )
422
445
  except Exception as e:
423
446
  # Never break the main build due to vendored build errors
@@ -459,3 +482,24 @@ def build_shared_with_workspaces(project: Project, tb_client: TinyB, config: dic
459
482
  find_workspace_or_create(user_client, ws_name)
460
483
  except Exception as e:
461
484
  click.echo(FeedbackManager.error_exception(error=e))
485
+
486
+
487
+ def replace_shared_with(text: str, new_workspaces: list[str]) -> str:
488
+ replacement = ", ".join(new_workspaces)
489
+
490
+ # 1) Formato multilinea:
491
+ # SHARED_WITH >
492
+ # workspace1, workspace2
493
+ #
494
+ # Solo sustituimos la LÍNEA de workspaces (grupo 3), no usamos DOTALL.
495
+ pat_multiline = re.compile(r"(?m)^(SHARED_WITH\s*>\s*)\n([ \t]*)([^\n]*)$")
496
+ if pat_multiline.search(text):
497
+ return pat_multiline.sub(lambda m: f"{m.group(1)}\n{m.group(2)}{replacement}", text)
498
+
499
+ # 2) Formato inline:
500
+ # SHARED_WITH workspace1, workspace2
501
+ pat_inline = re.compile(r"(?m)^(SHARED_WITH\s+)([^\n]*)$")
502
+ if pat_inline.search(text):
503
+ return pat_inline.sub(lambda m: f"{m.group(1)}{replacement}", text)
504
+
505
+ return text
@@ -63,7 +63,8 @@ def get_tinybird_local_config(config_obj: Dict[str, Any], test: bool = False, si
63
63
  ).json()
64
64
  local_workspaces = user_workspaces.get("workspaces", [])
65
65
  for ws in local_workspaces:
66
- if ws["name"].startswith("Tinybird_Local_Test_"):
66
+ is_test_workspace = ws["name"].startswith("Tinybird_Local_Test_")
67
+ if is_test_workspace:
67
68
  requests.delete(
68
69
  f"{TB_LOCAL_ADDRESS}/v1/workspaces/{ws['id']}?token={user_token}&hard_delete_confirmation=yes"
69
70
  )
@@ -64,7 +64,13 @@ def create_test(
64
64
  try:
65
65
  click.echo(FeedbackManager.highlight(message="\n» Building test environment"))
66
66
  build_error = build_project(
67
- project=project, tb_client=client, watch=False, silent=True, exit_on_error=False, config=config
67
+ project=project,
68
+ tb_client=client,
69
+ watch=False,
70
+ silent=True,
71
+ exit_on_error=False,
72
+ config=config,
73
+ load_fixtures=True,
68
74
  )
69
75
  if build_error:
70
76
  raise Exception(build_error)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: tinybird
3
- Version: 0.0.1.dev295
3
+ Version: 0.0.1.dev296
4
4
  Summary: Tinybird Command Line Tool
5
5
  Home-page: https://www.tinybird.co/docs/forward/commands
6
6
  Author: Tinybird