tinybird 0.0.1.dev46__tar.gz → 0.0.1.dev48__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 (102) hide show
  1. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/PKG-INFO +1 -1
  2. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/client.py +1 -6
  3. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/datafile.py +2 -0
  4. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/prompts.py +8 -2
  5. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/sql.py +3 -3
  6. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/__cli__.py +2 -2
  7. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/cli.py +2 -2
  8. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/datasource.py +33 -0
  9. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/local_common.py +5 -11
  10. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/workspace.py +1 -1
  11. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb_cli_modules/cli.py +1 -1
  12. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird.egg-info/PKG-INFO +1 -1
  13. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/setup.cfg +0 -0
  14. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/__cli__.py +0 -0
  15. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/ch_utils/constants.py +0 -0
  16. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/ch_utils/engine.py +0 -0
  17. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/check_pypi.py +0 -0
  18. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/config.py +0 -0
  19. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/connectors.py +0 -0
  20. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/context.py +0 -0
  21. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/datatypes.py +0 -0
  22. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/feedback_manager.py +0 -0
  23. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/git_settings.py +0 -0
  24. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/sql_template.py +0 -0
  25. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/sql_template_fmt.py +0 -0
  26. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/sql_toolset.py +0 -0
  27. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/syncasync.py +0 -0
  28. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/cli.py +0 -0
  29. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/auth.py +0 -0
  30. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/build.py +0 -0
  31. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/cicd.py +0 -0
  32. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/common.py +0 -0
  33. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/config.py +0 -0
  34. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/copy.py +0 -0
  35. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/create.py +0 -0
  36. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/datafile/build.py +0 -0
  37. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/datafile/build_common.py +0 -0
  38. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/datafile/build_datasource.py +0 -0
  39. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/datafile/build_pipe.py +0 -0
  40. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/datafile/common.py +0 -0
  41. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/datafile/diff.py +0 -0
  42. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/datafile/exceptions.py +0 -0
  43. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/datafile/fixture.py +0 -0
  44. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/datafile/format_common.py +0 -0
  45. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/datafile/format_datasource.py +0 -0
  46. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/datafile/format_pipe.py +0 -0
  47. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/datafile/parse_datasource.py +0 -0
  48. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/datafile/parse_pipe.py +0 -0
  49. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/datafile/pipe_checker.py +0 -0
  50. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/datafile/pull.py +0 -0
  51. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/deployment.py +0 -0
  52. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/endpoint.py +0 -0
  53. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/exceptions.py +0 -0
  54. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/feedback_manager.py +0 -0
  55. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/fmt.py +0 -0
  56. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/job.py +0 -0
  57. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/llm.py +0 -0
  58. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/llm_utils.py +0 -0
  59. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/local.py +0 -0
  60. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/login.py +0 -0
  61. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/materialization.py +0 -0
  62. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/mock.py +0 -0
  63. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/pipe.py +0 -0
  64. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/project.py +0 -0
  65. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/regions.py +0 -0
  66. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/shell.py +0 -0
  67. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/table.py +0 -0
  68. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/tag.py +0 -0
  69. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/telemetry.py +0 -0
  70. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/test.py +0 -0
  71. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/tinyunit/tinyunit.py +0 -0
  72. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/tinyunit/tinyunit_lib.py +0 -0
  73. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/token.py +0 -0
  74. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/update.py +0 -0
  75. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/watch.py +0 -0
  76. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb/modules/workspace_members.py +0 -0
  77. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb_cli.py +0 -0
  78. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb_cli_modules/auth.py +0 -0
  79. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb_cli_modules/branch.py +0 -0
  80. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb_cli_modules/cicd.py +0 -0
  81. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb_cli_modules/common.py +0 -0
  82. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb_cli_modules/config.py +0 -0
  83. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb_cli_modules/connection.py +0 -0
  84. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb_cli_modules/datasource.py +0 -0
  85. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb_cli_modules/exceptions.py +0 -0
  86. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb_cli_modules/fmt.py +0 -0
  87. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb_cli_modules/job.py +0 -0
  88. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb_cli_modules/pipe.py +0 -0
  89. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb_cli_modules/regions.py +0 -0
  90. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb_cli_modules/tag.py +0 -0
  91. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb_cli_modules/telemetry.py +0 -0
  92. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb_cli_modules/test.py +0 -0
  93. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb_cli_modules/tinyunit/tinyunit.py +0 -0
  94. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb_cli_modules/tinyunit/tinyunit_lib.py +0 -0
  95. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb_cli_modules/workspace.py +0 -0
  96. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tb_cli_modules/workspace_members.py +0 -0
  97. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird/tornado_template.py +0 -0
  98. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird.egg-info/SOURCES.txt +0 -0
  99. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird.egg-info/dependency_links.txt +0 -0
  100. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird.egg-info/entry_points.txt +0 -0
  101. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird.egg-info/requires.txt +0 -0
  102. {tinybird-0.0.1.dev46 → tinybird-0.0.1.dev48}/tinybird.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tinybird
3
- Version: 0.0.1.dev46
3
+ Version: 0.0.1.dev48
4
4
  Summary: Tinybird Command Line Tool
5
5
  Home-page: https://www.tinybird.co/docs/cli/introduction.html
6
6
  Author: Tinybird
@@ -697,12 +697,7 @@ class TinyB:
697
697
  if local_host != self.host:
698
698
  return data
699
699
 
700
- local_workspaces = [
701
- x
702
- for x in data["workspaces"]
703
- if x["name"].startswith("Tinybird_Local_") and not x["name"].startswith("Tinybird_Local_Build_")
704
- ]
705
-
700
+ local_workspaces = [x for x in data["workspaces"] if not x["name"].startswith("Tinybird_Local_")]
706
701
  return {**data, "workspaces": local_workspaces}
707
702
 
708
703
  async def user_workspaces_and_branches(self):
@@ -1218,6 +1218,8 @@ def parse(
1218
1218
  "kafka_store_raw_value": assign_var("kafka_store_raw_value"),
1219
1219
  "kafka_store_headers": assign_var("kafka_store_headers"),
1220
1220
  "kafka_store_binary_headers": assign_var("kafka_store_binary_headers"),
1221
+ "kafka_key_format": assign_var("kafka_key_format"),
1222
+ "kafka_value_format": assign_var("kafka_value_format"),
1221
1223
  "kafka_key_avro_deserialization": assign_var("kafka_key_avro_deserialization"),
1222
1224
  "kafka_ssl_ca_pem": assign_var("kafka_ssl_ca_pem"),
1223
1225
  "kafka_sasl_mechanism": assign_var("kafka_sasl_mechanism"),
@@ -837,7 +837,8 @@ You have commands at your disposal to develop a tinybird project:
837
837
  - {base_command} --build endpoint data <pipe_name>: to get the data of an endpoint. You can pass parameters to the endpoint like this: {base_command} --build endpoint data <pipe_name> --param1 value1 --param2 value2
838
838
  - {base_command} --build token ls: to list all the tokens
839
839
  There are other commands that you can use, but these are the most common ones. Run `{base_command} -h` to see all the commands if needed.
840
- When you need to check resources or data in the Tinybird environment that you updated with the build command, add always the --build flag before the command. Example: {base_command} --build datasource ls
840
+ When you need to work with resources or data in the Tinybird environment that you updated with the build command, add always the --build flag before the command. Example: {base_command} --build datasource ls
841
+ When you need to work with resources or data in production, add always the --prod flag before the command. Example: {base_command} --prod datasource ls
841
842
  </command_calling>
842
843
  <development_instructions>
843
844
  - When asking to create a tinybird data project, if the needed folders are not already created, use the following structure:
@@ -854,7 +855,12 @@ When you need to check resources or data in the Tinybird environment that you up
854
855
  - The format of the generated api endpoint urls is: http://localhost:80/v0/pipe/<pipe_name>.json?token=<token>
855
856
  - Before running the tests, remember to have the project built with `{base_command} build` with the latest changes.
856
857
  </development_instructions>
857
-
858
+ When asking for ingesting data, adding data or appending data do the following depending on the environment you want to work with:
859
+ <ingest_data_instructions>
860
+ - When building locally, create a .ndjson file with the data you want to ingest and do `{base_command} build` to ingest the data in the build env.
861
+ - When appending data in production, use `{base_command} --prod datasource append <datasource_name> <file_name>`
862
+ - When you have a response that says “there are rows in quarantine”, do `{base_command} --build|--prod datasource data <datasource_name>_quarantine` to understand what is the problem.
863
+ </ingest_data_instructions>
858
864
  <datasource_file_instructions>
859
865
  Follow these instructions when creating or updating .datasource files:
860
866
  {datasource_instructions}
@@ -86,7 +86,7 @@ def get_format(sql: str) -> Optional[str]:
86
86
  """
87
87
  FORMAT_RE = r"\s+format\s+(\w+)\s*$"
88
88
  sql = sql.strip()
89
- format = re.findall(FORMAT_RE, sql, re.I)
89
+ format = re.findall(FORMAT_RE, sql, re.IGNORECASE)
90
90
  return format[0] if format else None
91
91
 
92
92
 
@@ -100,7 +100,7 @@ def get_format_group(sql: str) -> str:
100
100
  """
101
101
  FORMAT_RE = r"\s+format\s+(\w+)\s*$"
102
102
  sql = sql.strip()
103
- format = re.search(FORMAT_RE, sql, re.I)
103
+ format = re.search(FORMAT_RE, sql, re.IGNORECASE)
104
104
  return format.group() if format else ""
105
105
 
106
106
 
@@ -135,7 +135,7 @@ def remove_format(sql: str) -> str:
135
135
  """
136
136
  FORMAT_RE = r"\s+(format)\s+(\w+)\s*$"
137
137
  sql = sql.strip()
138
- return re.sub(FORMAT_RE, "", sql, flags=re.I)
138
+ return re.sub(FORMAT_RE, "", sql, flags=re.IGNORECASE)
139
139
 
140
140
 
141
141
  def col_name(name: str, backquotes: bool = True) -> str:
@@ -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.dev46'
8
- __revision__ = '7b9942e'
7
+ __version__ = '0.0.1.dev48'
8
+ __revision__ = '6d638e9'
@@ -79,7 +79,7 @@ async def cli(
79
79
  """
80
80
  project = Project(folder=folder or os.getcwd())
81
81
  # We need to unpatch for our tests not to break
82
- if show_tokens or not prod or ctx.invoked_subcommand == "build":
82
+ if show_tokens or not prod or ctx.invoked_subcommand == "build" or build:
83
83
  __unpatch_click_output()
84
84
  else:
85
85
  __patch_click_output()
@@ -425,7 +425,7 @@ def __patch_click_output():
425
425
  if isinstance(substitution, str):
426
426
  msg = re.sub(pattern, substitution, str(msg))
427
427
  else:
428
- msg = re.sub(pattern, lambda m: substitution(m.group(0)), str(msg)) # noqa
428
+ msg = re.sub(pattern, lambda m: substitution(m.group(0)), str(msg)) # noqa: B023
429
429
  return msg
430
430
 
431
431
  def _obfuscate_echo(msg: Any, *args: Any, **kwargs: Any) -> None:
@@ -358,3 +358,36 @@ async def datasource_delete_rows(ctx, datasource_name, sql_condition, yes, wait,
358
358
  raise CLIDatasourceException(FeedbackManager.error_datasource_does_not_exist(datasource=datasource_name))
359
359
  except Exception as e:
360
360
  raise CLIDatasourceException(FeedbackManager.error_exception(error=e))
361
+
362
+
363
+ @datasource.command(
364
+ name="data",
365
+ context_settings=dict(
366
+ allow_extra_args=True,
367
+ ignore_unknown_options=True,
368
+ ),
369
+ )
370
+ @click.argument("datasource")
371
+ @click.option("--limit", type=int, default=5, help="Limit the number of rows to return")
372
+ @click.pass_context
373
+ @coro
374
+ async def datasource_data(ctx: Context, datasource: str, limit: int):
375
+ """Print data returned by an endpoint
376
+
377
+ Syntax: tb datasource data <datasource_name>
378
+ """
379
+
380
+ client: TinyB = ctx.ensure_object(dict)["client"]
381
+ try:
382
+ res = await client.query(f"SELECT * FROM {datasource} LIMIT {limit} FORMAT JSON")
383
+ except AuthNoTokenException:
384
+ raise
385
+ except Exception as e:
386
+ raise CLIDatasourceException(FeedbackManager.error_exception(error=str(e)))
387
+
388
+ if not res["data"]:
389
+ click.echo(FeedbackManager.info_no_rows())
390
+ else:
391
+ echo_safe_humanfriendly_tables_format_smart_table(
392
+ data=[d.values() for d in res["data"]], column_names=res["data"][0].keys()
393
+ )
@@ -40,20 +40,14 @@ async def get_tinybird_local_config(path: str, build: bool = False) -> CLIConfig
40
40
  if path:
41
41
  folder_hash = hashlib.sha256(path.encode()).hexdigest()
42
42
  user_client = config.get_client(host=TB_LOCAL_HOST, token=user_token)
43
- ws_name = f"Tinybird_Local_Build_{folder_hash}" if build else f"Tinybird_Local_{folder_hash}"
43
+ ws_name = config.get("name")
44
+ ws_name = f"Tinybird_Local_Build_{folder_hash}" if build else ws_name
44
45
  logging.debug(f"Workspace used for build: {ws_name}")
45
46
 
46
47
  user_workspaces = requests.get(f"{TB_LOCAL_HOST}/v0/user/workspaces?token={user_token}").json()
47
- local_workspaces = (
48
- [ws for ws in user_workspaces["workspaces"] if ws["name"].startswith(ws_name)]
49
- if user_workspaces.get("workspaces")
50
- else []
51
- )
52
- local_workspaces = sorted(local_workspaces, key=lambda x: x["name"])
53
-
54
- ws = None
55
- if len(local_workspaces) > 0:
56
- ws = local_workspaces[-1]
48
+ local_workspaces = user_workspaces.get("workspaces", [])
49
+
50
+ ws = next((ws for ws in local_workspaces if ws["name"] == ws_name), None)
57
51
 
58
52
  if not ws:
59
53
  await user_client.create_workspace(ws_name, template=None)
@@ -61,7 +61,7 @@ async def workspace_ls(ctx: Context) -> None:
61
61
  workspace["id"],
62
62
  workspace["role"],
63
63
  _get_workspace_plan_name(workspace["plan"]),
64
- current_main_workspace["id"] == workspace["id"],
64
+ current_main_workspace["name"] == workspace["name"],
65
65
  ]
66
66
  )
67
67
 
@@ -1231,7 +1231,7 @@ def __patch_click_output():
1231
1231
  if isinstance(substitution, str):
1232
1232
  msg = re.sub(pattern, substitution, str(msg))
1233
1233
  else:
1234
- msg = re.sub(pattern, lambda m: substitution(m.group(0)), str(msg)) # noqa
1234
+ msg = re.sub(pattern, lambda m: substitution(m.group(0)), str(msg)) # noqa: B023
1235
1235
  return msg
1236
1236
 
1237
1237
  def _obfuscate_echo(msg: Any, *args: Any, **kwargs: Any) -> None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tinybird
3
- Version: 0.0.1.dev46
3
+ Version: 0.0.1.dev48
4
4
  Summary: Tinybird Command Line Tool
5
5
  Home-page: https://www.tinybird.co/docs/cli/introduction.html
6
6
  Author: Tinybird
File without changes