dataops-sdk 0.5.1__tar.gz → 0.5.3__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 (102) hide show
  1. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/PKG-INFO +3 -2
  2. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/pyproject.toml +2 -1
  3. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/__init__.py +1 -19
  4. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/runner/utils/dbConn_async.py +3 -3
  5. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/runner/utils/dbConn_sync.py +6 -6
  6. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/schemas/__init__.py +0 -10
  7. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/schemas/meta.py +1 -1
  8. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/services/__init__.py +0 -60
  9. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk.egg-info/PKG-INFO +3 -2
  10. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk.egg-info/SOURCES.txt +1 -4
  11. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk.egg-info/requires.txt +4 -1
  12. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/tests/test_db_conn_async.py +5 -2
  13. dataops_sdk-0.5.3/tests/test_db_conn_sync.py +26 -0
  14. dataops_sdk-0.5.1/src/dataops_sdk/schemas/alarm.py +0 -119
  15. dataops_sdk-0.5.1/src/dataops_sdk/schemas/hazard.py +0 -189
  16. dataops_sdk-0.5.1/src/dataops_sdk/services/alarm.py +0 -592
  17. dataops_sdk-0.5.1/src/dataops_sdk/services/hazard.py +0 -260
  18. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/README.md +0 -0
  19. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/setup.cfg +0 -0
  20. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/constants.py +0 -0
  21. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/exceptions.py +0 -0
  22. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/runner/__init__.py +0 -0
  23. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/runner/datasource_factory.py +0 -0
  24. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/runner/schemas/nacos/__init__.py +0 -0
  25. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/runner/schemas/nacos/config.py +0 -0
  26. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/runner/schemas/nacos/constants.py +0 -0
  27. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/runner/schemas/nacos/instance.py +0 -0
  28. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/runner/schemas/nacos/nacos_exception.py +0 -0
  29. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/runner/schemas/nacos/naming_param.py +0 -0
  30. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/runner/schemas/nacos/naming_request.py +0 -0
  31. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/runner/schemas/nacos/naming_response.py +0 -0
  32. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/runner/schemas/nacos/preserved_metadata_key.py +0 -0
  33. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/runner/schemas/nacos/service.py +0 -0
  34. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/runner/utils/__init__.py +0 -0
  35. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/runner/utils/common.py +0 -0
  36. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/runner/utils/dbConn_base.py +0 -0
  37. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/runner/utils/duckdb_manager.py +0 -0
  38. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/runner/utils/file_transfer_base.py +0 -0
  39. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/runner/utils/ftp_file_transfer.py +0 -0
  40. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/runner/utils/nacos.py +0 -0
  41. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/runner/utils/neo4j_sync.py +0 -0
  42. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/runner/utils/queue_base.py +0 -0
  43. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/runner/utils/queue_kafka.py +0 -0
  44. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/runner/utils/sftp_file_transfer.py +0 -0
  45. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/runner/utils/websocket_client.py +0 -0
  46. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/schemas/api.py +0 -0
  47. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/schemas/common.py +0 -0
  48. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/schemas/data_table.py +0 -0
  49. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/schemas/datasource.py +0 -0
  50. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/schemas/dict_.py +0 -0
  51. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/schemas/enums.py +0 -0
  52. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/schemas/group.py +0 -0
  53. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/schemas/ontology.py +0 -0
  54. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/schemas/query.py +0 -0
  55. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/schemas/report.py +0 -0
  56. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/schemas/skill.py +0 -0
  57. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/schemas/table.py +0 -0
  58. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/schemas/tag.py +0 -0
  59. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/schemas/user.py +0 -0
  60. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/schemas/widget.py +0 -0
  61. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/schemas/wiki.py +0 -0
  62. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/schemas/workflow.py +0 -0
  63. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/services/api.py +0 -0
  64. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/services/auth.py +0 -0
  65. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/services/data_table.py +0 -0
  66. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/services/dataset.py +0 -0
  67. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/services/datasource.py +0 -0
  68. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/services/dict_.py +0 -0
  69. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/services/group.py +0 -0
  70. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/services/meta.py +0 -0
  71. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/services/metrics.py +0 -0
  72. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/services/ontology.py +0 -0
  73. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/services/ref.py +0 -0
  74. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/services/report.py +0 -0
  75. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/services/skill.py +0 -0
  76. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/services/table.py +0 -0
  77. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/services/tag.py +0 -0
  78. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/services/widget.py +0 -0
  79. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/services/wiki.py +0 -0
  80. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/services/workflow.py +0 -0
  81. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/session.py +0 -0
  82. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/tiptap/__init__.py +0 -0
  83. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/tiptap/builder.py +0 -0
  84. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/tiptap/constants.py +0 -0
  85. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/tiptap/markdown_parser.py +0 -0
  86. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/tiptap/models.py +0 -0
  87. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/tiptap/parse_utils.py +0 -0
  88. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/tiptap/render_utils.py +0 -0
  89. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/tiptap/renderers.py +0 -0
  90. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/tiptap/tool.py +0 -0
  91. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/utils/__init__.py +0 -0
  92. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/utils/common.py +0 -0
  93. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/utils/log.py +0 -0
  94. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk/utils/utils.py +0 -0
  95. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk.egg-info/dependency_links.txt +0 -0
  96. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/src/dataops_sdk.egg-info/top_level.txt +0 -0
  97. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/tests/test_constants.py +0 -0
  98. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/tests/test_datasource_factory.py +0 -0
  99. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/tests/test_exceptions.py +0 -0
  100. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/tests/test_session.py +0 -0
  101. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/tests/test_utils.py +0 -0
  102. {dataops_sdk-0.5.1 → dataops_sdk-0.5.3}/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.5.1
3
+ Version: 0.5.3
4
4
  Summary: Python SDK for the DataOps platform.
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -16,7 +16,8 @@ Provides-Extra: runner
16
16
  Requires-Dist: paramiko>4; extra == "runner"
17
17
  Requires-Dist: pandas; extra == "runner"
18
18
  Requires-Dist: sqlalchemy; extra == "runner"
19
- Requires-Dist: mariadb[binary]; extra == "runner"
19
+ Requires-Dist: PyMySQL; extra == "runner"
20
+ Requires-Dist: asyncmy; (platform_system == "Darwin" or platform_system == "Linux") and extra == "runner"
20
21
  Requires-Dist: psycopg[binary]>=3; extra == "runner"
21
22
  Requires-Dist: dmpython~=2.5.32; platform_system != "Darwin" and extra == "runner"
22
23
  Requires-Dist: dmsqlalchemy<3,>2; platform_system != "Darwin" and extra == "runner"
@@ -27,7 +27,8 @@ runner = [
27
27
  "pandas",
28
28
  # 关系数据库
29
29
  "sqlalchemy",
30
- "mariadb[binary]",
30
+ "PyMySQL",
31
+ "asyncmy; platform_system == 'Darwin' or platform_system == 'Linux'",
31
32
  "psycopg[binary]>=3",
32
33
  "dmpython~=2.5.32; platform_system != 'Darwin'",
33
34
  "dmsqlalchemy>2,<3; platform_system != 'Darwin'",
@@ -17,11 +17,6 @@ from .services import ( # noqa: F401
17
17
  release_list_update,
18
18
  release_ref_list,
19
19
  release_ref_list_by_ref,
20
- service_clear_hazard_history_records,
21
- service_count_alarm_action,
22
- service_count_alarm_rule_matches,
23
- service_count_alarm_rules,
24
- service_count_alarm_specs,
25
20
  service_count_dataset_by_code,
26
21
  service_count_table_by_code,
27
22
  service_count_table_by_name,
@@ -34,10 +29,6 @@ from .services import ( # noqa: F401
34
29
  service_delete_table_record_by_id,
35
30
  service_delete_table_record_by_id_list,
36
31
  service_exec_sql_by_datasource,
37
- service_find_alarm_table_data,
38
- service_find_meta_by_codes,
39
- service_get_alarm_rule_enums,
40
- service_get_alarm_table_columns,
41
32
  service_get_api_by_code,
42
33
  service_get_api_by_name,
43
34
  service_get_current_application,
@@ -56,11 +47,8 @@ from .services import ( # noqa: F401
56
47
  service_get_datasource_config_by_application_id,
57
48
  service_get_dict_detail_by_code,
58
49
  service_get_dict_detail_by_name,
59
- service_get_hazard_task_log_records,
60
- service_get_hazard_task_logs,
61
50
  service_get_main_datasource_config_by_application,
62
51
  service_get_metrics,
63
- service_get_rel_table_columns,
64
52
  service_get_report,
65
53
  service_get_skill_by_code,
66
54
  service_get_skill_by_name,
@@ -75,14 +63,9 @@ from .services import ( # noqa: F401
75
63
  service_get_widget_detail_by_code,
76
64
  service_get_workflow_by_code,
77
65
  service_get_workflow_by_name,
78
- service_list_alarm_rule_matches,
79
- service_list_alarm_rules,
80
- service_list_alarm_specs,
81
66
  service_list_applications,
82
67
  service_list_datasets,
83
68
  service_list_dicts,
84
- service_list_hazard_history_records,
85
- service_list_hazard_records,
86
69
  service_list_metrics,
87
70
  service_list_reports,
88
71
  service_list_skill_files,
@@ -103,7 +86,6 @@ from .services import ( # noqa: F401
103
86
  service_skill_upload_sub_file,
104
87
  service_start_workflow,
105
88
  service_start_workflow_async,
106
- service_trigger_hazard_task,
107
89
  service_update_data_table_record_by_id,
108
90
  service_update_data_table_record_by_id_list,
109
91
  service_update_table_record_by_id,
@@ -111,4 +93,4 @@ from .services import ( # noqa: F401
111
93
  )
112
94
  from .session import dataops_base_url_context, request_context
113
95
 
114
- __version__ = "0.5.1"
96
+ __version__ = "0.5.3"
@@ -30,11 +30,11 @@ from .dbConn_base import DatabaseConnBaseAsync
30
30
 
31
31
  # 数据库类型到异步驱动程序的映射
32
32
  ASYNC_DBTYPE_DRIVER: Final[Mapping[str, str]] = {
33
- "mysql": "mariadbconnector",
34
- "mariadb": "mariadbconnector",
33
+ "mysql": "asyncmy",
34
+ "mariadb": "asyncmy",
35
35
  "postgresql": "psycopg",
36
36
  "oracle": "oracledb",
37
- "doris": "mariadbconnector",
37
+ "doris": "asyncmy",
38
38
  }
39
39
 
40
40
 
@@ -27,12 +27,12 @@ from .dbConn_base import DatabaseConnBase
27
27
  # 数据库类型到驱动程序的映射
28
28
  # 用于 build_url 函数构建数据库连接 URL
29
29
  DBTYPE_DRIVER: Final[Mapping[str, str]] = {
30
- "mysql": "mariadbconnector",
30
+ "mysql": "pymysql",
31
31
  "postgresql": "psycopg",
32
32
  "dm": "dmpython",
33
33
  "oracle": "oracledb",
34
- "doris": "mariadbconnector",
35
- "mariadb": "mariadbconnector",
34
+ "doris": "pymysql",
35
+ "mariadb": "pymysql",
36
36
  }
37
37
 
38
38
 
@@ -73,7 +73,7 @@ def build_url(
73
73
  raise NotImplementedError(f"{db_type} 尚未支持,请联系管理员")
74
74
 
75
75
  query: dict[str, str] = dict()
76
- if db_type in {"mysql", "doris"}:
76
+ if db_type in {"mysql", "mariadb", "doris"}:
77
77
  query["local_infile"] = "True"
78
78
  query["ssl_disabled"] = "True"
79
79
 
@@ -548,8 +548,8 @@ def create_engine_safe(db_type: str, url: str, **kwargs: Any) -> Engine:
548
548
  raise NotImplementedError(f"{db_type} 尚未支持,请联系管理员")
549
549
 
550
550
  # 根据不同数据库类型调整连接参数
551
- if db_type in ("mysql", "doris"):
552
- # MySQL 需要添加一些兼容参数
551
+ if db_type in ("mysql", "mariadb", "doris"):
552
+ # MySQL 协议族需要添加一些兼容参数
553
553
  kwargs.setdefault("pool_pre_ping", True)
554
554
  kwargs.setdefault("pool_recycle", 3600)
555
555
  elif db_type == "postgresql":
@@ -4,15 +4,6 @@
4
4
  dataops_sdk.schemas import ...`` 使用。
5
5
  """
6
6
 
7
- from .alarm import (
8
- AlarmActionItem,
9
- AlarmBuiltinFunctionItem,
10
- AlarmDetail,
11
- AlarmPreprocessItem,
12
- AlarmRuleItem,
13
- AlarmRuleMatchItem,
14
- AlarmSpecItem,
15
- )
16
7
  from .api import ApiMeta, HttpInterfaceData
17
8
  from .common import DataOpsResponse
18
9
  from .data_table import DataTableData, MetaDataTable
@@ -29,7 +20,6 @@ from .enums import (
29
20
  MetaWidgetSubType,
30
21
  )
31
22
  from .group import GroupNode, GroupTree
32
- from .hazard import HazardRecordDTO, HazardTaskDTO
33
23
  from .meta import (
34
24
  DEFAULT_META_DATA_TYPE,
35
25
  META_DATA_TYPE,
@@ -31,7 +31,7 @@ class MetaRelease(BaseModel):
31
31
  """后端 meta release 详情基类,字段采用大写下划线.
32
32
 
33
33
  ``MetaRelease`` 是后端 meta 数据模型在 release 状态下的标准基类,
34
- 所有子类实体(如 ``AlarmRuleItem``、``MetaWorkflow`` 等)都继承自该类。
34
+ 所有子类实体(如 ``MetaWorkflow`` 等)都继承自该类。
35
35
 
36
36
  Attributes:
37
37
  CUID: 元数据 ID。
@@ -1,26 +1,3 @@
1
- from .alarm import (
2
- service_count_alarm_action,
3
- service_count_alarm_rule_matches,
4
- service_count_alarm_rules,
5
- service_count_alarm_specs,
6
- service_find_alarm_table_data,
7
- service_find_meta_by_codes,
8
- service_get_alarm_action_detail,
9
- service_get_alarm_builtin_function_detail,
10
- service_get_alarm_preprocess_detail,
11
- service_get_alarm_rule_detail,
12
- service_get_alarm_rule_enums,
13
- service_get_alarm_rule_type_detail,
14
- service_get_alarm_spec_detail,
15
- service_get_alarm_table_columns,
16
- service_get_rel_table_columns,
17
- service_list_alarm_action,
18
- service_list_alarm_builtin_functions,
19
- service_list_alarm_preprocess,
20
- service_list_alarm_rule_matches,
21
- service_list_alarm_rules,
22
- service_list_alarm_specs,
23
- )
24
1
  from .api import service_get_api_by_code, service_get_api_by_name
25
2
  from .auth import (
26
3
  service_get_current_application,
@@ -68,15 +45,6 @@ from .group import (
68
45
  get_group_by_name,
69
46
  get_group_by_sapce,
70
47
  )
71
- from .hazard import (
72
- service_clear_hazard_history_records,
73
- service_dispatch_hazard_callback,
74
- service_get_hazard_task_log_records,
75
- service_get_hazard_task_logs,
76
- service_list_hazard_history_records,
77
- service_list_hazard_records,
78
- service_trigger_hazard_task,
79
- )
80
48
  from .meta import (
81
49
  release_list_create,
82
50
  release_list_get_by_code,
@@ -193,27 +161,6 @@ from .workflow import (
193
161
  )
194
162
 
195
163
  __all__ = [
196
- "service_count_alarm_action",
197
- "service_count_alarm_rule_matches",
198
- "service_count_alarm_rules",
199
- "service_count_alarm_specs",
200
- "service_find_alarm_table_data",
201
- "service_find_meta_by_codes",
202
- "service_get_alarm_action_detail",
203
- "service_get_alarm_builtin_function_detail",
204
- "service_get_alarm_preprocess_detail",
205
- "service_get_alarm_rule_detail",
206
- "service_get_alarm_rule_enums",
207
- "service_get_alarm_rule_type_detail",
208
- "service_get_alarm_spec_detail",
209
- "service_get_alarm_table_columns",
210
- "service_get_rel_table_columns",
211
- "service_list_alarm_action",
212
- "service_list_alarm_builtin_functions",
213
- "service_list_alarm_preprocess",
214
- "service_list_alarm_rule_matches",
215
- "service_list_alarm_rules",
216
- "service_list_alarm_specs",
217
164
  "service_get_api_by_code",
218
165
  "service_get_api_by_name",
219
166
  "service_get_current_application",
@@ -250,13 +197,6 @@ __all__ = [
250
197
  "create_group_node",
251
198
  "get_group_by_name",
252
199
  "get_group_by_sapce",
253
- "service_clear_hazard_history_records",
254
- "service_dispatch_hazard_callback",
255
- "service_get_hazard_task_log_records",
256
- "service_get_hazard_task_logs",
257
- "service_list_hazard_history_records",
258
- "service_list_hazard_records",
259
- "service_trigger_hazard_task",
260
200
  "release_list_create",
261
201
  "release_list_get_by_code",
262
202
  "release_list_get_by_name",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dataops-sdk
3
- Version: 0.5.1
3
+ Version: 0.5.3
4
4
  Summary: Python SDK for the DataOps platform.
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -16,7 +16,8 @@ Provides-Extra: runner
16
16
  Requires-Dist: paramiko>4; extra == "runner"
17
17
  Requires-Dist: pandas; extra == "runner"
18
18
  Requires-Dist: sqlalchemy; extra == "runner"
19
- Requires-Dist: mariadb[binary]; extra == "runner"
19
+ Requires-Dist: PyMySQL; extra == "runner"
20
+ Requires-Dist: asyncmy; (platform_system == "Darwin" or platform_system == "Linux") and extra == "runner"
20
21
  Requires-Dist: psycopg[binary]>=3; extra == "runner"
21
22
  Requires-Dist: dmpython~=2.5.32; platform_system != "Darwin" and extra == "runner"
22
23
  Requires-Dist: dmsqlalchemy<3,>2; platform_system != "Darwin" and extra == "runner"
@@ -36,7 +36,6 @@ src/dataops_sdk/runner/utils/queue_kafka.py
36
36
  src/dataops_sdk/runner/utils/sftp_file_transfer.py
37
37
  src/dataops_sdk/runner/utils/websocket_client.py
38
38
  src/dataops_sdk/schemas/__init__.py
39
- src/dataops_sdk/schemas/alarm.py
40
39
  src/dataops_sdk/schemas/api.py
41
40
  src/dataops_sdk/schemas/common.py
42
41
  src/dataops_sdk/schemas/data_table.py
@@ -44,7 +43,6 @@ src/dataops_sdk/schemas/datasource.py
44
43
  src/dataops_sdk/schemas/dict_.py
45
44
  src/dataops_sdk/schemas/enums.py
46
45
  src/dataops_sdk/schemas/group.py
47
- src/dataops_sdk/schemas/hazard.py
48
46
  src/dataops_sdk/schemas/meta.py
49
47
  src/dataops_sdk/schemas/ontology.py
50
48
  src/dataops_sdk/schemas/query.py
@@ -57,7 +55,6 @@ src/dataops_sdk/schemas/widget.py
57
55
  src/dataops_sdk/schemas/wiki.py
58
56
  src/dataops_sdk/schemas/workflow.py
59
57
  src/dataops_sdk/services/__init__.py
60
- src/dataops_sdk/services/alarm.py
61
58
  src/dataops_sdk/services/api.py
62
59
  src/dataops_sdk/services/auth.py
63
60
  src/dataops_sdk/services/data_table.py
@@ -65,7 +62,6 @@ src/dataops_sdk/services/dataset.py
65
62
  src/dataops_sdk/services/datasource.py
66
63
  src/dataops_sdk/services/dict_.py
67
64
  src/dataops_sdk/services/group.py
68
- src/dataops_sdk/services/hazard.py
69
65
  src/dataops_sdk/services/meta.py
70
66
  src/dataops_sdk/services/metrics.py
71
67
  src/dataops_sdk/services/ontology.py
@@ -93,6 +89,7 @@ src/dataops_sdk/utils/utils.py
93
89
  tests/test_constants.py
94
90
  tests/test_datasource_factory.py
95
91
  tests/test_db_conn_async.py
92
+ tests/test_db_conn_sync.py
96
93
  tests/test_exceptions.py
97
94
  tests/test_session.py
98
95
  tests/test_utils.py
@@ -16,7 +16,7 @@ ruff
16
16
  paramiko>4
17
17
  pandas
18
18
  sqlalchemy
19
- mariadb[binary]
19
+ PyMySQL
20
20
  psycopg[binary]>=3
21
21
  doris-python>=1.0.4
22
22
  oracledb~=4.0.1
@@ -27,3 +27,6 @@ websockets>=13
27
27
  [runner:platform_system != "Darwin"]
28
28
  dmpython~=2.5.32
29
29
  dmsqlalchemy<3,>2
30
+
31
+ [runner:platform_system == "Darwin" or platform_system == "Linux"]
32
+ asyncmy
@@ -66,12 +66,15 @@ def _conn(monkeypatch, session: _Session | None = None) -> DatabaseConnAsync:
66
66
 
67
67
  def test_build_async_url_drivers():
68
68
  mysql = build_async_url("127.0.0.1", 3306, "u", "p", "db", "mysql")
69
- assert mysql.drivername == "mysql+mariadbconnector"
69
+ assert mysql.drivername == "mysql+asyncmy"
70
70
  assert mysql.query["local_infile"] == "True"
71
71
  assert mysql.query["ssl_disabled"] == "True"
72
72
 
73
73
  mariadb = build_async_url("127.0.0.1", 3306, "u", "p", "db", "mariadb")
74
- assert mariadb.drivername == "mariadb+mariadbconnector"
74
+ assert mariadb.drivername == "mariadb+asyncmy"
75
+
76
+ doris = build_async_url("127.0.0.1", 9030, "u", "p", "db", "doris")
77
+ assert doris.drivername == "doris+asyncmy"
75
78
 
76
79
  postgres = build_async_url("127.0.0.1", 5432, "u", "p", "db", "postgresql")
77
80
  assert postgres.drivername == "postgresql+psycopg"
@@ -0,0 +1,26 @@
1
+ """DatabaseConn 同步连接 URL 构建单元测试."""
2
+
3
+ import pytest
4
+ from dataops_sdk.runner.utils.dbConn_sync import DBTYPE_DRIVER, build_url
5
+
6
+
7
+ def test_build_url_drivers():
8
+ mysql = build_url("127.0.0.1", 3306, "u", "p", "db", "mysql")
9
+ assert mysql.drivername == "mysql+pymysql"
10
+ assert mysql.query["local_infile"] == "True"
11
+ assert mysql.query["ssl_disabled"] == "True"
12
+
13
+ mariadb = build_url("127.0.0.1", 3306, "u", "p", "db", "mariadb")
14
+ assert mariadb.drivername == "mariadb+pymysql"
15
+
16
+ doris = build_url("127.0.0.1", 9030, "u", "p", "db", "doris")
17
+ assert doris.drivername == "doris+pymysql"
18
+
19
+ postgres = build_url("127.0.0.1", 5432, "u", "p", "db", "postgresql")
20
+ assert postgres.drivername == "postgresql+psycopg"
21
+ assert "local_infile" not in postgres.query
22
+
23
+ assert DBTYPE_DRIVER["oracle"] == "oracledb"
24
+
25
+ with pytest.raises(NotImplementedError):
26
+ build_url("127.0.0.1", 5236, "u", "p", "db", "unknown")
@@ -1,119 +0,0 @@
1
- """告警 (Alarm) 相关实体的 Schema 定义.
2
-
3
- 对应平台告警规则、规则规格、处理动作与匹配项等数据模型,
4
- 统一继承自 ``MetaBase`` 并复用了启用状态相关字段。
5
- """
6
-
7
- from typing import Annotated
8
-
9
- from pydantic import BaseModel, ConfigDict, Field, JsonValue
10
-
11
- from dataops_sdk.schemas.meta import Meta, MetaBase, MetaRelease
12
-
13
-
14
- class AlarmExternal(BaseModel):
15
- """启用状态相关字段集合.
16
-
17
- 被各类告警实体复用,提供 ``IS_ENABLED`` 与 ``N_IS_ENABLED`` 两个字段。
18
- """
19
-
20
- IS_ENABLED: Annotated[str, Field(description="是否启用")]
21
- N_IS_ENABLED: Annotated[str, Field(description="是否启用名称")]
22
-
23
-
24
- class AlarmRuleItem(MetaBase, AlarmExternal):
25
- """告警规则条目.
26
-
27
- Attributes:
28
- INDUSTRY: 行业标识。
29
- DESCRIPTION: 规则描述。
30
- """
31
-
32
- INDUSTRY: Annotated[str, Field(description="行业")]
33
- DESCRIPTION: Annotated[str, Field(description="描述")] = ""
34
-
35
-
36
- class AlarmSpecItem(MetaBase, AlarmExternal):
37
- """告警规则规格条目.
38
-
39
- Attributes:
40
- INDUSTRY: 行业标识。
41
- N_INDUSTRY: 行业名称(人类可读)。
42
- BUSINESS_DOMAIN: 业务域。
43
- N_BUSINESS_DOMAIN: 业务域名称(人类可读)。
44
- KAFKA_TOPICS: 关联的 Kafka 主题列表。
45
- """
46
-
47
- INDUSTRY: Annotated[str, Field(description="行业")]
48
- N_INDUSTRY: Annotated[str, Field(description="行业名称")]
49
- BUSINESS_DOMAIN: Annotated[str | None, Field(description="业务域")] = None
50
- N_BUSINESS_DOMAIN: Annotated[str | None, Field(description="业务域名称")] = None
51
- KAFKA_TOPICS: Annotated[str | None, Field(description="Kafka主题列表")] = None
52
-
53
-
54
- class AlarmActionItem(MetaBase, AlarmExternal):
55
- """告警处理动作条目.
56
-
57
- Attributes:
58
- RULE_TYPE: 规则类型。
59
- N_RULE_TYPE: 规则类型名称。
60
- SCRIPT_CONTENT: 触发动作的执行脚本内容。
61
- """
62
-
63
- RULE_TYPE: Annotated[str, Field(description="规则类型")]
64
- N_RULE_TYPE: Annotated[str, Field(description="规则类型名称")]
65
-
66
- SCRIPT_CONTENT: Annotated[str, Field(description="脚本内容")]
67
-
68
-
69
- class AlarmRuleMatchItem(MetaBase, AlarmExternal):
70
- """告警规则匹配条目.
71
-
72
- Attributes:
73
- AREA: 区域。
74
- SPEC_TYPE: 规则规格类型。
75
- N_SPEC_TYPE: 规则规格类型名称。
76
- RULE_TYPE: 规则类型。
77
- N_RULE_TYPE: 规则类型名称。
78
- """
79
-
80
- AREA: Annotated[str, Field(description="区域")]
81
- SPEC_TYPE: Annotated[str, Field(description="规则类型")]
82
- N_SPEC_TYPE: Annotated[str, Field(description="规则类型名称")]
83
- RULE_TYPE: Annotated[str, Field(description="规则类型")]
84
- N_RULE_TYPE: Annotated[str, Field(description="规则类型名称")]
85
-
86
-
87
- class AlarmPreprocessItem(MetaRelease, AlarmExternal):
88
- """预处理脚本列表条目。
89
-
90
- 前端列表接口返回大写字段;说明、脚本内容和专业名称可能为空,
91
- 因此这里不把这些展示字段设置为必填。
92
- """
93
-
94
- N_SPEC_TYPE: Annotated[str | None, Field(description="关联专业名称")] = None
95
- DESCRIPTION: Annotated[str | None, Field(description="脚本说明")] = None
96
- SCRIPT_CONTENT: Annotated[str | None, Field(description="脚本内容")] = None
97
-
98
- model_config = ConfigDict(extra="allow", str_to_lower=False)
99
-
100
-
101
- class AlarmBuiltinFunctionItem(MetaRelease, AlarmExternal):
102
- """内置函数列表条目。"""
103
-
104
- CLAZZ: Annotated[str | None, Field(description="类全路径")] = None
105
- SCRIPT: Annotated[str | None, Field(description="函数脚本")] = None
106
- REMARK: Annotated[str | None, Field(description="备注")] = None
107
-
108
- model_config = ConfigDict(extra="allow", str_to_lower=False)
109
-
110
-
111
- class AlarmDetail(BaseModel):
112
- """告警详情的统一返回结构。
113
-
114
- ``meta`` 来自主体接口,``params`` 来自 Meta 参数接口;data 使用 JSON
115
- 映射保留前端可能新增的字段,避免详情查询因未知字段失败。
116
- """
117
-
118
- meta: Meta[dict[str, JsonValue]]
119
- params: dict[str, JsonValue] = Field(default_factory=dict)