tinybird 4.6.0__tar.gz → 4.6.1__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 (127) hide show
  1. {tinybird-4.6.0 → tinybird-4.6.1}/PKG-INFO +7 -2
  2. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/sql_template.py +2 -2
  3. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/__cli__.py +2 -2
  4. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/common.py +9 -3
  5. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/datafile/pull.py +29 -6
  6. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/query_output.py +3 -1
  7. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb_cli_modules/common.py +3 -1
  8. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird.egg-info/PKG-INFO +7 -2
  9. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird.egg-info/requires.txt +1 -1
  10. {tinybird-4.6.0 → tinybird-4.6.1}/setup.cfg +0 -0
  11. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/__cli__.py +0 -0
  12. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/ch_utils/constants.py +0 -0
  13. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/ch_utils/engine.py +0 -0
  14. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/check_pypi.py +0 -0
  15. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/client.py +0 -0
  16. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/config.py +0 -0
  17. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/context.py +0 -0
  18. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/datafile/common.py +0 -0
  19. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/datafile/exceptions.py +0 -0
  20. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/datafile/parse_connection.py +0 -0
  21. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/datafile/parse_datasource.py +0 -0
  22. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/datafile/parse_pipe.py +0 -0
  23. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/datatypes.py +0 -0
  24. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/feedback_manager.py +0 -0
  25. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/git_settings.py +0 -0
  26. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/prompts.py +0 -0
  27. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/service_datasources.py +0 -0
  28. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/sql.py +0 -0
  29. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/sql_template_fmt.py +0 -0
  30. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/sql_toolset.py +0 -0
  31. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/syncasync.py +0 -0
  32. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/check_pypi.py +0 -0
  33. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/cli.py +0 -0
  34. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/client.py +0 -0
  35. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/config.py +0 -0
  36. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/branch.py +0 -0
  37. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/build.py +0 -0
  38. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/build_common.py +0 -0
  39. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/cicd.py +0 -0
  40. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/cli.py +0 -0
  41. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/config.py +0 -0
  42. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/connection.py +0 -0
  43. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/connection_dynamodb.py +0 -0
  44. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/connection_kafka.py +0 -0
  45. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/connection_s3.py +0 -0
  46. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/copy.py +0 -0
  47. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/create.py +0 -0
  48. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/datafile/build.py +0 -0
  49. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/datafile/build_common.py +0 -0
  50. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/datafile/build_datasource.py +0 -0
  51. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/datafile/build_pipe.py +0 -0
  52. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/datafile/diff.py +0 -0
  53. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/datafile/fixture.py +0 -0
  54. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/datafile/format_common.py +0 -0
  55. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/datafile/format_connection.py +0 -0
  56. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/datafile/format_datasource.py +0 -0
  57. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/datafile/format_pipe.py +0 -0
  58. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/datafile/pipe_checker.py +0 -0
  59. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/datafile/playground.py +0 -0
  60. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/datasource.py +0 -0
  61. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/deployment.py +0 -0
  62. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/deployment_common.py +0 -0
  63. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/deprecations.py +0 -0
  64. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/endpoint.py +0 -0
  65. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/exceptions.py +0 -0
  66. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/feedback_manager.py +0 -0
  67. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/fmt.py +0 -0
  68. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/info.py +0 -0
  69. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/infra.py +0 -0
  70. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/job.py +0 -0
  71. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/job_common.py +0 -0
  72. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/llm.py +0 -0
  73. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/llm_utils.py +0 -0
  74. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/local.py +0 -0
  75. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/local_common.py +0 -0
  76. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/local_logs.py +0 -0
  77. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/login.py +0 -0
  78. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/login_common.py +0 -0
  79. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/logout.py +0 -0
  80. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/logs.py +0 -0
  81. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/materialization.py +0 -0
  82. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/open.py +0 -0
  83. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/pipe.py +0 -0
  84. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/preview.py +0 -0
  85. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/project.py +0 -0
  86. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/project_commands.py +0 -0
  87. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/py_project.py +0 -0
  88. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/regions.py +0 -0
  89. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/secret.py +0 -0
  90. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/secret_common.py +0 -0
  91. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/sink.py +0 -0
  92. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/table.py +0 -0
  93. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/telemetry.py +0 -0
  94. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/test.py +0 -0
  95. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/test_common.py +0 -0
  96. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/tinyunit/tinyunit.py +0 -0
  97. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/tinyunit/tinyunit_lib.py +0 -0
  98. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/token.py +0 -0
  99. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/ts_project.py +0 -0
  100. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/watch.py +0 -0
  101. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/workspace.py +0 -0
  102. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb/modules/workspace_members.py +0 -0
  103. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb_cli.py +0 -0
  104. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb_cli_modules/auth.py +0 -0
  105. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb_cli_modules/branch.py +0 -0
  106. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb_cli_modules/cicd.py +0 -0
  107. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb_cli_modules/cli.py +0 -0
  108. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb_cli_modules/config.py +0 -0
  109. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb_cli_modules/connection.py +0 -0
  110. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb_cli_modules/datasource.py +0 -0
  111. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb_cli_modules/exceptions.py +0 -0
  112. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb_cli_modules/fmt.py +0 -0
  113. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb_cli_modules/job.py +0 -0
  114. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb_cli_modules/pipe.py +0 -0
  115. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb_cli_modules/regions.py +0 -0
  116. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb_cli_modules/tag.py +0 -0
  117. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb_cli_modules/telemetry.py +0 -0
  118. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb_cli_modules/test.py +0 -0
  119. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb_cli_modules/tinyunit/tinyunit.py +0 -0
  120. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb_cli_modules/tinyunit/tinyunit_lib.py +0 -0
  121. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb_cli_modules/workspace.py +0 -0
  122. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tb_cli_modules/workspace_members.py +0 -0
  123. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird/tornado_template.py +0 -0
  124. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird.egg-info/SOURCES.txt +0 -0
  125. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird.egg-info/dependency_links.txt +0 -0
  126. {tinybird-4.6.0 → tinybird-4.6.1}/tinybird.egg-info/entry_points.txt +0 -0
  127. {tinybird-4.6.0 → tinybird-4.6.1}/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.0
3
+ Version: 4.6.1
4
4
  Summary: Tinybird Command Line Tool
5
5
  Home-page: https://www.tinybird.co/docs/forward/commands
6
6
  Author: Tinybird
@@ -27,7 +27,7 @@ Requires-Dist: requests<3,>=2.28.1
27
27
  Requires-Dist: shandy-sqlfmt==0.11.1
28
28
  Requires-Dist: shandy-sqlfmt[jinjafmt]==0.11.1
29
29
  Requires-Dist: toposort==1.10
30
- Requires-Dist: tornado~=6.0.0
30
+ Requires-Dist: tornado~=6.5.5
31
31
  Requires-Dist: urllib3<2,>=1.26.14
32
32
  Requires-Dist: watchdog==6.0.0
33
33
  Requires-Dist: wheel
@@ -52,6 +52,11 @@ The Tinybird command-line tool allows you to use all the Tinybird functionality
52
52
  Changelog
53
53
  ----------
54
54
 
55
+ 4.6.1
56
+ *******
57
+
58
+ - `Changed` `tb pull` to overwrite existing local files when pulling from a Tinybird workspace.
59
+
55
60
  4.6.0
56
61
  *******
57
62
 
@@ -7,7 +7,7 @@ from collections import deque
7
7
  from datetime import datetime
8
8
  from functools import lru_cache
9
9
  from json import loads
10
- from typing import Any, Callable, Dict, List, Optional, Tuple, Union
10
+ from typing import Any, Callable, Dict, List, Optional, Tuple, Union, cast
11
11
 
12
12
  from tornado import escape
13
13
  from tornado.util import ObjectDict, exec_in, unicode_type
@@ -1499,7 +1499,7 @@ def generate(self, **kwargs) -> Tuple[str, TemplateExecutionResults]:
1499
1499
  )
1500
1500
 
1501
1501
  exec_in(self.compiled, namespace)
1502
- execute = namespace["_tt_execute"]
1502
+ execute = cast(Callable[[], bytes], namespace["_tt_execute"])
1503
1503
  # Clear the traceback module's cache of source data now that
1504
1504
  # we've generated a new template (mainly for this module's
1505
1505
  # unittests, where different tests reuse the same name).
@@ -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.0'
8
- __revision__ = '1d9f802'
7
+ __version__ = '4.6.1'
8
+ __revision__ = '41da03f'
@@ -105,7 +105,9 @@ def echo_safe_humanfriendly_tables_format_smart_table(data: Iterable[Any], colum
105
105
  try:
106
106
  click.echo(humanfriendly.tables.format_smart_table(data, column_names=column_names))
107
107
  except ValueError as exc:
108
- if str(exc) == "max() arg is an empty sequence":
108
+ # Python 3.11 wording: "max() arg is an empty sequence"
109
+ # Python 3.12 wording: "max() iterable argument is empty"
110
+ if str(exc) in ("max() arg is an empty sequence", "max() iterable argument is empty"):
109
111
  click.echo("------------")
110
112
  click.echo("Empty")
111
113
  click.echo("------------")
@@ -122,7 +124,9 @@ def echo_safe_humanfriendly_tables_format_pretty_table(data: Iterable[Any], colu
122
124
  try:
123
125
  click.echo(humanfriendly.tables.format_pretty_table(data, column_names=column_names))
124
126
  except ValueError as exc:
125
- if str(exc) == "max() arg is an empty sequence":
127
+ # Python 3.11 wording: "max() arg is an empty sequence"
128
+ # Python 3.12 wording: "max() iterable argument is empty"
129
+ if str(exc) in ("max() arg is an empty sequence", "max() iterable argument is empty"):
126
130
  click.echo("------------")
127
131
  click.echo("Empty")
128
132
  click.echo("------------")
@@ -139,7 +143,9 @@ def echo_safe_format_table(data: Iterable[Any], columns) -> None:
139
143
  try:
140
144
  click.echo(format_table(data, columns))
141
145
  except ValueError as exc:
142
- if str(exc) == "max() arg is an empty sequence":
146
+ # Python 3.11 wording: "max() arg is an empty sequence"
147
+ # Python 3.12 wording: "max() iterable argument is empty"
148
+ if str(exc) in ("max() arg is an empty sequence", "max() iterable argument is empty"):
143
149
  click.echo("------------")
144
150
  click.echo("Empty")
145
151
  click.echo("------------")
@@ -8,6 +8,8 @@ from tinybird.tb.modules.datafile.format_datasource import format_datasource
8
8
  from tinybird.tb.modules.datafile.format_pipe import format_pipe
9
9
  from tinybird.tb.modules.feedback_manager import FeedbackManager
10
10
 
11
+ PULL_EXISTING_FILE_MAX_DEPTH = 5
12
+
11
13
 
12
14
  def folder_pull(
13
15
  client: TinyB,
@@ -18,7 +20,7 @@ def folder_pull(
18
20
  progress_bar: bool = False,
19
21
  fmt: bool = False,
20
22
  ) -> list[str]:
21
- def get_file_folder(extension: str, resource_type: Optional[str]):
23
+ def get_file_folder(extension: str, resource_type: Optional[str]) -> Optional[str]:
22
24
  if extension == "datasource":
23
25
  return "datasources"
24
26
  if extension == "connection":
@@ -35,6 +37,24 @@ def folder_pull(
35
37
  return "pipes"
36
38
  return None
37
39
 
40
+ def find_existing_resource_file(dest_folder: Path, name: str) -> Optional[Path]:
41
+ if not dest_folder.exists():
42
+ return None
43
+
44
+ candidates = []
45
+ for candidate in dest_folder.rglob(name):
46
+ if not candidate.is_file():
47
+ continue
48
+
49
+ relative_parent = candidate.parent.relative_to(dest_folder)
50
+ if len(relative_parent.parts) <= PULL_EXISTING_FILE_MAX_DEPTH:
51
+ candidates.append(candidate)
52
+
53
+ if not candidates:
54
+ return None
55
+
56
+ return sorted(candidates, key=lambda path: (len(path.parent.relative_to(dest_folder).parts), str(path)))[0]
57
+
38
58
  def write_files(
39
59
  resources: list[dict[str, Any]],
40
60
  extension: str,
@@ -62,14 +82,17 @@ def folder_pull(
62
82
  file_folder = get_file_folder(extension, k.get("type"))
63
83
  f = Path(dest_folder) / file_folder if file_folder is not None else Path(dest_folder)
64
84
 
65
- if not f.exists():
66
- f.mkdir(parents=True)
67
-
68
- f = f / name
85
+ existing_file = find_existing_resource_file(Path(dest_folder), name)
86
+ if existing_file is not None:
87
+ f = existing_file
88
+ else:
89
+ if not f.exists():
90
+ f.mkdir(parents=True)
91
+ f = f / name
69
92
 
70
93
  if verbose:
71
94
  click.echo(FeedbackManager.info_writing_resource(resource=f))
72
- if not f.exists() or force:
95
+ if not f.exists() or force or existing_file is not None:
73
96
  with open(f, "w") as fd:
74
97
  if resource_to_write:
75
98
  fd.write(resource_to_write)
@@ -26,7 +26,9 @@ def print_table_formatted(res: dict, name: str):
26
26
  click.echo(FeedbackManager.success(message=stats_message))
27
27
  click.echo(FeedbackManager.gray(message=rows_message))
28
28
  except ValueError as exc:
29
- if str(exc) == "max() arg is an empty sequence":
29
+ # Python 3.11 wording: "max() arg is an empty sequence"
30
+ # Python 3.12 wording: "max() iterable argument is empty"
31
+ if str(exc) in ("max() arg is an empty sequence", "max() iterable argument is empty"):
30
32
  click.echo("------------")
31
33
  else:
32
34
  raise
@@ -112,7 +112,9 @@ def echo_safe_humanfriendly_tables_format_smart_table(data: Iterable[Any], colum
112
112
  try:
113
113
  click.echo(humanfriendly.tables.format_smart_table(data, column_names=column_names))
114
114
  except ValueError as exc:
115
- if str(exc) == "max() arg is an empty sequence":
115
+ # Python 3.11 wording: "max() arg is an empty sequence"
116
+ # Python 3.12 wording: "max() iterable argument is empty"
117
+ if str(exc) in ("max() arg is an empty sequence", "max() iterable argument is empty"):
116
118
  click.echo("------------")
117
119
  click.echo("Empty")
118
120
  click.echo("------------")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: tinybird
3
- Version: 4.6.0
3
+ Version: 4.6.1
4
4
  Summary: Tinybird Command Line Tool
5
5
  Home-page: https://www.tinybird.co/docs/forward/commands
6
6
  Author: Tinybird
@@ -27,7 +27,7 @@ Requires-Dist: requests<3,>=2.28.1
27
27
  Requires-Dist: shandy-sqlfmt==0.11.1
28
28
  Requires-Dist: shandy-sqlfmt[jinjafmt]==0.11.1
29
29
  Requires-Dist: toposort==1.10
30
- Requires-Dist: tornado~=6.0.0
30
+ Requires-Dist: tornado~=6.5.5
31
31
  Requires-Dist: urllib3<2,>=1.26.14
32
32
  Requires-Dist: watchdog==6.0.0
33
33
  Requires-Dist: wheel
@@ -52,6 +52,11 @@ The Tinybird command-line tool allows you to use all the Tinybird functionality
52
52
  Changelog
53
53
  ----------
54
54
 
55
+ 4.6.1
56
+ *******
57
+
58
+ - `Changed` `tb pull` to overwrite existing local files when pulling from a Tinybird workspace.
59
+
55
60
  4.6.0
56
61
  *******
57
62
 
@@ -18,7 +18,7 @@ requests<3,>=2.28.1
18
18
  shandy-sqlfmt==0.11.1
19
19
  shandy-sqlfmt[jinjafmt]==0.11.1
20
20
  toposort==1.10
21
- tornado~=6.0.0
21
+ tornado~=6.5.5
22
22
  urllib3<2,>=1.26.14
23
23
  watchdog==6.0.0
24
24
  wheel
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