tinybird 0.0.1.dev61__tar.gz → 0.0.1.dev62__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of tinybird might be problematic. Click here for more details.

Files changed (101) hide show
  1. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/PKG-INFO +1 -1
  2. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/__cli__.py +2 -2
  3. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/endpoint.py +115 -19
  4. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird.egg-info/PKG-INFO +1 -1
  5. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/setup.cfg +0 -0
  6. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/__cli__.py +0 -0
  7. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/ch_utils/constants.py +0 -0
  8. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/ch_utils/engine.py +0 -0
  9. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/check_pypi.py +0 -0
  10. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/client.py +0 -0
  11. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/config.py +0 -0
  12. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/connectors.py +0 -0
  13. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/context.py +0 -0
  14. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/datafile.py +0 -0
  15. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/datatypes.py +0 -0
  16. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/feedback_manager.py +0 -0
  17. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/git_settings.py +0 -0
  18. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/prompts.py +0 -0
  19. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/sql.py +0 -0
  20. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/sql_template.py +0 -0
  21. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/sql_template_fmt.py +0 -0
  22. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/sql_toolset.py +0 -0
  23. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/syncasync.py +0 -0
  24. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/cli.py +0 -0
  25. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/auth.py +0 -0
  26. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/build.py +0 -0
  27. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/cicd.py +0 -0
  28. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/cli.py +0 -0
  29. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/common.py +0 -0
  30. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/config.py +0 -0
  31. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/copy.py +0 -0
  32. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/create.py +0 -0
  33. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/datafile/build.py +0 -0
  34. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/datafile/build_common.py +0 -0
  35. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/datafile/build_datasource.py +0 -0
  36. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/datafile/build_pipe.py +0 -0
  37. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/datafile/common.py +0 -0
  38. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/datafile/diff.py +0 -0
  39. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/datafile/exceptions.py +0 -0
  40. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/datafile/fixture.py +0 -0
  41. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/datafile/format_common.py +0 -0
  42. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/datafile/format_datasource.py +0 -0
  43. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/datafile/format_pipe.py +0 -0
  44. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/datafile/parse_datasource.py +0 -0
  45. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/datafile/parse_pipe.py +0 -0
  46. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/datafile/pipe_checker.py +0 -0
  47. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/datafile/pull.py +0 -0
  48. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/datasource.py +0 -0
  49. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/deployment.py +0 -0
  50. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/exceptions.py +0 -0
  51. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/feedback_manager.py +0 -0
  52. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/fmt.py +0 -0
  53. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/job.py +0 -0
  54. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/llm.py +0 -0
  55. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/llm_utils.py +0 -0
  56. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/local.py +0 -0
  57. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/local_common.py +0 -0
  58. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/login.py +0 -0
  59. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/materialization.py +0 -0
  60. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/mock.py +0 -0
  61. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/pipe.py +0 -0
  62. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/project.py +0 -0
  63. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/regions.py +0 -0
  64. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/shell.py +0 -0
  65. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/table.py +0 -0
  66. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/tag.py +0 -0
  67. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/telemetry.py +0 -0
  68. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/test.py +0 -0
  69. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/tinyunit/tinyunit.py +0 -0
  70. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/tinyunit/tinyunit_lib.py +0 -0
  71. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/token.py +0 -0
  72. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/watch.py +0 -0
  73. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/workspace.py +0 -0
  74. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb/modules/workspace_members.py +0 -0
  75. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb_cli.py +0 -0
  76. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb_cli_modules/auth.py +0 -0
  77. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb_cli_modules/branch.py +0 -0
  78. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb_cli_modules/cicd.py +0 -0
  79. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb_cli_modules/cli.py +0 -0
  80. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb_cli_modules/common.py +0 -0
  81. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb_cli_modules/config.py +0 -0
  82. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb_cli_modules/connection.py +0 -0
  83. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb_cli_modules/datasource.py +0 -0
  84. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb_cli_modules/exceptions.py +0 -0
  85. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb_cli_modules/fmt.py +0 -0
  86. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb_cli_modules/job.py +0 -0
  87. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb_cli_modules/pipe.py +0 -0
  88. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb_cli_modules/regions.py +0 -0
  89. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb_cli_modules/tag.py +0 -0
  90. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb_cli_modules/telemetry.py +0 -0
  91. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb_cli_modules/test.py +0 -0
  92. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb_cli_modules/tinyunit/tinyunit.py +0 -0
  93. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb_cli_modules/tinyunit/tinyunit_lib.py +0 -0
  94. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb_cli_modules/workspace.py +0 -0
  95. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tb_cli_modules/workspace_members.py +0 -0
  96. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird/tornado_template.py +0 -0
  97. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird.egg-info/SOURCES.txt +0 -0
  98. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird.egg-info/dependency_links.txt +0 -0
  99. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird.egg-info/entry_points.txt +0 -0
  100. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird.egg-info/requires.txt +0 -0
  101. {tinybird-0.0.1.dev61 → tinybird-0.0.1.dev62}/tinybird.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tinybird
3
- Version: 0.0.1.dev61
3
+ Version: 0.0.1.dev62
4
4
  Summary: Tinybird Command Line Tool
5
5
  Home-page: https://www.tinybird.co/docs/cli/introduction.html
6
6
  Author: Tinybird
@@ -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.dev61'
8
- __revision__ = '0fed0e1'
7
+ __version__ = '0.0.1.dev62'
8
+ __revision__ = '472a5f2'
@@ -10,6 +10,7 @@ from urllib.parse import urlencode
10
10
 
11
11
  import click
12
12
  import humanfriendly
13
+ import pyperclip
13
14
  import requests
14
15
  from click import Context
15
16
 
@@ -54,7 +55,7 @@ async def endpoint_ls(ctx: Context, match: str, format_: str):
54
55
  tk = get_name_version(t["name"])
55
56
  if pattern and not pattern.search(tk["name"]):
56
57
  continue
57
- token = get_endpoint_token(tokens, tk["name"])
58
+ token = get_endpoint_token(tokens, tk["name"]) or client.token
58
59
  endpoint_url = build_endpoint_url(client, tk["name"], token)
59
60
  table_human_readable.append((tk["name"], t["updated_at"][:-7], len(t["nodes"]), endpoint_url))
60
61
  table_machine_readable.append(
@@ -151,29 +152,23 @@ async def endpoint_data(ctx: Context, pipe: str, query: str, format_: str):
151
152
 
152
153
  @endpoint.command(name="url")
153
154
  @click.argument("pipe")
155
+ @click.option(
156
+ "--language",
157
+ default="http",
158
+ help="Language used for sending the request. Options: http, python, curl, javascript, rust, go",
159
+ )
154
160
  @click.pass_context
155
161
  @coro
156
- async def endpoint_url(ctx: Context, pipe: str):
162
+ async def endpoint_url(ctx: Context, pipe: str, language: str):
157
163
  """Print the URL of an endpoint"""
164
+ if language != "http":
165
+ click.echo(FeedbackManager.highlight(message=f"\n» Generating snippet for {language} language"))
158
166
  client: TinyB = ctx.ensure_object(dict)["client"]
159
167
  tokens = await client.tokens()
160
- token = get_endpoint_token(tokens, pipe)
161
- click.echo(build_endpoint_url(client, pipe, token))
162
-
163
-
164
- def build_endpoint_url(tb_client: TinyB, pipe_name: str, token: Optional[str]) -> Optional[str]:
165
- try:
166
- token = token or tb_client.token
167
- example_params = {
168
- "format": "json",
169
- "pipe": pipe_name,
170
- "q": "",
171
- "token": token,
172
- }
173
- response = requests.get(f"{tb_client.host}/examples/query.http?{urlencode(example_params)}")
174
- return response.text.replace("http://localhost:8001", tb_client.host)
175
- except Exception:
176
- return None
168
+ token = get_endpoint_token(tokens, pipe) or client.token
169
+ click.echo(build_endpoint_snippet(client, pipe, token, language))
170
+ if language != "http":
171
+ click.echo(FeedbackManager.success(message="\n✓ Code snippet copied to clipboard!\n"))
177
172
 
178
173
 
179
174
  def get_endpoint_token(tokens: List[Dict[str, Any]], pipe_name: str) -> Optional[str]:
@@ -272,3 +267,104 @@ async def endpoint_stats(ctx: click.Context, pipes: Tuple[str, ...], format_: st
272
267
  click.echo(json.dumps({"pipes": table_machine_readable}, indent=2))
273
268
  else:
274
269
  echo_safe_humanfriendly_tables_format_smart_table(table_human_readable, column_names=columns)
270
+
271
+
272
+ def build_endpoint_snippet(tb_client: TinyB, pipe_name: str, token: Optional[str], language: str) -> Optional[str]:
273
+ endpoint_url = build_endpoint_url(tb_client, pipe_name, token)
274
+ if language == "http":
275
+ return endpoint_url
276
+
277
+ snippet = None
278
+ if language == "python":
279
+ snippet = build_python_snippet(endpoint_url, token)
280
+ elif language == "curl":
281
+ snippet = build_curl_snippet(endpoint_url)
282
+ elif language == "javascript":
283
+ snippet = build_javascript_snippet(endpoint_url, token)
284
+ elif language == "rust":
285
+ snippet = build_rust_snippet(endpoint_url, token)
286
+ elif language == "go":
287
+ snippet = build_go_snippet(endpoint_url, token)
288
+
289
+ if not snippet:
290
+ raise CLIPipeException(FeedbackManager.error(message=f"Language {language} not supported"))
291
+
292
+ pyperclip.copy(snippet.strip())
293
+ return snippet
294
+
295
+
296
+ def build_endpoint_url(tb_client: TinyB, pipe_name: str, token: str) -> str:
297
+ example_params = {
298
+ "format": "json",
299
+ "pipe": pipe_name,
300
+ "q": "",
301
+ "token": token,
302
+ }
303
+ response = requests.get(f"{tb_client.host}/examples/query.http?{urlencode(example_params)}")
304
+ return response.text.replace("http://localhost:8001", tb_client.host)
305
+
306
+
307
+ def build_python_snippet(endpoint_url: str, token: str) -> str:
308
+ endpoint_url = endpoint_url.replace(f"token={token}", "token={{token}}")
309
+ return f"""
310
+ import requests
311
+
312
+ token = "{token}"
313
+ url = "{endpoint_url}"
314
+ response = requests.get(url)
315
+ print(response.json())
316
+ """
317
+
318
+
319
+ def build_curl_snippet(endpoint_url: str) -> str:
320
+ return f"""
321
+ curl -X GET "{endpoint_url}"
322
+ """
323
+
324
+
325
+ def build_javascript_snippet(endpoint_url: str, token: str) -> str:
326
+ endpoint_url = endpoint_url.replace(f"token={token}", "token=${token}")
327
+ return f"""
328
+ const token = "{token}";
329
+ fetch(`{endpoint_url}`)
330
+ .then(response => response.json())
331
+ .then(data => console.log(data));
332
+ """
333
+
334
+
335
+ def build_rust_snippet(endpoint_url: str) -> str:
336
+ return f"""
337
+ use reqwest::Client;
338
+
339
+ let client = Client::new();
340
+ let response = client.get("{endpoint_url}").send().await?;
341
+ """
342
+
343
+
344
+ def build_go_snippet(endpoint_url: str) -> str:
345
+ return f"""
346
+ package main
347
+
348
+ import (
349
+ "fmt"
350
+ "io"
351
+ "log"
352
+ "net/http"
353
+ )
354
+
355
+ func main() {{
356
+ url := "{endpoint_url}"
357
+ resp, err := http.Get(url)
358
+ if err != nil {{
359
+ log.Fatal(err)
360
+ }}
361
+ defer resp.Body.Close()
362
+
363
+ body, err := io.ReadAll(resp.Body)
364
+ if err != nil {{
365
+ log.Fatal(err)
366
+ }}
367
+
368
+ fmt.Println(string(body))
369
+ }}
370
+ """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tinybird
3
- Version: 0.0.1.dev61
3
+ Version: 0.0.1.dev62
4
4
  Summary: Tinybird Command Line Tool
5
5
  Home-page: https://www.tinybird.co/docs/cli/introduction.html
6
6
  Author: Tinybird
File without changes