cloudpss 3.2.0a2__py3-none-any.whl → 4.0.0a5__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.
Files changed (37) hide show
  1. cloudpss/__init__.py +6 -4
  2. cloudpss/dslab/DSLabFinancialResult.py +96 -0
  3. cloudpss/dslab/__init__.py +2 -0
  4. cloudpss/dslab/dataManageModel.py +267 -0
  5. cloudpss/dslab/dslab.py +145 -0
  6. cloudpss/dslab/files/__init__.py +2 -0
  7. cloudpss/dslab/files/curveData.py +140205 -0
  8. cloudpss/dslab/files/files.py +19 -0
  9. cloudpss/dslab/financialAnalysisModel.py +137 -0
  10. cloudpss/function/functionExecution.py +0 -2
  11. cloudpss/ieslab/DataManageModel.py +415 -0
  12. cloudpss/ieslab/EvaluationModel.py +189 -0
  13. cloudpss/ieslab/IESLabPlan.py +132 -0
  14. cloudpss/ieslab/IESLabSimulation.py +54 -0
  15. cloudpss/ieslab/PlanModel.py +143 -0
  16. cloudpss/ieslab/__init__.py +4 -0
  17. cloudpss/model/jobDefinitions.py +34 -0
  18. cloudpss/model/model.py +202 -15
  19. cloudpss/model/revision.py +2 -2
  20. cloudpss/project/project.py +4 -3
  21. cloudpss/runner/DSLabResult.py +92 -0
  22. cloudpss/runner/IESLabEvaluationResult.py +143 -0
  23. cloudpss/runner/IESLabPlanResult.py +195 -0
  24. cloudpss/runner/IESLabTypicalDayResult.py +142 -0
  25. cloudpss/runner/MessageStreamReceiver.py +193 -0
  26. cloudpss/runner/receiver.py +3 -3
  27. cloudpss/runner/result.py +38 -4
  28. cloudpss/runner/runner.py +61 -18
  29. cloudpss/utils/IO.py +153 -0
  30. cloudpss/utils/httprequests.py +14 -11
  31. cloudpss/verify.py +27 -14
  32. cloudpss/version.py +1 -0
  33. {cloudpss-3.2.0a2.dist-info → cloudpss-4.0.0a5.dist-info}/METADATA +2 -4
  34. cloudpss-4.0.0a5.dist-info/RECORD +54 -0
  35. {cloudpss-3.2.0a2.dist-info → cloudpss-4.0.0a5.dist-info}/WHEEL +1 -1
  36. cloudpss-3.2.0a2.dist-info/RECORD +0 -33
  37. {cloudpss-3.2.0a2.dist-info → cloudpss-4.0.0a5.dist-info}/top_level.txt +0 -0
cloudpss/runner/runner.py CHANGED
@@ -1,34 +1,53 @@
1
+ from cProfile import run
1
2
  import threading
2
3
  import json
3
4
  import time
4
5
  import random
5
6
  from .receiver import Receiver
6
- from .result import PowerFlowResult, EMTResult, Result, IESResult
7
+ from .result import IESLabSimulationResult, PowerFlowResult, EMTResult, Result, IESResult
8
+ from .IESLabPlanResult import IESLabPlanResult
9
+ from .IESLabEvaluationResult import IESLabEvaluationResult
10
+ from .IESLabTypicalDayResult import IESLabTypicalDayResult
7
11
  from .storage import Storage
8
12
  from ..utils import request
13
+ from typing import TypeVar, Generic
9
14
 
10
15
  RECEIVER = {
11
16
  'default': Receiver,
12
17
  }
13
- RESULT_DB = {
14
- 'job-definition/cloudpss/emtp': EMTResult,
15
- 'job-definition/cloudpss/sfemt': EMTResult,
16
- 'job-definition/cloudpss/power-flow': PowerFlowResult,
17
- 'job-definition/cloudpss/ies-simulation': IESResult,
18
- 'job-definition/cloudpss/ies-optimization': IESResult,
19
- 'job-definition/cloudpss/three-phase-powerFlow': PowerFlowResult,
18
+ T = TypeVar('T', Result, EMTResult, PowerFlowResult, IESResult,
19
+ IESLabSimulationResult, IESLabPlanResult, IESLabEvaluationResult,IESLabTypicalDayResult)
20
+
21
+ IES_LAB_RESULT = {
22
+ 'function/ieslab/plan': IESLabPlanResult,
23
+ 'function/ieslab/evaluation': IESLabEvaluationResult
20
24
  }
21
25
 
26
+ RESULT_DB = {
27
+ 'function/CloudPSS/emtp': EMTResult,
28
+ 'function/CloudPSS/emtps': EMTResult,
29
+ 'function/CloudPSS/sfemt': EMTResult,
30
+ 'function/CloudPSS/power-flow': PowerFlowResult,
31
+ 'function/CloudPSS/ies-simulation': IESResult,
32
+ 'function/CloudPSS/ies-optimization': IESResult,
33
+ 'function/ies/ies-optimization': IESResult,
34
+ 'function/CloudPSS/three-phase-powerFlow': PowerFlowResult,
35
+ 'function/ies/ies-simulation': IESLabSimulationResult,
36
+ 'function/ies/ies-gmm':IESLabTypicalDayResult,
37
+ 'function/CloudPSS/ieslab-simulation': IESLabSimulationResult,
38
+ 'function/CloudPSS/ieslab-gmm':IESLabTypicalDayResult,
39
+ 'function/CloudPSS/ieslab-optimization': IESResult,
40
+ }
22
41
 
23
- class Runner(object):
42
+ class Runner(Generic[T]):
24
43
  def __init__(self, taskId, name, job, config, revision, modelRid,
25
44
  **kwargs):
26
-
27
45
  self.taskId = taskId
28
46
  self.db = Storage(taskId, name, job, config, revision, modelRid)
29
- result = RESULT_DB.get(job['rid'], EMTResult)
30
- self.result = result(self.db)
31
- self.receiver = None
47
+ rid =job['rid'].replace('job-definition/','function/').replace('/cloudpss/','/CloudPSS/')
48
+ result = RESULT_DB.get(rid, Result)
49
+ self.result: T = result(self.db)
50
+ self.receiver = kwargs.get('receiver', None)
32
51
 
33
52
  def __listenStatus(self):
34
53
  if self.receiver is None:
@@ -52,12 +71,15 @@ class Runner(object):
52
71
  def __listen(self, **kwargs):
53
72
 
54
73
  receiver = kwargs.get('RECEIVER', 'default')
74
+ receiverclass = None
55
75
  if type(receiver) is str:
56
76
  if receiver not in RECEIVER:
57
- receiver = RECEIVER['default']
77
+ receiverclass = RECEIVER['default']
58
78
  else:
59
- receiver = RECEIVER[receiver]
60
- self.receiver = receiver(self.taskId, self.db, **kwargs)
79
+ receiverclass = RECEIVER[receiver]
80
+ if receiverclass is None:
81
+ raise Exception('not find receiver')
82
+ self.receiver = receiverclass(self.taskId, self.db, **kwargs)
61
83
  self.receiver.connect()
62
84
 
63
85
  def terminate(self):
@@ -83,9 +105,9 @@ class Runner(object):
83
105
  >>> runner = Runner.runRevision(revision,job,config,'')
84
106
  '''
85
107
  taskId = str(int(time.time() * random.random()))
108
+
86
109
  runner = Runner(taskId, name, job, config, revisionHash, rid, **kwargs)
87
110
  event = threading.Event()
88
-
89
111
  thread = threading.Thread(target=runner.__listen, kwargs=kwargs)
90
112
  thread.setDaemon(True)
91
113
  thread.start()
@@ -95,10 +117,31 @@ class Runner(object):
95
117
  'implement': kwargs.get('topology', None)
96
118
  }
97
119
  while not runner.__listenStatus():
98
- time.sleep(1)
120
+ time.sleep(0.1)
99
121
  r = request('POST',
100
122
  'api/simulation/runner/' + revisionHash + '/' +
101
123
  str(taskId),
102
124
  data=json.dumps(payload))
103
125
 
104
126
  return runner
127
+
128
+
129
+ class HttpRunner(Runner[T]):
130
+ def __init__(self, job, simulationId, **kwargs):
131
+ self.simulationId = simulationId
132
+ self.job = job
133
+ self.__taskId = self.__getLastTask()
134
+ result = IES_LAB_RESULT.get(job.get('rid', ''), IESLabPlanResult)
135
+ self.result: T = result(self.simulationId, self.__taskId, **kwargs)
136
+
137
+ def __getLastTask(self):
138
+ r = request('GET',
139
+ 'api/ieslab-plan/taskmanager/getSimuLastTasks',
140
+ params={'simuid': self.simulationId})
141
+ result = json.loads(r.text)
142
+ return result['data'].get('task_id', None)
143
+
144
+ def status(self):
145
+ if self.__taskId is None:
146
+ return False
147
+ return self.result.status() # type: ignore
cloudpss/utils/IO.py ADDED
@@ -0,0 +1,153 @@
1
+ import io
2
+ import json
3
+ import ubjson
4
+ import yaml
5
+ import gzip
6
+ import base64
7
+ import struct
8
+
9
+
10
+ def float32Array(_loader, node):
11
+ data = base64.b64decode(node.value)
12
+ return list(struct.unpack('f' * (len(data) // 4), data))
13
+
14
+
15
+ def float64Array(_loader, node):
16
+ data = base64.b64decode(node.value)
17
+ return list(struct.unpack('d' * (len(data) // 8), data))
18
+
19
+
20
+ def uint8Array(_loader, node):
21
+ data = base64.b64decode(node.value)
22
+ return list(struct.unpack('B' * (len(data) // 1), data))
23
+
24
+
25
+ def uint8ClampedArray(_loader, node):
26
+ data = base64.b64decode(node.value)
27
+ return list(struct.unpack('B' * (len(data) // 1), data))
28
+
29
+
30
+ def uint16Array(_loader, node):
31
+ data = base64.b64decode(node.value)
32
+ return list(struct.unpack('H' * (len(data) // 2), data))
33
+
34
+
35
+ def uint32Array(_loader, node):
36
+ data = base64.b64decode(node.value)
37
+ return list(struct.unpack('I' * (len(data) // 4), data))
38
+
39
+
40
+ def int8Array(_loader, node):
41
+ data = base64.b64decode(node.value)
42
+ return list(struct.unpack('b' * (len(data) // 1), data))
43
+
44
+
45
+ def int16Array(_loader, node):
46
+ data = base64.b64decode(node.value)
47
+ return list(struct.unpack('h' * (len(data) // 2), data))
48
+
49
+
50
+ def int32Array(_loader, node):
51
+ data = base64.b64decode(node.value)
52
+ return list(struct.unpack('i' * (len(data) // 4), data))
53
+
54
+
55
+ #type:ignore
56
+ yaml.add_constructor('tag:yaml.org,2002:js/Float32Array', float32Array)
57
+ yaml.add_constructor('tag:yaml.org,2002:js/Float64Array', float64Array)
58
+ yaml.add_constructor('tag:yaml.org,2002:js/Uint8Array', uint8Array)
59
+ yaml.add_constructor('tag:yaml.org,2002:js/Uint8ClampedArray', uint8ClampedArray)
60
+ yaml.add_constructor('tag:yaml.org,2002:js/Uint16Array', uint16Array)
61
+ yaml.add_constructor('tag:yaml.org,2002:js/Uint32Array', uint32Array)
62
+ yaml.add_constructor('tag:yaml.org,2002:js/Int8Array', int8Array)
63
+ yaml.add_constructor('tag:yaml.org,2002:js/Int16Array', int16Array)
64
+ yaml.add_constructor('tag:yaml.org,2002:js/Int32Array', int32Array)
65
+
66
+
67
+ class IO(object):
68
+ """
69
+ IO 模块,抽象 bytes/file <-> object 的 load/dump 操作,支持 gzip 压缩和 yaml、ubjson 序列化 读取时依据 magic number 自动识别压缩格式,写入时默认使用 gzip
70
+ """
71
+
72
+ @staticmethod
73
+ def serialize(obj, format, compress='gzip') -> bytes:
74
+ """
75
+ 根据format序列化模型
76
+ format 支持 json, ubjson, yaml
77
+ compress 支持 gzip
78
+ """
79
+ result = None
80
+ if format == 'json':
81
+ result = json.dumps(obj).encode(encoding="utf-8")
82
+ if format == 'ubjson':
83
+ result = ubjson.dumpb(obj)
84
+ if format == 'yaml':
85
+ result = yaml.dump(obj).encode(encoding="utf-8")
86
+ if result is None:
87
+ assert False, 'format not support'
88
+ if compress == 'gzip':
89
+ return gzip.compress(result)
90
+ return result
91
+
92
+ @staticmethod
93
+ def deserialize(byt, format):
94
+ """
95
+ 根据format反序列化模型
96
+ format 支持 json, ubjson, yaml
97
+ """
98
+ if format == 'json':
99
+ return json.loads(byt)
100
+ if format == 'ubjson':
101
+ return ubjson.loadb(byt)
102
+ if format == 'yaml':
103
+ return yaml.load(io.BytesIO(byt), yaml.FullLoader)
104
+ assert False, 'format not support'
105
+
106
+ @staticmethod
107
+ def load(file, format):
108
+ """
109
+ 根据format从文件中加载模型
110
+ format 支持 json, ubjson, yaml
111
+ """
112
+ ### 读取文件
113
+ f = open(file, 'r+', encoding='utf-8')
114
+ t = f.buffer.read(2)
115
+ f.close()
116
+ ### 判断文件格式是否是gzip或其他格式
117
+ if t == b'\x1f\x8b':
118
+ with gzip.open(file, 'rb') as input_file:
119
+ return IO.deserialize(input_file.read(), format) # type:ignore
120
+ else:
121
+ with open(file, 'rb') as f:
122
+ data = f.read()
123
+ f.close()
124
+ return IO.deserialize(data, format)
125
+
126
+ @staticmethod
127
+ def dump(obj, file, format, compress='gzip'):
128
+ """
129
+ 根据format将模型保存到文件中
130
+ format 支持 json, ubjson, yaml
131
+ compress 支持 gzip
132
+ """
133
+ ### 序列化
134
+ data = IO.serialize(obj, format, compress)
135
+ ### 写入文件
136
+ with open(file, 'wb') as f:
137
+ f.write(data)
138
+ f.close()
139
+
140
+
141
+ if __name__ == '__main__':
142
+ obj = [
143
+ 123, 1.25, 43121609.5543, 12345.44e40, 'a', 'here is a string', None,
144
+ True, False, [[1, 2], 3, [4, 5, 6], 7], {
145
+ 'a dict': 456
146
+ }
147
+ ]
148
+ IO.dump(obj, 'output.json.gz', 'json')
149
+ IO.dump(obj, 'output.ubjson.gz', 'ubjson')
150
+ IO.dump(obj, 'output.yaml.gz', 'yaml')
151
+ print(IO.load('output.json.gz', 'json'))
152
+ print(IO.load('output.ubjson.gz', 'ubjson'))
153
+ print(IO.load('output.yaml.gz', 'yaml'))
@@ -4,12 +4,11 @@ import json
4
4
  import requests
5
5
  import os
6
6
  from collections import OrderedDict
7
-
8
-
7
+ from ..version import __version__
9
8
  def request(method, uri, baseUrl=None, params={}, token=None, **kwargs):
10
9
  if baseUrl == None:
11
10
  baseUrl = os.environ.get('CLOUDPSS_API_URL', 'https://cloudpss.net/')
12
- url = requests.compat.urljoin(baseUrl, uri)
11
+ url = requests.compat.urljoin(baseUrl,uri)
13
12
  token = os.environ.get('CLOUDPSS_TOKEN', None)
14
13
  if token:
15
14
  headers = {
@@ -20,17 +19,21 @@ def request(method, uri, baseUrl=None, params={}, token=None, **kwargs):
20
19
  raise Exception('token undefined')
21
20
  r = requests.request(method, url, params=params, headers=headers, **kwargs)
22
21
 
23
- if (uri.startswith('/graphql')):
22
+ if (uri.startswith('graphql')):
24
23
  if 'X-Cloudpss-Version' not in r.headers:
25
24
  raise Exception(
26
25
  '当前SDK版本(ver 3.X.X)与服务器版本(3.0.0 以下)不兼容,请更换服务器地址或更换SDK版本。')
27
- if r.headers['X-Cloudpss-Version'] != '3':
28
- raise Exception('当前SDK版本(ver 3.X.X)与服务器版本(ver ' +
26
+ os.environ['X_CLOUDPSS_VERSION'] = r.headers['X-Cloudpss-Version']
27
+ if float(r.headers['X-Cloudpss-Version']) > 4:
28
+ raise Exception('当前SDK版本(ver '+__version__ +')与服务器版本(ver ' +
29
29
  r.headers['X-Cloudpss-Version'] +
30
- '.X.X)不兼容,请更换服务器地址或更换SDK版本。')
30
+ '.X.X)不兼容,请更换服务器地址或更换SDK版本(pip 使用 pip install -U cloudpss 命令更新, conda 使用 conda update cloudpss 命令更新)。')
31
31
 
32
- try:
32
+ if r.ok:
33
+ return r
34
+ if r.text =="":
33
35
  r.raise_for_status()
34
- except Exception as e:
35
- raise Exception(r.text)
36
- return r
36
+ if "statusCode" in r.text:
37
+ t = json.loads(r.text)
38
+ raise Exception( str(t['statusCode']) + " "+t['message'])
39
+
cloudpss/verify.py CHANGED
@@ -1,13 +1,6 @@
1
- import jwt
2
1
  import os
3
- import time
4
2
 
5
- public_key = '''-----BEGIN PUBLIC KEY-----
6
- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPN91AYRu5++yPvL1H1auWZFTh
7
- L+rH9Aa3rDvChZKtPfVetvBsqf0DF0uraGGnyOzaXHvIVYYNWQYgI6YO8e8U3pOP
8
- +qcUb+U22blkhXNo8x48uQkGrLMWO4Ppi5SMMiCsNXPSfpANpZ9E7301WSJdRQLj
9
- XU0E2qmggJ2AwjRGNwIDAQAB
10
- -----END PUBLIC KEY-----'''
3
+ from .utils import graphql_request
11
4
 
12
5
 
13
6
  def setToken(token):
@@ -18,13 +11,33 @@ def setToken(token):
18
11
 
19
12
  >>> cloudpss.setToken(token)
20
13
  """
21
- result = verifyToken(token)
22
14
  os.environ['CLOUDPSS_TOKEN'] = token
23
- os.environ['USER_NAME'] = result['username']
15
+
16
+
17
+ def userToken(token):
18
+ query = '''
19
+ query ($input: UserTokenInput!) {
20
+ userToken(input: $input){
21
+ user{
22
+ name
23
+ }
24
+ }
25
+ }
26
+ '''
27
+
28
+ result = graphql_request(query, {'input': {'token': token}})
29
+ if 'errors' in result:
30
+ raise Exception(result['errors'])
31
+ return result['data']['userToken']['user']
32
+
33
+
34
+ def userName(token=None):
35
+ if token is None:
36
+ token = os.environ.get('CLOUDPSS_TOKEN', None)
37
+ if token is None:
38
+ raise Exception('token is None')
39
+ return userToken(token)['name']
24
40
 
25
41
 
26
42
  def verifyToken(token):
27
- result = jwt.decode(token, public_key, algorithms='RS256')
28
- if result['exp'] - int(time.time()) < 0:
29
- raise Exception('token 已过期,请重新申请')
30
- return result
43
+ return userToken(token)
cloudpss/version.py ADDED
@@ -0,0 +1 @@
1
+ __version__ = '4.0.0-alpha.5'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloudpss
3
- Version: 3.2.0a2
3
+ Version: 4.0.0a5
4
4
  Summary: cloudpss sdk
5
5
  Home-page: https://www.cloudpss.net
6
6
  Author: cloudpss
@@ -51,7 +51,5 @@ pip install --upgrade cloudpss
51
51
  pip uninstall cloudpss
52
52
  ```
53
53
 
54
-
55
-
56
-
54
+
57
55
 
@@ -0,0 +1,54 @@
1
+ cloudpss/__init__.py,sha256=Ov8K45KxSsPalPErvTRUb2GvPdJ3myucFqx7s37_YZo,777
2
+ cloudpss/verify.py,sha256=_10NAmVv2KSv8xLazcjjlHpVARNEhCCD4fe3jjH7YyQ,993
3
+ cloudpss/version.py,sha256=hdN79or2sBBeimdkFJj93xZNne6u1J7AiiHqJoBLeY4,29
4
+ cloudpss/dslab/DSLabFinancialResult.py,sha256=7_ho5Xzm9ufcMXo1wCjxJe4VQxqod-6jpvVF3XjlXcw,3612
5
+ cloudpss/dslab/__init__.py,sha256=rm3bUFSet3KZYrkKo6pfMBNfjvR3U1rwnTnEA5sE87Q,44
6
+ cloudpss/dslab/dataManageModel.py,sha256=F710Kt4wamUB1hrUXjICixiwyE9BWysNy1J3uYgWxwE,10131
7
+ cloudpss/dslab/dslab.py,sha256=3Po00COxYxQ40Y_IJigXoodxwuC3IQo98CtlYsfhxaY,6332
8
+ cloudpss/dslab/financialAnalysisModel.py,sha256=o-s6rR74UIjj5V9oB9fjdyo3Q3ogtY3QPhxSXbiBHXk,5058
9
+ cloudpss/dslab/files/__init__.py,sha256=l2g0VadtTiMW39zwCwHPHUC01Kbklb_nFUPVeQ16FwM,58
10
+ cloudpss/dslab/files/curveData.py,sha256=InlQ_6ZfVkFdhK65PldvIbw_X7Pys2ci4jexZ0flL6c,4291324
11
+ cloudpss/dslab/files/files.py,sha256=AB-bpBx3uC12M0Ztdszlz6wtkUdMqrTeWIkzS4jJ2n0,663
12
+ cloudpss/function/__init__.py,sha256=TNzChB-gQF6oB62F423evpUlgcp6s03D4pKKs89Lz4Q,1629
13
+ cloudpss/function/function.py,sha256=llomkfnTmKMiFJYJ2mKnmAEoIjTNVCnjCUUyiJMOV1s,29
14
+ cloudpss/function/functionExecution.py,sha256=GcyhRlgYjRnJrreKOtERExbCp6XDedUlT0L7k-uqyZM,14640
15
+ cloudpss/function/job.py,sha256=LdzaTyjvBcMZIyLstSZnt79d2eREljx2HnNoilDp03A,13162
16
+ cloudpss/ieslab/DataManageModel.py,sha256=YMpwp04GmkaK1gCnzp5tNAoPwkVfa9AkJPviqNOat7s,19445
17
+ cloudpss/ieslab/EvaluationModel.py,sha256=SD7VB81wZnebGQWpx-eTQMQxe6ekFUFycQxz6RyYwOI,6721
18
+ cloudpss/ieslab/IESLabPlan.py,sha256=vWRExT0AE5VbR1DaQSINE65sbg0F6cXC7meXNT6Ap6Q,4940
19
+ cloudpss/ieslab/IESLabSimulation.py,sha256=sd27IZ2NIGqUQWWVsobUOOY_7b1QzVbUMeSmFWKianw,1746
20
+ cloudpss/ieslab/PlanModel.py,sha256=Dk5ZS_8IASqzMlLeN_gIDk76Gm_ybXjGY4pULBsWvEw,4790
21
+ cloudpss/ieslab/__init__.py,sha256=kiyUaGRgtwqs0EI2dBBqLVK5V65u1PcY7YTFJX1T0yw,186
22
+ cloudpss/model/__init__.py,sha256=SNq-bfwcQtDHtTNBYppfUEs8wkjfrQfGeywx7igmvOs,151
23
+ cloudpss/model/jobDefinitions.py,sha256=XqjaaWOLU7zlVHM7TQJbZ3rNBWfBY7eT-5aE6EAatcQ,3770
24
+ cloudpss/model/model.py,sha256=duuQl1D0WdRFvHGIE4ciiN5RUTZ70CWY8fVt2hAUxZ0,25705
25
+ cloudpss/model/revision.py,sha256=MHdw2f1Gu_uXfx65hV6neO2YfUZXa0CEZN-zQ5XaFeQ,3736
26
+ cloudpss/model/topology.py,sha256=eJVxvdVOjvLz6jd3Q4MgAMBKVvM8ZWby8gLkIta-K5Y,2234
27
+ cloudpss/model/implements/__init__.py,sha256=88L_wF9SSzxsbtqwStWIPH4LxaKq7TVcssHQ62YBnls,67
28
+ cloudpss/model/implements/component.py,sha256=uNSpkZKChdXLiO40Ev4P3oQ1di2Hu4YjcBOb0I8Bf0c,734
29
+ cloudpss/model/implements/diagram.py,sha256=N5RrrywmxOmc2KvP0nC-NiECT1tEhgJZPtiNCfvYPuc,1063
30
+ cloudpss/model/implements/implement.py,sha256=Uld96tjXVDbVUNV8xscyy_nZWLHr3iP2DqA6S3p-XJE,954
31
+ cloudpss/project/__init__.py,sha256=fpskY-cJGmMcTg1naVzNPtJaRG1xmSc2CFjDTin64Cw,51
32
+ cloudpss/project/project.py,sha256=sGvJEd9yEB5NARRa64gwF96hK69gQSmwX8lQANLhBos,17700
33
+ cloudpss/runner/DSLabResult.py,sha256=VIAq4dtFiT32sQ-EcLcWKii54EQL0ybfiExuJ87YP3I,3418
34
+ cloudpss/runner/IESLabEvaluationResult.py,sha256=uFNLiN5kzlzSGlLIq3ybuRwB-ufYytflVrXV5g7voOU,5841
35
+ cloudpss/runner/IESLabPlanResult.py,sha256=dCyTbMtITy9XDjE42knrpJrvaH7dvFgfQMZbx9hybRs,6862
36
+ cloudpss/runner/IESLabTypicalDayResult.py,sha256=3egAzmv32sr4wKaVgLxsM75ScSb08F4-iLEbuPkoi_c,8001
37
+ cloudpss/runner/MessageStreamReceiver.py,sha256=MBc1HLU_3SOBKvi8rlEiEqhUSiBsQRzMVhEmS4MCKj8,5883
38
+ cloudpss/runner/__init__.py,sha256=aZ00V2AzQNBbER0xi6pqFFyiLFM-6r1fxvzdxxUJA_4,241
39
+ cloudpss/runner/receiver.py,sha256=d8vOtBJ_Iqo3syJXgFFxwii1MXF7CyHRoXy6eT81Zq4,4096
40
+ cloudpss/runner/result.py,sha256=MkoTQly7FjKj9mde3bnv4vBDfGJ2U4eK-HhxxdwmemE,13125
41
+ cloudpss/runner/runner.py,sha256=NbBJfCVFk9n3eYsQSjTaK12zohwqKYak-lEEOo8vWDo,5316
42
+ cloudpss/runner/storage.py,sha256=zFET_zwPIOF2Cnh9sgFiS0HFxV1OmVsU34bGUQ6PpkA,4162
43
+ cloudpss/runner/transform.py,sha256=krOgTZiJSJAb5QSwerAqlbC4Ma0PKi__0WOZlAxw4O8,11613
44
+ cloudpss/utils/IO.py,sha256=0i0v-otQwcYJEDf7gGvfsJTAf0N89yimfKS--DNyP3s,4796
45
+ cloudpss/utils/__init__.py,sha256=NU5ZAeXH733nJKooH_1cdT9ntPEYRG4Kk3PA7P6bK_s,291
46
+ cloudpss/utils/dataEncoder.py,sha256=5PUPb844eOGgFnYrMM8bdjdKH_MZz0lk-67uo8TvwEo,885
47
+ cloudpss/utils/graphqlUtil.py,sha256=swl6XT1UmUQHdHjMWw3M0i8meEmVKNQvX0SHsbgg8TU,255
48
+ cloudpss/utils/httprequests.py,sha256=sIf2ZDYwHtjm9D_zBzdTDqWy8KReQajOV_BS8Wd6m7w,1642
49
+ cloudpss/utils/matlab.py,sha256=SLwVt790BjklJK2XNELt9R2n_1ej9Y8QsTIdFkKXLWE,795
50
+ cloudpss/utils/yamlLoader.py,sha256=KRlRkHFltOjqxa_sesdBLf1W5J7XTgvubszsSw-XR0U,2885
51
+ cloudpss-4.0.0a5.dist-info/METADATA,sha256=sK5DlKNAqGH1wDsQvDIbgoYwMCapI8gvR6yrmUqFsUA,2320
52
+ cloudpss-4.0.0a5.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
53
+ cloudpss-4.0.0a5.dist-info/top_level.txt,sha256=wS9qPU4-aWM9ouzMOx34Nlq-GkdQKpr9vBskwut1BD8,9
54
+ cloudpss-4.0.0a5.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.36.2)
2
+ Generator: bdist_wheel (0.37.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,33 +0,0 @@
1
- cloudpss/__init__.py,sha256=pUNGG8q2JetRpMA3G3suDJKyOACskEdi6s5cLOd82Ak,669
2
- cloudpss/verify.py,sha256=pdMfF1WdoDq5njfozvL0oasYTriEBRMqDq6rT2IPkwY,810
3
- cloudpss/function/__init__.py,sha256=TNzChB-gQF6oB62F423evpUlgcp6s03D4pKKs89Lz4Q,1629
4
- cloudpss/function/function.py,sha256=llomkfnTmKMiFJYJ2mKnmAEoIjTNVCnjCUUyiJMOV1s,29
5
- cloudpss/function/functionExecution.py,sha256=20A1Ra_whe-yPGbMlqJMfZas9IIxTTR_IC7CqZYfcaw,14737
6
- cloudpss/function/job.py,sha256=LdzaTyjvBcMZIyLstSZnt79d2eREljx2HnNoilDp03A,13162
7
- cloudpss/model/__init__.py,sha256=SNq-bfwcQtDHtTNBYppfUEs8wkjfrQfGeywx7igmvOs,151
8
- cloudpss/model/jobDefinitions.py,sha256=t9FP39fzb2BPOVGb094rNBdxTcsGRDtooZEwN7AMiE4,2755
9
- cloudpss/model/model.py,sha256=vn90sALCqx7TFzNdSfizuxm-5cvxvTculVGQftT_9-I,16144
10
- cloudpss/model/revision.py,sha256=SPEomJRXYHQxJ92SPcrz3aI7Om6IwXsNYzyPj255vEo,3682
11
- cloudpss/model/topology.py,sha256=eJVxvdVOjvLz6jd3Q4MgAMBKVvM8ZWby8gLkIta-K5Y,2234
12
- cloudpss/model/implements/__init__.py,sha256=88L_wF9SSzxsbtqwStWIPH4LxaKq7TVcssHQ62YBnls,67
13
- cloudpss/model/implements/component.py,sha256=uNSpkZKChdXLiO40Ev4P3oQ1di2Hu4YjcBOb0I8Bf0c,734
14
- cloudpss/model/implements/diagram.py,sha256=N5RrrywmxOmc2KvP0nC-NiECT1tEhgJZPtiNCfvYPuc,1063
15
- cloudpss/model/implements/implement.py,sha256=Uld96tjXVDbVUNV8xscyy_nZWLHr3iP2DqA6S3p-XJE,954
16
- cloudpss/project/__init__.py,sha256=fpskY-cJGmMcTg1naVzNPtJaRG1xmSc2CFjDTin64Cw,51
17
- cloudpss/project/project.py,sha256=ss5F5mENpSot1kzdpQ2VBJItEJQ1WDBfXXe3L2iwMI0,17721
18
- cloudpss/runner/__init__.py,sha256=aZ00V2AzQNBbER0xi6pqFFyiLFM-6r1fxvzdxxUJA_4,241
19
- cloudpss/runner/receiver.py,sha256=clqnnp-mGlWAI2A2Yu1ggbcTxzqKclfcgDIEAlIKKzA,4073
20
- cloudpss/runner/result.py,sha256=T4CNTL287o-iuJ3Df_shLzKQxDL7ZM3vSPgwIbmNtJA,11495
21
- cloudpss/runner/runner.py,sha256=aJnLbZgkqUwxNSA-e-KlZWdbey0U58t6uv4PjKQWIVk,3434
22
- cloudpss/runner/storage.py,sha256=zFET_zwPIOF2Cnh9sgFiS0HFxV1OmVsU34bGUQ6PpkA,4162
23
- cloudpss/runner/transform.py,sha256=krOgTZiJSJAb5QSwerAqlbC4Ma0PKi__0WOZlAxw4O8,11613
24
- cloudpss/utils/__init__.py,sha256=NU5ZAeXH733nJKooH_1cdT9ntPEYRG4Kk3PA7P6bK_s,291
25
- cloudpss/utils/dataEncoder.py,sha256=5PUPb844eOGgFnYrMM8bdjdKH_MZz0lk-67uo8TvwEo,885
26
- cloudpss/utils/graphqlUtil.py,sha256=swl6XT1UmUQHdHjMWw3M0i8meEmVKNQvX0SHsbgg8TU,255
27
- cloudpss/utils/httprequests.py,sha256=8ViokX28oTjnoh6sxvdXrR92oJ_79WlbeyfatiCxtjU,1321
28
- cloudpss/utils/matlab.py,sha256=SLwVt790BjklJK2XNELt9R2n_1ej9Y8QsTIdFkKXLWE,795
29
- cloudpss/utils/yamlLoader.py,sha256=KRlRkHFltOjqxa_sesdBLf1W5J7XTgvubszsSw-XR0U,2885
30
- cloudpss-3.2.0a2.dist-info/METADATA,sha256=JEFH3ayEX1Ox7xdn5462QQG2wuEHGsEqCnVMqyHdLOw,2312
31
- cloudpss-3.2.0a2.dist-info/WHEEL,sha256=OqRkF0eY5GHssMorFjlbTIq072vpHpF60fIQA6lS9xA,92
32
- cloudpss-3.2.0a2.dist-info/top_level.txt,sha256=wS9qPU4-aWM9ouzMOx34Nlq-GkdQKpr9vBskwut1BD8,9
33
- cloudpss-3.2.0a2.dist-info/RECORD,,