tinybird 0.0.1.dev16__py3-none-any.whl → 0.0.1.dev17__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.

@@ -5,13 +5,13 @@ from pathlib import Path
5
5
  from typing import Optional
6
6
 
7
7
  import click
8
- from click import Context
8
+ import requests
9
9
 
10
10
  from tinybird.client import TinyB
11
11
  from tinybird.feedback_manager import FeedbackManager
12
12
  from tinybird.tb.modules.cicd import init_cicd
13
13
  from tinybird.tb.modules.cli import cli
14
- from tinybird.tb.modules.common import _generate_datafile, coro, generate_datafile
14
+ from tinybird.tb.modules.common import _generate_datafile, check_user_token, coro, generate_datafile
15
15
  from tinybird.tb.modules.config import CLIConfig
16
16
  from tinybird.tb.modules.datafile.fixture import build_fixture_name, persist_fixture
17
17
  from tinybird.tb.modules.exceptions import CLIException
@@ -46,7 +46,7 @@ from tinybird.tb.modules.llm import LLM
46
46
  @click.pass_context
47
47
  @coro
48
48
  async def create(
49
- ctx: Context,
49
+ ctx: click.Context,
50
50
  demo: bool,
51
51
  data: Optional[str],
52
52
  prompt: Optional[str],
@@ -56,7 +56,16 @@ async def create(
56
56
  """Initialize a new project."""
57
57
  folder = folder or getcwd()
58
58
  try:
59
- config = CLIConfig.get_project_config()
59
+ config = CLIConfig.get_project_config(folder)
60
+
61
+ if prompt:
62
+ user_token = config.get_user_token()
63
+ try:
64
+ await check_user_token(ctx, token=user_token)
65
+ except Exception:
66
+ click.echo(FeedbackManager.error(message="This action requires authentication. Run 'tb login' first."))
67
+ return
68
+
60
69
  tb_client = config.get_client()
61
70
  click.echo(FeedbackManager.gray(message="Creating new project structure..."))
62
71
  await project_create(tb_client, data, prompt, folder)
@@ -73,235 +82,55 @@ async def create(
73
82
  # Users datasource
74
83
  ds_name = "users"
75
84
  datasource_path = Path(folder) / "datasources" / f"{ds_name}.datasource"
76
- datasource_content = """SCHEMA >
77
- `id` String `json:$.id`,
78
- `organization_id` String `json:$.organization_id`,
79
- `tier` String `json:$.tier`
80
-
81
- ENGINE "MergeTree"
82
- ENGINE_SORTING_KEY "id, organization_id"
83
- """
85
+ datasource_content = fetch_gist_content(
86
+ "https://gist.githubusercontent.com/gnzjgo/b48fb9c92825ed27c04e3104b9e871e1/raw/1f33c20eefbabc4903f38e234329e028d8ef9def/users.datasource"
87
+ )
84
88
  datasource_path.write_text(datasource_content)
85
89
  click.echo(FeedbackManager.info(message=f"✓ /datasources/{ds_name}.datasource"))
86
90
 
91
+ # Users fixtures
92
+ fixture_content = fetch_gist_content(
93
+ "https://gist.githubusercontent.com/gnzjgo/8e8f66a39d7576ce3a2529bf773334a8/raw/9cab636767990e97d44a141867e5f226e992de8c/users.ndjson"
94
+ )
95
+ fixture_name = build_fixture_name(datasource_path.absolute(), ds_name, datasource_path.read_text())
96
+ persist_fixture(fixture_name, fixture_content)
97
+ click.echo(FeedbackManager.info(message=f"✓ /fixtures/{ds_name}"))
98
+
87
99
  # Events datasource
88
100
  ds_name = "events"
89
101
  datasource_path = Path(folder) / "datasources" / f"{ds_name}.datasource"
90
- datasource_content = """SCHEMA >
91
- `request_id` String `json:$.request_id`,
92
- `timestamp` DateTime64(3) `json:$.timestamp`,
93
- `user_id` String `json:$.user_id`,
94
- `type` String `json:$.request.type`,
95
- `endpoint` String `json:$.request.endpoint`,
96
- `model` String `json:$.request.model`,
97
- `request_options_temperature` String `json:$.request.options.temperature`,
98
- `request_options_max_tokens` Int32 `json:$.request.options.max_tokens`,
99
- `request_options_stream` Boolean `json:$.request.options.stream`,
100
- `usage_prompt_tokens` Int32 `json:$.usage.prompt_tokens`,
101
- `usage_completion_tokens` Int32 `json:$.usage.completion_tokens`,
102
- `usage_total_tokens` Int32 `json:$.usage.total_tokens`
103
-
104
- ENGINE "MergeTree"
105
- ENGINE_SORTING_KEY "user_id, timestamp"
106
- """
102
+ datasource_content = fetch_gist_content(
103
+ "https://gist.githubusercontent.com/gnzjgo/f8ca37b5b1f6707c75206b618de26bc9/raw/cd625da0dcd1ba8de29f12bc1c8600b9ff7c809c/events.datasource"
104
+ )
107
105
  datasource_path.write_text(datasource_content)
108
106
  click.echo(FeedbackManager.info(message=f"✓ /datasources/{ds_name}.datasource"))
109
107
 
110
- ds_name = "users"
111
- ds_content = """
112
- {"id":"usr_1","organization_id":"org_202","tier":"pro"}
113
- {"id":"usr_2","organization_id":"org_49","tier":"enterprise"}
114
- {"id":"usr_3","organization_id":"org_181","tier":"pro"}
115
- {"id":"usr_4","organization_id":"org_194","tier":"pro"}
116
- {"id":"usr_5","organization_id":"org_180","tier":"enterprise"}
117
- {"id":"usr_6","organization_id":"org_112","tier":"enterprise"}
118
- {"id":"usr_7","organization_id":"org_291","tier":"pro"}
119
- {"id":"usr_8","organization_id":"org_150","tier":"free"}
120
- {"id":"usr_9","organization_id":"org_127","tier":"enterprise"}
121
- {"id":"usr_10","organization_id":"org_279","tier":"enterprise"}
122
- {"id":"usr_11","organization_id":"org_58","tier":"pro"}
123
- {"id":"usr_12","organization_id":"org_183","tier":"pro"}
124
- {"id":"usr_13","organization_id":"org_2","tier":"pro"}
125
- {"id":"usr_14","organization_id":"org_15","tier":"free"}
126
- {"id":"usr_15","organization_id":"org_54","tier":"pro"}
127
- {"id":"usr_16","organization_id":"org_24","tier":"pro"}
128
- {"id":"usr_17","organization_id":"org_135","tier":"free"}
129
- {"id":"usr_18","organization_id":"org_76","tier":"enterprise"}
130
- {"id":"usr_19","organization_id":"org_166","tier":"enterprise"}
131
- {"id":"usr_20","organization_id":"org_203","tier":"pro"}
132
- {"id":"usr_21","organization_id":"org_103","tier":"pro"}
133
- {"id":"usr_22","organization_id":"org_178","tier":"pro"}
134
- {"id":"usr_23","organization_id":"org_41","tier":"pro"}
135
- {"id":"usr_24","organization_id":"org_197","tier":"enterprise"}
136
- {"id":"usr_25","organization_id":"org_21","tier":"pro"}
137
- {"id":"usr_26","organization_id":"org_180","tier":"enterprise"}
138
- {"id":"usr_27","organization_id":"org_216","tier":"enterprise"}
139
- {"id":"usr_28","organization_id":"org_117","tier":"enterprise"}
140
- {"id":"usr_29","organization_id":"org_73","tier":"pro"}
141
- {"id":"usr_30","organization_id":"org_92","tier":"enterprise"}
142
- {"id":"usr_31","organization_id":"org_272","tier":"enterprise"}
143
- {"id":"usr_32","organization_id":"org_58","tier":"pro"}
144
- {"id":"usr_33","organization_id":"org_158","tier":"pro"}
145
- {"id":"usr_34","organization_id":"org_12","tier":"free"}
146
- {"id":"usr_35","organization_id":"org_119","tier":"free"}
147
- {"id":"usr_36","organization_id":"org_272","tier":"pro"}
148
- {"id":"usr_37","organization_id":"org_1","tier":"enterprise"}
149
- {"id":"usr_38","organization_id":"org_262","tier":"enterprise"}
150
- {"id":"usr_39","organization_id":"org_189","tier":"pro"}
151
- {"id":"usr_40","organization_id":"org_126","tier":"free"}
152
- {"id":"usr_41","organization_id":"org_94","tier":"free"}
153
- {"id":"usr_42","organization_id":"org_156","tier":"free"}
154
- {"id":"usr_43","organization_id":"org_155","tier":"enterprise"}
155
- {"id":"usr_44","organization_id":"org_151","tier":"pro"}
156
- {"id":"usr_45","organization_id":"org_217","tier":"pro"}
157
- {"id":"usr_46","organization_id":"org_111","tier":"enterprise"}
158
- {"id":"usr_47","organization_id":"org_274","tier":"enterprise"}
159
- {"id":"usr_48","organization_id":"org_117","tier":"enterprise"}
160
- {"id":"usr_49","organization_id":"org_125","tier":"pro"}
161
- {"id":"usr_50","organization_id":"org_42","tier":"pro"}
162
- """
163
- persist_fixture(f"{ds_name}", ds_content)
164
- click.echo(FeedbackManager.info(message=f"✓ /fixtures/{ds_name}"))
165
-
166
- ds_name = "events"
167
- ds_content = """
168
- {"request_id":"req_1","timestamp":"2024-11-14T12:11:14.896Z","user_id":"usr_42","request":{"type":"chat","endpoint":"/v1/completions","model":"gpt-4","options":{"temperature":"0.8","max_tokens":1582,"stream":false}},"usage":{"prompt_tokens":499,"completion_tokens":123,"total_tokens":622}}
169
- {"request_id":"req_2","timestamp":"2024-10-06T10:32:09.164Z","user_id":"usr_20","request":{"type":"chat","endpoint":"/v1/images/generations","model":"gpt-3.5-turbo","options":{"temperature":"0.9","max_tokens":650,"stream":true}},"usage":{"prompt_tokens":384,"completion_tokens":103,"total_tokens":487}}
170
- {"request_id":"req_3","timestamp":"2024-11-19T03:49:26.569Z","user_id":"usr_27","request":{"type":"chat","endpoint":"/v1/images/generations","model":"gpt-4","options":{"temperature":"0.3","max_tokens":764,"stream":true}},"usage":{"prompt_tokens":63,"completion_tokens":284,"total_tokens":347}}
171
- {"request_id":"req_4","timestamp":"2024-11-09T09:13:05.359Z","user_id":"usr_8","request":{"type":"chat","endpoint":"/v1/completions","model":"claude-3-sonnet","options":{"temperature":"0.8","max_tokens":1790,"stream":true}},"usage":{"prompt_tokens":405,"completion_tokens":231,"total_tokens":636}}
172
- {"request_id":"req_5","timestamp":"2024-11-24T17:48:03.640Z","user_id":"usr_45","request":{"type":"chat","endpoint":"/v1/images/generations","model":"claude-3-sonnet","options":{"temperature":"1.0","max_tokens":1701,"stream":false}},"usage":{"prompt_tokens":342,"completion_tokens":258,"total_tokens":600}}
173
- {"request_id":"req_6","timestamp":"2024-11-10T02:07:53.241Z","user_id":"usr_49","request":{"type":"chat","endpoint":"/v1/completions","model":"gpt-3.5-turbo","options":{"temperature":"0.4","max_tokens":1049,"stream":false}},"usage":{"prompt_tokens":120,"completion_tokens":165,"total_tokens":285}}
174
- {"request_id":"req_7","timestamp":"2024-10-14T06:43:14.759Z","user_id":"usr_48","request":{"type":"chat","endpoint":"/v1/chat/completions","model":"gpt-4","options":{"temperature":"0.9","max_tokens":1548,"stream":true}},"usage":{"prompt_tokens":61,"completion_tokens":104,"total_tokens":165}}
175
- {"request_id":"req_8","timestamp":"2024-11-21T20:52:03.378Z","user_id":"usr_30","request":{"type":"chat","endpoint":"/v1/chat/completions","model":"gpt-3.5-turbo","options":{"temperature":"0.5","max_tokens":1742,"stream":true}},"usage":{"prompt_tokens":326,"completion_tokens":236,"total_tokens":562}}
176
- {"request_id":"req_9","timestamp":"2024-10-24T22:23:11.463Z","user_id":"usr_34","request":{"type":"chat","endpoint":"/v1/images/generations","model":"gpt-4","options":{"temperature":"0.5","max_tokens":748,"stream":true}},"usage":{"prompt_tokens":488,"completion_tokens":148,"total_tokens":636}}
177
- {"request_id":"req_10","timestamp":"2024-11-13T05:42:38.971Z","user_id":"usr_24","request":{"type":"chat","endpoint":"/v1/completions","model":"claude-3-sonnet","options":{"temperature":"0.3","max_tokens":1729,"stream":true}},"usage":{"prompt_tokens":262,"completion_tokens":162,"total_tokens":424}}
178
- {"request_id":"req_11","timestamp":"2024-10-21T07:20:51.693Z","user_id":"usr_1","request":{"type":"chat","endpoint":"/v1/chat/completions","model":"claude-3-opus","options":{"temperature":"0.3","max_tokens":1811,"stream":false}},"usage":{"prompt_tokens":342,"completion_tokens":274,"total_tokens":616}}
179
- {"request_id":"req_12","timestamp":"2024-11-15T06:03:07.775Z","user_id":"usr_21","request":{"type":"chat","endpoint":"/v1/chat/completions","model":"gpt-4","options":{"temperature":"0.3","max_tokens":1484,"stream":true}},"usage":{"prompt_tokens":273,"completion_tokens":266,"total_tokens":539}}
180
- {"request_id":"req_13","timestamp":"2024-11-29T18:31:23.125Z","user_id":"usr_41","request":{"type":"chat","endpoint":"/v1/images/generations","model":"claude-3-sonnet","options":{"temperature":"0.8","max_tokens":1812,"stream":true}},"usage":{"prompt_tokens":265,"completion_tokens":102,"total_tokens":367}}
181
- {"request_id":"req_14","timestamp":"2024-11-13T23:50:03.888Z","user_id":"usr_13","request":{"type":"chat","endpoint":"/v1/chat/completions","model":"gpt-3.5-turbo","options":{"temperature":"0.9","max_tokens":1694,"stream":false}},"usage":{"prompt_tokens":76,"completion_tokens":290,"total_tokens":366}}
182
- {"request_id":"req_15","timestamp":"2024-11-01T14:27:22.401Z","user_id":"usr_32","request":{"type":"chat","endpoint":"/v1/chat/completions","model":"claude-3-sonnet","options":{"temperature":"0.4","max_tokens":949,"stream":true}},"usage":{"prompt_tokens":105,"completion_tokens":197,"total_tokens":302}}
183
- {"request_id":"req_16","timestamp":"2024-11-12T09:13:06.447Z","user_id":"usr_2","request":{"type":"chat","endpoint":"/v1/images/generations","model":"gpt-4","options":{"temperature":"0.1","max_tokens":651,"stream":false}},"usage":{"prompt_tokens":348,"completion_tokens":80,"total_tokens":428}}
184
- {"request_id":"req_17","timestamp":"2024-11-09T21:09:51.044Z","user_id":"usr_24","request":{"type":"chat","endpoint":"/v1/completions","model":"claude-3-sonnet","options":{"temperature":"0.4","max_tokens":692,"stream":false}},"usage":{"prompt_tokens":195,"completion_tokens":178,"total_tokens":373}}
185
- {"request_id":"req_18","timestamp":"2024-11-06T13:38:08.873Z","user_id":"usr_49","request":{"type":"chat","endpoint":"/v1/chat/completions","model":"claude-3-opus","options":{"temperature":"0.4","max_tokens":1303,"stream":true}},"usage":{"prompt_tokens":304,"completion_tokens":73,"total_tokens":377}}
186
- {"request_id":"req_19","timestamp":"2024-11-06T20:47:35.718Z","user_id":"usr_33","request":{"type":"chat","endpoint":"/v1/images/generations","model":"claude-3-opus","options":{"temperature":"0.8","max_tokens":1359,"stream":true}},"usage":{"prompt_tokens":55,"completion_tokens":258,"total_tokens":313}}
187
- {"request_id":"req_20","timestamp":"2024-11-15T09:59:27.956Z","user_id":"usr_9","request":{"type":"chat","endpoint":"/v1/completions","model":"claude-3-opus","options":{"temperature":"0.6","max_tokens":1768,"stream":true}},"usage":{"prompt_tokens":310,"completion_tokens":62,"total_tokens":372}}
188
- {"request_id":"req_21","timestamp":"2024-11-17T03:46:10.219Z","user_id":"usr_6","request":{"type":"chat","endpoint":"/v1/images/generations","model":"claude-3-opus","options":{"temperature":"0.8","max_tokens":1967,"stream":true}},"usage":{"prompt_tokens":87,"completion_tokens":275,"total_tokens":362}}
189
- {"request_id":"req_22","timestamp":"2024-10-03T06:52:21.902Z","user_id":"usr_13","request":{"type":"chat","endpoint":"/v1/completions","model":"gpt-3.5-turbo","options":{"temperature":"0.8","max_tokens":1338,"stream":true}},"usage":{"prompt_tokens":332,"completion_tokens":137,"total_tokens":469}}
190
- {"request_id":"req_23","timestamp":"2024-11-10T02:53:06.630Z","user_id":"usr_16","request":{"type":"chat","endpoint":"/v1/chat/completions","model":"claude-3-opus","options":{"temperature":"0.1","max_tokens":1958,"stream":true}},"usage":{"prompt_tokens":444,"completion_tokens":294,"total_tokens":738}}
191
- {"request_id":"req_24","timestamp":"2024-10-10T04:11:45.410Z","user_id":"usr_44","request":{"type":"chat","endpoint":"/v1/images/generations","model":"gpt-3.5-turbo","options":{"temperature":"1.0","max_tokens":1241,"stream":false}},"usage":{"prompt_tokens":414,"completion_tokens":227,"total_tokens":641}}
192
- {"request_id":"req_25","timestamp":"2024-10-15T09:53:09.379Z","user_id":"usr_24","request":{"type":"chat","endpoint":"/v1/images/generations","model":"gpt-4","options":{"temperature":"0.4","max_tokens":1015,"stream":true}},"usage":{"prompt_tokens":433,"completion_tokens":119,"total_tokens":552}}
193
- {"request_id":"req_26","timestamp":"2024-11-16T16:40:38.042Z","user_id":"usr_8","request":{"type":"chat","endpoint":"/v1/images/generations","model":"gpt-3.5-turbo","options":{"temperature":"0.3","max_tokens":514,"stream":true}},"usage":{"prompt_tokens":86,"completion_tokens":241,"total_tokens":327}}
194
- {"request_id":"req_27","timestamp":"2024-10-06T11:34:58.073Z","user_id":"usr_40","request":{"type":"chat","endpoint":"/v1/completions","model":"gpt-3.5-turbo","options":{"temperature":"0.7","max_tokens":1752,"stream":true}},"usage":{"prompt_tokens":312,"completion_tokens":262,"total_tokens":574}}
195
- {"request_id":"req_28","timestamp":"2024-10-21T05:35:11.046Z","user_id":"usr_22","request":{"type":"chat","endpoint":"/v1/completions","model":"claude-3-sonnet","options":{"temperature":"0.5","max_tokens":1425,"stream":true}},"usage":{"prompt_tokens":50,"completion_tokens":182,"total_tokens":232}}
196
- {"request_id":"req_29","timestamp":"2024-10-11T06:14:52.973Z","user_id":"usr_4","request":{"type":"chat","endpoint":"/v1/chat/completions","model":"claude-3-sonnet","options":{"temperature":"0.4","max_tokens":1660,"stream":true}},"usage":{"prompt_tokens":384,"completion_tokens":124,"total_tokens":508}}
197
- {"request_id":"req_30","timestamp":"2024-11-13T10:48:53.729Z","user_id":"usr_22","request":{"type":"chat","endpoint":"/v1/completions","model":"gpt-4","options":{"temperature":"0.4","max_tokens":1425,"stream":true}},"usage":{"prompt_tokens":299,"completion_tokens":57,"total_tokens":356}}
198
- {"request_id":"req_31","timestamp":"2024-10-01T03:26:07.133Z","user_id":"usr_41","request":{"type":"chat","endpoint":"/v1/images/generations","model":"gpt-3.5-turbo","options":{"temperature":"0.8","max_tokens":1975,"stream":true}},"usage":{"prompt_tokens":471,"completion_tokens":245,"total_tokens":716}}
199
- {"request_id":"req_32","timestamp":"2024-11-26T12:13:53.221Z","user_id":"usr_33","request":{"type":"chat","endpoint":"/v1/chat/completions","model":"claude-3-opus","options":{"temperature":"0.5","max_tokens":557,"stream":false}},"usage":{"prompt_tokens":75,"completion_tokens":92,"total_tokens":167}}
200
- {"request_id":"req_33","timestamp":"2024-10-14T07:41:11.783Z","user_id":"usr_18","request":{"type":"chat","endpoint":"/v1/completions","model":"claude-3-opus","options":{"temperature":"1.0","max_tokens":843,"stream":false}},"usage":{"prompt_tokens":321,"completion_tokens":258,"total_tokens":579}}
201
- {"request_id":"req_34","timestamp":"2024-10-21T11:20:47.679Z","user_id":"usr_37","request":{"type":"chat","endpoint":"/v1/completions","model":"gpt-3.5-turbo","options":{"temperature":"0.7","max_tokens":1148,"stream":false}},"usage":{"prompt_tokens":425,"completion_tokens":245,"total_tokens":670}}
202
- {"request_id":"req_35","timestamp":"2024-11-18T12:02:12.268Z","user_id":"usr_38","request":{"type":"chat","endpoint":"/v1/images/generations","model":"claude-3-opus","options":{"temperature":"0.2","max_tokens":1987,"stream":false}},"usage":{"prompt_tokens":50,"completion_tokens":223,"total_tokens":273}}
203
- {"request_id":"req_36","timestamp":"2024-10-03T02:17:56.042Z","user_id":"usr_38","request":{"type":"chat","endpoint":"/v1/completions","model":"gpt-3.5-turbo","options":{"temperature":"0.2","max_tokens":1339,"stream":false}},"usage":{"prompt_tokens":102,"completion_tokens":112,"total_tokens":214}}
204
- {"request_id":"req_37","timestamp":"2024-11-02T19:52:17.904Z","user_id":"usr_34","request":{"type":"chat","endpoint":"/v1/images/generations","model":"claude-3-sonnet","options":{"temperature":"0.3","max_tokens":1050,"stream":false}},"usage":{"prompt_tokens":485,"completion_tokens":189,"total_tokens":674}}
205
- {"request_id":"req_38","timestamp":"2024-11-17T22:26:34.434Z","user_id":"usr_5","request":{"type":"chat","endpoint":"/v1/images/generations","model":"claude-3-sonnet","options":{"temperature":"0.6","max_tokens":857,"stream":false}},"usage":{"prompt_tokens":442,"completion_tokens":224,"total_tokens":666}}
206
- {"request_id":"req_39","timestamp":"2024-11-17T01:20:40.223Z","user_id":"usr_36","request":{"type":"chat","endpoint":"/v1/completions","model":"claude-3-sonnet","options":{"temperature":"0.9","max_tokens":698,"stream":true}},"usage":{"prompt_tokens":430,"completion_tokens":185,"total_tokens":615}}
207
- {"request_id":"req_40","timestamp":"2024-11-20T21:38:04.662Z","user_id":"usr_31","request":{"type":"chat","endpoint":"/v1/completions","model":"claude-3-sonnet","options":{"temperature":"0.3","max_tokens":1226,"stream":true}},"usage":{"prompt_tokens":201,"completion_tokens":65,"total_tokens":266}}
208
- {"request_id":"req_41","timestamp":"2024-11-07T11:20:55.217Z","user_id":"usr_34","request":{"type":"chat","endpoint":"/v1/images/generations","model":"claude-3-sonnet","options":{"temperature":"0.1","max_tokens":1893,"stream":false}},"usage":{"prompt_tokens":307,"completion_tokens":224,"total_tokens":531}}
209
- {"request_id":"req_42","timestamp":"2024-10-30T23:13:57.704Z","user_id":"usr_44","request":{"type":"chat","endpoint":"/v1/images/generations","model":"claude-3-opus","options":{"temperature":"0.3","max_tokens":888,"stream":false}},"usage":{"prompt_tokens":212,"completion_tokens":53,"total_tokens":265}}
210
- {"request_id":"req_43","timestamp":"2024-11-09T02:04:23.904Z","user_id":"usr_28","request":{"type":"chat","endpoint":"/v1/images/generations","model":"claude-3-sonnet","options":{"temperature":"0.3","max_tokens":1574,"stream":true}},"usage":{"prompt_tokens":161,"completion_tokens":190,"total_tokens":351}}
211
- {"request_id":"req_44","timestamp":"2024-11-20T21:28:23.931Z","user_id":"usr_22","request":{"type":"chat","endpoint":"/v1/completions","model":"claude-3-opus","options":{"temperature":"0.4","max_tokens":578,"stream":true}},"usage":{"prompt_tokens":465,"completion_tokens":294,"total_tokens":759}}
212
- {"request_id":"req_45","timestamp":"2024-11-15T14:02:11.552Z","user_id":"usr_2","request":{"type":"chat","endpoint":"/v1/completions","model":"claude-3-opus","options":{"temperature":"0.4","max_tokens":502,"stream":true}},"usage":{"prompt_tokens":489,"completion_tokens":288,"total_tokens":777}}
213
- {"request_id":"req_46","timestamp":"2024-10-22T23:05:29.902Z","user_id":"usr_15","request":{"type":"chat","endpoint":"/v1/chat/completions","model":"gpt-4","options":{"temperature":"0.5","max_tokens":1280,"stream":true}},"usage":{"prompt_tokens":462,"completion_tokens":283,"total_tokens":745}}
214
- {"request_id":"req_47","timestamp":"2024-10-28T01:16:36.936Z","user_id":"usr_28","request":{"type":"chat","endpoint":"/v1/images/generations","model":"gpt-3.5-turbo","options":{"temperature":"0.4","max_tokens":1513,"stream":true}},"usage":{"prompt_tokens":421,"completion_tokens":204,"total_tokens":625}}
215
- {"request_id":"req_48","timestamp":"2024-11-20T18:18:38.744Z","user_id":"usr_4","request":{"type":"chat","endpoint":"/v1/chat/completions","model":"gpt-3.5-turbo","options":{"temperature":"0.8","max_tokens":1194,"stream":true}},"usage":{"prompt_tokens":251,"completion_tokens":109,"total_tokens":360}}
216
- {"request_id":"req_49","timestamp":"2024-10-12T17:21:20.482Z","user_id":"usr_11","request":{"type":"chat","endpoint":"/v1/chat/completions","model":"gpt-3.5-turbo","options":{"temperature":"0.3","max_tokens":621,"stream":false}},"usage":{"prompt_tokens":195,"completion_tokens":253,"total_tokens":448}}
217
- {"request_id":"req_50","timestamp":"2024-11-27T14:14:23.737Z","user_id":"usr_8","request":{"type":"chat","endpoint":"/v1/chat/completions","model":"gpt-4","options":{"temperature":"0.0","max_tokens":1468,"stream":true}},"usage":{"prompt_tokens":461,"completion_tokens":100,"total_tokens":561}}
218
- {"request_id":"req_51","timestamp":"2024-10-15T14:58:09.623Z","user_id":"usr_48","request":{"type":"chat","endpoint":"/v1/images/generations","model":"claude-3-opus","options":{"temperature":"1.0","max_tokens":1879,"stream":false}},"usage":{"prompt_tokens":51,"completion_tokens":215,"total_tokens":266}}
219
- {"request_id":"req_52","timestamp":"2024-11-18T00:55:43.893Z","user_id":"usr_48","request":{"type":"chat","endpoint":"/v1/images/generations","model":"claude-3-sonnet","options":{"temperature":"0.2","max_tokens":549,"stream":false}},"usage":{"prompt_tokens":481,"completion_tokens":142,"total_tokens":623}}
220
- {"request_id":"req_53","timestamp":"2024-11-01T03:22:01.890Z","user_id":"usr_14","request":{"type":"chat","endpoint":"/v1/completions","model":"gpt-3.5-turbo","options":{"temperature":"0.8","max_tokens":1771,"stream":false}},"usage":{"prompt_tokens":459,"completion_tokens":79,"total_tokens":538}}
221
- {"request_id":"req_54","timestamp":"2024-10-26T08:57:25.867Z","user_id":"usr_17","request":{"type":"chat","endpoint":"/v1/images/generations","model":"claude-3-opus","options":{"temperature":"0.4","max_tokens":1888,"stream":false}},"usage":{"prompt_tokens":219,"completion_tokens":226,"total_tokens":445}}
222
- {"request_id":"req_55","timestamp":"2024-11-17T16:12:47.424Z","user_id":"usr_43","request":{"type":"chat","endpoint":"/v1/images/generations","model":"gpt-4","options":{"temperature":"0.0","max_tokens":1281,"stream":false}},"usage":{"prompt_tokens":426,"completion_tokens":244,"total_tokens":670}}
223
- {"request_id":"req_56","timestamp":"2024-10-10T01:03:29.669Z","user_id":"usr_6","request":{"type":"chat","endpoint":"/v1/completions","model":"gpt-3.5-turbo","options":{"temperature":"0.3","max_tokens":1004,"stream":false}},"usage":{"prompt_tokens":420,"completion_tokens":69,"total_tokens":489}}
224
- {"request_id":"req_57","timestamp":"2024-10-10T19:18:37.937Z","user_id":"usr_30","request":{"type":"chat","endpoint":"/v1/images/generations","model":"gpt-4","options":{"temperature":"0.7","max_tokens":1209,"stream":true}},"usage":{"prompt_tokens":59,"completion_tokens":66,"total_tokens":125}}
225
- {"request_id":"req_58","timestamp":"2024-10-07T19:20:21.754Z","user_id":"usr_4","request":{"type":"chat","endpoint":"/v1/completions","model":"gpt-3.5-turbo","options":{"temperature":"0.5","max_tokens":1215,"stream":true}},"usage":{"prompt_tokens":197,"completion_tokens":201,"total_tokens":398}}
226
- {"request_id":"req_59","timestamp":"2024-10-12T07:54:12.535Z","user_id":"usr_35","request":{"type":"chat","endpoint":"/v1/completions","model":"gpt-4","options":{"temperature":"0.1","max_tokens":1445,"stream":false}},"usage":{"prompt_tokens":318,"completion_tokens":111,"total_tokens":429}}
227
- {"request_id":"req_60","timestamp":"2024-11-04T00:11:56.488Z","user_id":"usr_3","request":{"type":"chat","endpoint":"/v1/images/generations","model":"gpt-3.5-turbo","options":{"temperature":"1.0","max_tokens":1127,"stream":true}},"usage":{"prompt_tokens":286,"completion_tokens":293,"total_tokens":579}}
228
- {"request_id":"req_61","timestamp":"2024-10-15T10:29:51.122Z","user_id":"usr_36","request":{"type":"chat","endpoint":"/v1/completions","model":"gpt-3.5-turbo","options":{"temperature":"0.9","max_tokens":1810,"stream":false}},"usage":{"prompt_tokens":308,"completion_tokens":238,"total_tokens":546}}
229
- {"request_id":"req_62","timestamp":"2024-10-15T07:46:39.995Z","user_id":"usr_36","request":{"type":"chat","endpoint":"/v1/completions","model":"gpt-3.5-turbo","options":{"temperature":"0.8","max_tokens":736,"stream":true}},"usage":{"prompt_tokens":102,"completion_tokens":194,"total_tokens":296}}
230
- {"request_id":"req_63","timestamp":"2024-10-25T11:39:09.912Z","user_id":"usr_37","request":{"type":"chat","endpoint":"/v1/chat/completions","model":"gpt-3.5-turbo","options":{"temperature":"0.5","max_tokens":1112,"stream":true}},"usage":{"prompt_tokens":211,"completion_tokens":139,"total_tokens":350}}
231
- {"request_id":"req_64","timestamp":"2024-10-20T16:35:00.170Z","user_id":"usr_32","request":{"type":"chat","endpoint":"/v1/chat/completions","model":"gpt-4","options":{"temperature":"0.2","max_tokens":535,"stream":true}},"usage":{"prompt_tokens":355,"completion_tokens":116,"total_tokens":471}}
232
- {"request_id":"req_65","timestamp":"2024-11-27T04:31:51.172Z","user_id":"usr_44","request":{"type":"chat","endpoint":"/v1/images/generations","model":"gpt-3.5-turbo","options":{"temperature":"0.3","max_tokens":838,"stream":true}},"usage":{"prompt_tokens":468,"completion_tokens":298,"total_tokens":766}}
233
- {"request_id":"req_66","timestamp":"2024-10-26T17:30:31.696Z","user_id":"usr_12","request":{"type":"chat","endpoint":"/v1/chat/completions","model":"claude-3-sonnet","options":{"temperature":"0.7","max_tokens":505,"stream":true}},"usage":{"prompt_tokens":190,"completion_tokens":207,"total_tokens":397}}
234
- {"request_id":"req_67","timestamp":"2024-10-04T02:09:21.280Z","user_id":"usr_31","request":{"type":"chat","endpoint":"/v1/images/generations","model":"gpt-4","options":{"temperature":"1.0","max_tokens":886,"stream":false}},"usage":{"prompt_tokens":264,"completion_tokens":60,"total_tokens":324}}
235
- {"request_id":"req_68","timestamp":"2024-11-14T09:34:25.291Z","user_id":"usr_17","request":{"type":"chat","endpoint":"/v1/images/generations","model":"gpt-3.5-turbo","options":{"temperature":"0.5","max_tokens":1794,"stream":true}},"usage":{"prompt_tokens":166,"completion_tokens":133,"total_tokens":299}}
236
- {"request_id":"req_69","timestamp":"2024-10-13T20:06:12.700Z","user_id":"usr_18","request":{"type":"chat","endpoint":"/v1/completions","model":"gpt-3.5-turbo","options":{"temperature":"0.6","max_tokens":555,"stream":false}},"usage":{"prompt_tokens":247,"completion_tokens":149,"total_tokens":396}}
237
- {"request_id":"req_70","timestamp":"2024-10-05T01:45:08.193Z","user_id":"usr_31","request":{"type":"chat","endpoint":"/v1/completions","model":"claude-3-sonnet","options":{"temperature":"0.9","max_tokens":1428,"stream":true}},"usage":{"prompt_tokens":54,"completion_tokens":132,"total_tokens":186}}
238
- {"request_id":"req_71","timestamp":"2024-11-15T22:14:55.479Z","user_id":"usr_18","request":{"type":"chat","endpoint":"/v1/images/generations","model":"claude-3-opus","options":{"temperature":"0.5","max_tokens":650,"stream":false}},"usage":{"prompt_tokens":65,"completion_tokens":206,"total_tokens":271}}
239
- {"request_id":"req_72","timestamp":"2024-11-09T06:44:07.284Z","user_id":"usr_43","request":{"type":"chat","endpoint":"/v1/images/generations","model":"claude-3-sonnet","options":{"temperature":"0.2","max_tokens":1363,"stream":false}},"usage":{"prompt_tokens":443,"completion_tokens":284,"total_tokens":727}}
240
- {"request_id":"req_73","timestamp":"2024-11-06T01:10:44.917Z","user_id":"usr_24","request":{"type":"chat","endpoint":"/v1/completions","model":"gpt-4","options":{"temperature":"0.4","max_tokens":1927,"stream":true}},"usage":{"prompt_tokens":495,"completion_tokens":216,"total_tokens":711}}
241
- {"request_id":"req_74","timestamp":"2024-10-19T14:43:49.854Z","user_id":"usr_26","request":{"type":"chat","endpoint":"/v1/chat/completions","model":"gpt-3.5-turbo","options":{"temperature":"0.4","max_tokens":679,"stream":false}},"usage":{"prompt_tokens":221,"completion_tokens":286,"total_tokens":507}}
242
- {"request_id":"req_75","timestamp":"2024-10-05T06:19:28.703Z","user_id":"usr_25","request":{"type":"chat","endpoint":"/v1/completions","model":"claude-3-opus","options":{"temperature":"0.8","max_tokens":1614,"stream":false}},"usage":{"prompt_tokens":59,"completion_tokens":93,"total_tokens":152}}
243
- {"request_id":"req_76","timestamp":"2024-11-04T22:29:57.675Z","user_id":"usr_33","request":{"type":"chat","endpoint":"/v1/completions","model":"claude-3-sonnet","options":{"temperature":"0.9","max_tokens":1491,"stream":false}},"usage":{"prompt_tokens":90,"completion_tokens":120,"total_tokens":210}}
244
- {"request_id":"req_77","timestamp":"2024-11-08T02:17:28.909Z","user_id":"usr_4","request":{"type":"chat","endpoint":"/v1/images/generations","model":"gpt-3.5-turbo","options":{"temperature":"0.0","max_tokens":1324,"stream":true}},"usage":{"prompt_tokens":355,"completion_tokens":102,"total_tokens":457}}
245
- {"request_id":"req_78","timestamp":"2024-10-24T15:25:14.046Z","user_id":"usr_39","request":{"type":"chat","endpoint":"/v1/images/generations","model":"claude-3-opus","options":{"temperature":"0.8","max_tokens":1529,"stream":false}},"usage":{"prompt_tokens":208,"completion_tokens":141,"total_tokens":349}}
246
- {"request_id":"req_79","timestamp":"2024-10-27T13:01:16.190Z","user_id":"usr_40","request":{"type":"chat","endpoint":"/v1/chat/completions","model":"claude-3-opus","options":{"temperature":"0.0","max_tokens":1638,"stream":false}},"usage":{"prompt_tokens":243,"completion_tokens":274,"total_tokens":517}}
247
- {"request_id":"req_80","timestamp":"2024-11-22T13:07:16.699Z","user_id":"usr_24","request":{"type":"chat","endpoint":"/v1/chat/completions","model":"gpt-3.5-turbo","options":{"temperature":"0.4","max_tokens":1397,"stream":true}},"usage":{"prompt_tokens":263,"completion_tokens":185,"total_tokens":448}}
248
- {"request_id":"req_81","timestamp":"2024-11-29T03:35:54.264Z","user_id":"usr_26","request":{"type":"chat","endpoint":"/v1/chat/completions","model":"gpt-4","options":{"temperature":"0.1","max_tokens":1521,"stream":false}},"usage":{"prompt_tokens":273,"completion_tokens":199,"total_tokens":472}}
249
- {"request_id":"req_82","timestamp":"2024-11-20T08:27:02.022Z","user_id":"usr_38","request":{"type":"chat","endpoint":"/v1/chat/completions","model":"claude-3-opus","options":{"temperature":"0.6","max_tokens":1463,"stream":true}},"usage":{"prompt_tokens":192,"completion_tokens":120,"total_tokens":312}}
250
- {"request_id":"req_83","timestamp":"2024-11-09T10:38:51.640Z","user_id":"usr_24","request":{"type":"chat","endpoint":"/v1/images/generations","model":"gpt-3.5-turbo","options":{"temperature":"1.0","max_tokens":1574,"stream":false}},"usage":{"prompt_tokens":406,"completion_tokens":58,"total_tokens":464}}
251
- {"request_id":"req_84","timestamp":"2024-10-29T18:37:34.187Z","user_id":"usr_16","request":{"type":"chat","endpoint":"/v1/completions","model":"claude-3-opus","options":{"temperature":"0.1","max_tokens":1924,"stream":true}},"usage":{"prompt_tokens":237,"completion_tokens":284,"total_tokens":521}}
252
- {"request_id":"req_85","timestamp":"2024-10-17T21:47:26.419Z","user_id":"usr_49","request":{"type":"chat","endpoint":"/v1/completions","model":"claude-3-opus","options":{"temperature":"0.7","max_tokens":1714,"stream":false}},"usage":{"prompt_tokens":114,"completion_tokens":194,"total_tokens":308}}
253
- {"request_id":"req_86","timestamp":"2024-10-13T16:59:19.264Z","user_id":"usr_40","request":{"type":"chat","endpoint":"/v1/completions","model":"gpt-3.5-turbo","options":{"temperature":"0.8","max_tokens":520,"stream":true}},"usage":{"prompt_tokens":227,"completion_tokens":190,"total_tokens":417}}
254
- {"request_id":"req_87","timestamp":"2024-10-25T06:47:20.855Z","user_id":"usr_48","request":{"type":"chat","endpoint":"/v1/completions","model":"claude-3-sonnet","options":{"temperature":"0.3","max_tokens":1904,"stream":false}},"usage":{"prompt_tokens":476,"completion_tokens":96,"total_tokens":572}}
255
- {"request_id":"req_88","timestamp":"2024-11-05T07:30:25.734Z","user_id":"usr_4","request":{"type":"chat","endpoint":"/v1/chat/completions","model":"gpt-3.5-turbo","options":{"temperature":"0.9","max_tokens":535,"stream":false}},"usage":{"prompt_tokens":399,"completion_tokens":217,"total_tokens":616}}
256
- {"request_id":"req_89","timestamp":"2024-11-13T01:46:36.632Z","user_id":"usr_20","request":{"type":"chat","endpoint":"/v1/completions","model":"gpt-4","options":{"temperature":"0.4","max_tokens":1260,"stream":true}},"usage":{"prompt_tokens":189,"completion_tokens":159,"total_tokens":348}}
257
- {"request_id":"req_90","timestamp":"2024-11-29T06:17:41.475Z","user_id":"usr_7","request":{"type":"chat","endpoint":"/v1/chat/completions","model":"claude-3-sonnet","options":{"temperature":"0.5","max_tokens":1105,"stream":false}},"usage":{"prompt_tokens":164,"completion_tokens":223,"total_tokens":387}}
258
- {"request_id":"req_91","timestamp":"2024-11-21T21:18:42.618Z","user_id":"usr_31","request":{"type":"chat","endpoint":"/v1/chat/completions","model":"gpt-3.5-turbo","options":{"temperature":"0.1","max_tokens":1899,"stream":false}},"usage":{"prompt_tokens":424,"completion_tokens":121,"total_tokens":545}}
259
- {"request_id":"req_92","timestamp":"2024-10-13T04:50:06.616Z","user_id":"usr_20","request":{"type":"chat","endpoint":"/v1/completions","model":"gpt-4","options":{"temperature":"0.6","max_tokens":752,"stream":true}},"usage":{"prompt_tokens":400,"completion_tokens":160,"total_tokens":560}}
260
- {"request_id":"req_93","timestamp":"2024-10-06T12:44:26.578Z","user_id":"usr_18","request":{"type":"chat","endpoint":"/v1/images/generations","model":"gpt-4","options":{"temperature":"0.4","max_tokens":1916,"stream":false}},"usage":{"prompt_tokens":193,"completion_tokens":299,"total_tokens":492}}
261
- {"request_id":"req_94","timestamp":"2024-11-16T12:40:44.907Z","user_id":"usr_46","request":{"type":"chat","endpoint":"/v1/completions","model":"claude-3-sonnet","options":{"temperature":"0.9","max_tokens":1612,"stream":false}},"usage":{"prompt_tokens":149,"completion_tokens":181,"total_tokens":330}}
262
- {"request_id":"req_95","timestamp":"2024-10-28T14:02:47.893Z","user_id":"usr_21","request":{"type":"chat","endpoint":"/v1/chat/completions","model":"gpt-3.5-turbo","options":{"temperature":"0.6","max_tokens":1378,"stream":true}},"usage":{"prompt_tokens":363,"completion_tokens":292,"total_tokens":655}}
263
- {"request_id":"req_96","timestamp":"2024-10-24T10:13:34.492Z","user_id":"usr_9","request":{"type":"chat","endpoint":"/v1/images/generations","model":"claude-3-opus","options":{"temperature":"0.2","max_tokens":1055,"stream":true}},"usage":{"prompt_tokens":463,"completion_tokens":252,"total_tokens":715}}
264
- {"request_id":"req_97","timestamp":"2024-10-25T05:35:39.972Z","user_id":"usr_32","request":{"type":"chat","endpoint":"/v1/completions","model":"gpt-3.5-turbo","options":{"temperature":"0.1","max_tokens":877,"stream":false}},"usage":{"prompt_tokens":451,"completion_tokens":211,"total_tokens":662}}
265
- {"request_id":"req_98","timestamp":"2024-10-30T12:55:53.621Z","user_id":"usr_21","request":{"type":"chat","endpoint":"/v1/images/generations","model":"claude-3-sonnet","options":{"temperature":"0.8","max_tokens":1966,"stream":true}},"usage":{"prompt_tokens":497,"completion_tokens":93,"total_tokens":590}}
266
- {"request_id":"req_99","timestamp":"2024-11-14T11:31:10.758Z","user_id":"usr_11","request":{"type":"chat","endpoint":"/v1/completions","model":"gpt-4","options":{"temperature":"0.4","max_tokens":564,"stream":true}},"usage":{"prompt_tokens":244,"completion_tokens":154,"total_tokens":398}}
267
- {"request_id":"req_100","timestamp":"2024-11-22T13:43:33.802Z","user_id":"usr_25","request":{"type":"chat","endpoint":"/v1/images/generations","model":"gpt-4","options":{"temperature":"0.9","max_tokens":1096,"stream":true}},"usage":{"prompt_tokens":58,"completion_tokens":274,"total_tokens":332}}
268
- """
269
- persist_fixture(f"{ds_name}", ds_content)
108
+ # Events fixtures
109
+ fixture_content = fetch_gist_content(
110
+ "https://gist.githubusercontent.com/gnzjgo/859ab9439c17e77241d0c14a5a532809/raw/251f2f3f00a968f8759ec4068cebde915256b054/events.ndjson"
111
+ )
112
+ fixture_name = build_fixture_name(datasource_path.absolute(), ds_name, datasource_path.read_text())
113
+ persist_fixture(fixture_name, fixture_content)
270
114
  click.echo(FeedbackManager.info(message=f"✓ /fixtures/{ds_name}"))
271
115
 
272
116
  # Create sample endpoint
273
117
  pipe_name = "api_token_usage"
274
118
  pipe_path = Path(folder) / "endpoints" / f"{pipe_name}.pipe"
275
- pipe_content = """DESCRIPTION >
276
- Pipe to generate a token usage timeline.
277
-
278
- NODE api_token_usage_node_1
279
- SQL >
280
- %
281
- SELECT
282
- toDate(timestamp) as date,
283
- user_id,
284
- sum(usage_total_tokens) as total_tokens
285
- FROM
286
- events
287
- WHERE
288
- user_id IN (SELECT id FROM users WHERE organization_id = {{String(organization_id)}})
289
- {%if defined(start_date) and defined(end_date)%}
290
- AND timestamp BETWEEN {{DateTime(start_date)}} AND {{DateTime(end_date)}}
291
- {%else%}
292
- AND timestamp BETWEEN now() - interval 30 day AND now()
293
- {%end%}
294
- GROUP BY
295
- date, user_id
296
- ORDER BY
297
- date
298
-
299
- TYPE Endpoint
300
-
301
- """
119
+ pipe_content = fetch_gist_content(
120
+ "https://gist.githubusercontent.com/gnzjgo/68ecc47472c2b754b0ae0c1187022963/raw/52cc3aa3afdf939e58d43355bfe4ddc739989ddd/api_token_usage.pipe"
121
+ )
302
122
  pipe_path.write_text(pipe_content)
303
123
  click.echo(FeedbackManager.info(message=f"✓ /endpoints/{pipe_name}.pipe"))
304
124
 
125
+ # Create sample test
126
+ test_name = "api_token_usage"
127
+ test_path = Path(folder) / "tests" / f"{test_name}.yaml"
128
+ test_content = fetch_gist_content(
129
+ "https://gist.githubusercontent.com/gnzjgo/e58620bbb977d6f42f1d0c2a7b46ac8f/raw/a5f61d5019111f937484f941111829dfce69f648/api_token_usage.yaml"
130
+ )
131
+ test_path.write_text(test_content)
132
+ click.echo(FeedbackManager.info(message=f"✓ /tests/{test_name}.yaml"))
133
+
305
134
  elif data:
306
135
  ds_name = os.path.basename(data.split(".")[0])
307
136
  data_content = Path(data).read_text()
@@ -336,7 +165,7 @@ async def project_create(
336
165
  prompt: Optional[str],
337
166
  folder: str,
338
167
  ):
339
- project_paths = ["datasources", "endpoints", "materializations", "copies", "sinks", "fixtures"]
168
+ project_paths = ["datasources", "endpoints", "materializations", "copies", "sinks", "fixtures", "tests"]
340
169
  force = True
341
170
  for x in project_paths:
342
171
  try:
@@ -352,7 +181,7 @@ async def project_create(
352
181
  try:
353
182
  await _generate_datafile(str(path), client, format=format, force=force)
354
183
  except Exception as e:
355
- click.echo(FeedbackManager.error(message=f"Ersssssror: {str(e)}"))
184
+ click.echo(FeedbackManager.error(message=f"Error: {str(e)}"))
356
185
  name = data.split(".")[0]
357
186
  generate_pipe_file(
358
187
  f"{name}_endpoint",
@@ -409,3 +238,9 @@ def generate_pipe_file(name: str, content: str, folder: str):
409
238
  with open(f"{f}", "w") as file:
410
239
  file.write(content)
411
240
  click.echo(FeedbackManager.info_file_created(file=f.relative_to(folder)))
241
+
242
+
243
+ def fetch_gist_content(url: str) -> str: # TODO: replace this with a function that fetches the content from a repo
244
+ response = requests.get(url)
245
+ response.raise_for_status()
246
+ return response.text
@@ -266,7 +266,7 @@ async def new_pipe(
266
266
 
267
267
  if data.get("type") == "endpoint":
268
268
  token = tb_client.token
269
- print(f"""** => Test endpoint with:\n** $ curl {host}/v0/pipes/{p["name"]}.json?token={token}""") # noqa: T201
269
+ click.echo(f"""** => Test endpoint with:\n** $ curl {host}/v0/pipes/{p["name"]}.json?token={token}""")
270
270
 
271
271
 
272
272
  async def get_token_from_main_branch(branch_tb_client: TinyB) -> Optional[str]:
@@ -21,7 +21,6 @@ if TYPE_CHECKING:
21
21
  from tinybird.connectors import Connector
22
22
 
23
23
  from tinybird.feedback_manager import FeedbackManager
24
- from tinybird.tb.modules.branch import warn_if_in_live
25
24
  from tinybird.tb.modules.cli import cli
26
25
  from tinybird.tb.modules.common import (
27
26
  _analyze,
@@ -358,9 +357,6 @@ async def datasource_delete(ctx: Context, datasource_name: str, yes: bool):
358
357
  FeedbackManager.error_datasource_can_not_be_deleted(datasource=datasource_name, error=e)
359
358
  )
360
359
 
361
- semver: str = ctx.ensure_object(dict)["config"]["semver"]
362
- await warn_if_in_live(semver)
363
-
364
360
  if yes or click.confirm(
365
361
  FeedbackManager.warning_confirm_delete_datasource(
366
362
  warning_message=warning_message, dependencies_information=dependencies_information
@@ -391,9 +387,6 @@ async def datasource_delete(ctx: Context, datasource_name: str, yes: bool):
391
387
  async def datasource_truncate(ctx, datasource_name, yes, cascade):
392
388
  """Truncate a data source"""
393
389
 
394
- semver: str = ctx.ensure_object(dict)["config"]["semver"]
395
- await warn_if_in_live(semver)
396
-
397
390
  client = ctx.obj["client"]
398
391
  if yes or click.confirm(FeedbackManager.warning_confirm_truncate_datasource(datasource=datasource_name)):
399
392
  try:
@@ -453,9 +446,6 @@ async def datasource_delete_rows(ctx, datasource_name, sql_condition, yes, wait,
453
446
  - Delete rows with SQL condition and wait for the job to finish: `tb datasource delete [datasource_name] --sql-condition "country='ES'" --wait`
454
447
  """
455
448
 
456
- semver: str = ctx.ensure_object(dict)["config"]["semver"]
457
- await warn_if_in_live(semver)
458
-
459
449
  client: TinyB = ctx.ensure_object(dict)["client"]
460
450
  if (
461
451
  dry_run
@@ -17,7 +17,6 @@ import tinybird.context as context
17
17
  from tinybird.client import AuthNoTokenException, DoesNotExistException, TinyB
18
18
  from tinybird.config import DEFAULT_API_HOST, FeatureFlags
19
19
  from tinybird.feedback_manager import FeedbackManager
20
- from tinybird.tb.modules.branch import warn_if_in_live
21
20
  from tinybird.tb.modules.cli import cli
22
21
  from tinybird.tb.modules.common import (
23
22
  coro,
@@ -499,9 +498,6 @@ async def pipe_delete(ctx: click.Context, pipe_name_or_id: str, yes: bool):
499
498
  result = await process_file(file_path, client)
500
499
  pipe_name_or_id = result[0]["name"]
501
500
 
502
- semver: str = ctx.ensure_object(dict)["config"]["semver"]
503
- await warn_if_in_live(semver)
504
-
505
501
  if yes or click.confirm(FeedbackManager.warning_confirm_delete_pipe(pipe=pipe_name_or_id)):
506
502
  try:
507
503
  await client.pipe_delete(pipe_name_or_id)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tinybird
3
- Version: 0.0.1.dev16
3
+ Version: 0.0.1.dev17
4
4
  Summary: Tinybird Command Line Tool
5
5
  Home-page: https://www.tinybird.co/docs/cli/introduction.html
6
6
  Author: Tinybird
@@ -15,18 +15,17 @@ tinybird/syncasync.py,sha256=fAvq0qkRgqXqXMKwbY2iJNYqLT_r6mDsh1MRpGKrdRU,27763
15
15
  tinybird/tornado_template.py,sha256=o2HguxrL1Evnt8o3IvrsI8Zm6JtRQ3zhLJKf1XyR3SQ,41965
16
16
  tinybird/ch_utils/constants.py,sha256=aYvg2C_WxYWsnqPdZB1ZFoIr8ZY-XjUXYyHKE9Ansj0,3890
17
17
  tinybird/ch_utils/engine.py,sha256=OXkBhlzGjZotjD0vaT-rFIbSGV4tpiHxE8qO_ip0SyQ,40454
18
- tinybird/tb/cli.py,sha256=VS9cy6FfiQkpc1-ps7snwuw7bB_F8Z6FEmucEo3jrzY,849
18
+ tinybird/tb/cli.py,sha256=onCxcKvTV4RuokC5V3t82OXWAIwgU6pMWs8rpWOUi_o,815
19
19
  tinybird/tb/modules/auth.py,sha256=hynZ-Temot8YBsySUWKSFzZlYadtFPxG3o6lCSu1n6E,9018
20
- tinybird/tb/modules/branch.py,sha256=R1tTUBGyI0p_dt2IAWbuyNOvemhjCIPwYxEmOxL3zOg,38468
21
- tinybird/tb/modules/build.py,sha256=c9fC9qBSw7__MJreJZIpHGvKD6CgyL0zMtparmJCUgw,8001
22
- tinybird/tb/modules/build_shell.py,sha256=oqIMZYaQ8cpaE1C09shAsiFUlWb-zwawuf6FLqRotBU,5209
20
+ tinybird/tb/modules/build.py,sha256=3YEcUBSsp8DREyox5x27BabcdYHFEokGnQ-f8-etDmo,8412
21
+ tinybird/tb/modules/build_shell.py,sha256=jN06ZT7BK3lHtMgBjaOn4sD6yooUy9v8uuZnE-jjmlU,5485
23
22
  tinybird/tb/modules/cicd.py,sha256=KCFfywFfvGRh24GZwqrhICiTK_arHelPs_X4EB-pXIw,7331
24
- tinybird/tb/modules/cli.py,sha256=UAVZfdQhw-zKokKlEL23Uup55adT1JVwcK9HPDv6TJQ,55759
25
- tinybird/tb/modules/common.py,sha256=Vubc2AIR8BfEupnT5e1Y8OYGEyvNoIcjo8th-SaUflw,80111
26
- tinybird/tb/modules/config.py,sha256=ppWvACHrSLkb5hOoQLYNby2w8jR76-8Kx2NBCst7ntQ,11760
23
+ tinybird/tb/modules/cli.py,sha256=PRURYKphzjqVltMG647D8ADGS-YFR2rAkDNEwUTTDjk,53082
24
+ tinybird/tb/modules/common.py,sha256=ZvkuI1JYVVwBZOZ9VDiNLR_-HHRavTHqSe6uVPJ8MS4,76431
25
+ tinybird/tb/modules/config.py,sha256=ri4Gwyzqol6-NofTjHnWquuDzJOjHbkaAnboO8JNENY,11499
27
26
  tinybird/tb/modules/connection.py,sha256=ZSqBGoRiJedjHKEyB_fr1ybucOHtaad8d7uqGa2Q92M,28668
28
- tinybird/tb/modules/create.py,sha256=BiqeuRtDM9dfIB3wwFrO5SNqdafr1hWDwma4oNHYris,42432
29
- tinybird/tb/modules/datasource.py,sha256=tjcf5o-HYIdTkb_c1ErGUFIE-W6G992vsvCuDGcxb9Q,35818
27
+ tinybird/tb/modules/create.py,sha256=fr418rucTn9etxcOfdBViV9dk_mIQJpB_L0XO8NF4e0,10059
28
+ tinybird/tb/modules/datasource.py,sha256=rX7RnrXl4xxPwGxkj1DgLr521wjNXEixAeAyxMrkJJk,35472
30
29
  tinybird/tb/modules/exceptions.py,sha256=4A2sSjCEqKUMqpP3WI00zouCWW4uLaghXXLZBSw04mY,3363
31
30
  tinybird/tb/modules/fmt.py,sha256=UszEQO15fdzQ49QEj7Unhu68IKwSuKPsOrKhk2p2TAg,3547
32
31
  tinybird/tb/modules/job.py,sha256=eoBVyA24lYIPonU88Jn7FF9hBKz1kScy9_w_oWreuc4,2952
@@ -35,7 +34,7 @@ tinybird/tb/modules/local.py,sha256=hV2fvHPaVHVzKwVoVDFAIbJZslOX1_COx96DZrR-dW8,
35
34
  tinybird/tb/modules/local_common.py,sha256=Z2JYIE5HIJVNuzdIv1_NFxSEs8DOsLoCzbmT1iy0-HU,2172
36
35
  tinybird/tb/modules/login.py,sha256=vIeysdttfGDBMkf_i3cqAVNR5s0X0D6exATcRsDdWiA,5849
37
36
  tinybird/tb/modules/mock.py,sha256=5xhR_djr1-_JwJPI-Oy1exI3ndz7srmmvlei0DMQCAk,2824
38
- tinybird/tb/modules/pipe.py,sha256=9wnfKbp2FkmLiJgVk3qbra76ktwsUTXghu6j9cCEahQ,31058
37
+ tinybird/tb/modules/pipe.py,sha256=P_W5HW1-UEidWlw0pty-n_qYvCAyMlNorBmWzmCP7cU,30906
39
38
  tinybird/tb/modules/regions.py,sha256=QjsL5H6Kg-qr0aYVLrvb1STeJ5Sx_sjvbOYO0LrEGMk,166
40
39
  tinybird/tb/modules/table.py,sha256=hG-PRDVuFp2uph41WpoLRV1yjp3RI2fi_iGGiI0rdxU,7695
41
40
  tinybird/tb/modules/tag.py,sha256=1qQWyk1p3Btv3LzM8VbJG-k7x2-pFuAlYCg3QL6QewI,3480
@@ -47,7 +46,7 @@ tinybird/tb/modules/workspace_members.py,sha256=08W0onEYkKLEC5TkAI07cxN9XSquEm7H
47
46
  tinybird/tb/modules/datafile/build.py,sha256=rFdK_GerPDgPfyPfZ4EZ0-cQqWfHd6htS0ls-Yy7khk,92491
48
47
  tinybird/tb/modules/datafile/build_common.py,sha256=74547h5ja4C66DAwDMabj75FA_BUTJxTJv-24tSFmrs,4551
49
48
  tinybird/tb/modules/datafile/build_datasource.py,sha256=fquzEGwk9NL_0K5YYG86Xtvgn4J5YHtRUoKJxbQGO0s,17344
50
- tinybird/tb/modules/datafile/build_pipe.py,sha256=sSSl1rQMkR4uUbFCxK_aDXZi3JwKV64YZlBdBWgGKjo,27657
49
+ tinybird/tb/modules/datafile/build_pipe.py,sha256=V5u21NEpSCWNVl46Cdn_I_bOojxpgSrg1MnScPDqx4U,27648
51
50
  tinybird/tb/modules/datafile/common.py,sha256=NkoCdj4p-Ak3n80DJB5a33Ucw2WTcSYa8iqw4KsRZGs,81082
52
51
  tinybird/tb/modules/datafile/diff.py,sha256=-iaP7GvAzZtZSa8jPgVpOFlTRutxgxRBLBcGL1_RFr4,6743
53
52
  tinybird/tb/modules/datafile/exceptions.py,sha256=8rw2umdZjtby85QbuRKFO5ETz_eRHwUY5l7eHsy1wnI,556
@@ -67,8 +66,8 @@ tinybird/tb_cli_modules/config.py,sha256=6NTgIdwf0X132A1j6G_YrdPep87ymZ9b5pABabK
67
66
  tinybird/tb_cli_modules/exceptions.py,sha256=pmucP4kTF4irIt7dXiG-FcnI-o3mvDusPmch1L8RCWk,3367
68
67
  tinybird/tb_cli_modules/regions.py,sha256=QjsL5H6Kg-qr0aYVLrvb1STeJ5Sx_sjvbOYO0LrEGMk,166
69
68
  tinybird/tb_cli_modules/telemetry.py,sha256=iEGnMuCuNhvF6ln__j6X9MSTwL_0Hm-GgFHHHvhfknk,10466
70
- tinybird-0.0.1.dev16.dist-info/METADATA,sha256=Mo5LrkfYVPxIL2oqfKIjc2uUG41aYEzeVyTvWYI_abY,2405
71
- tinybird-0.0.1.dev16.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
72
- tinybird-0.0.1.dev16.dist-info/entry_points.txt,sha256=LwdHU6TfKx4Qs7BqqtaczEZbImgU7Abe9Lp920zb_fo,43
73
- tinybird-0.0.1.dev16.dist-info/top_level.txt,sha256=pgw6AzERHBcW3YTi2PW4arjxLkulk2msOz_SomfOEuc,45
74
- tinybird-0.0.1.dev16.dist-info/RECORD,,
69
+ tinybird-0.0.1.dev17.dist-info/METADATA,sha256=eu-lIaxe76zXyzD78jMIjloB-BEVztY_wQeN3mJFoOI,2405
70
+ tinybird-0.0.1.dev17.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
71
+ tinybird-0.0.1.dev17.dist-info/entry_points.txt,sha256=LwdHU6TfKx4Qs7BqqtaczEZbImgU7Abe9Lp920zb_fo,43
72
+ tinybird-0.0.1.dev17.dist-info/top_level.txt,sha256=pgw6AzERHBcW3YTi2PW4arjxLkulk2msOz_SomfOEuc,45
73
+ tinybird-0.0.1.dev17.dist-info/RECORD,,