tinybird 0.0.1.dev158__py3-none-any.whl → 0.0.1.dev159__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.

@@ -491,7 +491,7 @@ Ready? """
491
491
  """\n[2] Go to IAM > Policies. Create a new policy with the following permissions. Please, replace {replacements}:\n\n{access_policy}\n\n(The policy has been copied to your clipboard)\n\n"""
492
492
  )
493
493
  prompt_s3_iamrole_connection_policy_not_copied = prompt_message(
494
- """\n[2] Go to IAM > Policies. Create a new policy with the following permissions. Please, copy this policy and replace <bucket> with your bucket name:\n\n{access_policy}\n\n"""
494
+ """\n[2] Go to IAM > Policies. Create a new policy with the following permissions. Please, copy this policy and replace <bucket> with your bucket name and <table_name> with your table name:\n\n{access_policy}\n\n"""
495
495
  )
496
496
  prompt_s3_iamrole_connection_role = prompt_message(
497
497
  """\n[3] Go to IAM > Roles. Create a new IAM Role using the following custom trust policy and attach the access policy you just created in the previous step:\n\n{trust_policy}\n\n(The policy has been copied to your clipboard)\n\n"""
tinybird/tb/__cli__.py CHANGED
@@ -4,5 +4,5 @@ __description__ = 'Tinybird Command Line Tool'
4
4
  __url__ = 'https://www.tinybird.co/docs/forward/commands'
5
5
  __author__ = 'Tinybird'
6
6
  __author_email__ = 'support@tinybird.co'
7
- __version__ = '0.0.1.dev158'
8
- __revision__ = '15a5191'
7
+ __version__ = '0.0.1.dev159'
8
+ __revision__ = '33da9f4'
tinybird/tb/client.py CHANGED
@@ -235,10 +235,6 @@ class TinyB:
235
235
  response = await self._req("/v0/tokens")
236
236
  return response["tokens"]
237
237
 
238
- async def starterkits(self) -> List[Dict[str, Any]]:
239
- data = await self._req("/v0/templates")
240
- return data.get("templates", [])
241
-
242
238
  async def get_token_by_name(self, name: str):
243
239
  tokens = await self.tokens()
244
240
  for tk in tokens:
@@ -741,13 +737,10 @@ class TinyB:
741
737
  async def create_workspace(
742
738
  self,
743
739
  name: str,
744
- template: Optional[str],
745
740
  assign_to_organization_id: Optional[str] = None,
746
741
  version: str = "v0",
747
742
  ):
748
743
  url = f"/{version}/workspaces?name={name}"
749
- if template:
750
- url += f"&starter_kit={template}"
751
744
  if assign_to_organization_id:
752
745
  url += f"&assign_to_organization_id={assign_to_organization_id}"
753
746
  return await self._req(url, method="POST", data=b"")
@@ -74,7 +74,6 @@ from tinybird.tb.modules.telemetry import (
74
74
  add_telemetry_sysinfo_event,
75
75
  flush_telemetry,
76
76
  init_telemetry,
77
- is_ci_environment,
78
77
  )
79
78
 
80
79
  SUPPORTED_FORMATS = ["csv", "ndjson", "json", "parquet"]
@@ -634,56 +633,6 @@ async def check_user_token_with_client(client: TinyB, token: str):
634
633
  )
635
634
 
636
635
 
637
- async def get_available_starterkits(ctx: Context) -> List[Dict[str, Any]]:
638
- ctx_dict = ctx.ensure_object(dict)
639
- available_starterkits = ctx_dict.get("available_starterkits", None)
640
- if available_starterkits is not None:
641
- return available_starterkits
642
-
643
- try:
644
- client: TinyB = ctx_dict["client"]
645
-
646
- available_starterkits = await client.starterkits()
647
- ctx_dict["available_starterkits"] = available_starterkits
648
- return available_starterkits
649
- except Exception as ex:
650
- raise CLIException(FeedbackManager.error_exception(error=ex))
651
-
652
-
653
- async def get_starterkit(ctx: Context, name: str) -> Optional[Dict[str, Any]]:
654
- available_starterkits = await get_available_starterkits(ctx)
655
- if not available_starterkits:
656
- return None
657
- return next((sk for sk in available_starterkits if sk.get("friendly_name", None) == name), None)
658
-
659
-
660
- async def is_valid_starterkit(ctx: Context, name: str) -> bool:
661
- return name == "blank" or (await get_starterkit(ctx, name) is not None)
662
-
663
-
664
- async def ask_for_starterkit_interactively(ctx: Context) -> Optional[str]:
665
- starterkit = [{"friendly_name": "blank", "description": "Empty workspace"}]
666
- starterkit.extend(await get_available_starterkits(ctx))
667
- rows = [(index + 1, sk["friendly_name"], sk["description"]) for index, sk in enumerate(starterkit)]
668
-
669
- echo_safe_humanfriendly_tables_format_smart_table(rows, column_names=["Idx", "Id", "Description"])
670
- click.echo("")
671
- click.echo(" [0] to cancel")
672
-
673
- sk_index = -1
674
- while sk_index == -1:
675
- sk_index = click.prompt("\nUse starter kit", default=1)
676
- if sk_index < 0 or sk_index > len(starterkit):
677
- click.echo(FeedbackManager.error_starterkit_index(starterkit_index=sk_index))
678
- sk_index = -1
679
-
680
- if sk_index == 0:
681
- click.echo(FeedbackManager.info_cancelled_by_user())
682
- return None
683
-
684
- return starterkit[sk_index - 1]["friendly_name"]
685
-
686
-
687
636
  async def fork_workspace(client: TinyB, user_client: TinyB, created_workspace):
688
637
  config = CLIConfig.get_project_config()
689
638
 
@@ -695,13 +644,12 @@ async def fork_workspace(client: TinyB, user_client: TinyB, created_workspace):
695
644
  async def create_workspace_non_interactive(
696
645
  ctx: Context,
697
646
  workspace_name: str,
698
- starterkit: Optional[str],
699
647
  user_token: str,
700
648
  fork: bool,
701
649
  organization_id: Optional[str],
702
650
  organization_name: Optional[str],
703
651
  ):
704
- """Creates a workspace using the provided name and starterkit"""
652
+ """Creates a workspace using the provided name"""
705
653
  client: TinyB = ctx.ensure_object(dict)["client"]
706
654
 
707
655
  try:
@@ -709,7 +657,7 @@ async def create_workspace_non_interactive(
709
657
  user_client.token = user_token
710
658
 
711
659
  created_workspace = await user_client.create_workspace(
712
- workspace_name, starterkit, organization_id, version="v1"
660
+ workspace_name, organization_id, version="v1"
713
661
  )
714
662
  if organization_id and organization_name:
715
663
  click.echo(
@@ -730,21 +678,11 @@ async def create_workspace_non_interactive(
730
678
  async def create_workspace_interactive(
731
679
  ctx: Context,
732
680
  workspace_name: Optional[str],
733
- starterkit: Optional[str],
734
681
  user_token: str,
735
682
  fork: bool,
736
683
  organization_id: Optional[str],
737
684
  organization_name: Optional[str],
738
685
  ):
739
- if not starterkit and not is_ci_environment():
740
- click.echo("\n")
741
- starterkit = await ask_for_starterkit_interactively(ctx)
742
- if not starterkit: # Cancelled by user
743
- return
744
-
745
- if starterkit == "blank": # 'blank' == empty workspace
746
- starterkit = None
747
-
748
686
  if not workspace_name:
749
687
  """Creates a workspace guiding the user"""
750
688
  click.echo("\n")
@@ -758,7 +696,6 @@ async def create_workspace_interactive(
758
696
  await create_workspace_non_interactive(
759
697
  ctx,
760
698
  workspace_name,
761
- starterkit,
762
699
  user_token,
763
700
  fork,
764
701
  organization_id,
@@ -303,11 +303,6 @@ class FeedbackManager:
303
303
  error_pipe_ls_type = error_message("Invalid Format provided")
304
304
  error_token_not_validate_in_any_region = error_message("Token not validated in any region")
305
305
  error_not_authenticated = error_message("You are not authenticated, use 'tb auth -i' to authenticate yourself")
306
- error_checking_templates = error_message("Unable to retrieve list of available starter kits")
307
- error_starterkit_index = error_message(
308
- "Error selecting starter kit '{starterkit_index}'. Select a valid index or 0 to cancel"
309
- )
310
- error_starterkit_name = error_message("Unknown starter kit '{starterkit_name}'")
311
306
  error_missing_url_or_connector = error_message(
312
307
  "Missing url, local path or --connector argument for append to datasource '{datasource}'"
313
308
  )
@@ -943,9 +938,6 @@ STEP 3: ADD KEY TO SERVICE ACCOUNT
943
938
  info_workspace_create_greeting = info_message(
944
939
  "Please enter the name for your new workspace. Remember the name you choose must be unique, you can add a suffix in case of collision.\nYou can bypass this step by supplying it after the command."
945
940
  )
946
- info_create_ws_msg_template = info_message(
947
- "Now let's pick a starter template! 🐣\nStarter template are pre-built data projects for different use cases, that you can use as a starting point and then build on top of that.\nYou can bypass this step by supplying a value for the --starter-kit option."
948
- )
949
941
  info_workspace_branch_create_greeting = info_message(
950
942
  "Please enter the name for your new Branch. Remember the name you choose must be unique, you can add a suffix in case of collision.\nYou can bypass this step by supplying a value for the --name option."
951
943
  )
@@ -91,7 +91,7 @@ async def get_tinybird_local_config(config_obj: Dict[str, Any], test: bool = Fal
91
91
 
92
92
  if not ws:
93
93
  await user_client.create_workspace(
94
- ws_name, template=None, assign_to_organization_id=user_org_id, version="v1"
94
+ ws_name, assign_to_organization_id=user_org_id, version="v1"
95
95
  )
96
96
  user_workspaces = requests.get(f"{TB_LOCAL_ADDRESS}/v1/user/workspaces?token={admin_token}").json()
97
97
  ws = next((ws for ws in user_workspaces["workspaces"] if ws["name"] == ws_name), None)
@@ -20,7 +20,6 @@ from tinybird.tb.modules.common import (
20
20
  get_current_main_workspace,
21
21
  get_organizations_by_user,
22
22
  get_user_token,
23
- is_valid_starterkit,
24
23
  switch_workspace,
25
24
  try_update_config_with_remote,
26
25
  )
@@ -133,8 +132,6 @@ async def workspace_current(ctx: Context):
133
132
 
134
133
  @workspace.command(name="create", short_help="Create a new Workspace for your Tinybird user")
135
134
  @click.argument("workspace_name", required=False)
136
- @click.option("--starter_kit", "starter_kit", type=str, required=False, help="Use a Tinybird starter kit as a template")
137
- @click.option("--starter-kit", "starter_kit", hidden=True)
138
135
  @click.option("--user_token", is_flag=False, default=None, help="When passed, tb won't prompt asking for the token")
139
136
  @click.option(
140
137
  "--fork",
@@ -154,14 +151,10 @@ async def workspace_current(ctx: Context):
154
151
  async def create_workspace(
155
152
  ctx: Context,
156
153
  workspace_name: str,
157
- starter_kit: str,
158
154
  user_token: Optional[str],
159
155
  fork: bool,
160
156
  organization_id: Optional[str],
161
157
  ) -> None:
162
- if starter_kit and not await is_valid_starterkit(ctx, starter_kit):
163
- raise CLIWorkspaceException(FeedbackManager.error_starterkit_name(starterkit_name=starter_kit))
164
-
165
158
  config = CLIConfig.get_project_config()
166
159
 
167
160
  user_token = await get_user_token(config, user_token)
@@ -177,11 +170,11 @@ async def create_workspace(
177
170
  # process, creating an empty workspace
178
171
  if workspace_name:
179
172
  await create_workspace_non_interactive(
180
- ctx, workspace_name, starter_kit, user_token, fork, organization_id, organization_name
173
+ ctx, workspace_name, user_token, fork, organization_id, organization_name
181
174
  )
182
175
  else:
183
176
  await create_workspace_interactive(
184
- ctx, workspace_name, starter_kit, user_token, fork, organization_id, organization_name
177
+ ctx, workspace_name, user_token, fork, organization_id, organization_name
185
178
  )
186
179
 
187
180
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: tinybird
3
- Version: 0.0.1.dev158
3
+ Version: 0.0.1.dev159
4
4
  Summary: Tinybird Command Line Tool
5
5
  Home-page: https://www.tinybird.co/docs/forward/commands
6
6
  Author: Tinybird
@@ -1,7 +1,7 @@
1
1
  tinybird/connectors.py,sha256=7Gjms7b5MAaBFGi3xytsJurCylprONpFcYrzp4Fw2Rc,15241
2
2
  tinybird/context.py,sha256=FfqYfrGX_I7PKGTQo93utaKPDNVYWelg4Hsp3evX5wM,1291
3
3
  tinybird/datatypes.py,sha256=r4WCvspmrXTJHiPjjyOTiZyZl31FO3Ynkwq4LQsYm6E,11059
4
- tinybird/feedback_manager.py,sha256=a_ZhFX2zcB7vRknIcmHKMdQbb0c7TqlTBQ_5hPuWh88,69267
4
+ tinybird/feedback_manager.py,sha256=1INQFfRfuMCb9lfB8KNf4r6qC2khW568hoHjtk-wshI,69305
5
5
  tinybird/git_settings.py,sha256=Sw_8rGmribEFJ4Z_6idrVytxpFYk7ez8ei0qHULzs3E,3934
6
6
  tinybird/prompts.py,sha256=yLXzHB7_P0zjriIvI9UsfnIRwmcwLSEA1tcJMzYJqjw,36456
7
7
  tinybird/sql.py,sha256=C_B81wwv3BsqyXGhF5oTk9DcTUkrp7NwIFqSzd3Dmjc,47854
@@ -12,16 +12,16 @@ tinybird/syncasync.py,sha256=IPnOx6lMbf9SNddN1eBtssg8vCLHMt76SuZ6YNYm-Yk,27761
12
12
  tinybird/tornado_template.py,sha256=jjNVDMnkYFWXflmT8KU_Ssbo5vR8KQq3EJMk5vYgXRw,41959
13
13
  tinybird/ch_utils/constants.py,sha256=aYvg2C_WxYWsnqPdZB1ZFoIr8ZY-XjUXYyHKE9Ansj0,3890
14
14
  tinybird/ch_utils/engine.py,sha256=BZuPM7MFS7vaEKK5tOMR2bwSAgJudPrJt27uVEwZmTY,40512
15
- tinybird/tb/__cli__.py,sha256=D2qtrfLEDxpvP71W2AsYv3LMZQASSN0tcvaXqUOE5-E,247
15
+ tinybird/tb/__cli__.py,sha256=GyvIw1NTIol8PlS2Xxdz91AMMQN8fLMXK9gDURTEfj0,247
16
16
  tinybird/tb/check_pypi.py,sha256=rW4QmDRbtgKdUUwJCnBkVjmTjZSZGN-XgZhx7vMkC0w,1009
17
17
  tinybird/tb/cli.py,sha256=uPV6pvi4aYVfaiGs0DQO-eoi1g9dHlrgvhutkXkdJko,1075
18
- tinybird/tb/client.py,sha256=aaPKq5C77e72kR7IMv9WrvnvNki8mKMOTi9EsCp0eUc,55962
18
+ tinybird/tb/client.py,sha256=CSBl_JRuioPyY0H8Ac96dJ9wQXDXfrvK2lwqlOxKGoY,55715
19
19
  tinybird/tb/config.py,sha256=jT9xndpeCY_g0HdB5qE2EquC0TFRRnkPnQFWZWd04jo,3998
20
20
  tinybird/tb/modules/auth.py,sha256=_OeYnmTH83lnqCgQEdS6K0bx1KBUeRmZk2M7JnRmWpk,9037
21
21
  tinybird/tb/modules/build.py,sha256=sj77FyQRAtAQdifY8sqVzPzeIUKsxUDwPsz17NSRsVA,18517
22
22
  tinybird/tb/modules/cicd.py,sha256=Cn1DyE28w2maQgIJF4IjZU7J7ULPvMG11DjN2OH-cqE,7161
23
23
  tinybird/tb/modules/cli.py,sha256=TCms3gyokv3ES1yD6WuL_mLNEqBcAFQHSvgOnr6RYDY,14266
24
- tinybird/tb/modules/common.py,sha256=WzF_zRtAl3FKqbzK6yi_IjeeGIjQNu6SKnP-PX-o3Kk,85196
24
+ tinybird/tb/modules/common.py,sha256=piwmeZVs2HZ-r4FAS1IN7UvKnlzxD8heyTU-S8tdIxw,82819
25
25
  tinybird/tb/modules/config.py,sha256=ziqW_t_mRVvWOd85VoB4vKyvgMkEfpXDf9H4v38p2xc,11422
26
26
  tinybird/tb/modules/connection.py,sha256=7oOR7x4PhBcm1ETFFCH2YJ_3oeGXjAbmx1cnZX9_L70,9014
27
27
  tinybird/tb/modules/copy.py,sha256=2Mm4FWKehOG7CoOhiF1m9UZJgJn0W1_cMolqju8ONYg,5805
@@ -32,13 +32,13 @@ tinybird/tb/modules/deprecations.py,sha256=nI_VPCB0Seyhlk2Foomoj3oUnx6GV_8Q5DMYV
32
32
  tinybird/tb/modules/dev_server.py,sha256=57FCKuWpErwYUYgHspYDkLWEm9F4pbvVOtMrFXX1fVU,10129
33
33
  tinybird/tb/modules/endpoint.py,sha256=XySDt3pk66vxOZ0egUfz4bY8bEk3BjOXkv-L0OIJ3sc,12083
34
34
  tinybird/tb/modules/exceptions.py,sha256=5jK91w1LPmtqIUfDpHe_Op5OxGz8-p1BPgtLREMIni0,5217
35
- tinybird/tb/modules/feedback_manager.py,sha256=NoflMdTcUs6JF2IUZS8TatItxWDNCfwaIJnKtbY8e3w,77447
35
+ tinybird/tb/modules/feedback_manager.py,sha256=c0ZOpG7IHFq3doodezctX64cTcTquIOhO38w9uPuU8Q,76798
36
36
  tinybird/tb/modules/infra.py,sha256=fve30Gj3mG9zbquGxS2e4ipcOYOxviWQCpNFfEzJN_Q,33195
37
37
  tinybird/tb/modules/job.py,sha256=n4dSSBgnA8NqD7srGahf2xRj6wxkmX9Vl0J-QJ_a2w0,2966
38
38
  tinybird/tb/modules/llm.py,sha256=KfsCYmKeW1VQz0iDZhGKCRkQv_Y3kTHh6JuxvofOguE,1076
39
39
  tinybird/tb/modules/llm_utils.py,sha256=nS9r4FAElJw8yXtmdYrx-rtI2zXR8qXfi1QqUDCfxvg,3469
40
40
  tinybird/tb/modules/local.py,sha256=SUaGWH9TLDFFF9uCw4y7UW4NsKgnXG8uxTcxz1dbkCM,14230
41
- tinybird/tb/modules/local_common.py,sha256=GMbA0aKaDXzOIHVCfi_IJyQ7ziWPUhTWk0I_CZm8nmQ,4763
41
+ tinybird/tb/modules/local_common.py,sha256=WJsU4UMn5ICVzPsC_rTfxWm1Kl5szfxD1Sqlew1sq0M,4748
42
42
  tinybird/tb/modules/login.py,sha256=fmXPSdvJnKPv03chptGuu3_Fm6LhP6kUsUKhrmT8rJc,8269
43
43
  tinybird/tb/modules/logout.py,sha256=ULooy1cDBD02-r7voZmhV7udA0ML5tVuflJyShrh56Y,1022
44
44
  tinybird/tb/modules/materialization.py,sha256=QJX5kCPhhm6IXBO1JsalVfbQdypCe_eOUDZ_WHJZWS8,5478
@@ -54,7 +54,7 @@ tinybird/tb/modules/telemetry.py,sha256=X0p5AVkM8BNsK_Rhdcg4p2eIf6OHimHO_VLldBqH
54
54
  tinybird/tb/modules/test.py,sha256=Yopg89cRwOQpgRzsb9nvu2Z-UR2as2vBjVa5PF3uiK0,13420
55
55
  tinybird/tb/modules/token.py,sha256=2fmKwu10_M0pqs6YmJVeILR9ZQB0ejRAET86agASbKM,13488
56
56
  tinybird/tb/modules/watch.py,sha256=_92co0BjTikQuy7MbHr4TDu9A75QdHsrAO8v7DlYLg4,8898
57
- tinybird/tb/modules/workspace.py,sha256=JIPfsh243gCiCkB3bw0Zx0VcivCeMq34xqlfuT3aURE,8518
57
+ tinybird/tb/modules/workspace.py,sha256=yKCnplv_gEK8VAbC_TyzOX8OKxdBg9x3NsUFLOBrxXA,8088
58
58
  tinybird/tb/modules/workspace_members.py,sha256=RYLpyPM1ECCasHRg3uvpckzXplX0_KgNFsSPZn_i6qk,8744
59
59
  tinybird/tb/modules/datafile/build.py,sha256=d_h3pRFDPFrDKGhpFx2iejY25GuB2k8yfNouj6s8caw,50973
60
60
  tinybird/tb/modules/datafile/build_common.py,sha256=LU24kAQmxDJIyoIapDaYG-SU3P4FrMG9UBf8m9PgVSI,4565
@@ -80,8 +80,8 @@ tinybird/tb_cli_modules/config.py,sha256=IsgdtFRnUrkY8-Zo32lmk6O7u3bHie1QCxLwgp4
80
80
  tinybird/tb_cli_modules/exceptions.py,sha256=pmucP4kTF4irIt7dXiG-FcnI-o3mvDusPmch1L8RCWk,3367
81
81
  tinybird/tb_cli_modules/regions.py,sha256=QjsL5H6Kg-qr0aYVLrvb1STeJ5Sx_sjvbOYO0LrEGMk,166
82
82
  tinybird/tb_cli_modules/telemetry.py,sha256=Hh2Io8ZPROSunbOLuMvuIFU4TqwWPmQTqal4WS09K1A,10449
83
- tinybird-0.0.1.dev158.dist-info/METADATA,sha256=_fDRnek82F65waVdjHMKU_WuJJcNu0vRwshmgg0YgGk,1607
84
- tinybird-0.0.1.dev158.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
85
- tinybird-0.0.1.dev158.dist-info/entry_points.txt,sha256=LwdHU6TfKx4Qs7BqqtaczEZbImgU7Abe9Lp920zb_fo,43
86
- tinybird-0.0.1.dev158.dist-info/top_level.txt,sha256=VqqqEmkAy7UNaD8-V51FCoMMWXjLUlR0IstvK7tJYVY,54
87
- tinybird-0.0.1.dev158.dist-info/RECORD,,
83
+ tinybird-0.0.1.dev159.dist-info/METADATA,sha256=Ay8x_tVw1uwVAyEAxHhuVpcxfTwbwNMVO6LlgQ8vxs0,1607
84
+ tinybird-0.0.1.dev159.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
85
+ tinybird-0.0.1.dev159.dist-info/entry_points.txt,sha256=LwdHU6TfKx4Qs7BqqtaczEZbImgU7Abe9Lp920zb_fo,43
86
+ tinybird-0.0.1.dev159.dist-info/top_level.txt,sha256=VqqqEmkAy7UNaD8-V51FCoMMWXjLUlR0IstvK7tJYVY,54
87
+ tinybird-0.0.1.dev159.dist-info/RECORD,,