tinybird-cli 5.13.2.dev2__tar.gz → 5.13.3.dev1__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.
Files changed (48) hide show
  1. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/PKG-INFO +6 -5
  2. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/__cli__.py +2 -2
  3. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/datafile.py +55 -1
  4. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/feedback_manager.py +6 -0
  5. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird_cli.egg-info/PKG-INFO +6 -5
  6. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/setup.cfg +0 -0
  7. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/ch_utils/constants.py +0 -0
  8. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/ch_utils/engine.py +0 -0
  9. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/check_pypi.py +0 -0
  10. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/client.py +0 -0
  11. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/config.py +0 -0
  12. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/connectors.py +0 -0
  13. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/context.py +0 -0
  14. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/datatypes.py +0 -0
  15. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/git_settings.py +0 -0
  16. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/sql.py +0 -0
  17. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/sql_template.py +0 -0
  18. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/sql_template_fmt.py +0 -0
  19. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/sql_toolset.py +0 -0
  20. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/syncasync.py +0 -0
  21. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/tb_cli.py +0 -0
  22. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/tb_cli_modules/auth.py +0 -0
  23. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/tb_cli_modules/branch.py +0 -0
  24. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/tb_cli_modules/cicd.py +0 -0
  25. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/tb_cli_modules/cli.py +0 -0
  26. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/tb_cli_modules/common.py +0 -0
  27. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/tb_cli_modules/config.py +0 -0
  28. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/tb_cli_modules/connection.py +0 -0
  29. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/tb_cli_modules/datasource.py +0 -0
  30. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/tb_cli_modules/exceptions.py +0 -0
  31. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/tb_cli_modules/fmt.py +0 -0
  32. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/tb_cli_modules/job.py +0 -0
  33. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/tb_cli_modules/pipe.py +0 -0
  34. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/tb_cli_modules/regions.py +0 -0
  35. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/tb_cli_modules/tag.py +0 -0
  36. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/tb_cli_modules/telemetry.py +0 -0
  37. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/tb_cli_modules/test.py +0 -0
  38. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/tb_cli_modules/tinyunit/tinyunit.py +0 -0
  39. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/tb_cli_modules/tinyunit/tinyunit_lib.py +0 -0
  40. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/tb_cli_modules/token.py +0 -0
  41. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/tb_cli_modules/workspace.py +0 -0
  42. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/tb_cli_modules/workspace_members.py +0 -0
  43. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird/tornado_template.py +0 -0
  44. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird_cli.egg-info/SOURCES.txt +0 -0
  45. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird_cli.egg-info/dependency_links.txt +0 -0
  46. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird_cli.egg-info/entry_points.txt +0 -0
  47. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird_cli.egg-info/requires.txt +0 -0
  48. {tinybird_cli-5.13.2.dev2 → tinybird_cli-5.13.3.dev1}/tinybird_cli.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tinybird_cli
3
- Version: 5.13.2.dev2
3
+ Version: 5.13.3.dev1
4
4
  Summary: Tinybird Command Line Tool
5
5
  Home-page: https://www.tinybird.co/docs/cli
6
6
  Author: Tinybird
@@ -18,15 +18,16 @@ The Tinybird command-line tool allows you to use all the Tinybird functionality
18
18
  Changelog
19
19
  ----------
20
20
 
21
- 5.13.1.dev2
21
+ 5.13.3.dev1
22
22
  ***********
23
23
 
24
- - `Added` comply with [PEP 625](https://peps.python.org/pep-0625/)
24
+ - `Fixed` updating the cron schedule of a BigQuery data source when having a query but no external_data_source setting.
25
25
 
26
- 5.13.2.dev1
26
+ 5.13.2
27
27
  ***********
28
28
 
29
- - Added `eu-west-1` region to the list of available regions.
29
+ - `Added` comply with [PEP 625](https://peps.python.org/pep-0625/)
30
+ - `Added` `eu-west-1` region to the list of available regions.
30
31
 
31
32
  5.13.1
32
33
  ***********
@@ -4,5 +4,5 @@ __description__ = 'Tinybird Command Line Tool'
4
4
  __url__ = 'https://www.tinybird.co/docs/cli'
5
5
  __author__ = 'Tinybird'
6
6
  __author_email__ = 'support@tinybird.co'
7
- __version__ = '5.13.2.dev2'
8
- __revision__ = '127fab9'
7
+ __version__ = '5.13.3.dev1'
8
+ __revision__ = '3be7e20'
@@ -3434,14 +3434,33 @@ async def new_ds(
3434
3434
  DATASOURCE_VALID_SERVICES_TO_UPDATE = ["bigquery", "snowflake"]
3435
3435
  if datasource_exists and service and service in [*DATASOURCE_VALID_SERVICES_TO_UPDATE, *PREVIEW_CONNECTOR_SERVICES]:
3436
3436
  connector_required_params = {
3437
- "bigquery": ["service", "cron", "external_data_source"],
3437
+ "bigquery": ["service", "cron"],
3438
3438
  "snowflake": ["connector", "service", "cron", "external_data_source"],
3439
3439
  "s3": ["connector", "service", "cron", "bucket_uri"],
3440
3440
  "s3_iamrole": ["connector", "service", "cron", "bucket_uri"],
3441
3441
  "gcs": ["connector", "service", "cron", "bucket_uri"],
3442
3442
  }.get(service, [])
3443
3443
 
3444
+ connector_at_least_one_required_param = {
3445
+ "bigquery": ["external_data_source", "query"],
3446
+ }.get(service, [])
3447
+
3448
+ if connector_at_least_one_required_param and not any(
3449
+ key in ds_params for key in connector_at_least_one_required_param
3450
+ ):
3451
+ params = [
3452
+ (ImportReplacements.get_datafile_param_for_linker_param(service, param) or param).upper()
3453
+ for param in connector_at_least_one_required_param
3454
+ ]
3455
+ click.echo(FeedbackManager.error_updating_connector_missing_at_least_one_param(param=" or ".join(params)))
3456
+ return
3457
+
3444
3458
  if not all(key in ds_params for key in connector_required_params):
3459
+ params = [
3460
+ (ImportReplacements.get_datafile_param_for_linker_param(service, param) or param).upper()
3461
+ for param in connector_required_params
3462
+ ]
3463
+ click.echo(FeedbackManager.error_updating_connector_missing_params(param=", ".join(params)))
3445
3464
  return
3446
3465
 
3447
3466
  connector = ds_params.get("connector", None)
@@ -5589,3 +5608,38 @@ def is_file_a_datasource(filename: str) -> bool:
5589
5608
  return True
5590
5609
 
5591
5610
  return False
5611
+
5612
+
5613
+ def update_connector_params(service: str, ds_params: Dict[str, Any], connector_required_params: List[str]) -> None:
5614
+ """
5615
+ Update connector parameters for a given service, ensuring required parameters exist.
5616
+
5617
+ :param service: The name of the service (e.g., 'bigquery').
5618
+ :param ds_params: The data source parameters to be checked.
5619
+ :param connector_required_params: The list of required parameters for the connector.
5620
+ :return: None
5621
+ """
5622
+
5623
+ connector_at_least_one_required_param: List[str] = {
5624
+ "bigquery": ["external_data_source", "query"],
5625
+ }.get(service, [])
5626
+
5627
+ # Handle the "at least one param" requirement
5628
+ if connector_at_least_one_required_param and not any(
5629
+ key in ds_params for key in connector_at_least_one_required_param
5630
+ ):
5631
+ params = [
5632
+ (ImportReplacements.get_datafile_param_for_linker_param(service, param) or param).upper()
5633
+ for param in connector_at_least_one_required_param
5634
+ ]
5635
+ click.echo(FeedbackManager.error_updating_connector_missing_at_least_one_param(param=" or ".join(params)))
5636
+ return
5637
+
5638
+ # Handle the mandatory params requirement
5639
+ if not all(key in ds_params for key in connector_required_params):
5640
+ params = [
5641
+ (ImportReplacements.get_datafile_param_for_linker_param(service, param) or param).upper()
5642
+ for param in connector_required_params
5643
+ ]
5644
+ click.echo(FeedbackManager.error_updating_connector_missing_params(param=", ".join(params)))
5645
+ return
@@ -130,6 +130,12 @@ class FeedbackManager:
130
130
  error_remove_no_endpoint = error_message("Pipe does not have any endpoint")
131
131
  error_updating_pipe = error_message("Failed updating pipe {error}")
132
132
  error_updating_connector_not_supported = error_message("Changing {param} is not currently supported")
133
+ error_updating_connector_missing_at_least_one_param = error_message(
134
+ "Connection settings not updated. Connection info should have at least one of {param} settings"
135
+ )
136
+ error_updating_connector_missing_params = error_message(
137
+ "Connection settings not updated. Connection info should have {param} settings"
138
+ )
133
139
  error_removing_node = error_message("Failed removing node from pipe {pipe}: {error}")
134
140
  error_pushing_pipe = error_message("Failed pushing pipe {pipe}: {error}")
135
141
  error_creating_endpoint = error_message("Failed creating endpoint in node {node} on pipe {pipe}: {error}")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tinybird-cli
3
- Version: 5.13.2.dev2
3
+ Version: 5.13.3.dev1
4
4
  Summary: Tinybird Command Line Tool
5
5
  Home-page: https://www.tinybird.co/docs/cli
6
6
  Author: Tinybird
@@ -18,15 +18,16 @@ The Tinybird command-line tool allows you to use all the Tinybird functionality
18
18
  Changelog
19
19
  ----------
20
20
 
21
- 5.13.1.dev2
21
+ 5.13.3.dev1
22
22
  ***********
23
23
 
24
- - `Added` comply with [PEP 625](https://peps.python.org/pep-0625/)
24
+ - `Fixed` updating the cron schedule of a BigQuery data source when having a query but no external_data_source setting.
25
25
 
26
- 5.13.2.dev1
26
+ 5.13.2
27
27
  ***********
28
28
 
29
- - Added `eu-west-1` region to the list of available regions.
29
+ - `Added` comply with [PEP 625](https://peps.python.org/pep-0625/)
30
+ - `Added` `eu-west-1` region to the list of available regions.
30
31
 
31
32
  5.13.1
32
33
  ***********