dataops-sdk 0.4.3__tar.gz → 0.4.4__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.
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/PKG-INFO +1 -1
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/__init__.py +2 -1
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/__init__.py +1 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/skill.py +61 -1
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk.egg-info/PKG-INFO +1 -1
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/README.md +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/pyproject.toml +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/setup.cfg +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/constants.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/exceptions.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/__init__.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/datasource_factory.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/schemas/nacos/__init__.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/schemas/nacos/config.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/schemas/nacos/constants.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/schemas/nacos/instance.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/schemas/nacos/nacos_exception.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/schemas/nacos/naming_param.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/schemas/nacos/naming_request.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/schemas/nacos/naming_response.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/schemas/nacos/preserved_metadata_key.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/schemas/nacos/service.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/utils/__init__.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/utils/common.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/utils/dbConn_base.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/utils/dbConn_sync.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/utils/duckdb_manager.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/utils/file_transfer_base.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/utils/ftp_file_transfer.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/utils/nacos.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/utils/neo4j_sync.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/utils/queue_base.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/utils/queue_kafka.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/utils/sftp_file_transfer.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/utils/websocket_client.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/__init__.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/alarm.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/api.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/common.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/data_table.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/datasource.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/dict_.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/enums.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/group.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/hazard.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/meta.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/query.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/report.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/skill.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/sql_query_ast.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/table.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/tag.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/user.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/widget.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/wiki.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/workflow.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/alarm.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/api.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/auth.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/data_table.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/dataset.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/datasource.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/dict_.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/group.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/hazard.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/meta.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/metrics.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/ref.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/report.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/table.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/tag.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/widget.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/wiki.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/workflow.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/session.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/tiptap/__init__.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/tiptap/builder.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/tiptap/constants.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/tiptap/markdown_parser.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/tiptap/models.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/tiptap/parse_utils.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/tiptap/render_utils.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/tiptap/renderers.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/tiptap/tool.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/utils/__init__.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/utils/common.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/utils/log.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/utils/utils.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk.egg-info/SOURCES.txt +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk.egg-info/dependency_links.txt +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk.egg-info/requires.txt +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk.egg-info/top_level.txt +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/tests/test_constants.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/tests/test_exceptions.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/tests/test_session.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/tests/test_utils.py +0 -0
- {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/tests/test_websocket_client.py +0 -0
|
@@ -95,6 +95,7 @@ from .services import ( # noqa: F401
|
|
|
95
95
|
service_ref_forward,
|
|
96
96
|
service_set_application,
|
|
97
97
|
service_skill_call_by_code,
|
|
98
|
+
service_skill_download,
|
|
98
99
|
service_skill_update,
|
|
99
100
|
service_skill_upload,
|
|
100
101
|
service_skill_upload_sub_file,
|
|
@@ -108,4 +109,4 @@ from .services import ( # noqa: F401
|
|
|
108
109
|
)
|
|
109
110
|
from .session import dataops_base_url_context, request_context
|
|
110
111
|
|
|
111
|
-
__version__ = "0.4.
|
|
112
|
+
__version__ = "0.4.4"
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
- 列表与详情: ``service_list_skills`` / ``service_get_skill_by_code`` / ``service_get_skill_by_name`` / ``service_list_skill_files``.
|
|
6
6
|
- 导入 / 更新 / 删除: ``service_skill_upload`` / ``service_skill_update`` / ``service_delete_skill`` / ``service_skill_upload_sub_file`` / ``service_skill_delete_sub_file``.
|
|
7
|
-
- 打包 ZIP: ``service_pack_skill_zip
|
|
7
|
+
- 打包 / 下载 ZIP: ``service_pack_skill_zip`` / ``service_skill_download``.
|
|
8
8
|
- 同步调用: ``service_skill_call_by_code``.
|
|
9
9
|
|
|
10
10
|
所有函数均为纯 Python 接口,不依赖 typer/Rich.
|
|
@@ -44,6 +44,7 @@ __all__ = [
|
|
|
44
44
|
"service_skill_delete_sub_file",
|
|
45
45
|
"service_get_skill_by_code",
|
|
46
46
|
"service_get_skill_by_name",
|
|
47
|
+
"service_skill_download",
|
|
47
48
|
"service_skill_upload",
|
|
48
49
|
"service_skill_update",
|
|
49
50
|
"service_list_skill_files",
|
|
@@ -365,6 +366,65 @@ def service_skill_update(
|
|
|
365
366
|
return body.get("data") or {}
|
|
366
367
|
|
|
367
368
|
|
|
369
|
+
def service_skill_download(
|
|
370
|
+
name: str,
|
|
371
|
+
output_path: str | Path | None = None,
|
|
372
|
+
) -> Path:
|
|
373
|
+
"""从平台导出技能 ZIP 并保存到本地.
|
|
374
|
+
|
|
375
|
+
按业务名解析 ``code`` 后调用 ``POST /data/skill/export/{code}``,
|
|
376
|
+
将返回的 ``application/zip`` 二进制写入本地文件。
|
|
377
|
+
|
|
378
|
+
Args:
|
|
379
|
+
name: 技能业务名.
|
|
380
|
+
output_path: 可选输出路径。省略时写到当前目录 ``{name}.zip``;
|
|
381
|
+
路径以 ``/`` 或 ``\\`` 结尾时视为目录,在其下生成 ``{name}.zip``;
|
|
382
|
+
否则视为精确文件路径。
|
|
383
|
+
|
|
384
|
+
Returns:
|
|
385
|
+
实际写入的 ZIP 文件 :class:`Path` 对象。
|
|
386
|
+
|
|
387
|
+
Raises:
|
|
388
|
+
NotFoundError: 找不到对应技能时
|
|
389
|
+
DataOpsError: API 返回错误时
|
|
390
|
+
AuthenticationError: 未认证或认证失败时
|
|
391
|
+
OSError: 写入本地文件失败时
|
|
392
|
+
"""
|
|
393
|
+
meta = service_get_skill_by_name(name)
|
|
394
|
+
try:
|
|
395
|
+
with get_session() as session:
|
|
396
|
+
resp = session.post(f"/data/skill/export/{meta.code}")
|
|
397
|
+
if resp.status_code == 401:
|
|
398
|
+
raise AuthenticationError("认证失败,请先登录")
|
|
399
|
+
if resp.status_code != 200:
|
|
400
|
+
msg = f"HTTP {resp.status_code}"
|
|
401
|
+
try:
|
|
402
|
+
body = resp.json()
|
|
403
|
+
msg = body.get("msg", msg) if isinstance(body, dict) else msg
|
|
404
|
+
except Exception:
|
|
405
|
+
pass
|
|
406
|
+
raise DataOpsError(msg, resp.status_code)
|
|
407
|
+
content = resp.content
|
|
408
|
+
except SystemExit as e:
|
|
409
|
+
raise AuthenticationError("认证失败,请先登录") from e
|
|
410
|
+
|
|
411
|
+
# 默认/目录场景统一用业务名,便于与 upload 对称识别
|
|
412
|
+
zip_filename = f"{name}.zip"
|
|
413
|
+
|
|
414
|
+
if output_path is None:
|
|
415
|
+
out = Path(zip_filename)
|
|
416
|
+
else:
|
|
417
|
+
raw = os.fspath(output_path)
|
|
418
|
+
treat_as_dir = isinstance(raw, str) and raw.endswith(("/", "\\"))
|
|
419
|
+
out = Path(raw)
|
|
420
|
+
if treat_as_dir or out.is_dir():
|
|
421
|
+
out = out / zip_filename
|
|
422
|
+
|
|
423
|
+
out.parent.mkdir(parents=True, exist_ok=True)
|
|
424
|
+
out.write_bytes(content)
|
|
425
|
+
return out
|
|
426
|
+
|
|
427
|
+
|
|
368
428
|
def service_delete_skill(name: str) -> dict:
|
|
369
429
|
"""按业务名删除技能(级联删除所有 skill_file).
|
|
370
430
|
|
|
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
|
{dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/schemas/nacos/nacos_exception.py
RENAMED
|
File without changes
|
{dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/schemas/nacos/naming_param.py
RENAMED
|
File without changes
|
{dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/schemas/nacos/naming_request.py
RENAMED
|
File without changes
|
{dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/schemas/nacos/naming_response.py
RENAMED
|
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
|
|
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
|
|
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
|