tinybird 0.0.1.dev181__tar.gz → 0.0.1.dev183__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 (110) hide show
  1. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/PKG-INFO +1 -1
  2. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/__cli__.py +2 -2
  3. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/client.py +25 -7
  4. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/datafile/build_datasource.py +1 -1
  5. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/datafile/fixture.py +11 -5
  6. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/datasource.py +7 -9
  7. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/job.py +13 -4
  8. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird.egg-info/PKG-INFO +1 -1
  9. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/setup.cfg +0 -0
  10. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/__cli__.py +0 -0
  11. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/ch_utils/constants.py +0 -0
  12. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/ch_utils/engine.py +0 -0
  13. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/check_pypi.py +0 -0
  14. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/client.py +0 -0
  15. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/config.py +0 -0
  16. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/connectors.py +0 -0
  17. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/context.py +0 -0
  18. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/datafile.py +0 -0
  19. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/datatypes.py +0 -0
  20. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/feedback_manager.py +0 -0
  21. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/git_settings.py +0 -0
  22. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/prompts.py +0 -0
  23. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/sql.py +0 -0
  24. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/sql_template.py +0 -0
  25. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/sql_template_fmt.py +0 -0
  26. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/sql_toolset.py +0 -0
  27. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/syncasync.py +0 -0
  28. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/check_pypi.py +0 -0
  29. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/cli.py +0 -0
  30. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/config.py +0 -0
  31. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/build.py +0 -0
  32. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/cicd.py +0 -0
  33. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/cli.py +0 -0
  34. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/common.py +0 -0
  35. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/config.py +0 -0
  36. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/connection.py +0 -0
  37. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/copy.py +0 -0
  38. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/create.py +0 -0
  39. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/datafile/build.py +0 -0
  40. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/datafile/build_common.py +0 -0
  41. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/datafile/build_pipe.py +0 -0
  42. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/datafile/common.py +0 -0
  43. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/datafile/diff.py +0 -0
  44. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/datafile/exceptions.py +0 -0
  45. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/datafile/format_common.py +0 -0
  46. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/datafile/format_datasource.py +0 -0
  47. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/datafile/format_pipe.py +0 -0
  48. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/datafile/parse_datasource.py +0 -0
  49. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/datafile/parse_pipe.py +0 -0
  50. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/datafile/pipe_checker.py +0 -0
  51. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/datafile/playground.py +0 -0
  52. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/datafile/pull.py +0 -0
  53. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/deployment.py +0 -0
  54. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/deprecations.py +0 -0
  55. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/dev_server.py +0 -0
  56. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/endpoint.py +0 -0
  57. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/exceptions.py +0 -0
  58. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/feedback_manager.py +0 -0
  59. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/info.py +0 -0
  60. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/infra.py +0 -0
  61. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/llm.py +0 -0
  62. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/llm_utils.py +0 -0
  63. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/local.py +0 -0
  64. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/local_common.py +0 -0
  65. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/login.py +0 -0
  66. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/logout.py +0 -0
  67. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/materialization.py +0 -0
  68. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/mock.py +0 -0
  69. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/open.py +0 -0
  70. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/pipe.py +0 -0
  71. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/project.py +0 -0
  72. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/regions.py +0 -0
  73. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/secret.py +0 -0
  74. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/shell.py +0 -0
  75. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/table.py +0 -0
  76. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/telemetry.py +0 -0
  77. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/test.py +0 -0
  78. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/tinyunit/tinyunit.py +0 -0
  79. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/tinyunit/tinyunit_lib.py +0 -0
  80. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/token.py +0 -0
  81. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/watch.py +0 -0
  82. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/workspace.py +0 -0
  83. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb/modules/workspace_members.py +0 -0
  84. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb_cli.py +0 -0
  85. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb_cli_modules/auth.py +0 -0
  86. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb_cli_modules/branch.py +0 -0
  87. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb_cli_modules/cicd.py +0 -0
  88. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb_cli_modules/cli.py +0 -0
  89. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb_cli_modules/common.py +0 -0
  90. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb_cli_modules/config.py +0 -0
  91. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb_cli_modules/connection.py +0 -0
  92. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb_cli_modules/datasource.py +0 -0
  93. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb_cli_modules/exceptions.py +0 -0
  94. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb_cli_modules/fmt.py +0 -0
  95. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb_cli_modules/job.py +0 -0
  96. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb_cli_modules/pipe.py +0 -0
  97. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb_cli_modules/regions.py +0 -0
  98. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb_cli_modules/tag.py +0 -0
  99. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb_cli_modules/telemetry.py +0 -0
  100. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb_cli_modules/test.py +0 -0
  101. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb_cli_modules/tinyunit/tinyunit.py +0 -0
  102. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb_cli_modules/tinyunit/tinyunit_lib.py +0 -0
  103. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb_cli_modules/workspace.py +0 -0
  104. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tb_cli_modules/workspace_members.py +0 -0
  105. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird/tornado_template.py +0 -0
  106. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird.egg-info/SOURCES.txt +0 -0
  107. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird.egg-info/dependency_links.txt +0 -0
  108. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird.egg-info/entry_points.txt +0 -0
  109. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird.egg-info/requires.txt +0 -0
  110. {tinybird-0.0.1.dev181 → tinybird-0.0.1.dev183}/tinybird.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: tinybird
3
- Version: 0.0.1.dev181
3
+ Version: 0.0.1.dev183
4
4
  Summary: Tinybird Command Line Tool
5
5
  Home-page: https://www.tinybird.co/docs/forward/commands
6
6
  Author: Tinybird
@@ -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.dev181'
8
- __revision__ = '0bfd0e2'
7
+ __version__ = '0.0.1.dev183'
8
+ __revision__ = '1e2d149'
@@ -4,7 +4,7 @@ import logging
4
4
  import os
5
5
  import ssl
6
6
  from pathlib import Path
7
- from typing import Any, Callable, Dict, List, Mapping, Optional, Set, Union
7
+ from typing import Any, Callable, Dict, List, Mapping, Optional, Set, Tuple, Union
8
8
  from urllib.parse import quote, urlencode
9
9
 
10
10
  import aiofiles
@@ -696,12 +696,30 @@ class TinyB:
696
696
  else:
697
697
  return await self._req(f"/v0/sql?q={quote(sql, safe='')}&{urlencode(params)}")
698
698
 
699
- async def jobs(self, status=None):
700
- jobs = (await self._req("/v0/jobs"))["jobs"]
701
- if status:
702
- status = [status] if isinstance(status, str) else status
703
- jobs = [j for j in jobs if j["status"] in status]
704
- return jobs
699
+ async def jobs(
700
+ self, status: Optional[Tuple[str, ...]] = None, kind: Optional[Tuple[str, ...]] = None
701
+ ) -> List[Dict[str, Any]]:
702
+ async def fetch_jobs(params: Dict[str, str]) -> List[Dict[str, Any]]:
703
+ query_string = urlencode(params) if params else ""
704
+ endpoint = f"/v0/jobs?{query_string}" if query_string else "/v0/jobs"
705
+ response = await self._req(endpoint)
706
+ return response["jobs"]
707
+
708
+ if not status and not kind:
709
+ return await fetch_jobs({})
710
+ result: List[Dict[str, Any]] = []
711
+ if status and kind:
712
+ for s in status:
713
+ for k in kind:
714
+ result.extend(await fetch_jobs({"status": s, "kind": k}))
715
+ elif status:
716
+ for s in status:
717
+ result.extend(await fetch_jobs({"status": s}))
718
+ elif kind:
719
+ for k in kind:
720
+ result.extend(await fetch_jobs({"kind": k}))
721
+
722
+ return result
705
723
 
706
724
  async def job(self, job_id: str):
707
725
  return await self._req(f"/v0/jobs/{job_id}")
@@ -87,7 +87,7 @@ async def new_ds(
87
87
  if datasource.get("service") == "dynamodb":
88
88
  job_id = datasource_response.get("import_id", None)
89
89
  if job_id:
90
- jobs = await client.jobs(status=["waiting", "working"])
90
+ jobs = await client.jobs(status=("waiting", "working"))
91
91
  job_url = next((job["job_url"] for job in jobs if job["id"] == job_id), None)
92
92
  if job_url:
93
93
  click.echo(FeedbackManager.success_dynamodb_initial_load(job_url=job_url))
@@ -1,5 +1,5 @@
1
1
  from pathlib import Path
2
- from typing import Any, Dict, List, Union
2
+ from typing import Any, Dict, List, Optional, Union
3
3
 
4
4
  from tinybird.tb.modules.common import format_data_to_ndjson
5
5
 
@@ -17,10 +17,16 @@ def persist_fixture_sql(fixture_name: str, sql: str, folder: str) -> Path:
17
17
  return fixture_file
18
18
 
19
19
 
20
- def persist_fixture(fixture_name: str, data: Union[List[Dict[str, Any]], str], folder: str, format: str) -> Path:
21
- fixture_dir = get_fixture_dir(folder)
22
- fixture_file = fixture_dir / f"{fixture_name}.{format}"
23
- extension = f".{format}"
20
+ def persist_fixture(
21
+ fixture_name: str, data: Union[List[Dict[str, Any]], str], folder: str, format: str, target: Optional[str] = None
22
+ ) -> Path:
23
+ if target:
24
+ fixture_file = Path(target)
25
+ extension = fixture_file.suffix
26
+ else:
27
+ fixture_dir = get_fixture_dir(folder)
28
+ fixture_file = fixture_dir / f"{fixture_name}.{format}"
29
+ extension = f".{format}"
24
30
  if extension == FixtureExtension.NDJSON:
25
31
  fixture_file.write_text(data if isinstance(data, str) else format_data_to_ndjson(data))
26
32
  elif extension == FixtureExtension.CSV:
@@ -423,19 +423,15 @@ async def datasource_export(
423
423
  Example usage:
424
424
  - Export all rows as CSV: tb datasource export my_datasource
425
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
426
+ - Export to specific file: tb datasource export my_datasource --target ./data/export.csv
427
427
  """
428
428
  client: TinyB = ctx.ensure_object(dict)["client"]
429
429
  project: Project = ctx.ensure_object(dict)["project"]
430
430
 
431
- # Determine output filename if not provided
432
- if not target:
433
- target = f"{datasource}.{format_}"
434
-
435
431
  # Build query with optional row limit
436
432
  query = f"SELECT * FROM {datasource} WHERE {where or 1} LIMIT {rows}"
437
433
 
438
- click.echo(FeedbackManager.highlight(message=f"\n» Exporting {datasource} to {target}"))
434
+ click.echo(FeedbackManager.highlight(message=f"\n» Exporting {datasource}"))
439
435
 
440
436
  try:
441
437
  if format_ == "csv":
@@ -445,11 +441,13 @@ async def datasource_export(
445
441
 
446
442
  res = await client.query(query)
447
443
 
448
- fixture_path = persist_fixture(datasource, res, project.folder, format=format_)
449
- file_size = os.path.getsize(fixture_path)
444
+ target_path = persist_fixture(datasource, res, project.folder, format=format_, target=target)
445
+ file_size = os.path.getsize(target_path)
450
446
 
451
447
  click.echo(
452
- FeedbackManager.success(message=f"✓ Exported data to {target} ({humanfriendly.format_size(file_size)})")
448
+ FeedbackManager.success(
449
+ message=f"✓ Exported data to {str(target_path).replace(project.folder, '')} ({humanfriendly.format_size(file_size)})"
450
+ )
453
451
  )
454
452
 
455
453
  except Exception as e:
@@ -3,6 +3,8 @@
3
3
  # - If it makes sense and only when strictly necessary, you can create utility functions in this file.
4
4
  # - But please, **do not** interleave utility functions and command definitions.
5
5
 
6
+ from typing import Tuple
7
+
6
8
  import click
7
9
  from click import Context
8
10
 
@@ -24,16 +26,23 @@ def job(ctx: Context) -> None:
24
26
  "-s",
25
27
  "--status",
26
28
  help="Show only jobs with this status",
27
- type=click.Choice(["waiting", "working", "done", "error"], case_sensitive=False),
29
+ type=click.Choice(["waiting", "working", "done", "error", "cancelling", "cancelled"], case_sensitive=False),
30
+ multiple=True,
31
+ default=None,
32
+ )
33
+ @click.option(
34
+ "-k",
35
+ "--kind",
36
+ help="Show only jobs of this kind",
28
37
  multiple=True,
29
38
  default=None,
30
39
  )
31
40
  @click.pass_context
32
41
  @coro
33
- async def jobs_ls(ctx: Context, status: str) -> None:
34
- """List jobs, up to 100 in the last 48h"""
42
+ async def jobs_ls(ctx: Context, status: Tuple[str, ...], kind: Tuple[str, ...]) -> None:
43
+ """List jobs, up to 100"""
35
44
  client: TinyB = ctx.ensure_object(dict)["client"]
36
- jobs = await client.jobs(status=status)
45
+ jobs = await client.jobs(status=status, kind=kind)
37
46
  columns = ["id", "kind", "status", "created at", "updated at", "job url"]
38
47
  click.echo(FeedbackManager.info_jobs())
39
48
  table = []
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: tinybird
3
- Version: 0.0.1.dev181
3
+ Version: 0.0.1.dev183
4
4
  Summary: Tinybird Command Line Tool
5
5
  Home-page: https://www.tinybird.co/docs/forward/commands
6
6
  Author: Tinybird