tinybird 0.0.1.dev192__py3-none-any.whl → 0.0.1.dev194__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/datasource.py +24 -9
- tinybird/tb/modules/deployment.py +3 -3
- tinybird/tb/modules/project.py +13 -10
- {tinybird-0.0.1.dev192.dist-info → tinybird-0.0.1.dev194.dist-info}/METADATA +1 -1
- {tinybird-0.0.1.dev192.dist-info → tinybird-0.0.1.dev194.dist-info}/RECORD +9 -9
- {tinybird-0.0.1.dev192.dist-info → tinybird-0.0.1.dev194.dist-info}/WHEEL +0 -0
- {tinybird-0.0.1.dev192.dist-info → tinybird-0.0.1.dev194.dist-info}/entry_points.txt +0 -0
- {tinybird-0.0.1.dev192.dist-info → tinybird-0.0.1.dev194.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/forward/commands'
|
|
5
5
|
__author__ = 'Tinybird'
|
|
6
6
|
__author_email__ = 'support@tinybird.co'
|
|
7
|
-
__version__ = '0.0.1.
|
|
8
|
-
__revision__ = '
|
|
7
|
+
__version__ = '0.0.1.dev194'
|
|
8
|
+
__revision__ = 'f73c305'
|
|
@@ -127,7 +127,7 @@ async def datasource_ls(ctx: Context, match: Optional[str], format_: str):
|
|
|
127
127
|
|
|
128
128
|
@datasource.command(name="append")
|
|
129
129
|
@click.argument("datasource_name", required=False)
|
|
130
|
-
@click.argument("data",
|
|
130
|
+
@click.argument("data", required=False)
|
|
131
131
|
@click.option("--url", type=str, help="URL to append data from")
|
|
132
132
|
@click.option("--file", type=str, help="Local file to append data from")
|
|
133
133
|
@click.option("--events", type=str, help="Events to append data from")
|
|
@@ -159,15 +159,30 @@ async def datasource_append(
|
|
|
159
159
|
|
|
160
160
|
# If data is passed as argument, we detect if it's a JSON object, a URL or a file
|
|
161
161
|
if data:
|
|
162
|
-
|
|
163
|
-
|
|
162
|
+
VALID_EXTENSIONS = [
|
|
163
|
+
"csv",
|
|
164
|
+
"csv.gz",
|
|
165
|
+
"ndjson",
|
|
166
|
+
"ndjson.gz",
|
|
167
|
+
"jsonl",
|
|
168
|
+
"jsonl.gz",
|
|
169
|
+
"json",
|
|
170
|
+
"json.gz",
|
|
171
|
+
"parquet",
|
|
172
|
+
"parquet.gz",
|
|
173
|
+
]
|
|
174
|
+
is_file_or_url = data and (data.startswith("http") or any(data.endswith(f".{ext}") for ext in VALID_EXTENSIONS))
|
|
175
|
+
if is_file_or_url:
|
|
176
|
+
try:
|
|
177
|
+
if urlparse(data).scheme in ("http", "https"):
|
|
178
|
+
url = data
|
|
179
|
+
except Exception:
|
|
180
|
+
pass
|
|
181
|
+
|
|
182
|
+
if not url:
|
|
183
|
+
file = data
|
|
184
|
+
else:
|
|
164
185
|
events = data
|
|
165
|
-
except Exception:
|
|
166
|
-
pass
|
|
167
|
-
if urlparse(data).scheme in ("http", "https"):
|
|
168
|
-
url = data
|
|
169
|
-
if not events and not url:
|
|
170
|
-
file = data
|
|
171
186
|
|
|
172
187
|
# If data is not passed as argument, we use the data from the options
|
|
173
188
|
if not data:
|
|
@@ -671,7 +671,7 @@ def print_changes(result: dict, project: Project) -> None:
|
|
|
671
671
|
resources.append(["new", ds, "datasource", project.get_resource_path(ds, "datasource")])
|
|
672
672
|
|
|
673
673
|
for p in deployment.get("new_pipe_names", []):
|
|
674
|
-
path =
|
|
674
|
+
path = project.get_resource_path(p, "pipe")
|
|
675
675
|
pipe_type = project.get_pipe_type(path)
|
|
676
676
|
resources.append(["new", p, pipe_type, path])
|
|
677
677
|
|
|
@@ -682,7 +682,7 @@ def print_changes(result: dict, project: Project) -> None:
|
|
|
682
682
|
resources.append(["modified", ds, "datasource", project.get_resource_path(ds, "datasource")])
|
|
683
683
|
|
|
684
684
|
for p in deployment.get("changed_pipe_names", []):
|
|
685
|
-
path =
|
|
685
|
+
path = project.get_resource_path(p, "pipe")
|
|
686
686
|
pipe_type = project.get_pipe_type(path)
|
|
687
687
|
resources.append(["modified", p, pipe_type, path])
|
|
688
688
|
|
|
@@ -696,7 +696,7 @@ def print_changes(result: dict, project: Project) -> None:
|
|
|
696
696
|
resources.append(["deleted", ds, "datasource", project.get_resource_path(ds, "datasource")])
|
|
697
697
|
|
|
698
698
|
for p in deployment.get("deleted_pipe_names", []):
|
|
699
|
-
path =
|
|
699
|
+
path = project.get_resource_path(p, "pipe")
|
|
700
700
|
pipe_type = project.get_pipe_type(path)
|
|
701
701
|
resources.append(["deleted", p, pipe_type, path])
|
|
702
702
|
|
tinybird/tb/modules/project.py
CHANGED
|
@@ -50,12 +50,12 @@ class Project:
|
|
|
50
50
|
project_files.append(project_file)
|
|
51
51
|
return project_files
|
|
52
52
|
|
|
53
|
-
def get_resource_path(self, resource_name: str, resource_type: str) ->
|
|
53
|
+
def get_resource_path(self, resource_name: str, resource_type: str) -> str:
|
|
54
54
|
full_path = next(
|
|
55
55
|
(p for p in self.get_project_files() if p.endswith("/" + resource_name + f".{resource_type}")), ""
|
|
56
56
|
)
|
|
57
57
|
if not full_path:
|
|
58
|
-
return
|
|
58
|
+
return ""
|
|
59
59
|
return Path(full_path).relative_to(self.path).as_posix()
|
|
60
60
|
|
|
61
61
|
@property
|
|
@@ -117,14 +117,17 @@ class Project:
|
|
|
117
117
|
|
|
118
118
|
@staticmethod
|
|
119
119
|
def get_pipe_type(path: str) -> str:
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
120
|
+
try:
|
|
121
|
+
content = Path(path).read_text()
|
|
122
|
+
if re.search(r"TYPE endpoint", content, re.IGNORECASE):
|
|
123
|
+
return "endpoint"
|
|
124
|
+
elif re.search(r"TYPE materialized", content, re.IGNORECASE):
|
|
125
|
+
return "materialization"
|
|
126
|
+
elif re.search(r"TYPE copy", content, re.IGNORECASE):
|
|
127
|
+
return "copy"
|
|
128
|
+
return "pipe"
|
|
129
|
+
except Exception:
|
|
130
|
+
return "pipe"
|
|
128
131
|
|
|
129
132
|
@staticmethod
|
|
130
133
|
def is_kafka_connection(content: str) -> bool:
|
|
@@ -12,7 +12,7 @@ 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=X4tE9OrfaUy6kO9cqVEzyI9cDcmOF3IAssRRzsTsfEQ,40781
|
|
15
|
-
tinybird/tb/__cli__.py,sha256=
|
|
15
|
+
tinybird/tb/__cli__.py,sha256=A31k0_alwAsydUTvgmCa7MPs0dz2GMl_Z4CZADBVUXE,247
|
|
16
16
|
tinybird/tb/check_pypi.py,sha256=rW4QmDRbtgKdUUwJCnBkVjmTjZSZGN-XgZhx7vMkC0w,1009
|
|
17
17
|
tinybird/tb/cli.py,sha256=u3eGOhX0MHkuT6tiwaZ0_3twqLmqKXDAOxF7yV_Nn9Q,1075
|
|
18
18
|
tinybird/tb/client.py,sha256=CO-dQw8h28X6T6IO-Z79yPBKaJQT1Rwya5b6gexvw58,56491
|
|
@@ -25,8 +25,8 @@ tinybird/tb/modules/config.py,sha256=ziqW_t_mRVvWOd85VoB4vKyvgMkEfpXDf9H4v38p2xc
|
|
|
25
25
|
tinybird/tb/modules/connection.py,sha256=z1xWP2gtjKEbjc4ZF1aD7QUgl8V--wf2IRNy-4sRFm8,9779
|
|
26
26
|
tinybird/tb/modules/copy.py,sha256=2Mm4FWKehOG7CoOhiF1m9UZJgJn0W1_cMolqju8ONYg,5805
|
|
27
27
|
tinybird/tb/modules/create.py,sha256=2uW-4t7c7e4xkZ-GpK_8XaA-nuXwklq7rTks4k6qrtI,20917
|
|
28
|
-
tinybird/tb/modules/datasource.py,sha256=
|
|
29
|
-
tinybird/tb/modules/deployment.py,sha256=
|
|
28
|
+
tinybird/tb/modules/datasource.py,sha256=7r7wxU56Cabkg-rqNVOPkANHtMtZ03A1mWCCuK9t-8Q,37436
|
|
29
|
+
tinybird/tb/modules/deployment.py,sha256=QeLYvk6vNmOFC2FAvhR5tzFIYDkSCVgT08CGEIxr4fU,28154
|
|
30
30
|
tinybird/tb/modules/deprecations.py,sha256=rrszC1f_JJeJ8mUxGoCxckQTJFBCR8wREf4XXXN-PRc,4507
|
|
31
31
|
tinybird/tb/modules/dev_server.py,sha256=57FCKuWpErwYUYgHspYDkLWEm9F4pbvVOtMrFXX1fVU,10129
|
|
32
32
|
tinybird/tb/modules/endpoint.py,sha256=XySDt3pk66vxOZ0egUfz4bY8bEk3BjOXkv-L0OIJ3sc,12083
|
|
@@ -45,7 +45,7 @@ tinybird/tb/modules/materialization.py,sha256=QJX5kCPhhm6IXBO1JsalVfbQdypCe_eOUD
|
|
|
45
45
|
tinybird/tb/modules/mock.py,sha256=IyHweMUM6bUH8IhyiX2tTMpdVpTFUeAJ41lZ5P42-HQ,5303
|
|
46
46
|
tinybird/tb/modules/open.py,sha256=OuctINN77oexpSjth9uoIZPCelKO4Li-yyVxeSnk1io,1371
|
|
47
47
|
tinybird/tb/modules/pipe.py,sha256=AQKEDagO6e3psPVjJkS_MDbn8aK-apAiLp26k7jgAV0,2432
|
|
48
|
-
tinybird/tb/modules/project.py,sha256=
|
|
48
|
+
tinybird/tb/modules/project.py,sha256=xaXzLytWieNvSfK8DRvFJMXWxVNTAp4mI7Jkvozauoc,5599
|
|
49
49
|
tinybird/tb/modules/regions.py,sha256=QjsL5H6Kg-qr0aYVLrvb1STeJ5Sx_sjvbOYO0LrEGMk,166
|
|
50
50
|
tinybird/tb/modules/secret.py,sha256=WsqzxxLh9W_jkuHL2JofMXdIJy0lT5WEI-7bQSIDgAc,2921
|
|
51
51
|
tinybird/tb/modules/shell.py,sha256=Zd_4Ak_5tKVX-cw6B4ag36xZeEGHeh-jZpAsIXkoMoE,14116
|
|
@@ -80,8 +80,8 @@ tinybird/tb_cli_modules/config.py,sha256=IsgdtFRnUrkY8-Zo32lmk6O7u3bHie1QCxLwgp4
|
|
|
80
80
|
tinybird/tb_cli_modules/exceptions.py,sha256=pmucP4kTF4irIt7dXiG-FcnI-o3mvDusPmch1L8RCWk,3367
|
|
81
81
|
tinybird/tb_cli_modules/regions.py,sha256=QjsL5H6Kg-qr0aYVLrvb1STeJ5Sx_sjvbOYO0LrEGMk,166
|
|
82
82
|
tinybird/tb_cli_modules/telemetry.py,sha256=Hh2Io8ZPROSunbOLuMvuIFU4TqwWPmQTqal4WS09K1A,10449
|
|
83
|
-
tinybird-0.0.1.
|
|
84
|
-
tinybird-0.0.1.
|
|
85
|
-
tinybird-0.0.1.
|
|
86
|
-
tinybird-0.0.1.
|
|
87
|
-
tinybird-0.0.1.
|
|
83
|
+
tinybird-0.0.1.dev194.dist-info/METADATA,sha256=ZtecC4izAk4PNx6EEREBiE-FuZUZaPI7bQQIXt0cxGM,1608
|
|
84
|
+
tinybird-0.0.1.dev194.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
85
|
+
tinybird-0.0.1.dev194.dist-info/entry_points.txt,sha256=LwdHU6TfKx4Qs7BqqtaczEZbImgU7Abe9Lp920zb_fo,43
|
|
86
|
+
tinybird-0.0.1.dev194.dist-info/top_level.txt,sha256=VqqqEmkAy7UNaD8-V51FCoMMWXjLUlR0IstvK7tJYVY,54
|
|
87
|
+
tinybird-0.0.1.dev194.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|