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.

Potentially problematic release.


This version of tinybird might be problematic. Click here for more details.

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