codosdk 1.0.17__tar.gz → 1.0.19__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 (51) hide show
  1. {codosdk-1.0.17 → codosdk-1.0.19}/PKG-INFO +1 -1
  2. {codosdk-1.0.17 → codosdk-1.0.19}/codosdk.egg-info/PKG-INFO +1 -1
  3. {codosdk-1.0.17 → codosdk-1.0.19}/setup.py +1 -1
  4. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/crud_utils.py +29 -2
  5. {codosdk-1.0.17 → codosdk-1.0.19}/LICENSE +0 -0
  6. {codosdk-1.0.17 → codosdk-1.0.19}/README.md +0 -0
  7. {codosdk-1.0.17 → codosdk-1.0.19}/codosdk.egg-info/SOURCES.txt +0 -0
  8. {codosdk-1.0.17 → codosdk-1.0.19}/codosdk.egg-info/dependency_links.txt +0 -0
  9. {codosdk-1.0.17 → codosdk-1.0.19}/codosdk.egg-info/requires.txt +0 -0
  10. {codosdk-1.0.17 → codosdk-1.0.19}/codosdk.egg-info/top_level.txt +0 -0
  11. {codosdk-1.0.17 → codosdk-1.0.19}/opssdk/__init__.py +0 -0
  12. {codosdk-1.0.17 → codosdk-1.0.19}/opssdk/utils/__init__.py +0 -0
  13. {codosdk-1.0.17 → codosdk-1.0.19}/pyproject.toml +0 -0
  14. {codosdk-1.0.17 → codosdk-1.0.19}/setup.cfg +0 -0
  15. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/__init__.py +0 -0
  16. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/api_set.py +0 -0
  17. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/apis/__init__.py +0 -0
  18. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/apis/admin_apis.py +0 -0
  19. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/apis/agent_apis.py +0 -0
  20. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/apis/cmdb_apis.py +0 -0
  21. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/apis/kerrigan_apis.py +0 -0
  22. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/apis/mgv4_apis.py +0 -0
  23. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/apis/task_apis.py +0 -0
  24. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/application.py +0 -0
  25. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/base_handler.py +0 -0
  26. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/cache.py +0 -0
  27. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/cache_context.py +0 -0
  28. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/client.py +0 -0
  29. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/cloud/__init__.py +0 -0
  30. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/cloud/qcloud_api.py +0 -0
  31. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/cloud/ucloud_api.py +0 -0
  32. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/cloud_utils.py +0 -0
  33. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/configs.py +0 -0
  34. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/consts.py +0 -0
  35. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/db_context.py +0 -0
  36. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/error.py +0 -0
  37. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/fetch_coroutine.py +0 -0
  38. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/jwt_token.py +0 -0
  39. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/ldap.py +0 -0
  40. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/logger.py +0 -0
  41. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/model_utils.py +0 -0
  42. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/mqhelper.py +0 -0
  43. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/program.py +0 -0
  44. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/salt_api.py +0 -0
  45. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/sqlalchemy_pagination.py +0 -0
  46. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/tools.py +0 -0
  47. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/utils/__init__.py +0 -0
  48. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/utils/cc_crypto.py +0 -0
  49. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/utils/date_format.py +0 -0
  50. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/utils/pydantic_utils.py +0 -0
  51. {codosdk-1.0.17 → codosdk-1.0.19}/websdk2/web_logs.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: codosdk
3
- Version: 1.0.17
3
+ Version: 1.0.19
4
4
  Summary: CODO项目的Python SDK
5
5
  Home-page: https://github.com/ss1917/codo_sdk/
6
6
  Author: shenshuo
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: codosdk
3
- Version: 1.0.17
3
+ Version: 1.0.19
4
4
  Summary: CODO项目的Python SDK
5
5
  Home-page: https://github.com/ss1917/codo_sdk/
6
6
  Author: shenshuo
@@ -9,7 +9,7 @@ desc : CODO SDK
9
9
  import sys
10
10
  from setuptools import setup, find_packages
11
11
 
12
- VERSION = '1.0.17'
12
+ VERSION = '1.0.19'
13
13
 
14
14
  if sys.version_info < (2, 7) or (3, 0) <= sys.version_info < (3, 6):
15
15
  print('This program requires at least Python 2.7 or 3.6 to run.')
@@ -5,11 +5,12 @@ Author : shenshuo
5
5
  Date : 2025年02月08日
6
6
  Desc : 存储类
7
7
  """
8
-
8
+ import json
9
9
  import time
10
10
  import logging
11
11
  from sqlalchemy import true
12
12
  from sqlalchemy.exc import IntegrityError
13
+ from typing import List, Union, Optional
13
14
  from .db_context import DBContextV2 as DBContext
14
15
  from .utils.pydantic_utils import sqlalchemy_to_pydantic, ValidationError, PydanticDelList
15
16
  from .sqlalchemy_pagination import paginate
@@ -32,6 +33,28 @@ class ModelCRUDView:
32
33
  def prepare(self):
33
34
  pass
34
35
 
36
+ @staticmethod
37
+ def parse_id_list(id_list: Union[str, List[int]]) -> Optional[List[int]]:
38
+ """
39
+ 解析和验证 id_list 参数。
40
+ """
41
+ if isinstance(id_list, str):
42
+ try:
43
+ id_list = json.loads(id_list)
44
+ except json.JSONDecodeError as e:
45
+ logging.error(f"Failed to parse id_list: {e}, input: {id_list}")
46
+ return None
47
+ if isinstance(id_list, list):
48
+ try:
49
+ # 尝试将所有元素转换为整数
50
+ id_list = [int(i) for i in id_list]
51
+ return id_list
52
+ except Exception as e:
53
+ logging.error(f"Invalid id_list element: {e}, input: {id_list}")
54
+ return None
55
+ logging.error(f"Invalid id_list format: {id_list}")
56
+ return None
57
+
35
58
  @staticmethod
36
59
  def del_data(data) -> dict:
37
60
  for key in ['_index', '_rowKey', 'update_time']:
@@ -63,6 +86,7 @@ class ModelCRUDView:
63
86
  self.prepare()
64
87
 
65
88
  value = params.get('searchValue', params.get('searchVal'))
89
+ id_list = params.get('id_list', [])
66
90
  filter_map = params.pop('filter_map', {})
67
91
  params.setdefault('page_size', 300) # 统一处理默认值
68
92
 
@@ -89,6 +113,10 @@ class ModelCRUDView:
89
113
  try:
90
114
  with DBContext('r') as session:
91
115
  query = session.query(self.model).filter(filter_condition).filter_by(**filter_map)
116
+ id_list = self.parse_id_list(id_list)
117
+ if id_list:
118
+ query = query.filter(self.model.id.in_(id_list))
119
+
92
120
  page = paginate(query, **params)
93
121
  except Exception as e:
94
122
  return dict(code=2, msg='查询失败', data=None, reason=str(e), timestamp=get_millisecond_timestamp())
@@ -100,7 +128,6 @@ class ModelCRUDView:
100
128
  timestamp=get_millisecond_timestamp(),
101
129
  data={
102
130
  'items': page.items,
103
- 'current_page': page.page, # 当前页
104
131
  'total_pages': page.pages, # 总页数
105
132
  'count': page.total # 总数
106
133
  }
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