dataops-sdk 0.3.2__tar.gz → 0.3.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.3.2 → dataops_sdk-0.3.4}/PKG-INFO +2 -1
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/pyproject.toml +1 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/__init__.py +4 -2
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/runner/__init__.py +2 -2
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/runner/datasource_factory.py +3 -1
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/runner/utils/dbConn_sync.py +3 -1
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/runner/utils/duckdb_manager.py +1 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/schemas/query.py +12 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/schemas/skill.py +31 -10
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/services/__init__.py +7 -1
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/services/meta.py +59 -6
- dataops_sdk-0.3.4/src/dataops_sdk/services/skill.py +536 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/services/table.py +10 -9
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/session.py +2 -2
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/tiptap/markdown_parser.py +29 -8
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/tiptap/render_utils.py +3 -1
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/utils/__init__.py +15 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/utils/log.py +3 -1
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/utils/utils.py +8 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk.egg-info/PKG-INFO +2 -1
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk.egg-info/requires.txt +1 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/tests/test_constants.py +1 -1
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/tests/test_exceptions.py +1 -1
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/tests/test_session.py +81 -60
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/tests/test_utils.py +7 -0
- dataops_sdk-0.3.2/src/dataops_sdk/services/skill.py +0 -293
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/setup.cfg +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/constants.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/exceptions.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/runner/schemas/nacos/__init__.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/runner/schemas/nacos/config.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/runner/schemas/nacos/constants.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/runner/schemas/nacos/instance.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/runner/schemas/nacos/nacos_exception.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/runner/schemas/nacos/naming_param.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/runner/schemas/nacos/naming_request.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/runner/schemas/nacos/naming_response.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/runner/schemas/nacos/preserved_metadata_key.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/runner/schemas/nacos/service.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/runner/utils/__init__.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/runner/utils/common.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/runner/utils/dbConn_base.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/runner/utils/file_transfer_base.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/runner/utils/ftp_file_transfer.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/runner/utils/nacos.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/runner/utils/neo4j_sync.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/runner/utils/queue_base.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/runner/utils/queue_kafka.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/runner/utils/sftp_file_transfer.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/schemas/__init__.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/schemas/alarm.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/schemas/api.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/schemas/data_table.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/schemas/datasource.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/schemas/dict_.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/schemas/enums.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/schemas/group.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/schemas/hazard.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/schemas/meta.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/schemas/report.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/schemas/table.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/schemas/user.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/schemas/widget.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/schemas/workflow.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/services/alarm.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/services/api.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/services/auth.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/services/data_table.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/services/dataset.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/services/datasource.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/services/dict_.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/services/hazard.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/services/metrics.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/services/ref.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/services/report.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/services/widget.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/services/workflow.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/tiptap/__init__.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/tiptap/builder.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/tiptap/constants.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/tiptap/models.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/tiptap/parse_utils.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/tiptap/renderers.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/tiptap/tool.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk/utils/common.py +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk.egg-info/SOURCES.txt +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk.egg-info/dependency_links.txt +0 -0
- {dataops_sdk-0.3.2 → dataops_sdk-0.3.4}/src/dataops_sdk.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dataops-sdk
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.4
|
|
4
4
|
Summary: Python SDK for the DataOps platform.
|
|
5
5
|
Requires-Python: >=3.11
|
|
6
6
|
Requires-Dist: pydantic<3,>=2
|
|
@@ -10,6 +10,7 @@ Requires-Dist: httpx2>=2.5.0
|
|
|
10
10
|
Requires-Dist: jinja2>=3.1.6
|
|
11
11
|
Requires-Dist: markdown-it-py[plugins]
|
|
12
12
|
Requires-Dist: cryptography>=49.0.0
|
|
13
|
+
Requires-Dist: PyYaml
|
|
13
14
|
Provides-Extra: runner
|
|
14
15
|
Requires-Dist: paramiko>4; extra == "runner"
|
|
15
16
|
Requires-Dist: pandas; extra == "runner"
|
|
@@ -6,6 +6,7 @@ Nacos 集成能力,未安装时仍可独立导入本包核心功能。
|
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
8
|
from . import runner, schemas, utils
|
|
9
|
+
from .runner import service_get_datasource_instent
|
|
9
10
|
from .services import ( # noqa: F401
|
|
10
11
|
release_list_create,
|
|
11
12
|
release_list_get_by_code,
|
|
@@ -83,11 +84,12 @@ from .services import ( # noqa: F401
|
|
|
83
84
|
service_list_workflows,
|
|
84
85
|
service_login,
|
|
85
86
|
service_logout,
|
|
87
|
+
service_pack_skill_zip,
|
|
86
88
|
service_ref_backward,
|
|
87
89
|
service_ref_forward,
|
|
88
90
|
service_set_application,
|
|
89
91
|
service_skill_call_by_code,
|
|
90
|
-
|
|
92
|
+
service_skill_upload,
|
|
91
93
|
service_skill_upload_sub_file,
|
|
92
94
|
service_start_workflow,
|
|
93
95
|
service_start_workflow_async,
|
|
@@ -96,4 +98,4 @@ from .services import ( # noqa: F401
|
|
|
96
98
|
service_update_data_table_record_by_id_list,
|
|
97
99
|
)
|
|
98
100
|
|
|
99
|
-
__version__ = "0.3.
|
|
101
|
+
__version__ = "0.3.4"
|
|
@@ -11,7 +11,7 @@ Example:
|
|
|
11
11
|
>>> from dataops_sdk.runner import DatabaseConn, getLogger
|
|
12
12
|
"""
|
|
13
13
|
|
|
14
|
-
from .datasource_factory import
|
|
14
|
+
from .datasource_factory import service_get_datasource_instent
|
|
15
15
|
from .schemas.nacos import NacosSettings
|
|
16
16
|
from .utils import (
|
|
17
17
|
DatabaseConn,
|
|
@@ -40,5 +40,5 @@ __all__ = [
|
|
|
40
40
|
"parse_args",
|
|
41
41
|
"NacosSettings",
|
|
42
42
|
"get_service_instance",
|
|
43
|
-
"
|
|
43
|
+
"service_get_datasource_instent",
|
|
44
44
|
]
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
from dataops_sdk.services.datasource import service_get_datasource_by_name
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
def
|
|
9
|
+
def service_get_datasource_instent(datasource: str, log_sql: bool | None = None, **kwargs):
|
|
10
10
|
"""
|
|
11
11
|
根据数据源名称获取对应的连接实例。
|
|
12
12
|
|
|
@@ -80,3 +80,5 @@ def get_datasource_instent(datasource: str, log_sql: bool | None = None):
|
|
|
80
80
|
log_sql=log_sql,
|
|
81
81
|
name=meta.title,
|
|
82
82
|
)
|
|
83
|
+
else:
|
|
84
|
+
raise NotImplementedError(f"Category {meta.data.category} is not supported")
|
|
@@ -464,7 +464,9 @@ class DatabaseConn(DatabaseConnBase):
|
|
|
464
464
|
>>> conn.commit() # 或者 conn.rollback()
|
|
465
465
|
"""
|
|
466
466
|
if self._session is not None:
|
|
467
|
-
raise RuntimeError(
|
|
467
|
+
raise RuntimeError(
|
|
468
|
+
"Transaction already active. Commit or rollback before starting a new one."
|
|
469
|
+
)
|
|
468
470
|
self._logger.debug("beginning transaction")
|
|
469
471
|
self._session = self.session_factory()
|
|
470
472
|
self._session.begin().__enter__()
|
|
@@ -228,6 +228,18 @@ class SqlQueryParam(BaseModel):
|
|
|
228
228
|
sorts: Annotated[list[SqlSort], Field(description="排序列表", default_factory=list)]
|
|
229
229
|
varMap: Annotated[dict[str, JsonValue], Field(description="变量映射", default_factory=dict)]
|
|
230
230
|
|
|
231
|
+
def add(self, *condition: SqlCondition):
|
|
232
|
+
"""追加条件.
|
|
233
|
+
|
|
234
|
+
Args:
|
|
235
|
+
condition: 条件。
|
|
236
|
+
|
|
237
|
+
Returns:
|
|
238
|
+
SqlQueryParam: ``self``,便于链式调用。
|
|
239
|
+
"""
|
|
240
|
+
self.conditionList.extend(condition)
|
|
241
|
+
return self
|
|
242
|
+
|
|
231
243
|
def add_eq(self, name: str, value: Any, alias: str | None = None):
|
|
232
244
|
"""追加 ``=`` 等值条件.
|
|
233
245
|
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
7
|
from collections.abc import Mapping
|
|
8
|
+
from enum import StrEnum
|
|
8
9
|
from typing import Annotated, Any
|
|
9
10
|
|
|
10
11
|
from pydantic import AliasChoices, BaseModel, Field, JsonValue
|
|
@@ -12,33 +13,53 @@ from pydantic import AliasChoices, BaseModel, Field, JsonValue
|
|
|
12
13
|
from dataops_sdk.schemas.meta import Meta
|
|
13
14
|
|
|
14
15
|
|
|
16
|
+
class MetaSkillSubType(StrEnum):
|
|
17
|
+
LLM = "llm"
|
|
18
|
+
API = "api"
|
|
19
|
+
REPORT = "report"
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class MetaSkillFileSubType(StrEnum):
|
|
23
|
+
DOC = "doc"
|
|
24
|
+
CODE = "code"
|
|
25
|
+
IMAGE = "image"
|
|
26
|
+
|
|
27
|
+
|
|
15
28
|
class DataSkill(BaseModel):
|
|
16
29
|
"""技能实体 rawData 私有字段.
|
|
17
30
|
|
|
18
31
|
字段命名参考前端 ``SkillFile.vue`` 与后端 ``SkillService`` 的约定:
|
|
19
|
-
- ``markdown``: SKILL.md 的 Markdown 正文(用于 LLM 子类型技能)
|
|
20
32
|
- ``editor``: TipTap JSON 文档结构(用于编辑器渲染)
|
|
21
33
|
- ``args``: 技能对外入参定义列表
|
|
22
|
-
- ``input_json_schema``: JSON Schema 格式的入参约束
|
|
23
34
|
|
|
24
35
|
Attributes:
|
|
25
36
|
markdown: SKILL.md Markdown 内容。
|
|
26
37
|
editor: TipTap JSON 文档结构。
|
|
27
38
|
args: 技能对外入参定义。
|
|
28
|
-
input_json_schema: JSON Schema 入参约束。
|
|
29
39
|
"""
|
|
30
40
|
|
|
31
|
-
|
|
32
|
-
editor: Annotated[Mapping[str, JsonValue] | None, Field(description="TipTap JSON 文档结构")] = (
|
|
33
|
-
None
|
|
34
|
-
)
|
|
41
|
+
editor: Annotated[Mapping[str, JsonValue], Field(description="TipTap JSON 文档结构")]
|
|
35
42
|
args: Annotated[
|
|
36
43
|
list[Mapping[str, JsonValue]] | None,
|
|
37
44
|
Field(description="技能对外入参定义"),
|
|
38
45
|
] = None
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class DataSkillSubFileDoc(BaseModel):
|
|
49
|
+
mimetype: Annotated[str, Field(description="文件 MIME 类型")]
|
|
50
|
+
editor: Annotated[Mapping[str, JsonValue], Field(description="TipTap JSON 文档结构")]
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
class DataSkillSubFileCode(BaseModel):
|
|
54
|
+
mimetype: Annotated[str, Field(description="文件 MIME 类型")]
|
|
55
|
+
content: Annotated[str, Field(description="文件内容")]
|
|
56
|
+
language: Annotated[str, Field(description="编程语言")]
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
class DataSkillSubFileImage(BaseModel):
|
|
60
|
+
mimetype: Annotated[str, Field(description="文件 MIME 类型")]
|
|
61
|
+
content: Annotated[str, Field(description="文件内容")]
|
|
62
|
+
language: Annotated[str, Field(description="编程语言")]
|
|
42
63
|
|
|
43
64
|
|
|
44
65
|
class MetaSkill(Meta[DataSkill]):
|
|
@@ -65,6 +65,7 @@ from .meta import (
|
|
|
65
65
|
release_list_get_by_code,
|
|
66
66
|
release_list_get_by_name,
|
|
67
67
|
release_list_list,
|
|
68
|
+
release_list_list_by_parent_id,
|
|
68
69
|
release_list_page,
|
|
69
70
|
release_list_total,
|
|
70
71
|
release_list_update,
|
|
@@ -75,14 +76,19 @@ from .metrics import service_get_metrics, service_list_metrics
|
|
|
75
76
|
from .ref import service_ref_backward, service_ref_forward
|
|
76
77
|
from .report import service_get_report, service_list_reports
|
|
77
78
|
from .skill import (
|
|
79
|
+
SkillPackValidationError,
|
|
78
80
|
service_delete_skill,
|
|
79
81
|
service_get_skill_by_code,
|
|
80
82
|
service_get_skill_by_name,
|
|
81
83
|
service_list_skill_files,
|
|
82
84
|
service_list_skills,
|
|
85
|
+
service_pack_skill_zip,
|
|
83
86
|
service_skill_call_by_code,
|
|
87
|
+
service_skill_call_by_name,
|
|
84
88
|
service_skill_delete_sub_file,
|
|
85
|
-
|
|
89
|
+
service_skill_get_subfile_by_code,
|
|
90
|
+
service_skill_get_subfile_by_name,
|
|
91
|
+
service_skill_upload,
|
|
86
92
|
service_skill_upload_sub_file,
|
|
87
93
|
)
|
|
88
94
|
from .table import (
|
|
@@ -26,18 +26,73 @@ from dataops_sdk.schemas import (
|
|
|
26
26
|
MetaRelease,
|
|
27
27
|
MetaType,
|
|
28
28
|
PageParam,
|
|
29
|
+
SqlCondition,
|
|
29
30
|
SqlQueryParam,
|
|
30
31
|
)
|
|
31
32
|
from dataops_sdk.session import get_session
|
|
32
33
|
from dataops_sdk.utils import encrypt_body
|
|
33
34
|
|
|
34
35
|
|
|
36
|
+
def release_list_list_by_parent_id(
|
|
37
|
+
meta_type: MetaType | InnerMetaType | str,
|
|
38
|
+
parent_id: str,
|
|
39
|
+
datasource: str | None = None,
|
|
40
|
+
) -> list[MetaRelease]:
|
|
41
|
+
"""获取 Meta Release 列表.
|
|
42
|
+
|
|
43
|
+
Args:
|
|
44
|
+
meta_type: 元数据类型(MetaType 枚举或字符串).
|
|
45
|
+
filters: SQL 查询过滤条件列表.
|
|
46
|
+
headers: 额外的请求头.
|
|
47
|
+
datasource: 数据源;非空时写入 ``x-sub-system`` 头.
|
|
48
|
+
extra_conditions: 额外的 SQL 查询条件.
|
|
49
|
+
|
|
50
|
+
Returns:
|
|
51
|
+
MetaRelease 对象列表
|
|
52
|
+
|
|
53
|
+
Raises:
|
|
54
|
+
DataOpsError: API 返回错误时
|
|
55
|
+
AuthenticationError: 未认证或认证失败时
|
|
56
|
+
"""
|
|
57
|
+
type_str = meta_type.value if isinstance(meta_type, (MetaType, InnerMetaType)) else meta_type
|
|
58
|
+
url = "/meta/release/list/list"
|
|
59
|
+
|
|
60
|
+
sql_query_param = (
|
|
61
|
+
SqlQueryParam().add_eq("type", type_str, "mrl").add_eq("parent_id", parent_id, "mrl")
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
body = {
|
|
65
|
+
"pageParam": PageParam(limit=-1),
|
|
66
|
+
"queryParam": sql_query_param,
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
if datasource:
|
|
70
|
+
body["subSystem"] = datasource
|
|
71
|
+
|
|
72
|
+
try:
|
|
73
|
+
with get_session() as session:
|
|
74
|
+
resp = session.post(url, content=to_json(encrypt_body(body)))
|
|
75
|
+
resp_body = resp.json()
|
|
76
|
+
if resp.status_code == 401:
|
|
77
|
+
raise AuthenticationError("认证失败,请先登录")
|
|
78
|
+
if resp.status_code != 200:
|
|
79
|
+
raise DataOpsError(
|
|
80
|
+
resp_body.get("msg", f"HTTP {resp.status_code}"), resp.status_code
|
|
81
|
+
)
|
|
82
|
+
group_nodes = TypeAdapter(
|
|
83
|
+
list[MetaRelease], config=ConfigDict(str_to_lower=True)
|
|
84
|
+
).validate_python(resp_body["data"])
|
|
85
|
+
return group_nodes
|
|
86
|
+
except SystemExit as e:
|
|
87
|
+
raise AuthenticationError("认证失败,请先登录") from e
|
|
88
|
+
|
|
89
|
+
|
|
35
90
|
def release_list_list(
|
|
36
91
|
meta_type: MetaType | InnerMetaType | str,
|
|
37
92
|
filters: Sequence[dict] | None = None,
|
|
38
93
|
headers: dict[str, str] | None = None,
|
|
39
94
|
datasource: str | None = None,
|
|
40
|
-
extra_conditions: Sequence[
|
|
95
|
+
extra_conditions: Sequence[SqlCondition] | None = None,
|
|
41
96
|
) -> list[MetaRelease]:
|
|
42
97
|
"""获取 Meta Release 列表.
|
|
43
98
|
|
|
@@ -46,9 +101,7 @@ def release_list_list(
|
|
|
46
101
|
filters: SQL 查询过滤条件列表.
|
|
47
102
|
headers: 额外的请求头.
|
|
48
103
|
datasource: 数据源;非空时写入 ``x-sub-system`` 头.
|
|
49
|
-
extra_conditions:
|
|
50
|
-
``{"name": "parent_id", "value": "xxx", "alias": "mrl"}``. 主要用于按
|
|
51
|
-
parent_id 等辅助字段过滤。
|
|
104
|
+
extra_conditions: 额外的 SQL 查询条件.
|
|
52
105
|
|
|
53
106
|
Returns:
|
|
54
107
|
MetaRelease 对象列表
|
|
@@ -61,8 +114,8 @@ def release_list_list(
|
|
|
61
114
|
url = "/meta/release/list/list"
|
|
62
115
|
|
|
63
116
|
sql_query_param = SqlQueryParam().add_eq("type", type_str, "mrl")
|
|
64
|
-
|
|
65
|
-
sql_query_param.
|
|
117
|
+
if extra_conditions:
|
|
118
|
+
sql_query_param.add(extra_conditions)
|
|
66
119
|
|
|
67
120
|
headers = headers or {}
|
|
68
121
|
if datasource:
|