cloudpss 4.1.1b8__py3-none-any.whl → 4.5.13__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 -3
- cloudpss/asyncio/__init__.py +8 -0
- cloudpss/asyncio/job/__init__.py +5 -0
- cloudpss/asyncio/job/job.py +116 -0
- cloudpss/asyncio/job/messageStreamReceiver.py +121 -0
- cloudpss/asyncio/job/messageStreamSender.py +45 -0
- cloudpss/asyncio/model/__init__.py +5 -0
- cloudpss/asyncio/model/model.py +257 -0
- cloudpss/asyncio/model/revision.py +41 -0
- cloudpss/asyncio/model/topology.py +34 -0
- cloudpss/asyncio/utils/__init__.py +6 -0
- cloudpss/{utils → asyncio/utils}/httpAsyncRequest.py +2 -2
- cloudpss/dslab/dataManageModel.py +19 -0
- cloudpss/dslab/dslab.py +35 -9
- cloudpss/function/functionExecution.py +74 -5
- cloudpss/ieslab/DataManageModel.py +144 -9
- cloudpss/ieslab/EvaluationModel.py +80 -9
- cloudpss/ieslab/IESLabOpt.py +235 -0
- cloudpss/ieslab/IESLabPlan.py +82 -4
- cloudpss/ieslab/IESLabSimulation.py +59 -32
- cloudpss/ieslab/PlanModel.py +222 -18
- cloudpss/ieslab/__init__.py +2 -1
- cloudpss/job/TemplateCompiler.py +273 -0
- cloudpss/job/TemplateManager.py +37 -0
- cloudpss/job/job.py +136 -141
- cloudpss/job/jobReceiver.py +8 -2
- cloudpss/job/messageStreamReceiver.py +42 -99
- cloudpss/job/messageStreamSender.py +5 -42
- cloudpss/job/{view/EMTView.py → result/EMTResult.py} +57 -14
- cloudpss/job/result/IESLabSimulationResult.py +5 -0
- cloudpss/job/result/IESLabTypicalDayResult.py +134 -0
- cloudpss/job/{view/IESView.py → result/IESResult.py} +7 -5
- cloudpss/job/{view/PowerFlowView.py → result/PowerFlowResult.py} +2 -2
- cloudpss/job/result/__init__.py +40 -0
- cloudpss/job/{view/view.py → result/result.py} +38 -8
- cloudpss/model/implements/diagram.py +140 -0
- cloudpss/model/jobDefinitions.py +6 -6
- cloudpss/model/model.py +245 -226
- cloudpss/model/revision.py +30 -35
- cloudpss/model/topology.py +26 -15
- cloudpss/runner/IESLabEvaluationResult.py +14 -6
- cloudpss/runner/IESLabPlanResult.py +91 -35
- cloudpss/runner/IESLabTypicalDayResult.py +62 -50
- cloudpss/runner/MessageStreamReceiver.py +5 -100
- cloudpss/runner/result.py +6 -1
- cloudpss/runner/runner.py +97 -53
- cloudpss/utils/IO.py +3 -1
- cloudpss/utils/graphqlUtil.py +3 -2
- cloudpss/utils/httprequests.py +19 -10
- cloudpss/version.py +1 -1
- {cloudpss-4.1.1b8.dist-info → cloudpss-4.5.13.dist-info}/METADATA +2 -2
- cloudpss-4.5.13.dist-info/RECORD +80 -0
- cloudpss/job/jobMachine.py +0 -11
- cloudpss/job/jobPolicy.py +0 -129
- cloudpss/job/jobQueue.py +0 -14
- cloudpss/job/jobTres.py +0 -6
- cloudpss/job/view/IESLabSimulationView.py +0 -5
- cloudpss/job/view/IESLabTypicalDayView.py +0 -27
- cloudpss/job/view/__init__.py +0 -42
- cloudpss-4.1.1b8.dist-info/RECORD +0 -71
- /cloudpss/{utils → asyncio/utils}/AsyncIterable.py +0 -0
- {cloudpss-4.1.1b8.dist-info → cloudpss-4.5.13.dist-info}/WHEEL +0 -0
- {cloudpss-4.1.1b8.dist-info → cloudpss-4.5.13.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,235 @@
|
|
1
|
+
import json
|
2
|
+
|
3
|
+
from cloudpss.ieslab.DataManageModel import IESOptDataManageModel
|
4
|
+
from cloudpss.ieslab.EvaluationModel import IESLabOptEvaluationModel
|
5
|
+
from cloudpss.ieslab.PlanModel import IESLabOptModel
|
6
|
+
from cloudpss.runner.IESLabTypicalDayResult import IESLabTypicalDayResult
|
7
|
+
from ..utils import request
|
8
|
+
from ..model.model import Model
|
9
|
+
from cloudpss.runner.runner import Runner
|
10
|
+
from cloudpss.runner.IESLabPlanResult import IESLabOptResult
|
11
|
+
from cloudpss.runner.IESLabEvaluationResult import IESLabOptEvaluationResult
|
12
|
+
|
13
|
+
class IESLabOpt(object):
|
14
|
+
def __init__(self, project={}):
|
15
|
+
'''
|
16
|
+
初始化
|
17
|
+
'''
|
18
|
+
self.id = project.get('id', None)
|
19
|
+
self.name = project.get('name', None)
|
20
|
+
self.__modelRid = project.get('model', None)
|
21
|
+
self.project_group = project.get('project_group', None)
|
22
|
+
self.start_date = project.get('start_date', None)
|
23
|
+
self.end_date = project.get('end_date', None)
|
24
|
+
if self.__modelRid is not None:
|
25
|
+
self.model = Model.fetch(self.__modelRid)
|
26
|
+
self.dataManageModel = IESOptDataManageModel(self.id)
|
27
|
+
self.planModel = IESLabOptModel(self.id, self.model.rid)
|
28
|
+
self.evaluationModel = IESLabOptEvaluationModel(self.id)
|
29
|
+
self.currentPlanResult = IESLabOptResult(self.id)
|
30
|
+
self.currentEvaluationResult = IESLabOptEvaluationResult(self.id)
|
31
|
+
|
32
|
+
@staticmethod
|
33
|
+
def fetch(simulationId):
|
34
|
+
'''
|
35
|
+
获取算例信息
|
36
|
+
|
37
|
+
:params: simulationId string类型,代表数据项的算例id
|
38
|
+
|
39
|
+
:return: IESLabOpt
|
40
|
+
'''
|
41
|
+
try:
|
42
|
+
r = request('GET',
|
43
|
+
'api/ieslab-opt/rest/simu/{0}/'.format(simulationId))
|
44
|
+
project = json.loads(r.text)
|
45
|
+
return IESLabOpt(project)
|
46
|
+
except:
|
47
|
+
raise Exception('未查询到当前算例')
|
48
|
+
|
49
|
+
def __run(self, job=None, name=None):
|
50
|
+
'''
|
51
|
+
调用仿真
|
52
|
+
|
53
|
+
:params job: 调用仿真时使用的计算方案,不指定将使用算例保存时选中的计算方案
|
54
|
+
:params name: 任务名称,为空时使用项目的参数方案名称和计算方案名称
|
55
|
+
|
56
|
+
:return: 返回一个运行实例
|
57
|
+
'''
|
58
|
+
if job is None:
|
59
|
+
currentJob = self.model.context['currentJob']
|
60
|
+
job = self.model.jobs[currentJob]
|
61
|
+
job['args']['simulationId'] = self.id
|
62
|
+
return self.model.run(job, name=name)
|
63
|
+
|
64
|
+
def iesLabTypicalDayRun(self, job=None, name=None, **kwargs)->Runner[IESLabTypicalDayResult]:
|
65
|
+
'''
|
66
|
+
运行典型日计算
|
67
|
+
|
68
|
+
:params job: 调用仿真时使用的计算方案,不指定将使用算例保存时选中的计算方案
|
69
|
+
:params name: 任务名称,为空时使用项目的参数方案名称和计算方案名称
|
70
|
+
|
71
|
+
:return: Runner[IESLabTypicalDayResult]
|
72
|
+
'''
|
73
|
+
if job is None:
|
74
|
+
currentJob = self.model.context['currentJob']
|
75
|
+
job = self.model.jobs[currentJob]
|
76
|
+
if job['rid'] != 'function/CloudPSS/ieslab-gmm-opt':
|
77
|
+
for j in self.model.jobs:
|
78
|
+
if j['rid'] == 'job-definition/ies/ies-gmm-opt' or j['rid'] == 'job-definition/cloudpss/ieslab-gmm-opt':
|
79
|
+
j['rid'] = 'function/CloudPSS/ieslab-gmm-opt'
|
80
|
+
job = j
|
81
|
+
if job is None:
|
82
|
+
raise Exception("找不到默认的综合能源系统规划典型日生成算法的计算方案")
|
83
|
+
if job['rid'] != 'function/CloudPSS/ieslab-gmm-opt':
|
84
|
+
raise Exception("不是综合能源系统规划典型日生成算法的计算方案")
|
85
|
+
return self.__run(job=job, name=name)
|
86
|
+
|
87
|
+
def iesLabEvaluationRun(self, planId, type=None):
|
88
|
+
'''
|
89
|
+
运行方案评估
|
90
|
+
|
91
|
+
:param planID int类型,表示优化方案的ID,数值位于0~优化方案数量之间
|
92
|
+
:param type string类型,表示评估类型,可选值为:能效评价、环保评价
|
93
|
+
|
94
|
+
:return: 方案评估运行实例
|
95
|
+
|
96
|
+
'''
|
97
|
+
return self.evaluationModel.run(planId, type)
|
98
|
+
|
99
|
+
def iesLabEnergyEvaluationRun(self, planId):
|
100
|
+
'''
|
101
|
+
运行能效评价
|
102
|
+
|
103
|
+
:param planID int类型,表示优化方案的ID,数值位于0~优化方案数量之间
|
104
|
+
|
105
|
+
:return: 能效评价运行实例
|
106
|
+
|
107
|
+
'''
|
108
|
+
return self.evaluationModel.EnergyEvaluationRun(planId)
|
109
|
+
|
110
|
+
def iesLabEnvironmentalEvaluationRun(self, planId):
|
111
|
+
'''
|
112
|
+
运行环保评价
|
113
|
+
|
114
|
+
:param planID int类型,表示优化方案的ID,数值位于0~优化方案数量之间
|
115
|
+
|
116
|
+
:return: 环保评价运行实例
|
117
|
+
'''
|
118
|
+
return self.evaluationModel.EnvironmentalEvaluationRun(planId)
|
119
|
+
|
120
|
+
def iesLabOptRun(self):
|
121
|
+
'''
|
122
|
+
生成方案优选算例
|
123
|
+
|
124
|
+
:return: 方案优选运行实例
|
125
|
+
'''
|
126
|
+
return self.planModel.run()
|
127
|
+
|
128
|
+
def iesLabOptKill(self):
|
129
|
+
'''
|
130
|
+
停止并删除方案优选算例
|
131
|
+
|
132
|
+
:return: Boolean
|
133
|
+
'''
|
134
|
+
return self.planModel.kill()
|
135
|
+
|
136
|
+
def createProjectGroup(self, name):
|
137
|
+
'''
|
138
|
+
创建项目组
|
139
|
+
|
140
|
+
:params name: 项目组名称
|
141
|
+
|
142
|
+
:return: 返回一个创建的项目组
|
143
|
+
'''
|
144
|
+
|
145
|
+
@staticmethod
|
146
|
+
def createProjectGroup(group_name, desc=None, createById=None):
|
147
|
+
'''
|
148
|
+
创建项目组
|
149
|
+
|
150
|
+
:params group_name: String 项目组名称
|
151
|
+
:params desc: String 项目组描述 可选参数
|
152
|
+
:params createById Int 父项目组id 可选参数,如果是从已有项目组导入的项目组,必填此项
|
153
|
+
|
154
|
+
:return: Int 返回创建的项目组id
|
155
|
+
'''
|
156
|
+
try:
|
157
|
+
if createById is None:
|
158
|
+
isImport = 0
|
159
|
+
else:
|
160
|
+
isImport = 1
|
161
|
+
payload = {
|
162
|
+
'group_name': group_name,
|
163
|
+
'desc': desc,
|
164
|
+
'isImport': isImport,
|
165
|
+
'createById': createById,
|
166
|
+
}
|
167
|
+
r = request(
|
168
|
+
'POST', 'api/ieslab-opt/rest/projectgroup/', data=json.dumps(payload))
|
169
|
+
project = json.loads(r.text)
|
170
|
+
return project.get('id', None)
|
171
|
+
except Exception as e:
|
172
|
+
raise Exception('创建项目组失败')
|
173
|
+
|
174
|
+
@staticmethod
|
175
|
+
def createProject(name, project_group, start_date, end_date, construction_cycle, desc=None, createById=None):
|
176
|
+
'''
|
177
|
+
创建项目
|
178
|
+
|
179
|
+
:params name: String 项目名称
|
180
|
+
:params project_group: Int 父项目组id
|
181
|
+
:param start_date: Int 项目开始年限,范围在[1500,3000]之间
|
182
|
+
:param end_date: Int 项目结束年限,范围在项目开始时间之后且不超过五十年
|
183
|
+
:param construction_cycle: Int 项目建设周期(年), 必须小于等于 项目结束年限 - 项目开始年限
|
184
|
+
:params desc: String 项目描述, 可选参数
|
185
|
+
:params createById Int 父项目id, 可选参数, 如果是从已有项目导入的项目,必填此项
|
186
|
+
|
187
|
+
:return: Int 返回创建的项目id
|
188
|
+
'''
|
189
|
+
try:
|
190
|
+
if start_date < 1500 or start_date > 3000:
|
191
|
+
raise Exception('项目开始年限错误,范围在[1500,3000]之间')
|
192
|
+
if end_date < start_date or end_date > start_date + 50:
|
193
|
+
raise Exception('项目结束年限错误,范围在项目开始时间之后且不超过五十年')
|
194
|
+
if construction_cycle > end_date - start_date:
|
195
|
+
raise Exception('项目建设周期错误,必须小于等于 项目结束年限 - 项目开始年限')
|
196
|
+
if createById is None:
|
197
|
+
payload = {
|
198
|
+
'name': name,
|
199
|
+
'project_group': project_group,
|
200
|
+
'start_date': start_date,
|
201
|
+
'end_date': end_date,
|
202
|
+
'construction_cycle': construction_cycle,
|
203
|
+
'desc': desc
|
204
|
+
}
|
205
|
+
else:
|
206
|
+
payload = {
|
207
|
+
'name': name,
|
208
|
+
'project_group': project_group,
|
209
|
+
'start_date': start_date,
|
210
|
+
'end_date': end_date,
|
211
|
+
'construction_cycle': construction_cycle,
|
212
|
+
'desc': desc,
|
213
|
+
'createById': createById
|
214
|
+
}
|
215
|
+
r = request(
|
216
|
+
'POST', 'api/ieslab-opt/rest/simu/', data=json.dumps(payload))
|
217
|
+
project = json.loads(r.text)
|
218
|
+
return project.get('id', None)
|
219
|
+
except Exception as e:
|
220
|
+
raise Exception('创建项目失败')
|
221
|
+
|
222
|
+
|
223
|
+
@staticmethod
|
224
|
+
def getProjectList():
|
225
|
+
'''
|
226
|
+
获取项目组列表
|
227
|
+
|
228
|
+
:return: 返回项目组列表
|
229
|
+
'''
|
230
|
+
try:
|
231
|
+
r = request('GET', 'api/ieslab-opt/rest/projectgroup/?mode=simu')
|
232
|
+
project = json.loads(r.text)
|
233
|
+
return project
|
234
|
+
except Exception as e:
|
235
|
+
raise Exception('获取项目组列表失败')
|
cloudpss/ieslab/IESLabPlan.py
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
import json
|
2
2
|
|
3
3
|
from cloudpss.ieslab.DataManageModel import IESPlanDataManageModel
|
4
|
-
from cloudpss.ieslab.EvaluationModel import
|
4
|
+
from cloudpss.ieslab.EvaluationModel import IESLabPlanEvaluationModel
|
5
5
|
from cloudpss.ieslab.PlanModel import IESLabPlanModel
|
6
6
|
from cloudpss.runner.IESLabTypicalDayResult import IESLabTypicalDayResult
|
7
7
|
from ..utils import request
|
8
8
|
from ..model.model import Model
|
9
9
|
from cloudpss.runner.runner import Runner
|
10
10
|
from cloudpss.runner.IESLabPlanResult import IESLabPlanResult
|
11
|
-
from cloudpss.runner.IESLabEvaluationResult import
|
11
|
+
from cloudpss.runner.IESLabEvaluationResult import IESLabPlanEvaluationResult
|
12
12
|
|
13
13
|
class IESLabPlan(object):
|
14
14
|
def __init__(self, project={}):
|
@@ -23,9 +23,9 @@ class IESLabPlan(object):
|
|
23
23
|
self.model = Model.fetch(self.__modelRid)
|
24
24
|
self.dataManageModel = IESPlanDataManageModel(self.id)
|
25
25
|
self.planModel = IESLabPlanModel(self.id)
|
26
|
-
self.evaluationModel =
|
26
|
+
self.evaluationModel = IESLabPlanEvaluationModel(self.id)
|
27
27
|
self.currentPlanResult = IESLabPlanResult(self.id)
|
28
|
-
self.currentEvaluationResult =
|
28
|
+
self.currentEvaluationResult = IESLabPlanEvaluationResult(self.id)
|
29
29
|
|
30
30
|
@staticmethod
|
31
31
|
def fetch(simulationId):
|
@@ -130,3 +130,81 @@ class IESLabPlan(object):
|
|
130
130
|
:return: Boolean
|
131
131
|
'''
|
132
132
|
return self.planModel.kill()
|
133
|
+
|
134
|
+
@staticmethod
|
135
|
+
def createProjectGroup(group_name, desc=None, createById=None):
|
136
|
+
'''
|
137
|
+
创建项目组
|
138
|
+
|
139
|
+
:params group_name: String 项目组名称
|
140
|
+
:params desc: String 项目组描述 可选参数
|
141
|
+
:params createById Int 父项目组id 可选参数,如果是从已有项目组导入的项目组,必填此项
|
142
|
+
|
143
|
+
:return: Int 返回创建的项目组id
|
144
|
+
'''
|
145
|
+
try:
|
146
|
+
if createById is None:
|
147
|
+
isImport = 0
|
148
|
+
else:
|
149
|
+
isImport = 1
|
150
|
+
payload = {
|
151
|
+
'group_name': group_name,
|
152
|
+
'desc': desc,
|
153
|
+
'isImport': isImport,
|
154
|
+
'createById': createById,
|
155
|
+
}
|
156
|
+
r = request(
|
157
|
+
'POST', 'api/ieslab-plan/rest/projectgroup/', data=json.dumps(payload))
|
158
|
+
project = json.loads(r.text)
|
159
|
+
return project.get('id', None)
|
160
|
+
except Exception as e:
|
161
|
+
raise Exception('创建项目组失败')
|
162
|
+
|
163
|
+
@staticmethod
|
164
|
+
def createProject(name, project_group, start_date, end_date, construction_cycle, desc=None, createById=None):
|
165
|
+
'''
|
166
|
+
创建项目
|
167
|
+
|
168
|
+
:params name: String 项目名称
|
169
|
+
:params project_group: Int 父项目组id
|
170
|
+
:param start_date: Int 项目开始年限,范围在[1500,3000]之间
|
171
|
+
:param end_date: Int 项目结束年限,范围在项目开始时间之后且不超过五十年
|
172
|
+
:param construction_cycle: Int 项目建设周期(年), 必须小于等于 项目结束年限 - 项目开始年限
|
173
|
+
:params desc: String 项目描述, 可选参数
|
174
|
+
:params createById Int 父项目id, 可选参数, 如果是从已有项目导入的项目,必填此项
|
175
|
+
|
176
|
+
:return: Int 返回创建的项目id
|
177
|
+
'''
|
178
|
+
try:
|
179
|
+
if start_date < 1500 or start_date > 3000:
|
180
|
+
raise Exception('项目开始年限错误,范围在[1500,3000]之间')
|
181
|
+
if end_date < start_date or end_date > start_date + 50:
|
182
|
+
raise Exception('项目结束年限错误,范围在项目开始时间之后且不超过五十年')
|
183
|
+
if construction_cycle > end_date - start_date:
|
184
|
+
raise Exception('项目建设周期错误,必须小于等于 项目结束年限 - 项目开始年限')
|
185
|
+
if createById is None:
|
186
|
+
payload = {
|
187
|
+
'name': name,
|
188
|
+
'project_group': project_group,
|
189
|
+
'start_date': start_date,
|
190
|
+
'end_date': end_date,
|
191
|
+
'construction_cycle': construction_cycle,
|
192
|
+
'desc': desc
|
193
|
+
}
|
194
|
+
else:
|
195
|
+
payload = {
|
196
|
+
'name': name,
|
197
|
+
'project_group': project_group,
|
198
|
+
'start_date': start_date,
|
199
|
+
'end_date': end_date,
|
200
|
+
'construction_cycle': construction_cycle,
|
201
|
+
'desc': desc,
|
202
|
+
'createById': createById
|
203
|
+
}
|
204
|
+
r = request(
|
205
|
+
'POST', 'api/ieslab-plan/rest/simu/', data=json.dumps(payload))
|
206
|
+
project = json.loads(r.text)
|
207
|
+
return project.get('id', None)
|
208
|
+
except Exception as e:
|
209
|
+
raise Exception('创建项目失败')
|
210
|
+
|
@@ -5,7 +5,7 @@ from .DataManageModel import IESSimulationDataManageModel
|
|
5
5
|
|
6
6
|
|
7
7
|
class IESLabSimulation(object):
|
8
|
-
def __init__(self, project={},model=None):
|
8
|
+
def __init__(self, project={},model:Model=None):
|
9
9
|
'''
|
10
10
|
初始化
|
11
11
|
'''
|
@@ -36,26 +36,7 @@ class IESLabSimulation(object):
|
|
36
36
|
return IESLabSimulation(project,model)
|
37
37
|
except:
|
38
38
|
raise Exception('未查询到当前算例')
|
39
|
-
|
40
|
-
async def fetchAsync(simulationId):
|
41
|
-
'''
|
42
|
-
获取算例信息
|
43
|
-
|
44
|
-
:params: simulationId string类型,代表数据项的算例id
|
45
|
-
|
46
|
-
:return: IESLabSimulation
|
47
|
-
'''
|
48
|
-
try:
|
49
|
-
r = request(
|
50
|
-
'GET', 'api/ieslab-simulation/rest/simu/{0}/'.format(simulationId))
|
51
|
-
project = json.loads(r.text)
|
52
|
-
modelRid = project.get('model', None)
|
53
|
-
model=None
|
54
|
-
if modelRid is not None:
|
55
|
-
model =await Model.fetchAsync(modelRid)
|
56
|
-
return IESLabSimulation(project,model)
|
57
|
-
except:
|
58
|
-
raise Exception('未查询到当前算例')
|
39
|
+
|
59
40
|
def run(self, job=None, name=None):
|
60
41
|
'''
|
61
42
|
调用仿真
|
@@ -71,19 +52,65 @@ class IESLabSimulation(object):
|
|
71
52
|
|
72
53
|
job['args']['simulationId'] = self.id
|
73
54
|
return self.model.run(job, name=name)
|
74
|
-
|
75
|
-
|
55
|
+
|
56
|
+
@staticmethod
|
57
|
+
def createProjectGroup(group_name, desc=None, createById=None):
|
76
58
|
'''
|
77
|
-
|
59
|
+
创建项目组
|
78
60
|
|
79
|
-
:params
|
80
|
-
:params
|
61
|
+
:params group_name: String 项目组名称
|
62
|
+
:params desc: String 项目组描述 可选参数
|
63
|
+
:params createById Int 父项目组id 可选参数,如果是从已有项目组导入的项目组,必填此项
|
81
64
|
|
82
|
-
:return:
|
65
|
+
:return: Int 返回创建的项目组id
|
83
66
|
'''
|
84
|
-
|
85
|
-
|
86
|
-
|
67
|
+
try:
|
68
|
+
if createById is None:
|
69
|
+
isImport = 0
|
70
|
+
else:
|
71
|
+
isImport = 1
|
72
|
+
payload = {
|
73
|
+
'group_name': group_name,
|
74
|
+
'desc': desc,
|
75
|
+
'isImport': isImport,
|
76
|
+
'createById': createById,
|
77
|
+
}
|
78
|
+
r = request(
|
79
|
+
'POST', 'api/ieslab-simulation/rest/projectgroup/', data=json.dumps(payload))
|
80
|
+
project = json.loads(r.text)
|
81
|
+
return project.get('id', None)
|
82
|
+
except Exception as e:
|
83
|
+
raise Exception('创建项目组失败')
|
87
84
|
|
88
|
-
|
89
|
-
|
85
|
+
@staticmethod
|
86
|
+
def createProject(name, project_group, desc=None, createById=None):
|
87
|
+
'''
|
88
|
+
创建项目
|
89
|
+
|
90
|
+
:params name: String 项目名称
|
91
|
+
:params project_group: Int 父项目组id,
|
92
|
+
:params desc: String 项目描述, 可选参数
|
93
|
+
:params createById Int 父项目id, 可选参数, 如果是从已有项目导入的项目,必填此项
|
94
|
+
|
95
|
+
:return: Int 返回创建的项目id
|
96
|
+
'''
|
97
|
+
try:
|
98
|
+
if createById is None:
|
99
|
+
payload = {
|
100
|
+
'name': name,
|
101
|
+
'project_group': project_group,
|
102
|
+
'desc': desc
|
103
|
+
}
|
104
|
+
else:
|
105
|
+
payload = {
|
106
|
+
'name': name,
|
107
|
+
'project_group': project_group,
|
108
|
+
'desc': desc,
|
109
|
+
'createById': createById
|
110
|
+
}
|
111
|
+
r = request(
|
112
|
+
'POST', 'api/ieslab-simulation/rest/simu/', data=json.dumps(payload))
|
113
|
+
project = json.loads(r.text)
|
114
|
+
return project.get('id', None)
|
115
|
+
except Exception as e:
|
116
|
+
raise Exception('创建项目失败')
|