data-ops-cli 0.4.5__tar.gz → 0.5.0__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.
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/PKG-INFO +1 -1
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/data_ops_cli.egg-info/PKG-INFO +1 -1
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/__init__.py +1 -1
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/cli/skill.py +13 -10
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/cli/workflow.py +10 -6
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/README.md +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/pyproject.toml +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/setup.cfg +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/data_ops_cli.egg-info/SOURCES.txt +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/data_ops_cli.egg-info/dependency_links.txt +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/data_ops_cli.egg-info/entry_points.txt +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/data_ops_cli.egg-info/requires.txt +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/data_ops_cli.egg-info/top_level.txt +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/_compat.py +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/cli/__init__.py +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/cli/alarm.py +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/cli/api.py +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/cli/auth.py +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/cli/data_table.py +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/cli/dataset.py +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/cli/datasource.py +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/cli/dict_.py +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/cli/factory.py +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/cli/hazard.py +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/cli/metrics.py +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/cli/ontology.py +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/cli/ref.py +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/cli/report.py +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/cli/table.py +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/cli/tag.py +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/cli/utils.py +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/cli/widget.py +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/exceptions.py +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/runner.py +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/schems.py +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/sdk.py +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/session.py +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/src/dataops_cli/utils.py +0 -0
- {data_ops_cli-0.4.5 → data_ops_cli-0.5.0}/tests/test_table_relation.py +0 -0
|
@@ -125,16 +125,18 @@ def detail_cmd(
|
|
|
125
125
|
|
|
126
126
|
@skill_typer.command("upload", no_args_is_help=True)
|
|
127
127
|
def upload_cmd(
|
|
128
|
-
space_code: Annotated[
|
|
129
|
-
str, typer.Argument(help="空间编码 (通过 ``report sapce list`` 查看空间编码)")
|
|
130
|
-
],
|
|
128
|
+
space_code: Annotated[str, typer.Argument(help="空间编码 (通过 ``report space list`` 查看)")],
|
|
131
129
|
file: Annotated[Path, typer.Argument(help="技能 ZIP 文件路径")],
|
|
132
130
|
dtype: Annotated[
|
|
133
131
|
MetaSkillSubType,
|
|
134
132
|
typer.Option("--type", help="技能子类型"),
|
|
135
133
|
],
|
|
136
134
|
ref_node_id: Annotated[
|
|
137
|
-
str | None,
|
|
135
|
+
str | None,
|
|
136
|
+
typer.Option(
|
|
137
|
+
"--ref-node-id",
|
|
138
|
+
help="文档中心分组节点 ID(可选;通过 ``report tree`` 查看,需挂到树上时填写)",
|
|
139
|
+
),
|
|
138
140
|
] = None,
|
|
139
141
|
ref_type: Annotated[
|
|
140
142
|
GroupNodeRefType,
|
|
@@ -142,11 +144,14 @@ def upload_cmd(
|
|
|
142
144
|
] = GroupNodeRefType.AFTER,
|
|
143
145
|
title: Annotated[str | None, typer.Option("--title", help="技能简体中文名称")] = None,
|
|
144
146
|
) -> None:
|
|
145
|
-
"""从 ZIP
|
|
147
|
+
"""从 ZIP 包导入技能到指定文档空间(可选挂到文档中心树节点)。
|
|
146
148
|
|
|
147
149
|
Examples:
|
|
148
|
-
|
|
149
|
-
>>> data-ops-cli skill
|
|
150
|
+
仅导入到空间(不挂文档树节点)
|
|
151
|
+
>>> data-ops-cli skill upload default my-skill.zip --type llm
|
|
152
|
+
|
|
153
|
+
挂到文档中心某分组节点内
|
|
154
|
+
>>> data-ops-cli skill upload default my-skill.zip --type api --ref-node-id {node-id} --ref-type inner
|
|
150
155
|
"""
|
|
151
156
|
if not file.exists():
|
|
152
157
|
typer.echo(f"错误: 文件不存在 {file}")
|
|
@@ -218,9 +223,7 @@ def download_cmd(
|
|
|
218
223
|
output_path: str | None = None
|
|
219
224
|
if output is not None:
|
|
220
225
|
# Typer Path 会吞掉末尾分隔符;无 .zip 后缀时视为目录
|
|
221
|
-
output_path = (
|
|
222
|
-
str(output) if output.suffix.lower() == ".zip" else f"{output}/"
|
|
223
|
-
)
|
|
226
|
+
output_path = str(output) if output.suffix.lower() == ".zip" else f"{output}/"
|
|
224
227
|
|
|
225
228
|
try:
|
|
226
229
|
zip_path = service_skill_download(name=name, output_path=output_path)
|
|
@@ -160,6 +160,7 @@ def get_workflow_template(
|
|
|
160
160
|
@workflow_typer.command("run", no_args_is_help=True)
|
|
161
161
|
def run_workflow(
|
|
162
162
|
code: Annotated[str, typer.Argument(help="工作流编码")],
|
|
163
|
+
start_node_id: Annotated[str, typer.Argument(help="启动节点 ID")],
|
|
163
164
|
params: Annotated[
|
|
164
165
|
str | None,
|
|
165
166
|
typer.Option(help='启动参数 JSON 字符串,例如 \'{"key":"value"}\''),
|
|
@@ -172,14 +173,15 @@ def run_workflow(
|
|
|
172
173
|
|
|
173
174
|
Args:
|
|
174
175
|
code: 工作流编码。
|
|
176
|
+
start_node_id: 启动节点 ID(手动触发一般为 manually-trigger)。
|
|
175
177
|
params: 可选启动参数 JSON 字符串。
|
|
176
178
|
|
|
177
179
|
Examples:
|
|
178
180
|
无参启动
|
|
179
|
-
>>> data-ops-cli workflow run wf_code_001
|
|
181
|
+
>>> data-ops-cli workflow run wf_code_001 manually-trigger
|
|
180
182
|
|
|
181
183
|
带参数启动
|
|
182
|
-
>>> data-ops-cli workflow run wf_code_001 --params '{"date":"2026-07-16"}'
|
|
184
|
+
>>> data-ops-cli workflow run wf_code_001 manually-trigger --params '{"date":"2026-07-16"}'
|
|
183
185
|
"""
|
|
184
186
|
try:
|
|
185
187
|
params_dict = json.loads(params) if params else None
|
|
@@ -188,7 +190,7 @@ def run_workflow(
|
|
|
188
190
|
raise typer.Exit(code=1) from None
|
|
189
191
|
|
|
190
192
|
try:
|
|
191
|
-
result = service_start_workflow(code, params_dict)
|
|
193
|
+
result = service_start_workflow(code, start_node_id, params_dict)
|
|
192
194
|
except DataOpsError as e:
|
|
193
195
|
typer.echo(f"错误: {e.message}")
|
|
194
196
|
raise typer.Exit(code=1) from None
|
|
@@ -199,6 +201,7 @@ def run_workflow(
|
|
|
199
201
|
@workflow_typer.command("run-async", no_args_is_help=True)
|
|
200
202
|
def run_workflow_async(
|
|
201
203
|
code: Annotated[str, typer.Argument(help="工作流编码")],
|
|
204
|
+
start_node_id: Annotated[str, typer.Argument(help="启动节点 ID")],
|
|
202
205
|
params: Annotated[
|
|
203
206
|
str | None,
|
|
204
207
|
typer.Option(help='启动参数 JSON 字符串,例如 \'{"key":"value"}\''),
|
|
@@ -211,14 +214,15 @@ def run_workflow_async(
|
|
|
211
214
|
|
|
212
215
|
Args:
|
|
213
216
|
code: 工作流编码。
|
|
217
|
+
start_node_id: 启动节点 ID(手动触发一般为 manually-trigger)。
|
|
214
218
|
params: 可选启动参数 JSON 字符串。
|
|
215
219
|
|
|
216
220
|
Examples:
|
|
217
221
|
无参异步启动
|
|
218
|
-
>>> data-ops-cli workflow run-async wf_code_001
|
|
222
|
+
>>> data-ops-cli workflow run-async wf_code_001 manually-trigger
|
|
219
223
|
|
|
220
224
|
带参数异步启动
|
|
221
|
-
>>> data-ops-cli workflow run-async wf_code_001 --params '{"date":"2026-07-16"}'
|
|
225
|
+
>>> data-ops-cli workflow run-async wf_code_001 manually-trigger --params '{"date":"2026-07-16"}'
|
|
222
226
|
"""
|
|
223
227
|
try:
|
|
224
228
|
params_dict = json.loads(params) if params else None
|
|
@@ -227,7 +231,7 @@ def run_workflow_async(
|
|
|
227
231
|
raise typer.Exit(code=1) from None
|
|
228
232
|
|
|
229
233
|
try:
|
|
230
|
-
result = service_start_workflow_async(code, params_dict)
|
|
234
|
+
result = service_start_workflow_async(code, start_node_id, params_dict)
|
|
231
235
|
except DataOpsError as e:
|
|
232
236
|
typer.echo(f"错误: {e.message}")
|
|
233
237
|
raise typer.Exit(code=1) from None
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|