cloudpss 4.5.1__py3-none-any.whl → 4.5.1a2__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 +2 -1
- cloudpss/dslab/__init__.py +2 -0
- cloudpss/dslab/dataManageModel.py +275 -0
- cloudpss/dslab/dslab.py +213 -0
- cloudpss/dslab/files/__init__.py +2 -0
- cloudpss/dslab/files/curveData.py +140229 -0
- cloudpss/dslab/files/files.py +27 -0
- cloudpss/dslab/financialAnalysisModel.py +137 -0
- cloudpss/job/TemplateCompiler.py +273 -0
- cloudpss/job/TemplateManager.py +36 -0
- cloudpss/job/job.py +2 -2
- cloudpss/job/messageStreamReceiver.py +44 -11
- cloudpss/job/messageStreamSender.py +5 -5
- cloudpss/job/result/result.py +0 -1
- cloudpss/runner/DSLabResult.py +92 -0
- cloudpss/runner/result.py +0 -1
- cloudpss/runner/runner.py +15 -1
- cloudpss/utils/httprequests.py +1 -1
- cloudpss/version.py +1 -1
- {cloudpss-4.5.1.dist-info → cloudpss-4.5.1a2.dist-info}/METADATA +1 -1
- {cloudpss-4.5.1.dist-info → cloudpss-4.5.1a2.dist-info}/RECORD +23 -13
- {cloudpss-4.5.1.dist-info → cloudpss-4.5.1a2.dist-info}/WHEEL +0 -0
- {cloudpss-4.5.1.dist-info → cloudpss-4.5.1a2.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,92 @@
|
|
1
|
+
import json
|
2
|
+
from ..utils.httprequests import request
|
3
|
+
|
4
|
+
class DSLabResult(object):
|
5
|
+
_baseUri = "api/dslab/rest/"
|
6
|
+
_kindNameMap = {
|
7
|
+
"利润与利润分配": "getEconomyResult",
|
8
|
+
"财务计划现金": "getFinancialPlanCashFlowResult",
|
9
|
+
"资产负债": "getLiabilityAssetsResult",
|
10
|
+
"投资使用计划与资金筹措": "getInvestPlanDataResult",
|
11
|
+
"借款还本付息计划": "getLoanRepaymentPlanResult",
|
12
|
+
"流动资金估算": "getFlowCashEvaluteResult",
|
13
|
+
"资产折旧与摊销估算": "getFlowCashEvaluteResult",
|
14
|
+
"总成本费用估算表": "getSumCostResult",
|
15
|
+
"项目总投资现金流量": "getSumInvestFlowCashResult",
|
16
|
+
"项目资本金现金流量": "getProjectCashFlowResult",
|
17
|
+
"营业收入、税金、附加和增值税估算": "getIncomeTaxResult",
|
18
|
+
}
|
19
|
+
|
20
|
+
def __init__(self, simulationId, taskId=None, **keywords) -> None:
|
21
|
+
"""
|
22
|
+
初始化
|
23
|
+
"""
|
24
|
+
self.simulationId = simulationId
|
25
|
+
self.timeId = keywords.get("timeId", 0)
|
26
|
+
self.planId = keywords.get("planId", 0)
|
27
|
+
self.cmdType = keywords.get("cmdType", None)
|
28
|
+
|
29
|
+
def _fetchItemData(self, url, planID):
|
30
|
+
"""
|
31
|
+
获取planID对应的优化方案下resultType财务评估结果
|
32
|
+
|
33
|
+
:param planID int 类型,表示优化方案的ID,数值位于0~优化方案数量之间
|
34
|
+
:param resultType enum 类型,表示财务评价结果表格的类型
|
35
|
+
|
36
|
+
:return: dict 类型,为源数据的引用,代表方案对应的财务评价基础参数信息
|
37
|
+
"""
|
38
|
+
r = request(
|
39
|
+
"GET", url, params={"simu": self.simulationId, "planId": planID, "time": 0}
|
40
|
+
)
|
41
|
+
data = json.loads(r.text)
|
42
|
+
return data
|
43
|
+
|
44
|
+
def status(self):
|
45
|
+
"""
|
46
|
+
获取运行状态
|
47
|
+
|
48
|
+
:return: boolean 类型
|
49
|
+
"""
|
50
|
+
result = self.GetOverviewResult()
|
51
|
+
if result is None or type(result) is list:
|
52
|
+
return False
|
53
|
+
return True
|
54
|
+
|
55
|
+
def GetFinancialResult(self, resultType):
|
56
|
+
"""
|
57
|
+
获取planID对应的优化方案下resultType财务评估结果
|
58
|
+
:param planID int 类型,表示优化方案的ID,数值位于0~优化方案数量之间
|
59
|
+
:param resultType enum 类型,表示财务评价结果表格的类型
|
60
|
+
|
61
|
+
:return: dict 类型,为源数据的引用,代表方案对应的财务评价基础参数信息
|
62
|
+
|
63
|
+
"""
|
64
|
+
assert resultType in self._kindNameMap, "数据类型不存在"
|
65
|
+
kind = self._kindNameMap.get(resultType, resultType)
|
66
|
+
url = f"{self._baseUri}{kind}"
|
67
|
+
list = self._fetchItemData(url, self.planId)
|
68
|
+
dict_result = dict()
|
69
|
+
for val in list:
|
70
|
+
for k, v in val.items():
|
71
|
+
dict_result[k] = v
|
72
|
+
return dict_result["data"]
|
73
|
+
|
74
|
+
def GetOverviewResult(self):
|
75
|
+
"""
|
76
|
+
获取当前结果类对应的概览结果
|
77
|
+
|
78
|
+
:return: array类型,代表该方案对应的概览结果
|
79
|
+
"""
|
80
|
+
r = request(
|
81
|
+
"GET",
|
82
|
+
"api/dslab/rest/getOverviewResult",
|
83
|
+
params={
|
84
|
+
"simu": self.simulationId,
|
85
|
+
"planId": self.planId,
|
86
|
+
"time": self.timeId,
|
87
|
+
},
|
88
|
+
)
|
89
|
+
result = json.loads(r.text)
|
90
|
+
if len(result) > 0:
|
91
|
+
return result[0]["data"]
|
92
|
+
return None
|
cloudpss/runner/result.py
CHANGED
cloudpss/runner/runner.py
CHANGED
@@ -15,7 +15,8 @@ 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
|
+
from .DSLabResult import DSLabResult
|
19
20
|
import re
|
20
21
|
|
21
22
|
RECEIVER = {
|
@@ -35,6 +36,10 @@ IES_LAB_OPT_RESULT = {
|
|
35
36
|
'function/ieslab/evaluation': IESLabOptEvaluationResult,
|
36
37
|
}
|
37
38
|
|
39
|
+
DS_LAB_RESULT = {
|
40
|
+
'function/ieslab/evaluation': DSLabResult
|
41
|
+
}
|
42
|
+
|
38
43
|
RESULT_DB = {
|
39
44
|
'function/CloudPSS/emtp': EMTResult,
|
40
45
|
'function/CloudPSS/emtps': EMTResult,
|
@@ -240,7 +245,16 @@ class HttpRunner(Runner[T]):
|
|
240
245
|
if self.__taskId is None:
|
241
246
|
return False
|
242
247
|
return self.result.status() # type: ignore
|
248
|
+
|
249
|
+
class DSLabRunner(Runner[T]):
|
250
|
+
def __init__(self, job, simulationId, **kwargs):
|
251
|
+
self.simulationId = simulationId
|
252
|
+
self.job = job
|
253
|
+
result = DS_LAB_RESULT.get(job.get('rid', ''), DSLabResult)
|
254
|
+
self.result: T = result(self.simulationId, **kwargs)
|
243
255
|
|
256
|
+
def status(self):
|
257
|
+
return self.result.status()
|
244
258
|
|
245
259
|
class HttpOPTRunner(Runner[T]):
|
246
260
|
|
cloudpss/utils/httprequests.py
CHANGED
@@ -29,7 +29,7 @@ def request(method, uri, baseUrl=None, params={}, token=None, **kwargs):
|
|
29
29
|
del kwargs['xToken']
|
30
30
|
|
31
31
|
r = requests.request(method, url, params=params, headers=headers, **kwargs)
|
32
|
-
|
32
|
+
|
33
33
|
if (uri.startswith('graphql')):
|
34
34
|
if 'X-Cloudpss-Version' not in r.headers:
|
35
35
|
raise Exception(
|
cloudpss/version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = '4.5.1'
|
1
|
+
__version__ = '4.5.1-alpha.2'
|
@@ -1,6 +1,6 @@
|
|
1
|
-
cloudpss/__init__.py,sha256=
|
1
|
+
cloudpss/__init__.py,sha256=xnA-UjehYOzH6KV7vOXHwdbGEiw6g_OPKzrbZA9Fuc8,858
|
2
2
|
cloudpss/verify.py,sha256=KF4Gd59DGvCyIEkRD7rNnekWw22XxJpi3DW6keb6j4c,1498
|
3
|
-
cloudpss/version.py,sha256=
|
3
|
+
cloudpss/version.py,sha256=0OtZSPuLQXAaAxIqG2XzbOJ2-vy329E4WlxhrvhGIAY,30
|
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
|
@@ -13,6 +13,13 @@ cloudpss/asyncio/model/topology.py,sha256=jouPmteTxpTV6mFzUGy7CiSEnBrbtCu-1shimJ
|
|
13
13
|
cloudpss/asyncio/utils/AsyncIterable.py,sha256=AIWYrTnmjsIfOowE3asZlexdHNhpK2gm7aucfyyVoQw,781
|
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
|
+
cloudpss/dslab/__init__.py,sha256=UdLDA9OArvLndHtumYAMMHdr5h8S6DrZCYkXIi2Mb4Y,45
|
17
|
+
cloudpss/dslab/dataManageModel.py,sha256=7sTRpAGnuSNtFsUb-VEDp5XzOlAZvidypkniHX32wLY,11527
|
18
|
+
cloudpss/dslab/dslab.py,sha256=u5xwlsuQiVIEAAuHW6kQ5MFiRjR7Iaxoxd724lHW-gk,8696
|
19
|
+
cloudpss/dslab/financialAnalysisModel.py,sha256=t9cZ03yWvLN5ojVeLp-UGgFBIFVU5wbnn5E0UHZA0ws,5062
|
20
|
+
cloudpss/dslab/files/__init__.py,sha256=l2g0VadtTiMW39zwCwHPHUC01Kbklb_nFUPVeQ16FwM,58
|
21
|
+
cloudpss/dslab/files/curveData.py,sha256=GU_DTTKjVn_ln9Hx0q9CFgfmNtokZi7b4DYSzGeP5dk,4291778
|
22
|
+
cloudpss/dslab/files/files.py,sha256=vS0VhAh1lb8oFw51E2rAsb0WpmqM9F9IprxNCAPqH1s,934
|
16
23
|
cloudpss/function/__init__.py,sha256=TNzChB-gQF6oB62F423evpUlgcp6s03D4pKKs89Lz4Q,1629
|
17
24
|
cloudpss/function/function.py,sha256=llomkfnTmKMiFJYJ2mKnmAEoIjTNVCnjCUUyiJMOV1s,29
|
18
25
|
cloudpss/function/functionExecution.py,sha256=4SR2qJbXntOjjSOrUmbjvBqED1nJyhVpI6WZKUFs1lQ,15761
|
@@ -24,18 +31,20 @@ cloudpss/ieslab/IESLabPlan.py,sha256=rEf1W2pT_J3C8-TFFHVm8Llli9ySSXbBeRpd6Yz9Glk
|
|
24
31
|
cloudpss/ieslab/IESLabSimulation.py,sha256=-EJFkhklN9ao-nbfk7Lz6JCHboFCSDcn5R2jr3_Z7_A,4046
|
25
32
|
cloudpss/ieslab/PlanModel.py,sha256=WHvXWNFgi7fO_M-sL9empRgHR5riCj1jeThBRT-oqEc,14088
|
26
33
|
cloudpss/ieslab/__init__.py,sha256=gr1rXYw9vIAGOe60eg7LyMHP7QDXvNf4dJ5GTR_kj1Y,232
|
34
|
+
cloudpss/job/TemplateCompiler.py,sha256=MuJDTQ54wRo5bGSvBJBJjXJ7u463dwpRkaLwIwm_hLE,9936
|
35
|
+
cloudpss/job/TemplateManager.py,sha256=PYFWcnJMlvXsoqKh_GMMti72o0ajLWYssrOGUtknMwY,1099
|
27
36
|
cloudpss/job/__init__.py,sha256=3UIFZYjJTzuckM61o8kim1c3PWt2SSHTL72jrGu5IzI,51
|
28
|
-
cloudpss/job/job.py,sha256=
|
37
|
+
cloudpss/job/job.py,sha256=kI8Yptc19q8A2UocxfG-GF25hhoKPpZTXndIJjQJJAY,8253
|
29
38
|
cloudpss/job/jobReceiver.py,sha256=PNYxcN33LiXZVyc4tzhPlpWxKnyWO_ElKjJ9wsxsroI,925
|
30
|
-
cloudpss/job/messageStreamReceiver.py,sha256=
|
31
|
-
cloudpss/job/messageStreamSender.py,sha256=
|
39
|
+
cloudpss/job/messageStreamReceiver.py,sha256=JtS-p0ka8eVVyG4I00G_A4Vu_uI-l3TfBrX_Fhojxow,5269
|
40
|
+
cloudpss/job/messageStreamSender.py,sha256=QQO6XtoZNLiUJXeSZmim-XFDBrb9i-JAjMPHKXcscZA,2365
|
32
41
|
cloudpss/job/result/EMTResult.py,sha256=xC9ws7bH-2nhpF8lqzZLqcOL-IcYS-JeBboEHgX96wk,6941
|
33
42
|
cloudpss/job/result/IESLabSimulationResult.py,sha256=a47Ic1vvfHTK_vEokOZxJBnQReqYOWux_aePPic_Hrs,84
|
34
43
|
cloudpss/job/result/IESLabTypicalDayResult.py,sha256=0u8FrxDUpujJvCWRk4jRtHzw-WHmvPR38nKj6-iccw4,7827
|
35
44
|
cloudpss/job/result/IESResult.py,sha256=TLMTlDuvTUWnsJSUxXt8XTlXZGaVPmxZwia_JOcej88,3852
|
36
45
|
cloudpss/job/result/PowerFlowResult.py,sha256=KoImlmsEEZyMriuoE_MSHBQu4k9MSDUuZ8E2SRLndWE,2097
|
37
46
|
cloudpss/job/result/__init__.py,sha256=irh05EkRXewQz_khP5Da0h_GoNBE5Biyx_ycoXnI7Is,1502
|
38
|
-
cloudpss/job/result/result.py,sha256=
|
47
|
+
cloudpss/job/result/result.py,sha256=mWt4HyrI0y-l97Q8tcAiMyW9lm0timgxaRerLXPnefk,4280
|
39
48
|
cloudpss/model/__init__.py,sha256=SNq-bfwcQtDHtTNBYppfUEs8wkjfrQfGeywx7igmvOs,151
|
40
49
|
cloudpss/model/jobDefinitions.py,sha256=uuTwpqStlg3YDmfxbU2PVi_Tf18opa0kYLCMGaOP-qA,3749
|
41
50
|
cloudpss/model/model.py,sha256=gYMBf_jspoRSwb0QgARvJGXVtDlaQvQjp_B9QMYvXwE,27170
|
@@ -47,24 +56,25 @@ cloudpss/model/implements/diagram.py,sha256=25g40EhqcFsqNeTQYEG2mqxV_oG0B0kb3xT_
|
|
47
56
|
cloudpss/model/implements/implement.py,sha256=Uld96tjXVDbVUNV8xscyy_nZWLHr3iP2DqA6S3p-XJE,954
|
48
57
|
cloudpss/project/__init__.py,sha256=fpskY-cJGmMcTg1naVzNPtJaRG1xmSc2CFjDTin64Cw,51
|
49
58
|
cloudpss/project/project.py,sha256=uFhOnM8ngo1_ZYz2uArtORKZquYNdOIVLXU_q1MDFI4,17698
|
59
|
+
cloudpss/runner/DSLabResult.py,sha256=xJqKA3e1KSXQmLDe9_T6fG1exdE9j7EjfIfvBMmqiJ8,3422
|
50
60
|
cloudpss/runner/IESLabEvaluationResult.py,sha256=rsKbSJ9zsgyMYP-oIWsJlSXGxs7Y-44rj45Fn6NJXMA,5998
|
51
61
|
cloudpss/runner/IESLabPlanResult.py,sha256=pbUq2YCPBE01Sy9e9X5Wp8OZ4PJhUkUb-28b5CEzqxc,8874
|
52
62
|
cloudpss/runner/IESLabTypicalDayResult.py,sha256=-9D0TRsXEYJIgGKYFPZHjR7URyPypN7jfPc1lohFJ0c,8175
|
53
63
|
cloudpss/runner/MessageStreamReceiver.py,sha256=dT-rKslQbRt3bMTGXupa1YrocHl2zTWOCHlsXcbgfhs,2812
|
54
64
|
cloudpss/runner/__init__.py,sha256=FxiYYmssbZgRjieySzi43yPiWEF6eNos2UsoFQeD2H8,341
|
55
65
|
cloudpss/runner/receiver.py,sha256=QU0RsbCt0EK7sCLHzfj8_QQsuPNfqXxpZi5JKm6roxA,4162
|
56
|
-
cloudpss/runner/result.py,sha256=
|
57
|
-
cloudpss/runner/runner.py,sha256=
|
66
|
+
cloudpss/runner/result.py,sha256=Q8RcfUnvilxPo6yvtjH6dXePaCqrBjQCljur3rem2pU,13290
|
67
|
+
cloudpss/runner/runner.py,sha256=DPMiG_M-baWUAX7o9vL7p_Zr-r9nnTky5OYjig_yenU,9613
|
58
68
|
cloudpss/runner/storage.py,sha256=zFET_zwPIOF2Cnh9sgFiS0HFxV1OmVsU34bGUQ6PpkA,4162
|
59
69
|
cloudpss/runner/transform.py,sha256=krOgTZiJSJAb5QSwerAqlbC4Ma0PKi__0WOZlAxw4O8,11613
|
60
70
|
cloudpss/utils/IO.py,sha256=sm6p53AFgE1b56Bh0qt_E2TFP5tLr0WQDzIVRlsNgFA,5321
|
61
71
|
cloudpss/utils/__init__.py,sha256=jWVHSOqJQWU0fpg2UbWSEQoLCb2Uys-vH5Uqkb0ihNA,326
|
62
72
|
cloudpss/utils/dataEncoder.py,sha256=5PUPb844eOGgFnYrMM8bdjdKH_MZz0lk-67uo8TvwEo,885
|
63
73
|
cloudpss/utils/graphqlUtil.py,sha256=zGEhRZvy5JMipFKFxjDmbc-HQP3aPZ5noDwi-RTXWSk,280
|
64
|
-
cloudpss/utils/httprequests.py,sha256=
|
74
|
+
cloudpss/utils/httprequests.py,sha256=KYE8iIqaBEN6gTdxFgUyvdKf3kbSizxxgmNN8_1BQjQ,1850
|
65
75
|
cloudpss/utils/matlab.py,sha256=SLwVt790BjklJK2XNELt9R2n_1ej9Y8QsTIdFkKXLWE,795
|
66
76
|
cloudpss/utils/yamlLoader.py,sha256=bv_vPDK_e0n_vZ5FwpDJ_NJWqMAwfU3AbhkvQIxPCy4,2677
|
67
|
-
cloudpss-4.5.
|
68
|
-
cloudpss-4.5.
|
69
|
-
cloudpss-4.5.
|
70
|
-
cloudpss-4.5.
|
77
|
+
cloudpss-4.5.1a2.dist-info/METADATA,sha256=RFRgpfFLYphKIXyV03BWk06DMy109DiiHj1KEPyIaBI,2403
|
78
|
+
cloudpss-4.5.1a2.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
|
79
|
+
cloudpss-4.5.1a2.dist-info/top_level.txt,sha256=wS9qPU4-aWM9ouzMOx34Nlq-GkdQKpr9vBskwut1BD8,9
|
80
|
+
cloudpss-4.5.1a2.dist-info/RECORD,,
|
File without changes
|
File without changes
|