cloudpss 4.5.2__py3-none-any.whl → 4.5.4__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.
- cloudpss/dslab/dataManageModel.py +19 -0
- cloudpss/dslab/dslab.py +23 -0
- cloudpss/ieslab/PlanModel.py +20 -59
- cloudpss/job/TemplateManager.py +1 -0
- cloudpss/model/implements/diagram.py +34 -7
- cloudpss/model/model.py +3 -2
- cloudpss/runner/runner.py +27 -12
- cloudpss/utils/IO.py +3 -1
- cloudpss/version.py +1 -1
- {cloudpss-4.5.2.dist-info → cloudpss-4.5.4.dist-info}/METADATA +1 -1
- {cloudpss-4.5.2.dist-info → cloudpss-4.5.4.dist-info}/RECORD +13 -13
- {cloudpss-4.5.2.dist-info → cloudpss-4.5.4.dist-info}/WHEEL +0 -0
- {cloudpss-4.5.2.dist-info → cloudpss-4.5.4.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,7 @@
|
|
1
1
|
from ..utils import request, fileLoad, graphql_request
|
2
2
|
import json
|
3
3
|
import time, datetime
|
4
|
+
import urllib.parse
|
4
5
|
import copy
|
5
6
|
import os
|
6
7
|
from cloudpss.dslab.files import getCurveData
|
@@ -268,6 +269,24 @@ class DataManageModel(object):
|
|
268
269
|
if data.get('extra', None) is None:
|
269
270
|
return None
|
270
271
|
return data.get('extra', None).get('data', None)
|
272
|
+
|
273
|
+
def UpdateItemExtra(self, kind, data):
|
274
|
+
'''
|
275
|
+
更新kind类型对应数据项的基准出力曲线、负荷曲线、策略曲线数据
|
276
|
+
:params: kind str类型,数据的种类标识,包含:光伏、光伏曲线、风机、风机曲线、燃气、燃气曲线、水电、水电曲线、火电、火电曲线、生物质发电、生物质发电曲线、垃圾电厂、垃圾电厂曲线、传输线、变压器、开关、负荷分类、负荷用户、储能设备、储能运行策略、上网电价、输配电价、常数电价、阶梯电价、分时电价、分时阶梯电价
|
277
|
+
:params: data dict类型,表示添加的数据内容,其数据结构应满足对应数据项的结构要求,形如:{'data': {}, 'extra': [], 'id': ""}
|
278
|
+
|
279
|
+
:return: list<dict>类型,返回该种类下所有数据项的列表
|
280
|
+
'''
|
281
|
+
url = f"{self._baseUri}rest/{kind}"
|
282
|
+
r = {
|
283
|
+
'id': data.get('id', ''),
|
284
|
+
'data': data.get('data', {}),
|
285
|
+
'extra': data.get('extra', []),
|
286
|
+
}
|
287
|
+
|
288
|
+
self._updateItemData(url, r)
|
289
|
+
return self._fetchItemData(url)
|
271
290
|
|
272
291
|
class DSLabDataManageModel(DataManageModel):
|
273
292
|
_baseUri = 'api/dslab/'
|
cloudpss/dslab/dslab.py
CHANGED
@@ -146,6 +146,29 @@ class DSLab(object):
|
|
146
146
|
raise Exception("不是储能规划方案内核运行生成算法的计算方案")
|
147
147
|
return self.run(job=job, name=name)
|
148
148
|
|
149
|
+
def runIESShortCurrent(self,job=None,name=None, **kwargs)->Runner[IESResult]:
|
150
|
+
'''
|
151
|
+
运行 短路电流计算 内核,如果当前 model 没有创建 Job 时报错,默认使用第一个计算方案,进行仿真。
|
152
|
+
|
153
|
+
:param: job 计算方案名称,可选,字符串类型或者字典类型,默认使用第一个计算方案,如果同名使用最靠前一个
|
154
|
+
:params name: 任务名称,为空时使用项目的参数方案名称和计算方案名称
|
155
|
+
|
156
|
+
:return: runner Runner[IESResult]
|
157
|
+
'''
|
158
|
+
rid = 'function/CloudPSS/short-circuit-current-calculation'
|
159
|
+
if job is None:
|
160
|
+
currentJob = self.model.context['currentJob']
|
161
|
+
job = self.model.jobs[currentJob]
|
162
|
+
if job['rid'] != rid:
|
163
|
+
for j in self.model.jobs:
|
164
|
+
if j['rid'] == rid:
|
165
|
+
job = j
|
166
|
+
if job is None:
|
167
|
+
raise Exception("找不到短路电流计算方案内核运行的计算方案")
|
168
|
+
if job['rid'] != rid:
|
169
|
+
raise Exception("不是短路电流计算方案内核运行生成算法的计算方案")
|
170
|
+
return self.run(job=job, name=name)
|
171
|
+
|
149
172
|
@staticmethod
|
150
173
|
def createProjectGroup(name, description=None, createById=None):
|
151
174
|
'''
|
cloudpss/ieslab/PlanModel.py
CHANGED
@@ -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:
|
36
|
+
:return: enum 类型,代表经济性优化和环保性优化的类型
|
37
37
|
'''
|
38
38
|
try:
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
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
|
-
|
45
|
+
return OptimizationMode['经济性']
|
55
46
|
|
56
|
-
def SetOptimizationInfo(self,
|
47
|
+
def SetOptimizationInfo(self, optType):
|
57
48
|
'''
|
49
|
+
无对应接口
|
58
50
|
设置当前算例的优化目标
|
59
51
|
|
60
|
-
:param
|
61
|
-
|
62
|
-
:return: boolean 类型,为 True 则设置成功
|
52
|
+
:param optType: enum 类型,代表经济性优化和环保性优化的类型
|
63
53
|
'''
|
64
|
-
|
65
|
-
|
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'
|
107
|
-
|
108
|
-
|
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(
|
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/job/TemplateManager.py
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
import re
|
1
2
|
from .component import Component
|
2
3
|
from typing import Optional
|
3
4
|
import uuid
|
@@ -140,7 +141,7 @@ class DiagramImplement(object):
|
|
140
141
|
position["y"] += 5
|
141
142
|
return True
|
142
143
|
|
143
|
-
def updateComponent(self, key: str,
|
144
|
+
def updateComponent(self, key: str, **kwargs: dict) -> bool:
|
144
145
|
"""
|
145
146
|
更新元件
|
146
147
|
|
@@ -150,10 +151,36 @@ class DiagramImplement(object):
|
|
150
151
|
|
151
152
|
>>>> diagram.updateComponent(key)
|
152
153
|
"""
|
153
|
-
component = self.cells.get(key)
|
154
|
-
if
|
154
|
+
component = self.cells.get(key,None)
|
155
|
+
if component is None:
|
155
156
|
return False
|
156
|
-
for k, v in
|
157
|
-
if k
|
158
|
-
|
159
|
-
|
157
|
+
for k, v in kwargs.items():
|
158
|
+
if component.__dict__.get(k,None) is None:
|
159
|
+
raise Exception(f"Component has no attribute {k}")
|
160
|
+
if k == 'args' and not isinstance(v, dict):
|
161
|
+
raise Exception(f"Component args must be dict")
|
162
|
+
if k == 'pins' and not isinstance(v, dict):
|
163
|
+
raise Exception(f"Component pins must be dict")
|
164
|
+
if k == 'position' and not isinstance(v, dict):
|
165
|
+
raise Exception(f"Component position must be dict")
|
166
|
+
if k == 'size' and not isinstance(v, dict):
|
167
|
+
raise Exception(f"Component size must be dict")
|
168
|
+
if k == 'style' and not isinstance(v, dict):
|
169
|
+
raise Exception(f"Component style must be dict")
|
170
|
+
if k == 'props' and not isinstance(v, dict):
|
171
|
+
raise Exception(f"Component props must be dict")
|
172
|
+
if k == 'context' and not isinstance(v, dict):
|
173
|
+
raise Exception(f"Component context must be dict")
|
174
|
+
|
175
|
+
if k == 'definition' and not re.match(r'^model/([!()\-.0-9@A-Z\[\]_a-z{}~]{1,240})/([!()\-.0-9@A-Z\[\]_a-z{}~]{1,240})$', v):
|
176
|
+
raise Exception(f"Component definition must be in the format of 'model/owner/key'")
|
177
|
+
|
178
|
+
if k == 'zIndex' and v < 0:
|
179
|
+
raise Exception(f"Component zIndex must be greater than 0")
|
180
|
+
|
181
|
+
if isinstance(v, dict):
|
182
|
+
component.__dict__[k].update(v)
|
183
|
+
continue
|
184
|
+
|
185
|
+
component.__dict__[k] = v
|
186
|
+
|
cloudpss/model/model.py
CHANGED
@@ -137,7 +137,7 @@ class Model(object):
|
|
137
137
|
raise ValueError("不存在拓扑实现")
|
138
138
|
return diagramImplement.removeComponent(key)
|
139
139
|
|
140
|
-
def updateComponent(self, key,
|
140
|
+
def updateComponent(self, key, **kwargs):
|
141
141
|
"""
|
142
142
|
更新元件实现
|
143
143
|
|
@@ -148,7 +148,7 @@ class Model(object):
|
|
148
148
|
diagramImplement = self.revision.getImplements().getDiagram()
|
149
149
|
if diagramImplement is None:
|
150
150
|
raise ValueError("不存在拓扑实现")
|
151
|
-
return diagramImplement.updateComponent(key,
|
151
|
+
return diagramImplement.updateComponent(key, **kwargs)
|
152
152
|
|
153
153
|
|
154
154
|
def getComponentsByRid(self, rid: str):
|
@@ -397,6 +397,7 @@ class Model(object):
|
|
397
397
|
data = IO.load(filePath, format)
|
398
398
|
return data
|
399
399
|
|
400
|
+
|
400
401
|
@staticmethod
|
401
402
|
def dump(model, file, format="yaml", compress="gzip"):
|
402
403
|
"""
|
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
|
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
|
-
|
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
|
-
|
97
|
+
receiver = RECEIVER['default']
|
94
98
|
else:
|
95
|
-
|
96
|
-
if
|
99
|
+
receiver = RECEIVER[receiver]
|
100
|
+
if receiver is None:
|
97
101
|
raise Exception('not find receiver')
|
98
|
-
self.receiver =
|
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
|
-
|
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/utils/IO.py
CHANGED
@@ -2,6 +2,7 @@ import io
|
|
2
2
|
import json
|
3
3
|
import ubjson
|
4
4
|
import yaml
|
5
|
+
from yaml.dumper import SafeDumper
|
5
6
|
import gzip
|
6
7
|
import base64
|
7
8
|
import struct
|
@@ -85,6 +86,7 @@ class IO(object):
|
|
85
86
|
result = ubjson.dumpb(obj)
|
86
87
|
if format == 'yaml':
|
87
88
|
result = yaml.dump(obj).encode(encoding="utf-8")
|
89
|
+
|
88
90
|
if result is None:
|
89
91
|
assert False, 'format not support'
|
90
92
|
if compress == 'gzip':
|
@@ -104,7 +106,7 @@ class IO(object):
|
|
104
106
|
if format == 'ubjson':
|
105
107
|
return ubjson.loadb(byt)
|
106
108
|
if format == 'yaml':
|
107
|
-
return yaml.load(io.BytesIO(byt), Loader=yaml.
|
109
|
+
return yaml.load(io.BytesIO(byt), Loader=yaml.FullLoader)
|
108
110
|
assert False, 'format not support'
|
109
111
|
|
110
112
|
@staticmethod
|
cloudpss/version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = '4.5.
|
1
|
+
__version__ = '4.5.4'
|
@@ -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=
|
3
|
+
cloudpss/version.py,sha256=eJ8OYidXDfUgR7pcVdkRwEQu5YpveM95hNxT7NMWs1Y,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
|
@@ -14,8 +14,8 @@ cloudpss/asyncio/utils/AsyncIterable.py,sha256=AIWYrTnmjsIfOowE3asZlexdHNhpK2gm7
|
|
14
14
|
cloudpss/asyncio/utils/__init__.py,sha256=F-rCvgRAGcV-fFO7o-dsXwooyhcVpElWoBEQM67kO7c,84
|
15
15
|
cloudpss/asyncio/utils/httpAsyncRequest.py,sha256=KIck-3uQwGcHMIJ6632_Zo0syc4GnNG2EoUXmQh54ck,2692
|
16
16
|
cloudpss/dslab/__init__.py,sha256=UdLDA9OArvLndHtumYAMMHdr5h8S6DrZCYkXIi2Mb4Y,45
|
17
|
-
cloudpss/dslab/dataManageModel.py,sha256=
|
18
|
-
cloudpss/dslab/dslab.py,sha256=
|
17
|
+
cloudpss/dslab/dataManageModel.py,sha256=NeG2YbIappMxAOCZGfFUcOBwo2Kyhh27kHMFK37re60,12711
|
18
|
+
cloudpss/dslab/dslab.py,sha256=K__KohK6w6Alj3WCmLJQ2pr_RPFvvtnce2C6tdLhTIE,9914
|
19
19
|
cloudpss/dslab/financialAnalysisModel.py,sha256=t9cZ03yWvLN5ojVeLp-UGgFBIFVU5wbnn5E0UHZA0ws,5062
|
20
20
|
cloudpss/dslab/files/__init__.py,sha256=l2g0VadtTiMW39zwCwHPHUC01Kbklb_nFUPVeQ16FwM,58
|
21
21
|
cloudpss/dslab/files/curveData.py,sha256=GU_DTTKjVn_ln9Hx0q9CFgfmNtokZi7b4DYSzGeP5dk,4291778
|
@@ -29,10 +29,10 @@ cloudpss/ieslab/EvaluationModel.py,sha256=hGZmuaB8lL9LVti_TCG-qCfK_bA-HJgdxYt7oM
|
|
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=
|
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
|
-
cloudpss/job/TemplateManager.py,sha256=
|
35
|
+
cloudpss/job/TemplateManager.py,sha256=uOvctmE3P17aGWt_26d940FbRUSEs6iovFBb8T5xjd4,1115
|
36
36
|
cloudpss/job/__init__.py,sha256=3UIFZYjJTzuckM61o8kim1c3PWt2SSHTL72jrGu5IzI,51
|
37
37
|
cloudpss/job/job.py,sha256=ciphBMfRkIK1bvZ1zrbuISojXiixoNwQRlCzfEVWOa8,8240
|
38
38
|
cloudpss/job/jobReceiver.py,sha256=PNYxcN33LiXZVyc4tzhPlpWxKnyWO_ElKjJ9wsxsroI,925
|
@@ -47,12 +47,12 @@ cloudpss/job/result/__init__.py,sha256=6zpp_s3Mcdi__FVfrBNLXw4Ee5ZBNgoZuYPJ8cqbj
|
|
47
47
|
cloudpss/job/result/result.py,sha256=kNAQ0X605pKRVFZ0FGULZn177zoPCrMeXLE7eCAVjFA,4282
|
48
48
|
cloudpss/model/__init__.py,sha256=SNq-bfwcQtDHtTNBYppfUEs8wkjfrQfGeywx7igmvOs,151
|
49
49
|
cloudpss/model/jobDefinitions.py,sha256=uuTwpqStlg3YDmfxbU2PVi_Tf18opa0kYLCMGaOP-qA,3749
|
50
|
-
cloudpss/model/model.py,sha256=
|
50
|
+
cloudpss/model/model.py,sha256=hS64Tb6JJvLDaCi4mBPUGbXvmzc-nQxlHtnh7OQpreo,27179
|
51
51
|
cloudpss/model/revision.py,sha256=IFznBKirwpfqadyCNJWPGL7lTpQxbCmU1fxdI5AvoA4,4002
|
52
52
|
cloudpss/model/topology.py,sha256=tKaOACAw9r9SppgxrhK-ZjMsG_jGLiNOzPnlIPLo964,2333
|
53
53
|
cloudpss/model/implements/__init__.py,sha256=88L_wF9SSzxsbtqwStWIPH4LxaKq7TVcssHQ62YBnls,67
|
54
54
|
cloudpss/model/implements/component.py,sha256=uNSpkZKChdXLiO40Ev4P3oQ1di2Hu4YjcBOb0I8Bf0c,734
|
55
|
-
cloudpss/model/implements/diagram.py,sha256=
|
55
|
+
cloudpss/model/implements/diagram.py,sha256=ILBq7oZVb2ZThmm_HdwGmGX0sZPwetoT4SSVN0xFqzo,6053
|
56
56
|
cloudpss/model/implements/implement.py,sha256=Uld96tjXVDbVUNV8xscyy_nZWLHr3iP2DqA6S3p-XJE,954
|
57
57
|
cloudpss/project/__init__.py,sha256=fpskY-cJGmMcTg1naVzNPtJaRG1xmSc2CFjDTin64Cw,51
|
58
58
|
cloudpss/project/project.py,sha256=uFhOnM8ngo1_ZYz2uArtORKZquYNdOIVLXU_q1MDFI4,17698
|
@@ -64,17 +64,17 @@ 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=
|
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
|
-
cloudpss/utils/IO.py,sha256=
|
70
|
+
cloudpss/utils/IO.py,sha256=FsFp3V8I1-P0YiBGmjKwbMalBrVKMHUxTjFZFOtv0CQ,5357
|
71
71
|
cloudpss/utils/__init__.py,sha256=jWVHSOqJQWU0fpg2UbWSEQoLCb2Uys-vH5Uqkb0ihNA,326
|
72
72
|
cloudpss/utils/dataEncoder.py,sha256=5PUPb844eOGgFnYrMM8bdjdKH_MZz0lk-67uo8TvwEo,885
|
73
73
|
cloudpss/utils/graphqlUtil.py,sha256=zGEhRZvy5JMipFKFxjDmbc-HQP3aPZ5noDwi-RTXWSk,280
|
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.
|
78
|
-
cloudpss-4.5.
|
79
|
-
cloudpss-4.5.
|
80
|
-
cloudpss-4.5.
|
77
|
+
cloudpss-4.5.4.dist-info/METADATA,sha256=Dc5A9wx9LibDHiUKGW1e2w41ahE5okSTtlZ92UC_-pA,2401
|
78
|
+
cloudpss-4.5.4.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
|
79
|
+
cloudpss-4.5.4.dist-info/top_level.txt,sha256=wS9qPU4-aWM9ouzMOx34Nlq-GkdQKpr9vBskwut1BD8,9
|
80
|
+
cloudpss-4.5.4.dist-info/RECORD,,
|
File without changes
|
File without changes
|