tinybird 3.5.4.dev0__tar.gz → 3.5.5.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.
Files changed (157) hide show
  1. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/PKG-INFO +6 -1
  2. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/datafile/common.py +2 -0
  3. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/sql_toolset.py +32 -2
  4. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/syncasync.py +27 -0
  5. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/__cli__.py +2 -2
  6. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/client.py +4 -1
  7. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird.egg-info/PKG-INFO +6 -1
  8. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird.egg-info/top_level.txt +1 -0
  9. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/setup.cfg +0 -0
  10. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/__cli__.py +0 -0
  11. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/ch_utils/constants.py +0 -0
  12. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/ch_utils/engine.py +0 -0
  13. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/check_pypi.py +0 -0
  14. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/client.py +0 -0
  15. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/config.py +0 -0
  16. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/context.py +0 -0
  17. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/datafile/exceptions.py +0 -0
  18. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/datafile/parse_connection.py +0 -0
  19. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/datafile/parse_datasource.py +0 -0
  20. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/datafile/parse_pipe.py +0 -0
  21. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/datatypes.py +0 -0
  22. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/feedback_manager.py +0 -0
  23. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/git_settings.py +0 -0
  24. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/prompts.py +0 -0
  25. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/service_datasources.py +0 -0
  26. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/sql.py +0 -0
  27. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/sql_template.py +0 -0
  28. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/sql_template_fmt.py +0 -0
  29. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/check_pypi.py +0 -0
  30. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/cli.py +0 -0
  31. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/config.py +0 -0
  32. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/__init__.py +0 -0
  33. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/agent.py +0 -0
  34. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/animations.py +0 -0
  35. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/banner.py +0 -0
  36. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/command_agent.py +0 -0
  37. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/compactor.py +0 -0
  38. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/explore_agent.py +0 -0
  39. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/file_agent.py +0 -0
  40. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/memory.py +0 -0
  41. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/mock_agent.py +0 -0
  42. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/models.py +0 -0
  43. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/prompts.py +0 -0
  44. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/testing_agent.py +0 -0
  45. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/tools/__init__.py +0 -0
  46. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/tools/analyze.py +0 -0
  47. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/tools/append.py +0 -0
  48. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/tools/build.py +0 -0
  49. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/tools/datafile.py +0 -0
  50. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/tools/deploy.py +0 -0
  51. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/tools/deploy_check.py +0 -0
  52. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/tools/diff_resource.py +0 -0
  53. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/tools/execute_query.py +0 -0
  54. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/tools/file.py +0 -0
  55. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/tools/get_endpoint_stats.py +0 -0
  56. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/tools/get_openapi_definition.py +0 -0
  57. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/tools/mock.py +0 -0
  58. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/tools/plan.py +0 -0
  59. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/tools/request_endpoint.py +0 -0
  60. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/tools/run_command.py +0 -0
  61. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/tools/secret.py +0 -0
  62. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/tools/test.py +0 -0
  63. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/agent/utils.py +0 -0
  64. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/branch.py +0 -0
  65. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/build.py +0 -0
  66. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/build_common.py +0 -0
  67. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/cicd.py +0 -0
  68. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/cli.py +0 -0
  69. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/common.py +0 -0
  70. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/config.py +0 -0
  71. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/connection.py +0 -0
  72. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/connection_kafka.py +0 -0
  73. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/connection_s3.py +0 -0
  74. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/copy.py +0 -0
  75. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/create.py +0 -0
  76. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/datafile/build.py +0 -0
  77. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/datafile/build_common.py +0 -0
  78. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/datafile/build_datasource.py +0 -0
  79. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/datafile/build_pipe.py +0 -0
  80. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/datafile/diff.py +0 -0
  81. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/datafile/fixture.py +0 -0
  82. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/datafile/format_common.py +0 -0
  83. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/datafile/format_connection.py +0 -0
  84. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/datafile/format_datasource.py +0 -0
  85. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/datafile/format_pipe.py +0 -0
  86. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/datafile/pipe_checker.py +0 -0
  87. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/datafile/playground.py +0 -0
  88. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/datafile/pull.py +0 -0
  89. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/datasource.py +0 -0
  90. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/deployment.py +0 -0
  91. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/deployment_common.py +0 -0
  92. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/deprecations.py +0 -0
  93. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/dev_server.py +0 -0
  94. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/endpoint.py +0 -0
  95. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/exceptions.py +0 -0
  96. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/feedback_manager.py +0 -0
  97. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/fmt.py +0 -0
  98. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/info.py +0 -0
  99. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/infra.py +0 -0
  100. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/job.py +0 -0
  101. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/job_common.py +0 -0
  102. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/llm.py +0 -0
  103. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/llm_utils.py +0 -0
  104. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/local.py +0 -0
  105. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/local_common.py +0 -0
  106. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/local_logs.py +0 -0
  107. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/login.py +0 -0
  108. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/login_common.py +0 -0
  109. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/logout.py +0 -0
  110. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/materialization.py +0 -0
  111. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/mock.py +0 -0
  112. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/mock_common.py +0 -0
  113. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/open.py +0 -0
  114. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/pipe.py +0 -0
  115. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/project.py +0 -0
  116. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/project_commands.py +0 -0
  117. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/regions.py +0 -0
  118. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/secret.py +0 -0
  119. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/secret_common.py +0 -0
  120. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/shell.py +0 -0
  121. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/sink.py +0 -0
  122. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/table.py +0 -0
  123. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/telemetry.py +0 -0
  124. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/test.py +0 -0
  125. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/test_common.py +0 -0
  126. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/tinyunit/tinyunit.py +0 -0
  127. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/tinyunit/tinyunit_lib.py +0 -0
  128. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/token.py +0 -0
  129. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/watch.py +0 -0
  130. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/workspace.py +0 -0
  131. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb/modules/workspace_members.py +0 -0
  132. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb_cli.py +0 -0
  133. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb_cli_modules/auth.py +0 -0
  134. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb_cli_modules/branch.py +0 -0
  135. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb_cli_modules/cicd.py +0 -0
  136. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb_cli_modules/cli.py +0 -0
  137. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb_cli_modules/common.py +0 -0
  138. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb_cli_modules/config.py +0 -0
  139. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb_cli_modules/connection.py +0 -0
  140. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb_cli_modules/datasource.py +0 -0
  141. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb_cli_modules/exceptions.py +0 -0
  142. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb_cli_modules/fmt.py +0 -0
  143. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb_cli_modules/job.py +0 -0
  144. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb_cli_modules/pipe.py +0 -0
  145. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb_cli_modules/regions.py +0 -0
  146. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb_cli_modules/tag.py +0 -0
  147. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb_cli_modules/telemetry.py +0 -0
  148. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb_cli_modules/test.py +0 -0
  149. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb_cli_modules/tinyunit/tinyunit.py +0 -0
  150. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb_cli_modules/tinyunit/tinyunit_lib.py +0 -0
  151. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb_cli_modules/workspace.py +0 -0
  152. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tb_cli_modules/workspace_members.py +0 -0
  153. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird/tornado_template.py +0 -0
  154. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird.egg-info/SOURCES.txt +0 -0
  155. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird.egg-info/dependency_links.txt +0 -0
  156. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird.egg-info/entry_points.txt +0 -0
  157. {tinybird-3.5.4.dev0 → tinybird-3.5.5.dev0}/tinybird.egg-info/requires.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: tinybird
3
- Version: 3.5.4.dev0
3
+ Version: 3.5.5.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,11 @@ The Tinybird command-line tool allows you to use all the Tinybird functionality
57
57
  Changelog
58
58
  ----------
59
59
 
60
+ 3.5.4
61
+ *******
62
+
63
+ - `Fixed` Pulling vendored data sources from a Classic workspace to migrate to Forward now includes all workspaces in SHARED_WITH.
64
+
60
65
  3.5.3
61
66
  *******
62
67
 
@@ -559,6 +559,8 @@ class Datafile:
559
559
  raise DatafileValidationError(
560
560
  f"Some Kafka params have been provided, but the following required ones are missing: {missing}"
561
561
  )
562
+ if "kafka_group_id" in node and not str(node["kafka_group_id"]).strip():
563
+ raise DatafileValidationError("KAFKA_GROUP_ID cannot be empty")
562
564
  # Validate S3 params
563
565
  if any(param in node for param in BLOB_STORAGE_PARAMS):
564
566
  if missing := [param for param in REQUIRED_BLOB_STORAGE_PARAMS if param not in node]:
@@ -35,7 +35,7 @@ class InvalidFunction(ValueError):
35
35
  super().__init__(self.msg)
36
36
 
37
37
 
38
- class InvalidResource(ValueError):
38
+ class MissingResource(ValueError):
39
39
  def __init__(self, database: str, table: str, default_database: str = ""):
40
40
  if default_database and database == default_database:
41
41
  database = ""
@@ -88,6 +88,36 @@ class ColumnInfo:
88
88
  is_primary_key: bool = False
89
89
 
90
90
 
91
+ @dataclass
92
+ class MaterializedViewTarget:
93
+ database: Optional[str]
94
+ table: str
95
+
96
+
97
+ def parse_materialized_view_target(create_table_query: str) -> Optional[MaterializedViewTarget]:
98
+ """
99
+ Extract target table info from a CREATE MATERIALIZED VIEW statement.
100
+
101
+ Parses statements like:
102
+ CREATE MATERIALIZED VIEW db.view TO target_db.target_table AS SELECT...
103
+ CREATE MATERIALIZED VIEW db.view TO `target_db`.`target_table` AS SELECT...
104
+ CREATE MATERIALIZED VIEW db.view TO `target_db`.`target_table` (col1 Type1, col2 Nullable(DateTime64(3))) AS SELECT...
105
+
106
+ Returns:
107
+ MaterializedViewTarget with database (optional) and table,
108
+ or None if the query is not a CREATE MATERIALIZED VIEW statement.
109
+ """
110
+ try:
111
+ result = chquery.parse_create_materialized_view_target_table(create_table_query)
112
+ except ValueError:
113
+ return None
114
+
115
+ return MaterializedViewTarget(
116
+ database=result["database"],
117
+ table=result["table"],
118
+ )
119
+
120
+
91
121
  def get_columns_from_create_query(sql_schema: str) -> list[ColumnInfo]:
92
122
  columns = chquery.get_columns_from_create_query(sql_schema)
93
123
  return [ColumnInfo(**col) for col in columns]
@@ -605,7 +635,7 @@ def replace_tables(
605
635
  "valid_tables": valid_tables,
606
636
  },
607
637
  )
608
- raise InvalidResource(database, table_name, default_database=default_database)
638
+ raise MissingResource(database, table_name, default_database=default_database)
609
639
 
610
640
  if current_replacements:
611
641
  # We need to transform the dictionary into something cacheable, so a sorted tuple of tuples it is
@@ -26,6 +26,7 @@
26
26
  # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27
27
  # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
28
 
29
+ import asyncio
29
30
  import asyncio.coroutines
30
31
  import functools
31
32
  import inspect
@@ -680,3 +681,29 @@ def sync_to_async(
680
681
  thread_sensitive=thread_sensitive,
681
682
  executor=executor,
682
683
  )
684
+
685
+
686
+ def run_function_in_event_loop(func_def: Callable[..., Any], *args: Any, **kwargs: Any) -> Any:
687
+ """Run an async function, handling the case where an event loop may already be running."""
688
+ try:
689
+ asyncio.get_running_loop()
690
+ # If we're already in an event loop, we need to run the coroutine in a thread
691
+ # to avoid blocking the current event loop
692
+ import concurrent.futures
693
+
694
+ def run_in_new_loop() -> Any:
695
+ # Create a new event loop for this thread
696
+ new_loop = asyncio.new_event_loop()
697
+ asyncio.set_event_loop(new_loop)
698
+ try:
699
+ return new_loop.run_until_complete(func_def(*args, **kwargs))
700
+ finally:
701
+ new_loop.close()
702
+
703
+ # Run in a separate thread to avoid blocking the current event loop
704
+ with concurrent.futures.ThreadPoolExecutor() as executor:
705
+ future = executor.submit(run_in_new_loop)
706
+ return future.result()
707
+ except RuntimeError:
708
+ # No event loop running, use asyncio.run()
709
+ return asyncio.run(func_def(*args, **kwargs))
@@ -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.5.4.dev0'
8
- __revision__ = '515fbce'
7
+ __version__ = '3.5.5.dev0'
8
+ __revision__ = 'f879a5d'
@@ -373,7 +373,10 @@ class TinyB:
373
373
 
374
374
  def datasource_file(self, datasource: str):
375
375
  try:
376
- return self._req(f"/v0/datasources/{datasource}.datasource")
376
+ include_all_shared_with = "true" if "." in datasource else "false"
377
+ return self._req(
378
+ f"/v0/datasources/{datasource}.datasource?include_all_shared_with={include_all_shared_with}"
379
+ )
377
380
  except DoesNotExistException:
378
381
  raise Exception(f"Data Source {datasource} not found.")
379
382
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: tinybird
3
- Version: 3.5.4.dev0
3
+ Version: 3.5.5.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,11 @@ The Tinybird command-line tool allows you to use all the Tinybird functionality
57
57
  Changelog
58
58
  ----------
59
59
 
60
+ 3.5.4
61
+ *******
62
+
63
+ - `Fixed` Pulling vendored data sources from a Classic workspace to migrate to Forward now includes all workspaces in SHARED_WITH.
64
+
60
65
  3.5.3
61
66
  *******
62
67
 
@@ -4,3 +4,4 @@ tests_e2e
4
4
  tests_e2e_ingestion
5
5
  tests_tb
6
6
  tinybird
7
+ tinybird_shared
File without changes