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.
Files changed (97) hide show
  1. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/PKG-INFO +1 -1
  2. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/__init__.py +2 -1
  3. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/__init__.py +1 -0
  4. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/skill.py +61 -1
  5. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk.egg-info/PKG-INFO +1 -1
  6. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/README.md +0 -0
  7. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/pyproject.toml +0 -0
  8. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/setup.cfg +0 -0
  9. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/constants.py +0 -0
  10. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/exceptions.py +0 -0
  11. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/__init__.py +0 -0
  12. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/datasource_factory.py +0 -0
  13. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/schemas/nacos/__init__.py +0 -0
  14. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/schemas/nacos/config.py +0 -0
  15. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/schemas/nacos/constants.py +0 -0
  16. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/schemas/nacos/instance.py +0 -0
  17. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/schemas/nacos/nacos_exception.py +0 -0
  18. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/schemas/nacos/naming_param.py +0 -0
  19. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/schemas/nacos/naming_request.py +0 -0
  20. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/schemas/nacos/naming_response.py +0 -0
  21. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/schemas/nacos/preserved_metadata_key.py +0 -0
  22. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/schemas/nacos/service.py +0 -0
  23. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/utils/__init__.py +0 -0
  24. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/utils/common.py +0 -0
  25. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/utils/dbConn_base.py +0 -0
  26. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/utils/dbConn_sync.py +0 -0
  27. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/utils/duckdb_manager.py +0 -0
  28. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/utils/file_transfer_base.py +0 -0
  29. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/utils/ftp_file_transfer.py +0 -0
  30. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/utils/nacos.py +0 -0
  31. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/utils/neo4j_sync.py +0 -0
  32. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/utils/queue_base.py +0 -0
  33. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/utils/queue_kafka.py +0 -0
  34. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/utils/sftp_file_transfer.py +0 -0
  35. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/runner/utils/websocket_client.py +0 -0
  36. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/__init__.py +0 -0
  37. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/alarm.py +0 -0
  38. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/api.py +0 -0
  39. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/common.py +0 -0
  40. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/data_table.py +0 -0
  41. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/datasource.py +0 -0
  42. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/dict_.py +0 -0
  43. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/enums.py +0 -0
  44. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/group.py +0 -0
  45. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/hazard.py +0 -0
  46. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/meta.py +0 -0
  47. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/query.py +0 -0
  48. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/report.py +0 -0
  49. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/skill.py +0 -0
  50. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/sql_query_ast.py +0 -0
  51. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/table.py +0 -0
  52. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/tag.py +0 -0
  53. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/user.py +0 -0
  54. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/widget.py +0 -0
  55. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/wiki.py +0 -0
  56. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/schemas/workflow.py +0 -0
  57. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/alarm.py +0 -0
  58. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/api.py +0 -0
  59. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/auth.py +0 -0
  60. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/data_table.py +0 -0
  61. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/dataset.py +0 -0
  62. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/datasource.py +0 -0
  63. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/dict_.py +0 -0
  64. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/group.py +0 -0
  65. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/hazard.py +0 -0
  66. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/meta.py +0 -0
  67. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/metrics.py +0 -0
  68. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/ref.py +0 -0
  69. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/report.py +0 -0
  70. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/table.py +0 -0
  71. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/tag.py +0 -0
  72. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/widget.py +0 -0
  73. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/wiki.py +0 -0
  74. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/services/workflow.py +0 -0
  75. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/session.py +0 -0
  76. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/tiptap/__init__.py +0 -0
  77. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/tiptap/builder.py +0 -0
  78. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/tiptap/constants.py +0 -0
  79. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/tiptap/markdown_parser.py +0 -0
  80. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/tiptap/models.py +0 -0
  81. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/tiptap/parse_utils.py +0 -0
  82. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/tiptap/render_utils.py +0 -0
  83. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/tiptap/renderers.py +0 -0
  84. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/tiptap/tool.py +0 -0
  85. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/utils/__init__.py +0 -0
  86. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/utils/common.py +0 -0
  87. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/utils/log.py +0 -0
  88. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk/utils/utils.py +0 -0
  89. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk.egg-info/SOURCES.txt +0 -0
  90. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk.egg-info/dependency_links.txt +0 -0
  91. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk.egg-info/requires.txt +0 -0
  92. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/src/dataops_sdk.egg-info/top_level.txt +0 -0
  93. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/tests/test_constants.py +0 -0
  94. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/tests/test_exceptions.py +0 -0
  95. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/tests/test_session.py +0 -0
  96. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/tests/test_utils.py +0 -0
  97. {dataops_sdk-0.4.3 → dataops_sdk-0.4.4}/tests/test_websocket_client.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dataops-sdk
3
- Version: 0.4.3
3
+ Version: 0.4.4
4
4
  Summary: Python SDK for the DataOps platform.
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -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.3"
112
+ __version__ = "0.4.4"
@@ -106,6 +106,7 @@ from .skill import (
106
106
  service_skill_call_by_code,
107
107
  service_skill_call_by_name,
108
108
  service_skill_delete_sub_file,
109
+ service_skill_download,
109
110
  service_skill_get_subfile_by_code,
110
111
  service_skill_get_subfile_by_name,
111
112
  service_skill_update,
@@ -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``(按允许列表校验源文件夹结构后本地打包为 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
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dataops-sdk
3
- Version: 0.4.3
3
+ Version: 0.4.4
4
4
  Summary: Python SDK for the DataOps platform.
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
File without changes
File without changes
File without changes