@josephyan/qingflow-cli 0.2.0-beta.71 → 0.2.0-beta.72

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.
@@ -2,13 +2,16 @@ from __future__ import annotations
2
2
 
3
3
  import argparse
4
4
 
5
- from . import app, auth, builder, imports, record, task, workspace
5
+ from . import app, auth, builder, chart, imports, portal, record, task, view, workspace
6
6
 
7
7
 
8
8
  def register_all_commands(subparsers: argparse._SubParsersAction[argparse.ArgumentParser]) -> None:
9
9
  auth.register(subparsers)
10
10
  workspace.register(subparsers)
11
11
  app.register(subparsers)
12
+ portal.register(subparsers)
13
+ view.register(subparsers)
14
+ chart.register(subparsers)
12
15
  record.register(subparsers)
13
16
  imports.register(subparsers)
14
17
  task.register(subparsers)
@@ -76,6 +76,16 @@ def register(subparsers: argparse._SubParsersAction[argparse.ArgumentParser]) ->
76
76
  app_release_lock.add_argument("--lock-owner-name", required=True)
77
77
  app_release_lock.set_defaults(handler=_handle_app_release_edit_lock_if_mine, format_hint="builder_summary")
78
78
 
79
+ app_get = app_subparsers.add_parser("get", help="读取应用配置")
80
+ app_get.add_argument(
81
+ "builder_app_get_section",
82
+ nargs="?",
83
+ choices=["summary", "fields", "layout", "views", "flow", "charts"],
84
+ default="summary",
85
+ )
86
+ app_get.add_argument("--app-key", required=True)
87
+ app_get.set_defaults(handler=_handle_app_get, format_hint="builder_summary")
88
+
79
89
  button = builder_subparsers.add_parser("button", help="自定义按钮")
80
90
  button_subparsers = button.add_subparsers(dest="builder_button_command", required=True)
81
91
 
@@ -104,18 +114,6 @@ def register(subparsers: argparse._SubParsersAction[argparse.ArgumentParser]) ->
104
114
  button_delete.add_argument("--button-id", type=int, required=True)
105
115
  button_delete.set_defaults(handler=_handle_button_delete, format_hint="builder_summary")
106
116
 
107
- for name, help_text, handler in [
108
- ("read-summary", "读取应用摘要", _handle_app_read_summary),
109
- ("read-fields", "读取字段摘要", _handle_app_read_fields),
110
- ("read-layout", "读取布局摘要", _handle_app_read_layout),
111
- ("read-views", "读取视图摘要", _handle_app_read_views),
112
- ("read-flow", "读取流程摘要", _handle_app_read_flow),
113
- ("read-charts", "读取报表摘要", _handle_app_read_charts),
114
- ]:
115
- sub = app_subparsers.add_parser(name, help=help_text)
116
- sub.add_argument("--app-key", required=True)
117
- sub.set_defaults(handler=handler, format_hint="builder_summary")
118
-
119
117
  portal = builder_subparsers.add_parser("portal", help="门户")
120
118
  portal_subparsers = portal.add_subparsers(dest="builder_portal_command", required=True)
121
119
  portal_list = portal_subparsers.add_parser("list", help="列出可访问门户")
@@ -126,11 +124,6 @@ def register(subparsers: argparse._SubParsersAction[argparse.ArgumentParser]) ->
126
124
  portal_get.add_argument("--being-draft", action=argparse.BooleanOptionalAction, default=True)
127
125
  portal_get.set_defaults(handler=_handle_portal_get, format_hint="builder_summary")
128
126
 
129
- portal_read = portal_subparsers.add_parser("read-summary", help="读取门户摘要")
130
- portal_read.add_argument("--dash-key", required=True)
131
- portal_read.add_argument("--being-draft", action=argparse.BooleanOptionalAction, default=True)
132
- portal_read.set_defaults(handler=_handle_portal_read_summary, format_hint="builder_summary")
133
-
134
127
  portal_apply = portal_subparsers.add_parser("apply", help="更新门户")
135
128
  portal_apply.add_argument("--dash-key", default="")
136
129
  portal_apply.add_argument("--dash-name", default="")
@@ -208,18 +201,13 @@ def register(subparsers: argparse._SubParsersAction[argparse.ArgumentParser]) ->
208
201
  view = builder_subparsers.add_parser("view", help="视图详情")
209
202
  view_subparsers = view.add_subparsers(dest="builder_view_command", required=True)
210
203
  view_get = view_subparsers.add_parser("get", help="读取视图详情")
211
- view_get.add_argument("--viewgraph-key", required=True)
204
+ view_get.add_argument("--view-key", required=True)
212
205
  view_get.set_defaults(handler=_handle_view_get, format_hint="builder_summary")
213
206
 
214
207
  chart = builder_subparsers.add_parser("chart", help="报表详情")
215
208
  chart_subparsers = chart.add_subparsers(dest="builder_chart_command", required=True)
216
- chart_get = chart_subparsers.add_parser("get", help="读取报表详情和数据")
209
+ chart_get = chart_subparsers.add_parser("get", help="读取报表配置详情")
217
210
  chart_get.add_argument("--chart-id", required=True)
218
- chart_get.add_argument("--data-payload-file")
219
- chart_get.add_argument("--page-num", type=int)
220
- chart_get.add_argument("--page-size", type=int)
221
- chart_get.add_argument("--page-num-y", type=int)
222
- chart_get.add_argument("--page-size-y", type=int)
223
211
  chart_get.set_defaults(handler=_handle_chart_get, format_hint="builder_summary")
224
212
 
225
213
 
@@ -347,28 +335,16 @@ def _handle_button_delete(args: argparse.Namespace, context: CliContext) -> dict
347
335
  return context.builder.app_custom_button_delete(profile=args.profile, app_key=args.app_key, button_id=args.button_id)
348
336
 
349
337
 
350
- def _handle_app_read_summary(args: argparse.Namespace, context: CliContext) -> dict:
351
- return context.builder.app_read_summary(profile=args.profile, app_key=args.app_key)
352
-
353
-
354
- def _handle_app_read_fields(args: argparse.Namespace, context: CliContext) -> dict:
355
- return context.builder.app_read_fields(profile=args.profile, app_key=args.app_key)
356
-
357
-
358
- def _handle_app_read_layout(args: argparse.Namespace, context: CliContext) -> dict:
359
- return context.builder.app_read_layout_summary(profile=args.profile, app_key=args.app_key)
360
-
361
-
362
- def _handle_app_read_views(args: argparse.Namespace, context: CliContext) -> dict:
363
- return context.builder.app_read_views_summary(profile=args.profile, app_key=args.app_key)
364
-
365
-
366
- def _handle_app_read_flow(args: argparse.Namespace, context: CliContext) -> dict:
367
- return context.builder.app_read_flow_summary(profile=args.profile, app_key=args.app_key)
368
-
369
-
370
- def _handle_app_read_charts(args: argparse.Namespace, context: CliContext) -> dict:
371
- return context.builder.app_read_charts_summary(profile=args.profile, app_key=args.app_key)
338
+ def _handle_app_get(args: argparse.Namespace, context: CliContext) -> dict:
339
+ handlers = {
340
+ "summary": context.builder.app_get,
341
+ "fields": context.builder.app_get_fields,
342
+ "layout": context.builder.app_get_layout,
343
+ "views": context.builder.app_get_views,
344
+ "flow": context.builder.app_get_flow,
345
+ "charts": context.builder.app_get_charts,
346
+ }
347
+ return handlers[args.builder_app_get_section](profile=args.profile, app_key=args.app_key)
372
348
 
373
349
 
374
350
  def _handle_portal_list(args: argparse.Namespace, context: CliContext) -> dict:
@@ -379,28 +355,12 @@ def _handle_portal_get(args: argparse.Namespace, context: CliContext) -> dict:
379
355
  return context.builder.portal_get(profile=args.profile, dash_key=args.dash_key, being_draft=bool(args.being_draft))
380
356
 
381
357
 
382
- def _handle_portal_read_summary(args: argparse.Namespace, context: CliContext) -> dict:
383
- return context.builder.portal_read_summary(
384
- profile=args.profile,
385
- dash_key=args.dash_key,
386
- being_draft=bool(args.being_draft),
387
- )
388
-
389
-
390
358
  def _handle_view_get(args: argparse.Namespace, context: CliContext) -> dict:
391
- return context.builder.view_get(profile=args.profile, viewgraph_key=args.viewgraph_key)
359
+ return context.builder.view_get(profile=args.profile, view_key=args.view_key)
392
360
 
393
361
 
394
362
  def _handle_chart_get(args: argparse.Namespace, context: CliContext) -> dict:
395
- return context.builder.chart_get(
396
- profile=args.profile,
397
- chart_id=args.chart_id,
398
- data_payload=load_object_arg(args.data_payload_file, option_name="--data-payload-file") if args.data_payload_file else {},
399
- page_num=args.page_num,
400
- page_size=args.page_size,
401
- page_num_y=args.page_num_y,
402
- page_size_y=args.page_size_y,
403
- )
363
+ return context.builder.chart_get(profile=args.profile, chart_id=args.chart_id)
404
364
 
405
365
 
406
366
  def _handle_schema_apply(args: argparse.Namespace, context: CliContext) -> dict:
@@ -0,0 +1,18 @@
1
+ from __future__ import annotations
2
+
3
+ import argparse
4
+
5
+ from ..context import CliContext
6
+
7
+
8
+ def register(subparsers: argparse._SubParsersAction[argparse.ArgumentParser]) -> None:
9
+ parser = subparsers.add_parser("chart", help="报表访问")
10
+ chart_subparsers = parser.add_subparsers(dest="chart_command", required=True)
11
+
12
+ get_parser = chart_subparsers.add_parser("get", help="读取报表数据")
13
+ get_parser.add_argument("--chart-id", required=True)
14
+ get_parser.set_defaults(handler=_handle_get, format_hint="generic")
15
+
16
+
17
+ def _handle_get(args: argparse.Namespace, context: CliContext) -> dict:
18
+ return context.resource.chart_get(profile=args.profile, chart_id=args.chart_id)
@@ -0,0 +1,25 @@
1
+ from __future__ import annotations
2
+
3
+ import argparse
4
+
5
+ from ..context import CliContext
6
+
7
+
8
+ def register(subparsers: argparse._SubParsersAction[argparse.ArgumentParser]) -> None:
9
+ parser = subparsers.add_parser("portal", help="门户访问")
10
+ portal_subparsers = parser.add_subparsers(dest="portal_command", required=True)
11
+
12
+ list_parser = portal_subparsers.add_parser("list", help="列出当前用户可访问的门户")
13
+ list_parser.set_defaults(handler=_handle_list, format_hint="generic")
14
+
15
+ get_parser = portal_subparsers.add_parser("get", help="读取门户内容清单")
16
+ get_parser.add_argument("--dash-key", required=True)
17
+ get_parser.set_defaults(handler=_handle_get, format_hint="generic")
18
+
19
+
20
+ def _handle_list(args: argparse.Namespace, context: CliContext) -> dict:
21
+ return context.resource.portal_list(profile=args.profile)
22
+
23
+
24
+ def _handle_get(args: argparse.Namespace, context: CliContext) -> dict:
25
+ return context.resource.portal_get(profile=args.profile, dash_key=args.dash_key)
@@ -0,0 +1,18 @@
1
+ from __future__ import annotations
2
+
3
+ import argparse
4
+
5
+ from ..context import CliContext
6
+
7
+
8
+ def register(subparsers: argparse._SubParsersAction[argparse.ArgumentParser]) -> None:
9
+ parser = subparsers.add_parser("view", help="视图访问")
10
+ view_subparsers = parser.add_subparsers(dest="view_command", required=True)
11
+
12
+ get_parser = view_subparsers.add_parser("get", help="读取视图资源描述")
13
+ get_parser.add_argument("--view-id", required=True)
14
+ get_parser.set_defaults(handler=_handle_get, format_hint="generic")
15
+
16
+
17
+ def _handle_get(args: argparse.Namespace, context: CliContext) -> dict:
18
+ return context.resource.view_get(profile=args.profile, view_id=args.view_id)
@@ -10,6 +10,7 @@ from ..tools.auth_tools import AuthTools
10
10
  from ..tools.code_block_tools import CodeBlockTools
11
11
  from ..tools.import_tools import ImportTools
12
12
  from ..tools.record_tools import RecordTools
13
+ from ..tools.resource_read_tools import ResourceReadTools
13
14
  from ..tools.task_context_tools import TaskContextTools
14
15
  from ..tools.workspace_tools import WorkspaceTools
15
16
 
@@ -21,6 +22,7 @@ class CliContext:
21
22
  auth: AuthTools
22
23
  workspace: WorkspaceTools
23
24
  app: AppTools
25
+ resource: ResourceReadTools
24
26
  record: RecordTools
25
27
  code_block: CodeBlockTools
26
28
  imports: ImportTools
@@ -40,6 +42,7 @@ def build_cli_context() -> CliContext:
40
42
  auth=AuthTools(sessions, backend),
41
43
  workspace=WorkspaceTools(sessions, backend),
42
44
  app=AppTools(sessions, backend),
45
+ resource=ResourceReadTools(sessions, backend),
43
46
  record=RecordTools(sessions, backend),
44
47
  code_block=CodeBlockTools(sessions, backend),
45
48
  imports=ImportTools(sessions, backend),