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
|