cloudpss 3.1.2__py3-none-any.whl → 3.1.3b1__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/__init__.py +6 -2
- cloudpss/dslab/DSLabFinancialResult.py +96 -0
- cloudpss/dslab/__init__.py +2 -0
- cloudpss/dslab/dataManageModel.py +259 -0
- cloudpss/dslab/dslab.py +66 -0
- cloudpss/dslab/financialAnalysisModel.py +113 -0
- cloudpss/ieslab/DataManageModel.py +5 -5
- cloudpss/ieslab/EvaluationModel.py +11 -6
- cloudpss/ieslab/IESLabPlan.py +4 -3
- cloudpss/ieslab/PlanModel.py +4 -3
- cloudpss/ieslab/__init__.py +2 -1
- cloudpss/model/jobDefinitions.py +34 -0
- cloudpss/model/model.py +75 -0
- cloudpss/runner/IESLabEvaluationResult.py +27 -22
- cloudpss/runner/IESLabPlanResult.py +24 -1
- cloudpss/runner/MessageStreamReceiver.py +193 -0
- cloudpss/runner/receiver.py +1 -1
- cloudpss/runner/result.py +1 -1
- cloudpss/runner/runner.py +3 -3
- cloudpss/utils/IO.py +153 -0
- {cloudpss-3.1.2.dist-info → cloudpss-3.1.3b1.dist-info}/METADATA +1 -1
- {cloudpss-3.1.2.dist-info → cloudpss-3.1.3b1.dist-info}/RECORD +24 -17
- {cloudpss-3.1.2.dist-info → cloudpss-3.1.3b1.dist-info}/WHEEL +0 -0
- {cloudpss-3.1.2.dist-info → cloudpss-3.1.3b1.dist-info}/top_level.txt +0 -0
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'))
|
|
@@ -1,18 +1,23 @@
|
|
|
1
|
-
cloudpss/__init__.py,sha256=
|
|
1
|
+
cloudpss/__init__.py,sha256=IyU-C8fnzgiIyDNV1AzankkTPJr2VzaWWRdaHjeKijA,803
|
|
2
2
|
cloudpss/verify.py,sha256=_10NAmVv2KSv8xLazcjjlHpVARNEhCCD4fe3jjH7YyQ,993
|
|
3
|
+
cloudpss/dslab/DSLabFinancialResult.py,sha256=7_ho5Xzm9ufcMXo1wCjxJe4VQxqod-6jpvVF3XjlXcw,3612
|
|
4
|
+
cloudpss/dslab/__init__.py,sha256=rm3bUFSet3KZYrkKo6pfMBNfjvR3U1rwnTnEA5sE87Q,44
|
|
5
|
+
cloudpss/dslab/dataManageModel.py,sha256=qPCccBMy7bpLl0-jH6ynh5JMImiOik4aym7EaUFzrEo,10241
|
|
6
|
+
cloudpss/dslab/dslab.py,sha256=JS1P1HuWfBDwP7KCnZr1FDyBBP7WIcuDagvayrpmkAs,2156
|
|
7
|
+
cloudpss/dslab/financialAnalysisModel.py,sha256=4eZsE0lSnwfE0dL_pYZwms9gtiYf08S8XR_JzglBlHQ,4123
|
|
3
8
|
cloudpss/function/__init__.py,sha256=TNzChB-gQF6oB62F423evpUlgcp6s03D4pKKs89Lz4Q,1629
|
|
4
9
|
cloudpss/function/function.py,sha256=llomkfnTmKMiFJYJ2mKnmAEoIjTNVCnjCUUyiJMOV1s,29
|
|
5
10
|
cloudpss/function/functionExecution.py,sha256=GcyhRlgYjRnJrreKOtERExbCp6XDedUlT0L7k-uqyZM,14640
|
|
6
11
|
cloudpss/function/job.py,sha256=LdzaTyjvBcMZIyLstSZnt79d2eREljx2HnNoilDp03A,13162
|
|
7
|
-
cloudpss/ieslab/DataManageModel.py,sha256=
|
|
8
|
-
cloudpss/ieslab/EvaluationModel.py,sha256=
|
|
9
|
-
cloudpss/ieslab/IESLabPlan.py,sha256=
|
|
12
|
+
cloudpss/ieslab/DataManageModel.py,sha256=YMpwp04GmkaK1gCnzp5tNAoPwkVfa9AkJPviqNOat7s,19445
|
|
13
|
+
cloudpss/ieslab/EvaluationModel.py,sha256=s5XNH2mvqrxR2JHW_7mQxlqdAADKdrkfcz6d7wkwpao,6685
|
|
14
|
+
cloudpss/ieslab/IESLabPlan.py,sha256=HODJ5YRamKTMbtQ0-cMsMPsS1bcc9FF6NooXhd2Q55I,4544
|
|
10
15
|
cloudpss/ieslab/IESLabSimulation.py,sha256=x1enNSymixh0OIwBB4roCJAClXFRw_uj1YR_s-692wk,1700
|
|
11
|
-
cloudpss/ieslab/PlanModel.py,sha256=
|
|
12
|
-
cloudpss/ieslab/__init__.py,sha256=
|
|
16
|
+
cloudpss/ieslab/PlanModel.py,sha256=7Kq2fa2zDV9bE6mEIc3OoS5hHS8HWhR11qpvVjP30Mw,3019
|
|
17
|
+
cloudpss/ieslab/__init__.py,sha256=kiyUaGRgtwqs0EI2dBBqLVK5V65u1PcY7YTFJX1T0yw,186
|
|
13
18
|
cloudpss/model/__init__.py,sha256=SNq-bfwcQtDHtTNBYppfUEs8wkjfrQfGeywx7igmvOs,151
|
|
14
|
-
cloudpss/model/jobDefinitions.py,sha256=
|
|
15
|
-
cloudpss/model/model.py,sha256=
|
|
19
|
+
cloudpss/model/jobDefinitions.py,sha256=XqjaaWOLU7zlVHM7TQJbZ3rNBWfBY7eT-5aE6EAatcQ,3770
|
|
20
|
+
cloudpss/model/model.py,sha256=GQT11Lr7WuYml__LsLoVjlvToFW0Y_Z03LNZvsamrZ4,25877
|
|
16
21
|
cloudpss/model/revision.py,sha256=MHdw2f1Gu_uXfx65hV6neO2YfUZXa0CEZN-zQ5XaFeQ,3736
|
|
17
22
|
cloudpss/model/topology.py,sha256=eJVxvdVOjvLz6jd3Q4MgAMBKVvM8ZWby8gLkIta-K5Y,2234
|
|
18
23
|
cloudpss/model/implements/__init__.py,sha256=88L_wF9SSzxsbtqwStWIPH4LxaKq7TVcssHQ62YBnls,67
|
|
@@ -21,22 +26,24 @@ cloudpss/model/implements/diagram.py,sha256=N5RrrywmxOmc2KvP0nC-NiECT1tEhgJZPtiN
|
|
|
21
26
|
cloudpss/model/implements/implement.py,sha256=Uld96tjXVDbVUNV8xscyy_nZWLHr3iP2DqA6S3p-XJE,954
|
|
22
27
|
cloudpss/project/__init__.py,sha256=fpskY-cJGmMcTg1naVzNPtJaRG1xmSc2CFjDTin64Cw,51
|
|
23
28
|
cloudpss/project/project.py,sha256=sGvJEd9yEB5NARRa64gwF96hK69gQSmwX8lQANLhBos,17700
|
|
24
|
-
cloudpss/runner/IESLabEvaluationResult.py,sha256=
|
|
25
|
-
cloudpss/runner/IESLabPlanResult.py,sha256=
|
|
29
|
+
cloudpss/runner/IESLabEvaluationResult.py,sha256=uFNLiN5kzlzSGlLIq3ybuRwB-ufYytflVrXV5g7voOU,5841
|
|
30
|
+
cloudpss/runner/IESLabPlanResult.py,sha256=jSvRxOsDK4Tb3u3uTXzzQlp-1TwIg7tC7CptfAy5ha0,6260
|
|
26
31
|
cloudpss/runner/IESLabTypicalDayResult.py,sha256=jQSiXvX1ZeT9swiD_jAMAtf56XTBdu4r87XbQizrRns,7499
|
|
32
|
+
cloudpss/runner/MessageStreamReceiver.py,sha256=MBc1HLU_3SOBKvi8rlEiEqhUSiBsQRzMVhEmS4MCKj8,5883
|
|
27
33
|
cloudpss/runner/__init__.py,sha256=aZ00V2AzQNBbER0xi6pqFFyiLFM-6r1fxvzdxxUJA_4,241
|
|
28
|
-
cloudpss/runner/receiver.py,sha256=
|
|
29
|
-
cloudpss/runner/result.py,sha256=
|
|
30
|
-
cloudpss/runner/runner.py,sha256=
|
|
34
|
+
cloudpss/runner/receiver.py,sha256=d8vOtBJ_Iqo3syJXgFFxwii1MXF7CyHRoXy6eT81Zq4,4096
|
|
35
|
+
cloudpss/runner/result.py,sha256=MkoTQly7FjKj9mde3bnv4vBDfGJ2U4eK-HhxxdwmemE,13125
|
|
36
|
+
cloudpss/runner/runner.py,sha256=Ulm11z4FkPCHnOpi-s3zV4wco8k037wQQ6VoNFCrbxo,5295
|
|
31
37
|
cloudpss/runner/storage.py,sha256=zFET_zwPIOF2Cnh9sgFiS0HFxV1OmVsU34bGUQ6PpkA,4162
|
|
32
38
|
cloudpss/runner/transform.py,sha256=krOgTZiJSJAb5QSwerAqlbC4Ma0PKi__0WOZlAxw4O8,11613
|
|
39
|
+
cloudpss/utils/IO.py,sha256=0i0v-otQwcYJEDf7gGvfsJTAf0N89yimfKS--DNyP3s,4796
|
|
33
40
|
cloudpss/utils/__init__.py,sha256=NU5ZAeXH733nJKooH_1cdT9ntPEYRG4Kk3PA7P6bK_s,291
|
|
34
41
|
cloudpss/utils/dataEncoder.py,sha256=5PUPb844eOGgFnYrMM8bdjdKH_MZz0lk-67uo8TvwEo,885
|
|
35
42
|
cloudpss/utils/graphqlUtil.py,sha256=swl6XT1UmUQHdHjMWw3M0i8meEmVKNQvX0SHsbgg8TU,255
|
|
36
43
|
cloudpss/utils/httprequests.py,sha256=Is03ZwX7FnKCcjVZqTSC2tL2tnA4EWI9k5YAiz71WAA,1490
|
|
37
44
|
cloudpss/utils/matlab.py,sha256=SLwVt790BjklJK2XNELt9R2n_1ej9Y8QsTIdFkKXLWE,795
|
|
38
45
|
cloudpss/utils/yamlLoader.py,sha256=KRlRkHFltOjqxa_sesdBLf1W5J7XTgvubszsSw-XR0U,2885
|
|
39
|
-
cloudpss-3.1.
|
|
40
|
-
cloudpss-3.1.
|
|
41
|
-
cloudpss-3.1.
|
|
42
|
-
cloudpss-3.1.
|
|
46
|
+
cloudpss-3.1.3b1.dist-info/METADATA,sha256=WEHybrQGsKJSmtqvwyrMrHQYyWLLOZeSKD-dZ2ceMiE,2320
|
|
47
|
+
cloudpss-3.1.3b1.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
|
|
48
|
+
cloudpss-3.1.3b1.dist-info/top_level.txt,sha256=wS9qPU4-aWM9ouzMOx34Nlq-GkdQKpr9vBskwut1BD8,9
|
|
49
|
+
cloudpss-3.1.3b1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|