cloudpss 4.5.3__py3-none-any.whl → 4.5.5__py3-none-any.whl

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.
@@ -415,8 +415,7 @@ class FunctionExecution(object):
415
415
  'title': title,
416
416
  'traces':
417
417
  [self.__plotlyDataToTrace(trace) for trace in traces],
418
- 'xAxis': layout.get('xaxis', {}),
419
- 'yAxis': layout.get('yaxis', {}),
418
+ 'layout': layout,
420
419
  }
421
420
  }
422
421
  self.print(result)
@@ -17,7 +17,6 @@ class IESLabPlanModel(object):
17
17
  '''
18
18
  self.simulationId = simulationId
19
19
  self.optimizationInfo = self.GetOptimizationInfo()
20
- # self.OptimizationMode = OptimizationMode
21
20
 
22
21
  def _fetchItemData(self, url, params):
23
22
  '''
@@ -29,69 +28,31 @@ class IESLabPlanModel(object):
29
28
  data = json.loads(r.text)
30
29
  return data['results']
31
30
 
31
+
32
32
  def GetOptimizationInfo(self):
33
33
  '''
34
34
  获取当前算例的优化目标设置信息
35
35
 
36
- :return: Dict 类型,例如:{'OptimizationMode': <OptimizationMode.经济性: 0>, 'StoSen': 0.1}
36
+ :return: enum 类型,代表经济性优化和环保性优化的类型
37
37
  '''
38
38
  try:
39
- url = f'{self._baseUri}/simuOpt/'
40
- params = {"simu_id": self.simulationId}
41
- r = self._fetchItemData(url, params)
42
- if (len(r) == 0):
43
- return {
44
- "OptimizationMode": OptimizationMode['经济性'],
45
- "StoSen": 0.1
46
- }
47
- else:
48
- value = json.loads(r[0]['opt_params'])
49
- return {
50
- "OptimizationMode": OptimizationMode(value['OptimizationMode']),
51
- "StoSen": value['StoSen']
52
- }
39
+ data = self._fetchItemData(self._baseUri)
40
+ for e in OptimizationMode:
41
+ if (e.value == data['data']['optimizationpara']
42
+ ['OptimizationMode']):
43
+ return e
53
44
  except:
54
- raise Exception('获得优化目标设置失败')
45
+ return OptimizationMode['经济性']
55
46
 
56
- def SetOptimizationInfo(self, data: dict):
47
+ def SetOptimizationInfo(self, optType):
57
48
  '''
49
+ 无对应接口
58
50
  设置当前算例的优化目标
59
51
 
60
- :param data: dict 类型,例如:{'OptimizationMode': <OptimizationMode.经济性: 0>, 'StoSen': 0.1}
61
-
62
- :return: boolean 类型,为 True 则设置成功
52
+ :param optType: enum 类型,代表经济性优化和环保性优化的类型
63
53
  '''
64
- try:
65
- url = f'{self._baseUri}/simuOpt/'
66
- params = {"simu_id": self.simulationId}
67
- r = self._fetchItemData(url, params)
68
- opt_params = {
69
- "OptimizationMode": data.get('OptimizationMode', '').value,
70
- "StoSen": data.get('StoSen', ''),
71
- "ProjectPeriod": "20"
72
- }
73
- if(len(r) == 0):
74
- payload = {
75
- "simu_id": self.simulationId,
76
- "opt_params": json.dumps(opt_params)
77
- }
78
- r = request('POST',
79
- url,
80
- data=json.dumps(payload))
81
- return True
82
- else:
83
- url2 = f'{self._baseUri}/simuOpt/{r[0]["id"]}/'
84
- payload = {
85
- "simu_id": self.simulationId,
86
- "opt_params": json.dumps(opt_params),
87
- "id": r[0]["id"]
88
- }
89
- r = request('PUT',
90
- url2,
91
- data=json.dumps(payload))
92
- return True
93
- except:
94
- return False
54
+ self.optimizationInfo = optType
55
+ return True
95
56
 
96
57
  def run(self) -> HttpRunner[IESLabPlanResult]:
97
58
  '''
@@ -103,12 +64,9 @@ class IESLabPlanModel(object):
103
64
  if isRunning:
104
65
  raise Exception('该算例正在运行!请从浏览器算例页面点击结束运行或者调用IESPlan对象的kill接口终止计算后重试!')
105
66
  else:
106
- url = f'api/{self._runUri}/runOptimization'
107
- opt = {
108
- "OptimizationMode": self.optimizationInfo.get('OptimizationMode', 0).value,
109
- "ProjectPeriod": "20",
110
- "StoSen": self.optimizationInfo.get('StoSen', 0.1)
111
- }
67
+ url = f'{self._runUri}/runOptimization'
68
+ optType = self.optimizationInfo if self.optimizationInfo is not None else OptimizationMode.经济性
69
+ optTypeValue = optType.value if isinstance(optType, OptimizationMode) else 0
112
70
  try:
113
71
  r = request('GET',
114
72
  url,
@@ -116,7 +74,10 @@ class IESLabPlanModel(object):
116
74
  "simuid":
117
75
  self.simulationId,
118
76
  "optPara":
119
- json.dumps(opt)
77
+ json.dumps({
78
+ "OptimizationMode": optTypeValue,
79
+ "ProjectPeriod": "20"
80
+ })
120
81
  })
121
82
  data = json.loads(r.text)
122
83
  return HttpRunner({}, self.simulationId)
cloudpss/runner/runner.py CHANGED
@@ -15,7 +15,7 @@ from .IESLabEvaluationResult import IESLabEvaluationResult, IESLabPlanEvaluation
15
15
  from .IESLabTypicalDayResult import IESLabTypicalDayResult
16
16
  from .storage import Storage
17
17
  from ..utils import request
18
- from typing import TypeVar, Generic
18
+ from typing import TypeVar, Generic
19
19
  import re
20
20
 
21
21
  RECEIVER = {
@@ -35,6 +35,8 @@ IES_LAB_OPT_RESULT = {
35
35
  'function/ieslab/evaluation': IESLabOptEvaluationResult,
36
36
  }
37
37
 
38
+
39
+
38
40
  RESULT_DB = {
39
41
  'function/CloudPSS/emtp': EMTResult,
40
42
  'function/CloudPSS/emtps': EMTResult,
@@ -60,7 +62,11 @@ class Runner(Generic[T]):
60
62
  self.taskId = taskId
61
63
  self.db = Storage(taskId, name, job, config, revision, modelRid)
62
64
  rid =job['rid'].replace('job-definition/','function/').replace('/cloudpss/','/CloudPSS/')
63
- result = RESULT_DB.get(rid, Result)
65
+ resultClass = kwargs.get('RESULT_DB', None)
66
+ if resultClass is not None:
67
+ result = resultClass
68
+ else:
69
+ result = RESULT_DB.get(rid, Result)
64
70
  self.result: T = result(self.db)
65
71
  self.receiver = kwargs.get('receiver', None)
66
72
 
@@ -85,18 +91,25 @@ class Runner(Generic[T]):
85
91
  return self.receiver.status()
86
92
 
87
93
  def __listen(self, **kwargs):
88
-
89
94
  receiver = kwargs.get('RECEIVER', 'default')
90
- receiverclass = None
91
95
  if type(receiver) is str:
92
96
  if receiver not in RECEIVER:
93
- receiverclass = RECEIVER['default']
97
+ receiver = RECEIVER['default']
94
98
  else:
95
- receiverclass = RECEIVER[receiver]
96
- if receiverclass is None:
99
+ receiver = RECEIVER[receiver]
100
+ if receiver is None:
97
101
  raise Exception('not find receiver')
98
- self.receiver = receiverclass(self.taskId, self.db, **kwargs)
102
+ self.receiver = receiver(self.taskId, self.db, **kwargs)
99
103
  self.receiver.connect()
104
+ def statusCode(self):
105
+ query="mutation($_a:JobInput!){job(input:$_a){status}}"
106
+ variables= {
107
+ "_a": {
108
+ "id": self.jobId,
109
+ }
110
+ }
111
+
112
+ return graphql_request(query,variables=variables)
100
113
 
101
114
  def terminate(self):
102
115
  """
@@ -143,19 +156,21 @@ class Runner(Generic[T]):
143
156
  tres[k] = float(v) # type: ignore
144
157
  policy["tres"] = tres
145
158
  function = job["rid"].replace("job-definition/cloudpss/", "function/CloudPSS/")
146
- implement = kwargs.get("implement", None)
159
+ implement = kwargs.get("implement", kwargs.get("topology", None))
147
160
  debug = job["args"].get("@debug", None )
148
161
  debugargs={}
149
162
  if debug is not None:
150
163
  t= [ i.split('=') for i in re.split(r'\s+',debug) if i.find('=')>0]
151
164
  for i in t:
152
165
  debugargs[i[0]]=i[1]
153
-
166
+
154
167
  context= [
155
168
  function,
156
- rid,
169
+
157
170
  f"model/@sdk/{str(int(time.time() * random.random()))}",
158
171
  ]
172
+ if rid != '':
173
+ context.append(rid)
159
174
 
160
175
  PARENT_JOB_ID =kwargs.get("PARENT_JOB_ID",None)
161
176
  if PARENT_JOB_ID is not None:
@@ -240,7 +255,7 @@ class HttpRunner(Runner[T]):
240
255
  if self.__taskId is None:
241
256
  return False
242
257
  return self.result.status() # type: ignore
243
-
258
+
244
259
 
245
260
  class HttpOPTRunner(Runner[T]):
246
261
 
cloudpss/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = '4.5.3'
1
+ __version__ = '4.5.5'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloudpss
3
- Version: 4.5.3
3
+ Version: 4.5.5
4
4
  Summary: cloudpss sdk
5
5
  Home-page: https://www.cloudpss.net
6
6
  Author: cloudpss
@@ -1,6 +1,6 @@
1
1
  cloudpss/__init__.py,sha256=1RNmUBhoxYUutZiTS-XJ9yBoNGGh8Mpt1uY6ETlSBDc,825
2
2
  cloudpss/verify.py,sha256=KF4Gd59DGvCyIEkRD7rNnekWw22XxJpi3DW6keb6j4c,1498
3
- cloudpss/version.py,sha256=Qwf2PqCgwNBpHE5DrBEwfOiFsFvEpa01UTldrgQkx9Q,22
3
+ cloudpss/version.py,sha256=8YUF9sgPJQFrkTnAN6QJ6In_jhHd60fHbyYUrnmSkO8,22
4
4
  cloudpss/asyncio/__init__.py,sha256=CJGopQl_vz3z3fJsK7NjMX5uzkzfrJrbqKVhyYqlYWc,198
5
5
  cloudpss/asyncio/job/__init__.py,sha256=3UIFZYjJTzuckM61o8kim1c3PWt2SSHTL72jrGu5IzI,51
6
6
  cloudpss/asyncio/job/job.py,sha256=Bn2BEERw1J8YarFauTzVrGJK7nmaoMsdlrFUqiHRth4,3897
@@ -22,14 +22,14 @@ cloudpss/dslab/files/curveData.py,sha256=GU_DTTKjVn_ln9Hx0q9CFgfmNtokZi7b4DYSzGe
22
22
  cloudpss/dslab/files/files.py,sha256=vS0VhAh1lb8oFw51E2rAsb0WpmqM9F9IprxNCAPqH1s,934
23
23
  cloudpss/function/__init__.py,sha256=TNzChB-gQF6oB62F423evpUlgcp6s03D4pKKs89Lz4Q,1629
24
24
  cloudpss/function/function.py,sha256=llomkfnTmKMiFJYJ2mKnmAEoIjTNVCnjCUUyiJMOV1s,29
25
- cloudpss/function/functionExecution.py,sha256=4SR2qJbXntOjjSOrUmbjvBqED1nJyhVpI6WZKUFs1lQ,15761
25
+ cloudpss/function/functionExecution.py,sha256=thR3yz3dN3AFwJ411OpJV3JccB65yRS2tw9S4YKYjqU,15695
26
26
  cloudpss/function/job.py,sha256=LdzaTyjvBcMZIyLstSZnt79d2eREljx2HnNoilDp03A,13162
27
27
  cloudpss/ieslab/DataManageModel.py,sha256=PH5-V1TCJ8No2NIqXu-RYHhlqCimwuCSO0Qbg4OjDq8,25323
28
28
  cloudpss/ieslab/EvaluationModel.py,sha256=hGZmuaB8lL9LVti_TCG-qCfK_bA-HJgdxYt7oMmVrXY,9399
29
29
  cloudpss/ieslab/IESLabOpt.py,sha256=KMswh-q_RpM_HU8HtKLj05p-AKBwnNrc37zy7pq6cf8,9063
30
30
  cloudpss/ieslab/IESLabPlan.py,sha256=rEf1W2pT_J3C8-TFFHVm8Llli9ySSXbBeRpd6Yz9Glk,8345
31
31
  cloudpss/ieslab/IESLabSimulation.py,sha256=-EJFkhklN9ao-nbfk7Lz6JCHboFCSDcn5R2jr3_Z7_A,4046
32
- cloudpss/ieslab/PlanModel.py,sha256=WHvXWNFgi7fO_M-sL9empRgHR5riCj1jeThBRT-oqEc,14088
32
+ cloudpss/ieslab/PlanModel.py,sha256=fLWzVnRiyYRHchG2xsfUH-oCUmnF1uwbDuWNC750dWw,12612
33
33
  cloudpss/ieslab/__init__.py,sha256=gr1rXYw9vIAGOe60eg7LyMHP7QDXvNf4dJ5GTR_kj1Y,232
34
34
  cloudpss/job/TemplateCompiler.py,sha256=MuJDTQ54wRo5bGSvBJBJjXJ7u463dwpRkaLwIwm_hLE,9936
35
35
  cloudpss/job/TemplateManager.py,sha256=uOvctmE3P17aGWt_26d940FbRUSEs6iovFBb8T5xjd4,1115
@@ -64,7 +64,7 @@ cloudpss/runner/MessageStreamReceiver.py,sha256=dT-rKslQbRt3bMTGXupa1YrocHl2zTWO
64
64
  cloudpss/runner/__init__.py,sha256=FxiYYmssbZgRjieySzi43yPiWEF6eNos2UsoFQeD2H8,341
65
65
  cloudpss/runner/receiver.py,sha256=QU0RsbCt0EK7sCLHzfj8_QQsuPNfqXxpZi5JKm6roxA,4162
66
66
  cloudpss/runner/result.py,sha256=GFpd7848gsLRuzhVcWbCwmAjR84Lhik_3pNCjOV8VOY,13291
67
- cloudpss/runner/runner.py,sha256=pfidTchkoVTFUB9pUmZn9ulVDag9DLGo0pIxsD-nRu0,9168
67
+ cloudpss/runner/runner.py,sha256=SJkEjDnrmRPmq1t8sbZtIbYaq-wQblv6Yx9RnyWz4c8,9583
68
68
  cloudpss/runner/storage.py,sha256=zFET_zwPIOF2Cnh9sgFiS0HFxV1OmVsU34bGUQ6PpkA,4162
69
69
  cloudpss/runner/transform.py,sha256=krOgTZiJSJAb5QSwerAqlbC4Ma0PKi__0WOZlAxw4O8,11613
70
70
  cloudpss/utils/IO.py,sha256=FsFp3V8I1-P0YiBGmjKwbMalBrVKMHUxTjFZFOtv0CQ,5357
@@ -74,7 +74,7 @@ cloudpss/utils/graphqlUtil.py,sha256=zGEhRZvy5JMipFKFxjDmbc-HQP3aPZ5noDwi-RTXWSk
74
74
  cloudpss/utils/httprequests.py,sha256=ZcCwS2KM7y2TwWTo0YRLNJVozih4h0F5ignn-CeBREU,1846
75
75
  cloudpss/utils/matlab.py,sha256=SLwVt790BjklJK2XNELt9R2n_1ej9Y8QsTIdFkKXLWE,795
76
76
  cloudpss/utils/yamlLoader.py,sha256=bv_vPDK_e0n_vZ5FwpDJ_NJWqMAwfU3AbhkvQIxPCy4,2677
77
- cloudpss-4.5.3.dist-info/METADATA,sha256=85B-9dgbPdsSS961DOPKWRoKeYn-8nYA2JJkSJRAJzM,2401
78
- cloudpss-4.5.3.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
79
- cloudpss-4.5.3.dist-info/top_level.txt,sha256=wS9qPU4-aWM9ouzMOx34Nlq-GkdQKpr9vBskwut1BD8,9
80
- cloudpss-4.5.3.dist-info/RECORD,,
77
+ cloudpss-4.5.5.dist-info/METADATA,sha256=fCJLHxsOIHAeDSiSz3zqusz_1qjMb3iWsPWqpQ-C3ko,2401
78
+ cloudpss-4.5.5.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
79
+ cloudpss-4.5.5.dist-info/top_level.txt,sha256=wS9qPU4-aWM9ouzMOx34Nlq-GkdQKpr9vBskwut1BD8,9
80
+ cloudpss-4.5.5.dist-info/RECORD,,