tinybird 0.0.1.dev124__py3-none-any.whl → 0.0.1.dev126__py3-none-any.whl

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.

tinybird/tb/__cli__.py CHANGED
@@ -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.dev124'
8
- __revision__ = '325c83b'
7
+ __version__ = '0.0.1.dev126'
8
+ __revision__ = '7860cec'
@@ -20,7 +20,7 @@ from tinybird.tb.modules.common import push_data
20
20
  from tinybird.tb.modules.config import CLIConfig
21
21
  from tinybird.tb.modules.datafile.build import folder_build
22
22
  from tinybird.tb.modules.datafile.exceptions import ParseException
23
- from tinybird.tb.modules.datafile.fixture import get_fixture_dir, persist_fixture
23
+ from tinybird.tb.modules.datafile.fixture import FixtureExtension, get_fixture_dir, persist_fixture
24
24
  from tinybird.tb.modules.datafile.parse_datasource import parse_datasource
25
25
  from tinybird.tb.modules.datafile.parse_pipe import parse_pipe
26
26
  from tinybird.tb.modules.datafile.playground import folder_playground
@@ -145,8 +145,21 @@ def build_project(project: Project, tb_client: TinyB, file_changed: Optional[str
145
145
  ds_path = Path(filename)
146
146
  ds_name = ds_path.stem
147
147
  fixture_folder = get_fixture_dir(project.folder)
148
- fixture_path = fixture_folder / f"{ds_name}.ndjson"
149
- if fixture_path.exists():
148
+ fixture_extensions = [FixtureExtension.NDJSON, FixtureExtension.CSV]
149
+ fixture_path = next(
150
+ (
151
+ fixture_folder / f"{ds_name}{ext}"
152
+ for ext in fixture_extensions
153
+ if (fixture_folder / f"{ds_name}{ext}").exists()
154
+ ),
155
+ None,
156
+ )
157
+ if not fixture_path:
158
+ sql_path = fixture_folder / f"{ds_name}.sql"
159
+ if sql_path.exists():
160
+ fixture_path = rebuild_fixture_sql(project, tb_client, str(sql_path))
161
+
162
+ if fixture_path:
150
163
  append_fixture(tb_client, ds_name, str(fixture_path))
151
164
 
152
165
  except Exception as e:
@@ -252,7 +265,7 @@ def process(
252
265
  ) -> None:
253
266
  time_start = time.time()
254
267
  build_failed = False
255
- if file_changed and file_changed.endswith(".ndjson"):
268
+ if file_changed and (file_changed.endswith(FixtureExtension.NDJSON) or file_changed.endswith(FixtureExtension.CSV)):
256
269
  rebuild_fixture(project, tb_client, file_changed)
257
270
  elif file_changed and file_changed.endswith(".sql"):
258
271
  rebuild_fixture_sql(project, tb_client, file_changed)
@@ -295,13 +308,25 @@ def run_watch(
295
308
  shell.run()
296
309
 
297
310
 
298
- def rebuild_fixture_sql(project: Project, tb_client: TinyB, sql_file: str) -> None:
311
+ def rebuild_fixture_sql(project: Project, tb_client: TinyB, sql_file: str) -> Path:
299
312
  sql_path = Path(sql_file)
300
313
  datasource_name = sql_path.stem
314
+ valid_extensions = [FixtureExtension.NDJSON, FixtureExtension.CSV]
315
+ fixtures_path = get_fixture_dir(project.folder)
316
+ current_fixture_path = next(
317
+ (
318
+ fixtures_path / f"{datasource_name}{extension}"
319
+ for extension in valid_extensions
320
+ if (fixtures_path / f"{datasource_name}{extension}").exists()
321
+ ),
322
+ None,
323
+ )
324
+ fixture_format = current_fixture_path.suffix.lstrip(".") if current_fixture_path else "ndjson"
301
325
  sql = sql_path.read_text()
302
- result = asyncio.run(tb_client.query(f"{sql} FORMAT JSON"))
326
+ sql_format = "CSV" if fixture_format == "csv" else "JSON"
327
+ result = asyncio.run(tb_client.query(f"{sql} FORMAT {sql_format}"))
303
328
  data = result.get("data", [])
304
- persist_fixture(datasource_name, data, project.folder)
329
+ return persist_fixture(datasource_name, data, project.folder, format=fixture_format)
305
330
 
306
331
 
307
332
  def is_vendor(f: Path) -> bool:
@@ -134,10 +134,12 @@ async def create(
134
134
 
135
135
  if data:
136
136
  ds_name = os.path.basename(data.split(".")[0])
137
- data_content = Path(data).read_text()
137
+ data_path = Path(data)
138
+ data_content = data_path.read_text()
139
+ data_format = data_path.suffix.lstrip(".")
138
140
  datasource_path = Path(folder) / "datasources" / f"{ds_name}.datasource"
139
141
  click.echo(FeedbackManager.info(message=f"✓ /fixtures/{ds_name}"))
140
- persist_fixture(ds_name, data_content, folder)
142
+ persist_fixture(ds_name, data_content, folder, format=data_format)
141
143
  created_something = True
142
144
  elif prompt and user_token:
143
145
  datasource_files = [f for f in os.listdir(Path(folder) / "datasources") if f.endswith(".datasource")]
@@ -155,7 +157,7 @@ async def create(
155
157
  query_result = await local_client.query(f"{sql} FORMAT JSON")
156
158
  data = query_result.get("data", [])
157
159
  if data:
158
- persist_fixture(datasource_name, data, folder)
160
+ persist_fixture(datasource_name, data, folder, format="ndjson")
159
161
  click.echo(FeedbackManager.info(message=f"✓ /fixtures/{datasource_name}"))
160
162
  created_something = True
161
163
 
@@ -222,7 +224,7 @@ async def create_resources(
222
224
  path = folder_path / data
223
225
  format = path.suffix.lstrip(".")
224
226
  await _generate_datafile(str(path), local_client, format=format, force=True)
225
- name = data.split(".")[0]
227
+ name = path.stem
226
228
  generate_pipe_file(
227
229
  f"{name}_endpoint",
228
230
  f"""
@@ -355,7 +357,7 @@ def generate_pipe_file(name: str, content: str, folder: str) -> Path:
355
357
 
356
358
  base = Path(folder) / pathname
357
359
  if not base.exists():
358
- base = Path()
360
+ base.mkdir()
359
361
  f = base / (f"{name}.pipe")
360
362
  with open(f"{f}", "w") as file:
361
363
  file.write(content)
@@ -17,10 +17,14 @@ def persist_fixture_sql(fixture_name: str, sql: str, folder: str) -> Path:
17
17
  return fixture_file
18
18
 
19
19
 
20
- def persist_fixture(fixture_name: str, data: Union[List[Dict[str, Any]], str], folder: str, format="ndjson") -> Path:
20
+ def persist_fixture(fixture_name: str, data: Union[List[Dict[str, Any]], str], folder: str, format: str) -> Path:
21
21
  fixture_dir = get_fixture_dir(folder)
22
22
  fixture_file = fixture_dir / f"{fixture_name}.{format}"
23
- fixture_file.write_text(data if isinstance(data, str) else format_data_to_ndjson(data))
23
+ extension = f".{format}"
24
+ if extension == FixtureExtension.NDJSON:
25
+ fixture_file.write_text(data if isinstance(data, str) else format_data_to_ndjson(data))
26
+ elif extension == FixtureExtension.CSV:
27
+ fixture_file.write_text(data if isinstance(data, str) else str(data)) ## this should not happen
24
28
  return fixture_file
25
29
 
26
30
 
@@ -34,3 +38,8 @@ def load_fixture(
34
38
  if not fixture_file.exists():
35
39
  return None
36
40
  return fixture_file
41
+
42
+
43
+ class FixtureExtension:
44
+ NDJSON = ".ndjson"
45
+ CSV = ".csv"
@@ -445,7 +445,7 @@ async def datasource_export(
445
445
 
446
446
  res = await client.query(query)
447
447
 
448
- fixture_path = persist_fixture(datasource, res, project.folder)
448
+ fixture_path = persist_fixture(datasource, res, project.folder, format=format_)
449
449
  file_size = os.path.getsize(fixture_path)
450
450
 
451
451
  click.echo(
@@ -24,9 +24,16 @@ from tinybird.tb.modules.project import Project
24
24
  default="",
25
25
  help="Extra context to use for data generation",
26
26
  )
27
+ @click.option(
28
+ "--format",
29
+ "format_",
30
+ type=click.Choice(["ndjson", "csv"], case_sensitive=False),
31
+ default="ndjson",
32
+ help="Format of the fixture to create",
33
+ )
27
34
  @click.pass_context
28
35
  @coro
29
- async def mock(ctx: click.Context, datasource: str, rows: int, prompt: str) -> None:
36
+ async def mock(ctx: click.Context, datasource: str, rows: int, prompt: str, format_: str) -> None:
30
37
  """Generate sample data for a data source.
31
38
 
32
39
  Args:
@@ -79,13 +86,16 @@ async def mock(ctx: click.Context, datasource: str, rows: int, prompt: str) -> N
79
86
  response = llm.ask(system_prompt=mock_prompt(rows, error), prompt=prompt)
80
87
  sql = extract_xml(response, "sql")
81
88
  sql_path = persist_fixture_sql(datasource_name, sql, folder)
82
- result = await tb_client.query(f"{sql} FORMAT JSON")
83
- data = result.get("data", [])[:rows]
84
- error_response = result.get("error", None)
85
- if error_response:
86
- raise CLIException(error_response)
89
+ sql_format = "JSON" if format_ == "ndjson" else "CSV"
90
+ result = await tb_client.query(f"SELECT * FROM ({sql}) LIMIT {rows} FORMAT {sql_format}")
91
+ if sql_format == "JSON":
92
+ data = result.get("data", [])[:rows]
93
+ error_response = result.get("error", None)
94
+ if error_response:
95
+ raise CLIException(error_response)
87
96
  else:
88
- break
97
+ data = result
98
+ break
89
99
  except Exception as e:
90
100
  error = str(e)
91
101
  attempts += 1
@@ -94,8 +104,8 @@ async def mock(ctx: click.Context, datasource: str, rows: int, prompt: str) -> N
94
104
  else:
95
105
  continue
96
106
 
97
- fixture_path = persist_fixture(datasource_name, data, folder)
98
- click.echo(FeedbackManager.info(message=f"✓ /fixtures/{datasource_name}.ndjson created"))
107
+ fixture_path = persist_fixture(datasource_name, data, folder, format=format_)
108
+ click.echo(FeedbackManager.info(message=f"✓ /fixtures/{datasource_name}.{format_} created"))
99
109
  if env == "cloud":
100
110
  await append_fixture(tb_client, datasource_name, str(fixture_path))
101
111
 
@@ -48,19 +48,22 @@ async def secret_ls(ctx: click.Context, match: Optional[str]):
48
48
 
49
49
  @secret.command(name="set")
50
50
  @click.argument("name")
51
- @click.argument("value")
51
+ @click.argument("value", required=False)
52
52
  @click.pass_context
53
53
  @coro
54
- async def secret_set(ctx: click.Context, name: str, value: str):
54
+ async def secret_set(ctx: click.Context, name: str, value: Optional[str]):
55
55
  """Create or update secrets"""
56
56
  try:
57
+ value = value or click.prompt("Enter value", hide_input=True)
57
58
  click.echo(FeedbackManager.highlight(message=f"\n» Setting secret '{name}'..."))
59
+
58
60
  client: TinyB = ctx.ensure_object(dict)["client"]
59
61
  existing_secret = None
60
62
  try:
61
63
  existing_secret = await client.get_secret(name)
62
64
  except Exception:
63
65
  pass
66
+
64
67
  if existing_secret:
65
68
  await client.update_secret(name, value)
66
69
  else:
@@ -281,6 +281,19 @@ def add_telemetry_sysinfo_event() -> None:
281
281
 
282
282
  ci_product: Optional[str] = get_ci_product_name()
283
283
 
284
+ cli_args = sys.argv[1:] if len(sys.argv) > 1 else []
285
+
286
+ is_secret_command = "secret" in cli_args
287
+ if is_secret_command:
288
+ need_to_obfuscate = "set" in cli_args
289
+
290
+ if need_to_obfuscate:
291
+ set_index = cli_args.index("set")
292
+ value_index = set_index + 2
293
+ is_index_valid = value_index < len(cli_args)
294
+ if is_index_valid:
295
+ cli_args[value_index] = "*****"
296
+
284
297
  add_telemetry_event(
285
298
  "system_info",
286
299
  platform=platform.platform(),
@@ -292,7 +305,7 @@ def add_telemetry_sysinfo_event() -> None:
292
305
  is_ci=ci_product is not None,
293
306
  ci_product=ci_product,
294
307
  cli_version=CURRENT_VERSION,
295
- cli_args=sys.argv[1:] if len(sys.argv) > 1 else [],
308
+ cli_args=cli_args,
296
309
  )
297
310
 
298
311
 
@@ -16,13 +16,14 @@ from watchdog.events import (
16
16
  from watchdog.observers import Observer
17
17
 
18
18
  from tinybird.tb.modules.datafile.common import Datafile, DatafileKind
19
+ from tinybird.tb.modules.datafile.fixture import FixtureExtension
19
20
  from tinybird.tb.modules.feedback_manager import FeedbackManager
20
21
  from tinybird.tb.modules.project import Project
21
22
  from tinybird.tb.modules.shell import Shell
22
23
 
23
24
 
24
25
  class WatchProjectHandler(PatternMatchingEventHandler):
25
- valid_extensions = [".datasource", ".pipe", "connection", ".ndjson", ".sql"]
26
+ valid_extensions = [".datasource", ".pipe", "connection", FixtureExtension.CSV, FixtureExtension.NDJSON, ".sql"]
26
27
 
27
28
  def __init__(self, shell: Shell, project: Project, process: Callable):
28
29
  self.shell = shell
@@ -163,7 +164,9 @@ class FileChangeHandler(FileSystemEventHandler):
163
164
  is_vendor = "vendor/" in path
164
165
  if is_vendor:
165
166
  return False
166
- return any(path.endswith(ext) for ext in [".datasource", ".pipe", ".ndjson"])
167
+ return any(
168
+ path.endswith(ext) for ext in [".datasource", ".pipe", FixtureExtension.NDJSON, FixtureExtension.CSV]
169
+ )
167
170
 
168
171
  if should_process_path(event.src_path):
169
172
  return event.src_path
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: tinybird
3
- Version: 0.0.1.dev124
3
+ Version: 0.0.1.dev126
4
4
  Summary: Tinybird Command Line Tool
5
5
  Home-page: https://www.tinybird.co/docs/cli/introduction.html
6
6
  Author: Tinybird
@@ -12,20 +12,20 @@ tinybird/syncasync.py,sha256=IPnOx6lMbf9SNddN1eBtssg8vCLHMt76SuZ6YNYm-Yk,27761
12
12
  tinybird/tornado_template.py,sha256=jjNVDMnkYFWXflmT8KU_Ssbo5vR8KQq3EJMk5vYgXRw,41959
13
13
  tinybird/ch_utils/constants.py,sha256=aYvg2C_WxYWsnqPdZB1ZFoIr8ZY-XjUXYyHKE9Ansj0,3890
14
14
  tinybird/ch_utils/engine.py,sha256=BZuPM7MFS7vaEKK5tOMR2bwSAgJudPrJt27uVEwZmTY,40512
15
- tinybird/tb/__cli__.py,sha256=yRgIZndvTr1rfUOaK4rUcrgoA1LsLCDprVp8u7BjOKs,252
15
+ tinybird/tb/__cli__.py,sha256=R_56U8k8apqKnW-xs-fk-jaby1hlI4th1HnLHIpF8bc,252
16
16
  tinybird/tb/cli.py,sha256=uDLwcbwSJfVFw-pceijZJqaq26z5jNsey0QaUGFjt7w,1097
17
17
  tinybird/tb/client.py,sha256=oa0pR46WvzDoqpyaDU-lRu33I0cZhtZVDqDQz2RHMWQ,56085
18
18
  tinybird/tb/config.py,sha256=iIia7F67UI9p51Ja4jALonyttIi4eH7PwOn3HvcvOb8,4008
19
19
  tinybird/tb/modules/auth.py,sha256=_OeYnmTH83lnqCgQEdS6K0bx1KBUeRmZk2M7JnRmWpk,9037
20
- tinybird/tb/modules/build.py,sha256=9O6SzOSe2kPWFSjvSYlBV17Db14MeVQpHY952knArx0,15932
20
+ tinybird/tb/modules/build.py,sha256=b1fjWrurDWLwNdWjcNaEaSJh6Iko98uSExw4k_CRoTc,17244
21
21
  tinybird/tb/modules/cicd.py,sha256=A7zJZF9HkJ6NPokplgNjmefMrpUlRbFxBbjMZhq5OTI,7110
22
22
  tinybird/tb/modules/cli.py,sha256=Y_5hu9xwyTIZw4bQoe0MYLnRIzmR7hUjql_oZBxd4Qg,13407
23
23
  tinybird/tb/modules/common.py,sha256=bdKNjHtQKcsZFyZIsLY8vEoTD0Xf-1UNBnh1pAyWPZU,83456
24
24
  tinybird/tb/modules/config.py,sha256=ziqW_t_mRVvWOd85VoB4vKyvgMkEfpXDf9H4v38p2xc,11422
25
25
  tinybird/tb/modules/connection.py,sha256=ctrcZCksfBKJHv3pMoDzsmgmx-rlkfeyn2GkxM0Zlw0,6892
26
26
  tinybird/tb/modules/copy.py,sha256=2Mm4FWKehOG7CoOhiF1m9UZJgJn0W1_cMolqju8ONYg,5805
27
- tinybird/tb/modules/create.py,sha256=CGQBcHk6HVUguCEZ_7VHgnfEOkB38kuC0YvzuUufU1k,16577
28
- tinybird/tb/modules/datasource.py,sha256=-aQCK_-wEmoo92Ki7zr2wm424RchDgWvT6yhfFY5kko,16909
27
+ tinybird/tb/modules/create.py,sha256=PDAuzeBiqN9q7GY2p4zcMWDojdNjz6_aJgI5dxR-FVM,16701
28
+ tinybird/tb/modules/datasource.py,sha256=XvY7iTRefG9iEBLQkqBSF47bK-CrLu2AzDnigGI2mSc,16925
29
29
  tinybird/tb/modules/deployment.py,sha256=4Zt7jPbqt18fB5kPx7DbO91Bh6xzBBTEUFY7O89shuU,19560
30
30
  tinybird/tb/modules/endpoint.py,sha256=XySDt3pk66vxOZ0egUfz4bY8bEk3BjOXkv-L0OIJ3sc,12083
31
31
  tinybird/tb/modules/exceptions.py,sha256=4A2sSjCEqKUMqpP3WI00zouCWW4uLaghXXLZBSw04mY,3363
@@ -40,19 +40,19 @@ tinybird/tb/modules/local_common.py,sha256=DqTHHcq4JitohYvHiqCz2Av4REPhmwwS6naQT
40
40
  tinybird/tb/modules/login.py,sha256=rLYdV7MLCTT1F4VBAWGv6SO9efMiM9-977ayLecUzjI,6842
41
41
  tinybird/tb/modules/logout.py,sha256=ULooy1cDBD02-r7voZmhV7udA0ML5tVuflJyShrh56Y,1022
42
42
  tinybird/tb/modules/materialization.py,sha256=yIns8ypdFVLWwuCcvAZPBChsuJl2DIxJe6M8UCBHNsU,5752
43
- tinybird/tb/modules/mock.py,sha256=Z_1nYMO8mmjZkBjikqHNqSd4ssdmcfaXUqIh8jY-z6o,4519
43
+ tinybird/tb/modules/mock.py,sha256=KScG2WohfCjxakBS2Rfb4-7QKS4OSkoVgiMyUvkCWWE,4924
44
44
  tinybird/tb/modules/open.py,sha256=OuctINN77oexpSjth9uoIZPCelKO4Li-yyVxeSnk1io,1371
45
45
  tinybird/tb/modules/pipe.py,sha256=AQKEDagO6e3psPVjJkS_MDbn8aK-apAiLp26k7jgAV0,2432
46
46
  tinybird/tb/modules/project.py,sha256=RdVOzJiuFPqkCzPhzGetbgcFeiMEn9IMviFCG58XKgI,3142
47
47
  tinybird/tb/modules/regions.py,sha256=QjsL5H6Kg-qr0aYVLrvb1STeJ5Sx_sjvbOYO0LrEGMk,166
48
- tinybird/tb/modules/secret.py,sha256=rhCRxHKSiUZ4iYY5_EKH57iHzA2mZtjCyuHRsQcA-DY,2823
48
+ tinybird/tb/modules/secret.py,sha256=WsqzxxLh9W_jkuHL2JofMXdIJy0lT5WEI-7bQSIDgAc,2921
49
49
  tinybird/tb/modules/shell.py,sha256=cvT0EKpnSRHfuo3avykBRMsCwLBqmzSR7sNUdbQ6lXA,14116
50
50
  tinybird/tb/modules/table.py,sha256=4XrtjM-N0zfNtxVkbvLDQQazno1EPXnxTyo7llivfXk,11035
51
51
  tinybird/tb/modules/tag.py,sha256=anPmMUBc-TbFovlpFi8GPkKA18y7Y0GczMsMms5TZsU,3502
52
- tinybird/tb/modules/telemetry.py,sha256=C-aEXY3yQMHzFFySwefwyigprcmjoz_CiCXv17jpCPA,11001
52
+ tinybird/tb/modules/telemetry.py,sha256=FcFw_70-0SyC_2BdToF_sjVpXpMD7i00fCm2SO4cHx8,11397
53
53
  tinybird/tb/modules/test.py,sha256=HxkSpdLOW8brGUNsqdBoSW8RixxyC7OCDmYwEZsIpfs,11459
54
54
  tinybird/tb/modules/token.py,sha256=2fmKwu10_M0pqs6YmJVeILR9ZQB0ejRAET86agASbKM,13488
55
- tinybird/tb/modules/watch.py,sha256=poNJOUNDESDNn80H2dHvE6X6pIu-t9MZFi59_TxVN2U,8822
55
+ tinybird/tb/modules/watch.py,sha256=-2DGSShUGAPDYpLVkiDiONC-RqGdZbTiXOCsDtU5udw,8990
56
56
  tinybird/tb/modules/workspace.py,sha256=SlK08psp0tu5t_URHyIczm696buW6KD6FPs9Lg1aNRE,6614
57
57
  tinybird/tb/modules/workspace_members.py,sha256=RYLpyPM1ECCasHRg3uvpckzXplX0_KgNFsSPZn_i6qk,8744
58
58
  tinybird/tb/modules/datafile/build.py,sha256=d_h3pRFDPFrDKGhpFx2iejY25GuB2k8yfNouj6s8caw,50973
@@ -62,7 +62,7 @@ tinybird/tb/modules/datafile/build_pipe.py,sha256=6Cwjf3BKEF3-oQ9PipsQfK-Z43nSwt
62
62
  tinybird/tb/modules/datafile/common.py,sha256=FXwHfCknNgZnMGaiju4u7ODYnXticP5cVagxor5F7Dw,85442
63
63
  tinybird/tb/modules/datafile/diff.py,sha256=MTmj53RYjER4neLgWVjabn-FKVFgh8h8uYiBo55lFQg,6757
64
64
  tinybird/tb/modules/datafile/exceptions.py,sha256=8rw2umdZjtby85QbuRKFO5ETz_eRHwUY5l7eHsy1wnI,556
65
- tinybird/tb/modules/datafile/fixture.py,sha256=V3WGfPLIR78el3oCNWNkySWs6LxIufyIM0mDrrT3aWc,1131
65
+ tinybird/tb/modules/datafile/fixture.py,sha256=DrRWivcvo_1rn7LlVUnHcXccdgx9yVj63mzBkUwCzk8,1420
66
66
  tinybird/tb/modules/datafile/format_common.py,sha256=WaNV4tXrQU5gjV6MJP-5TGqg_Bre6ilNS8emvFl-X3c,1967
67
67
  tinybird/tb/modules/datafile/format_datasource.py,sha256=iWbeXruxC7OBmjNgurWt6ymcJlYzxfKwkGnhpcoSKEo,6190
68
68
  tinybird/tb/modules/datafile/format_pipe.py,sha256=DUGdmlzI146YDqTwW-7kSIOXocz4AH-md_LFGUm9hrc,7436
@@ -79,8 +79,8 @@ tinybird/tb_cli_modules/config.py,sha256=IsgdtFRnUrkY8-Zo32lmk6O7u3bHie1QCxLwgp4
79
79
  tinybird/tb_cli_modules/exceptions.py,sha256=pmucP4kTF4irIt7dXiG-FcnI-o3mvDusPmch1L8RCWk,3367
80
80
  tinybird/tb_cli_modules/regions.py,sha256=QjsL5H6Kg-qr0aYVLrvb1STeJ5Sx_sjvbOYO0LrEGMk,166
81
81
  tinybird/tb_cli_modules/telemetry.py,sha256=Hh2Io8ZPROSunbOLuMvuIFU4TqwWPmQTqal4WS09K1A,10449
82
- tinybird-0.0.1.dev124.dist-info/METADATA,sha256=0B_zlu-C3jSAtHgjGRjlFZks5aVHgZ1I0zlGhMa2BZE,1612
83
- tinybird-0.0.1.dev124.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
84
- tinybird-0.0.1.dev124.dist-info/entry_points.txt,sha256=LwdHU6TfKx4Qs7BqqtaczEZbImgU7Abe9Lp920zb_fo,43
85
- tinybird-0.0.1.dev124.dist-info/top_level.txt,sha256=VqqqEmkAy7UNaD8-V51FCoMMWXjLUlR0IstvK7tJYVY,54
86
- tinybird-0.0.1.dev124.dist-info/RECORD,,
82
+ tinybird-0.0.1.dev126.dist-info/METADATA,sha256=PNr5bUR9Fhz3S1GSg0aY6BCFGdTnfwz-eCBSRfJMFAg,1612
83
+ tinybird-0.0.1.dev126.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
84
+ tinybird-0.0.1.dev126.dist-info/entry_points.txt,sha256=LwdHU6TfKx4Qs7BqqtaczEZbImgU7Abe9Lp920zb_fo,43
85
+ tinybird-0.0.1.dev126.dist-info/top_level.txt,sha256=VqqqEmkAy7UNaD8-V51FCoMMWXjLUlR0IstvK7tJYVY,54
86
+ tinybird-0.0.1.dev126.dist-info/RECORD,,