tinybird 0.0.1.dev69__py3-none-any.whl → 0.0.1.dev70__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 +2 -2
- tinybird/tb/modules/build.py +12 -1
- tinybird/tb/modules/cli.py +10 -1
- tinybird/tb/modules/datafile/fixture.py +7 -0
- tinybird/tb/modules/datasource.py +63 -0
- tinybird/tb/modules/deployment.py +18 -4
- tinybird/tb/modules/mock.py +26 -18
- tinybird/tb/modules/watch.py +1 -1
- {tinybird-0.0.1.dev69.dist-info → tinybird-0.0.1.dev70.dist-info}/METADATA +1 -1
- {tinybird-0.0.1.dev69.dist-info → tinybird-0.0.1.dev70.dist-info}/RECORD +13 -13
- {tinybird-0.0.1.dev69.dist-info → tinybird-0.0.1.dev70.dist-info}/WHEEL +0 -0
- {tinybird-0.0.1.dev69.dist-info → tinybird-0.0.1.dev70.dist-info}/entry_points.txt +0 -0
- {tinybird-0.0.1.dev69.dist-info → tinybird-0.0.1.dev70.dist-info}/top_level.txt +0 -0
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.
|
|
8
|
-
__revision__ = '
|
|
7
|
+
__version__ = '0.0.1.dev70'
|
|
8
|
+
__revision__ = 'f8064d4'
|
tinybird/tb/modules/build.py
CHANGED
|
@@ -15,7 +15,7 @@ from tinybird.client import TinyB
|
|
|
15
15
|
from tinybird.tb.modules.cli import cli
|
|
16
16
|
from tinybird.tb.modules.common import push_data
|
|
17
17
|
from tinybird.tb.modules.datafile.build import folder_build
|
|
18
|
-
from tinybird.tb.modules.datafile.fixture import get_fixture_dir
|
|
18
|
+
from tinybird.tb.modules.datafile.fixture import get_fixture_dir, persist_fixture
|
|
19
19
|
from tinybird.tb.modules.feedback_manager import FeedbackManager
|
|
20
20
|
from tinybird.tb.modules.project import Project
|
|
21
21
|
from tinybird.tb.modules.shell import Shell, print_table_formatted
|
|
@@ -210,6 +210,8 @@ def process(
|
|
|
210
210
|
build_failed = False
|
|
211
211
|
if file_changed and file_changed.endswith(".ndjson"):
|
|
212
212
|
rebuild_fixture(project, tb_client, file_changed)
|
|
213
|
+
elif file_changed and file_changed.endswith(".sql"):
|
|
214
|
+
rebuild_fixture_sql(project, tb_client, file_changed)
|
|
213
215
|
else:
|
|
214
216
|
try:
|
|
215
217
|
build_project(project, tb_client, file_changed)
|
|
@@ -247,3 +249,12 @@ def run_watch(
|
|
|
247
249
|
)
|
|
248
250
|
watcher_thread.start()
|
|
249
251
|
shell.run()
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
def rebuild_fixture_sql(project: Project, tb_client: TinyB, sql_file: str) -> None:
|
|
255
|
+
sql_path = Path(sql_file)
|
|
256
|
+
datasource_name = sql_path.stem
|
|
257
|
+
sql = sql_path.read_text()
|
|
258
|
+
result = asyncio.run(tb_client.query(f"{sql} FORMAT JSON"))
|
|
259
|
+
data = result.get("data", [])
|
|
260
|
+
persist_fixture(datasource_name, data, project.folder)
|
tinybird/tb/modules/cli.py
CHANGED
|
@@ -127,6 +127,7 @@ async def cli(
|
|
|
127
127
|
ctx.ensure_object(dict)["client"] = client
|
|
128
128
|
|
|
129
129
|
ctx.ensure_object(dict)["project"] = project
|
|
130
|
+
ctx.ensure_object(dict)["env"] = get_target_env(cloud, build)
|
|
130
131
|
|
|
131
132
|
|
|
132
133
|
@cli.command(hidden=True)
|
|
@@ -393,7 +394,7 @@ async def create_ctx_client(ctx: Context, config: Dict[str, Any], cloud: bool, b
|
|
|
393
394
|
|
|
394
395
|
commands_always_cloud = ["pull"]
|
|
395
396
|
commands_always_build = ["build", "test", "dev"]
|
|
396
|
-
commands_always_local = ["create"
|
|
397
|
+
commands_always_local = ["create"]
|
|
397
398
|
if (
|
|
398
399
|
(cloud or command in commands_always_cloud)
|
|
399
400
|
and command not in commands_always_build
|
|
@@ -407,3 +408,11 @@ async def create_ctx_client(ctx: Context, config: Dict[str, Any], cloud: bool, b
|
|
|
407
408
|
if not build and command not in commands_always_local and command not in commands_always_build:
|
|
408
409
|
click.echo(FeedbackManager.gray(message="Running against Tinybird Local\n"))
|
|
409
410
|
return await get_tinybird_local_client(config, build=build)
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
def get_target_env(cloud: bool, build: bool) -> str:
|
|
414
|
+
if cloud:
|
|
415
|
+
return "cloud"
|
|
416
|
+
if build:
|
|
417
|
+
return "build"
|
|
418
|
+
return "local"
|
|
@@ -8,6 +8,13 @@ def get_fixture_dir(folder: str) -> Path:
|
|
|
8
8
|
return Path(folder) / "fixtures"
|
|
9
9
|
|
|
10
10
|
|
|
11
|
+
def persist_fixture_sql(fixture_name: str, sql: str, folder: str) -> Path:
|
|
12
|
+
fixture_dir = get_fixture_dir(folder)
|
|
13
|
+
fixture_file = fixture_dir / f"{fixture_name}.sql"
|
|
14
|
+
fixture_file.write_text(sql)
|
|
15
|
+
return fixture_file
|
|
16
|
+
|
|
17
|
+
|
|
11
18
|
def persist_fixture(fixture_name: str, data: Union[List[Dict[str, Any]], str], folder: str, format="ndjson") -> Path:
|
|
12
19
|
fixture_dir = get_fixture_dir(folder)
|
|
13
20
|
fixture_file = fixture_dir / f"{fixture_name}.{format}"
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
import asyncio
|
|
7
7
|
import json
|
|
8
|
+
import os
|
|
8
9
|
import re
|
|
9
10
|
from typing import Optional
|
|
10
11
|
|
|
@@ -23,8 +24,10 @@ from tinybird.tb.modules.common import (
|
|
|
23
24
|
push_data,
|
|
24
25
|
)
|
|
25
26
|
from tinybird.tb.modules.datafile.common import get_name_version
|
|
27
|
+
from tinybird.tb.modules.datafile.fixture import persist_fixture
|
|
26
28
|
from tinybird.tb.modules.exceptions import CLIDatasourceException
|
|
27
29
|
from tinybird.tb.modules.feedback_manager import FeedbackManager
|
|
30
|
+
from tinybird.tb.modules.project import Project
|
|
28
31
|
|
|
29
32
|
|
|
30
33
|
@cli.group()
|
|
@@ -391,3 +394,63 @@ async def datasource_data(ctx: Context, datasource: str, limit: int):
|
|
|
391
394
|
echo_safe_humanfriendly_tables_format_smart_table(
|
|
392
395
|
data=[d.values() for d in res["data"]], column_names=res["data"][0].keys()
|
|
393
396
|
)
|
|
397
|
+
|
|
398
|
+
|
|
399
|
+
@datasource.command(name="export")
|
|
400
|
+
@click.argument("datasource")
|
|
401
|
+
@click.option(
|
|
402
|
+
"--format",
|
|
403
|
+
"format_",
|
|
404
|
+
type=click.Choice(["csv", "ndjson"], case_sensitive=False),
|
|
405
|
+
default="ndjson",
|
|
406
|
+
help="Output format (csv or ndjson)",
|
|
407
|
+
)
|
|
408
|
+
@click.option("--rows", type=int, default=100, help="Number of rows to export (default: 100)")
|
|
409
|
+
@click.option("--where", type=str, default=None, help="Condition to filter data")
|
|
410
|
+
@click.option("--target", type=str, help="Target file path (default: datasource_name.{format})")
|
|
411
|
+
@click.pass_context
|
|
412
|
+
@coro
|
|
413
|
+
async def datasource_export(
|
|
414
|
+
ctx: Context,
|
|
415
|
+
datasource: str,
|
|
416
|
+
format_: str,
|
|
417
|
+
rows: int,
|
|
418
|
+
where: Optional[str],
|
|
419
|
+
target: Optional[str],
|
|
420
|
+
):
|
|
421
|
+
"""Export data from a datasource to a file in CSV or NDJSON format
|
|
422
|
+
|
|
423
|
+
Example usage:
|
|
424
|
+
- Export all rows as CSV: tb datasource export my_datasource
|
|
425
|
+
- Export 1000 rows as NDJSON: tb datasource export my_datasource --format ndjson --rows 1000
|
|
426
|
+
- Export to specific file: tb datasource export my_datasource --output ./data/export.csv
|
|
427
|
+
"""
|
|
428
|
+
client: TinyB = ctx.ensure_object(dict)["client"]
|
|
429
|
+
project: Project = ctx.ensure_object(dict)["project"]
|
|
430
|
+
|
|
431
|
+
# Determine output filename if not provided
|
|
432
|
+
if not target:
|
|
433
|
+
target = f"{datasource}.{format_}"
|
|
434
|
+
|
|
435
|
+
# Build query with optional row limit
|
|
436
|
+
query = f"SELECT * FROM {datasource} WHERE {where or 1} LIMIT {rows}"
|
|
437
|
+
|
|
438
|
+
click.echo(FeedbackManager.highlight(message=f"\n» Exporting {datasource} to {target}"))
|
|
439
|
+
|
|
440
|
+
try:
|
|
441
|
+
if format_ == "csv":
|
|
442
|
+
query += " FORMAT CSVWithNames"
|
|
443
|
+
else:
|
|
444
|
+
query += " FORMAT JSONEachRow"
|
|
445
|
+
|
|
446
|
+
res = await client.query(query)
|
|
447
|
+
|
|
448
|
+
fixture_path = persist_fixture(datasource, res, project.folder)
|
|
449
|
+
file_size = os.path.getsize(fixture_path)
|
|
450
|
+
|
|
451
|
+
click.echo(
|
|
452
|
+
FeedbackManager.success(message=f"✓ Exported data to {target} ({humanfriendly.format_size(file_size)})")
|
|
453
|
+
)
|
|
454
|
+
|
|
455
|
+
except Exception as e:
|
|
456
|
+
raise CLIDatasourceException(FeedbackManager.error(message=str(e)))
|
|
@@ -266,13 +266,13 @@ def deployment_rollback(ctx: click.Context, wait: bool) -> None:
|
|
|
266
266
|
@click.option(
|
|
267
267
|
"--wait/--no-wait",
|
|
268
268
|
is_flag=True,
|
|
269
|
-
default=
|
|
269
|
+
default=True,
|
|
270
270
|
help="Wait for deploy to finish. Disabled by default.",
|
|
271
271
|
)
|
|
272
272
|
@click.option(
|
|
273
273
|
"--auto/--no-auto",
|
|
274
274
|
is_flag=True,
|
|
275
|
-
default=
|
|
275
|
+
default=True,
|
|
276
276
|
help="Auto-promote the deployment. Only works if --wait is enabled. Disabled by default.",
|
|
277
277
|
)
|
|
278
278
|
@click.option(
|
|
@@ -311,6 +311,7 @@ def create_deployment(
|
|
|
311
311
|
}
|
|
312
312
|
project: Project = ctx.ensure_object(dict)["project"]
|
|
313
313
|
client = ctx.ensure_object(dict)["client"]
|
|
314
|
+
config = ctx.ensure_object(dict)["config"]
|
|
314
315
|
TINYBIRD_API_URL = f"{client.host}/v1/deploy"
|
|
315
316
|
TINYBIRD_API_KEY = client.token
|
|
316
317
|
|
|
@@ -357,8 +358,21 @@ def create_deployment(
|
|
|
357
358
|
deploy_result = result.get("result")
|
|
358
359
|
if deploy_result == "success":
|
|
359
360
|
print_changes(result, project)
|
|
360
|
-
|
|
361
|
-
|
|
361
|
+
deployment = result.get("deployment", {})
|
|
362
|
+
# We show the url in the case of region is public
|
|
363
|
+
if client.host == "https://api.europe-west2.gcp.tinybird.co":
|
|
364
|
+
click.echo(
|
|
365
|
+
FeedbackManager.gray(message="Deployment URL: ")
|
|
366
|
+
+ FeedbackManager.info(
|
|
367
|
+
message=f"https://cloud.tinybird.co/gcp/europe-west2/{config.get('name')}/deployments/{deployment.get('id')}"
|
|
368
|
+
)
|
|
369
|
+
)
|
|
370
|
+
|
|
371
|
+
if wait:
|
|
372
|
+
click.echo(FeedbackManager.info(message="\n✓ Deployment submitted successfully"))
|
|
373
|
+
else:
|
|
374
|
+
click.echo(FeedbackManager.success(message="\n✓ Deployment submitted successfully"))
|
|
375
|
+
|
|
362
376
|
feedback = deployment.get("feedback", [])
|
|
363
377
|
for f in feedback:
|
|
364
378
|
click.echo(
|
tinybird/tb/modules/mock.py
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import glob
|
|
2
|
-
import logging
|
|
3
|
-
import os
|
|
4
2
|
from pathlib import Path
|
|
5
3
|
|
|
6
4
|
import click
|
|
@@ -8,9 +6,9 @@ import click
|
|
|
8
6
|
from tinybird.client import TinyB
|
|
9
7
|
from tinybird.prompts import mock_prompt
|
|
10
8
|
from tinybird.tb.modules.cli import cli
|
|
11
|
-
from tinybird.tb.modules.common import CLIException, check_user_token_with_client, coro
|
|
9
|
+
from tinybird.tb.modules.common import CLIException, check_user_token_with_client, coro, push_data
|
|
12
10
|
from tinybird.tb.modules.config import CLIConfig
|
|
13
|
-
from tinybird.tb.modules.datafile.fixture import persist_fixture
|
|
11
|
+
from tinybird.tb.modules.datafile.fixture import persist_fixture, persist_fixture_sql
|
|
14
12
|
from tinybird.tb.modules.feedback_manager import FeedbackManager
|
|
15
13
|
from tinybird.tb.modules.llm import LLM
|
|
16
14
|
from tinybird.tb.modules.llm_utils import extract_xml
|
|
@@ -41,11 +39,11 @@ async def mock(ctx: click.Context, datasource: str, rows: int, prompt: str) -> N
|
|
|
41
39
|
try:
|
|
42
40
|
tb_client: TinyB = ctx.ensure_object(dict)["client"]
|
|
43
41
|
project: Project = ctx.ensure_object(dict)["project"]
|
|
42
|
+
env = ctx.ensure_object(dict)["env"]
|
|
44
43
|
datasource_path = Path(datasource)
|
|
45
44
|
datasource_name = datasource
|
|
46
45
|
folder = project.folder
|
|
47
46
|
click.echo(FeedbackManager.highlight(message=f"\n» Creating fixture for {datasource_name}..."))
|
|
48
|
-
|
|
49
47
|
if datasource_path.suffix == ".datasource":
|
|
50
48
|
datasource_name = datasource_path.stem
|
|
51
49
|
else:
|
|
@@ -56,14 +54,6 @@ async def mock(ctx: click.Context, datasource: str, rows: int, prompt: str) -> N
|
|
|
56
54
|
if not datasource_path.exists():
|
|
57
55
|
raise CLIException(f"Datasource '{datasource_path.stem}' not found")
|
|
58
56
|
|
|
59
|
-
prompt_path = Path(folder) / "fixtures" / f"{datasource_name}.prompt"
|
|
60
|
-
if not prompt or prompt == "Use the datasource schema to generate sample data":
|
|
61
|
-
# load the prompt from the fixture.prompt file if it exists
|
|
62
|
-
if prompt_path.exists():
|
|
63
|
-
prompt = prompt_path.read_text()
|
|
64
|
-
else:
|
|
65
|
-
prompt_path.write_text(prompt)
|
|
66
|
-
|
|
67
57
|
datasource_content = datasource_path.read_text()
|
|
68
58
|
config = CLIConfig.get_project_config()
|
|
69
59
|
user_client = config.get_client()
|
|
@@ -76,21 +66,39 @@ async def mock(ctx: click.Context, datasource: str, rows: int, prompt: str) -> N
|
|
|
76
66
|
except Exception:
|
|
77
67
|
click.echo(FeedbackManager.error(message="This action requires authentication. Run 'tb login' first."))
|
|
78
68
|
return
|
|
69
|
+
|
|
79
70
|
llm = LLM(user_token=user_token, host=user_client.host)
|
|
80
71
|
prompt = f"<datasource_schema>{datasource_content}</datasource_schema>\n<user_input>{prompt}</user_input>"
|
|
81
72
|
sql = ""
|
|
82
|
-
|
|
83
73
|
response = llm.ask(system_prompt=mock_prompt(rows), prompt=prompt)
|
|
84
74
|
sql = extract_xml(response, "sql")
|
|
85
75
|
result = await tb_client.query(f"{sql} FORMAT JSON")
|
|
86
76
|
data = result.get("data", [])[:rows]
|
|
87
|
-
|
|
88
|
-
|
|
77
|
+
if env == "build":
|
|
78
|
+
persist_fixture_sql(datasource_name, sql, folder)
|
|
79
|
+
|
|
80
|
+
fixture_path = persist_fixture(datasource_name, data, folder)
|
|
89
81
|
|
|
90
|
-
|
|
91
|
-
|
|
82
|
+
click.echo(FeedbackManager.info(message=f"✓ /fixtures/{datasource_name}.ndjson created"))
|
|
83
|
+
if env == "cloud":
|
|
84
|
+
await append_fixture(tb_client, datasource_name, str(fixture_path))
|
|
92
85
|
|
|
93
86
|
click.echo(FeedbackManager.success(message=f"✓ Sample data for {datasource_name} created with {rows} rows"))
|
|
94
87
|
|
|
95
88
|
except Exception as e:
|
|
96
89
|
click.echo(FeedbackManager.error_exception(error=f"Error: {e}"))
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
async def append_fixture(
|
|
93
|
+
tb_client: TinyB,
|
|
94
|
+
datasource_name: str,
|
|
95
|
+
url: str,
|
|
96
|
+
):
|
|
97
|
+
await push_data(
|
|
98
|
+
tb_client,
|
|
99
|
+
datasource_name,
|
|
100
|
+
url,
|
|
101
|
+
mode="append",
|
|
102
|
+
concurrency=1,
|
|
103
|
+
silent=True,
|
|
104
|
+
)
|
tinybird/tb/modules/watch.py
CHANGED
|
@@ -29,7 +29,7 @@ class WatchProjectHandler(FileSystemEventHandler):
|
|
|
29
29
|
if event.is_directory:
|
|
30
30
|
return None
|
|
31
31
|
|
|
32
|
-
valid_extensions = [".datasource", ".pipe", ".ndjson"]
|
|
32
|
+
valid_extensions = [".datasource", ".pipe", ".ndjson", ".sql"]
|
|
33
33
|
|
|
34
34
|
if not any(event.src_path.endswith(ext) for ext in valid_extensions):
|
|
35
35
|
return None
|
|
@@ -15,18 +15,18 @@ tinybird/syncasync.py,sha256=IPnOx6lMbf9SNddN1eBtssg8vCLHMt76SuZ6YNYm-Yk,27761
|
|
|
15
15
|
tinybird/tornado_template.py,sha256=fUKIFrZLe0WyMFmV-mkjIdCSeFcZMBL3Uet4eHcids0,41960
|
|
16
16
|
tinybird/ch_utils/constants.py,sha256=aYvg2C_WxYWsnqPdZB1ZFoIr8ZY-XjUXYyHKE9Ansj0,3890
|
|
17
17
|
tinybird/ch_utils/engine.py,sha256=AUAww-KjGOZg9h0IBlKA3FeacJYB4rOtqcTGJhFM-g8,40392
|
|
18
|
-
tinybird/tb/__cli__.py,sha256=
|
|
18
|
+
tinybird/tb/__cli__.py,sha256=53NC2V-YpRXEwQyuGwM0-hJrMfoKVMQVHdHn44o-QYI,251
|
|
19
19
|
tinybird/tb/cli.py,sha256=FD1pfbzu9YHJHEG6Vtn_EwPLTYhwqw-I6AxXeTaRHU8,926
|
|
20
20
|
tinybird/tb/modules/auth.py,sha256=vBA-KsrjAp77kFunGSM-4o7AFdfO7ac4dnrHKrx0alI,9020
|
|
21
|
-
tinybird/tb/modules/build.py,sha256=
|
|
21
|
+
tinybird/tb/modules/build.py,sha256=GIXpIAHxulB-PgJ2jeZnwIXPbL7anp3rPi5a6DxfWuQ,9674
|
|
22
22
|
tinybird/tb/modules/cicd.py,sha256=xxXwy-QekJcG14kkJeGNl7LkHduhZXfvBZE8WrU6-t4,5351
|
|
23
|
-
tinybird/tb/modules/cli.py,sha256=
|
|
23
|
+
tinybird/tb/modules/cli.py,sha256=MJ4N0BUW6yhlo3zGf_N_qqBQWPyCD-aMrkI7u7azHW4,16125
|
|
24
24
|
tinybird/tb/modules/common.py,sha256=XZY0nWkK68vgh2Vml5JzyQuEWIyf2igq7IrAu0n94Lo,73203
|
|
25
25
|
tinybird/tb/modules/config.py,sha256=mie3oMVTf5YOUFEiLs88P16U4LkJafJjSpjwyAkFHog,10979
|
|
26
26
|
tinybird/tb/modules/copy.py,sha256=Aq6wh_wjRiyLQtEOKF9pKLPgJhSvbGTFWIw_LJB0t0U,5801
|
|
27
27
|
tinybird/tb/modules/create.py,sha256=I01JDENOyGKK0Umd2_1Om_nFGP8Uk9vxaOw7PygK02o,12302
|
|
28
|
-
tinybird/tb/modules/datasource.py,sha256=
|
|
29
|
-
tinybird/tb/modules/deployment.py,sha256=
|
|
28
|
+
tinybird/tb/modules/datasource.py,sha256=aOvjTVH9EdGNAw_lqhtZdJQhYnMOTGIqD3Pe4GtakFw,16905
|
|
29
|
+
tinybird/tb/modules/deployment.py,sha256=qGkFwPR1TGtcbqUcKkhsfzK--sNzXo6JV8Ny8HrlSfo,16873
|
|
30
30
|
tinybird/tb/modules/endpoint.py,sha256=zQJgJXTzMB3hPO-3Xnppi0Pv8byZunBNhbbmMgKtijE,11915
|
|
31
31
|
tinybird/tb/modules/exceptions.py,sha256=4A2sSjCEqKUMqpP3WI00zouCWW4uLaghXXLZBSw04mY,3363
|
|
32
32
|
tinybird/tb/modules/feedback_manager.py,sha256=mrw5tdYycfvg6WLXlM0KIjfJardm_aNpnJkUg2vH0cA,68463
|
|
@@ -38,7 +38,7 @@ tinybird/tb/modules/local.py,sha256=_PIa-1M-72bv9rhLwqaNthJM1ZhvcjWXFChZAfEPXRs,
|
|
|
38
38
|
tinybird/tb/modules/local_common.py,sha256=W1fEnB1vBQ4YC5U1PdA0w0g3cTV78bQ5R-lRxdDj5-Y,2868
|
|
39
39
|
tinybird/tb/modules/login.py,sha256=EGxwVRmMX1Y7ZeCRyA8fqaCWpYYk7NvnZ3x_1g0NlYA,6063
|
|
40
40
|
tinybird/tb/modules/materialization.py,sha256=dESybok66Fn7XLzQQr-fBCDNf5xQL8wkRiD2QBr5lOg,5748
|
|
41
|
-
tinybird/tb/modules/mock.py,sha256=
|
|
41
|
+
tinybird/tb/modules/mock.py,sha256=7alBqLfQLb7JSZJth9JDXGUOvABWXr8Gx23edgyrW8w,3869
|
|
42
42
|
tinybird/tb/modules/pipe.py,sha256=PbCM31q9lVB9xPWvPBhlpW53MGFGvzVv81trxC06kDY,2428
|
|
43
43
|
tinybird/tb/modules/project.py,sha256=QdOG65Hcc6r_eQ938CfZeIXyp38RkiTYNPupgqy2gP0,2948
|
|
44
44
|
tinybird/tb/modules/regions.py,sha256=QjsL5H6Kg-qr0aYVLrvb1STeJ5Sx_sjvbOYO0LrEGMk,166
|
|
@@ -48,7 +48,7 @@ tinybird/tb/modules/tag.py,sha256=anPmMUBc-TbFovlpFi8GPkKA18y7Y0GczMsMms5TZsU,35
|
|
|
48
48
|
tinybird/tb/modules/telemetry.py,sha256=iEGnMuCuNhvF6ln__j6X9MSTwL_0Hm-GgFHHHvhfknk,10466
|
|
49
49
|
tinybird/tb/modules/test.py,sha256=tY7_FJRSL6EdztypWlvDJi5QpXDLS5dpO0i_dpGuzkI,11528
|
|
50
50
|
tinybird/tb/modules/token.py,sha256=WEB2xqRgOierJ_S7TrZLEpLpQ9mkXcYLH2-xipjoGDc,12814
|
|
51
|
-
tinybird/tb/modules/watch.py,sha256=
|
|
51
|
+
tinybird/tb/modules/watch.py,sha256=IIahyfmVNNu_EY2dVKZ_zjdSEFocwsmpvvgki4EmU-w,4961
|
|
52
52
|
tinybird/tb/modules/workspace.py,sha256=7gOgt10j9emleqQ43BA6jU0CZjJxw7L5gDZhCxGafI4,6400
|
|
53
53
|
tinybird/tb/modules/workspace_members.py,sha256=Vb5XEaKmkfONyfg2MS5EcpwolMvv7GLwFS5m2EuobT8,8726
|
|
54
54
|
tinybird/tb/modules/datafile/build.py,sha256=seGFSvmgyRrAM1-icsKBkuog3WccfGUYFTPT-xoA5W8,50940
|
|
@@ -58,7 +58,7 @@ tinybird/tb/modules/datafile/build_pipe.py,sha256=Jgv3YKIvMfjPiSIdw1k2mpaoDdAWMi
|
|
|
58
58
|
tinybird/tb/modules/datafile/common.py,sha256=1sKkQnyKOaFARQzORncpL6cRVpV9GDOD4oC36daX-Hk,79343
|
|
59
59
|
tinybird/tb/modules/datafile/diff.py,sha256=-0J7PsBO64T7LOZSkZ4ZFHHCPvT7cKItnJkbz2PkndU,6754
|
|
60
60
|
tinybird/tb/modules/datafile/exceptions.py,sha256=8rw2umdZjtby85QbuRKFO5ETz_eRHwUY5l7eHsy1wnI,556
|
|
61
|
-
tinybird/tb/modules/datafile/fixture.py,sha256=
|
|
61
|
+
tinybird/tb/modules/datafile/fixture.py,sha256=si-9LB-LdKQSWDtVW82xDrHtFfko5bgBG1cvjqqrcPU,1064
|
|
62
62
|
tinybird/tb/modules/datafile/format_common.py,sha256=WaNV4tXrQU5gjV6MJP-5TGqg_Bre6ilNS8emvFl-X3c,1967
|
|
63
63
|
tinybird/tb/modules/datafile/format_datasource.py,sha256=gpRsGnDEMxEo0pIlEHXKvyuwKIpqJJUCN9JRSiDYs_4,6156
|
|
64
64
|
tinybird/tb/modules/datafile/format_pipe.py,sha256=58iSTrJ5lg-IsbpX8TQumQTuZ6UIotMsCIkNJd1M-pM,7418
|
|
@@ -74,8 +74,8 @@ tinybird/tb_cli_modules/config.py,sha256=6u6B5QCdiQLbJkCkwtnKGs9H3nP-KXXhC75mF7B
|
|
|
74
74
|
tinybird/tb_cli_modules/exceptions.py,sha256=pmucP4kTF4irIt7dXiG-FcnI-o3mvDusPmch1L8RCWk,3367
|
|
75
75
|
tinybird/tb_cli_modules/regions.py,sha256=QjsL5H6Kg-qr0aYVLrvb1STeJ5Sx_sjvbOYO0LrEGMk,166
|
|
76
76
|
tinybird/tb_cli_modules/telemetry.py,sha256=iEGnMuCuNhvF6ln__j6X9MSTwL_0Hm-GgFHHHvhfknk,10466
|
|
77
|
-
tinybird-0.0.1.
|
|
78
|
-
tinybird-0.0.1.
|
|
79
|
-
tinybird-0.0.1.
|
|
80
|
-
tinybird-0.0.1.
|
|
81
|
-
tinybird-0.0.1.
|
|
77
|
+
tinybird-0.0.1.dev70.dist-info/METADATA,sha256=5bMC_6zO0z9FVkj9F0oQ7tdexUZnSoPaEpaHG3EtqVs,2585
|
|
78
|
+
tinybird-0.0.1.dev70.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
79
|
+
tinybird-0.0.1.dev70.dist-info/entry_points.txt,sha256=LwdHU6TfKx4Qs7BqqtaczEZbImgU7Abe9Lp920zb_fo,43
|
|
80
|
+
tinybird-0.0.1.dev70.dist-info/top_level.txt,sha256=VqqqEmkAy7UNaD8-V51FCoMMWXjLUlR0IstvK7tJYVY,54
|
|
81
|
+
tinybird-0.0.1.dev70.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|