cloudpss 4.5.1a4__tar.gz → 4.5.1a5__tar.gz

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 (119) hide show
  1. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/PKG-INFO +1 -1
  2. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/dslab/dataManageModel.py +4 -0
  3. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/dslab/dslab.py +27 -4
  4. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/runner/runner.py +10 -7
  5. cloudpss-4.5.1a5/cloudpss/version.py +1 -0
  6. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss.egg-info/PKG-INFO +1 -1
  7. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss.egg-info/SOURCES.txt +5 -1
  8. cloudpss-4.5.1a5/test/test-plot1.py +12 -0
  9. cloudpss-4.5.1a5/test/test-topology1.py +37 -0
  10. cloudpss-4.5.1a5/test/test2.py +56 -0
  11. cloudpss-4.5.1a5/test/test_TCP.py +31 -0
  12. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/test/test_ws.py +1 -1
  13. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/test/test_ws2.py +1 -1
  14. cloudpss-4.5.1a5/test/test_ws3.py +49 -0
  15. cloudpss-4.5.1a5/test/testb.py +16 -0
  16. cloudpss-4.5.1a5/test/testkey.py +3 -0
  17. cloudpss-4.5.1a4/cloudpss/version.py +0 -1
  18. cloudpss-4.5.1a4/test/test-plot1.py +0 -0
  19. cloudpss-4.5.1a4/test/test-topology1.py +0 -31
  20. cloudpss-4.5.1a4/test/testb.py +0 -18
  21. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/README.md +0 -0
  22. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/__init__.py +0 -0
  23. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/asyncio/__init__.py +0 -0
  24. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/asyncio/job/__init__.py +0 -0
  25. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/asyncio/job/job.py +0 -0
  26. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/asyncio/job/messageStreamReceiver.py +0 -0
  27. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/asyncio/job/messageStreamSender.py +0 -0
  28. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/asyncio/model/__init__.py +0 -0
  29. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/asyncio/model/model.py +0 -0
  30. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/asyncio/model/revision.py +0 -0
  31. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/asyncio/model/topology.py +0 -0
  32. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/asyncio/utils/AsyncIterable.py +0 -0
  33. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/asyncio/utils/__init__.py +0 -0
  34. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/asyncio/utils/httpAsyncRequest.py +0 -0
  35. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/dslab/__init__.py +0 -0
  36. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/dslab/files/__init__.py +0 -0
  37. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/dslab/files/curveData.py +0 -0
  38. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/dslab/files/files.py +0 -0
  39. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/dslab/financialAnalysisModel.py +0 -0
  40. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/function/__init__.py +0 -0
  41. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/function/function.py +0 -0
  42. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/function/functionExecution.py +0 -0
  43. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/function/job.py +0 -0
  44. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/ieslab/DataManageModel.py +0 -0
  45. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/ieslab/EvaluationModel.py +0 -0
  46. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/ieslab/IESLabOpt.py +0 -0
  47. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/ieslab/IESLabPlan.py +0 -0
  48. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/ieslab/IESLabSimulation.py +0 -0
  49. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/ieslab/PlanModel.py +0 -0
  50. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/ieslab/__init__.py +0 -0
  51. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/job/TemplateCompiler.py +0 -0
  52. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/job/TemplateManager.py +0 -0
  53. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/job/__init__.py +0 -0
  54. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/job/job.py +0 -0
  55. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/job/jobReceiver.py +0 -0
  56. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/job/messageStreamReceiver.py +0 -0
  57. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/job/messageStreamSender.py +0 -0
  58. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/job/result/EMTResult.py +0 -0
  59. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/job/result/IESLabSimulationResult.py +0 -0
  60. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/job/result/IESLabTypicalDayResult.py +0 -0
  61. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/job/result/IESResult.py +0 -0
  62. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/job/result/PowerFlowResult.py +0 -0
  63. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/job/result/__init__.py +0 -0
  64. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/job/result/result.py +0 -0
  65. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/model/__init__.py +0 -0
  66. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/model/implements/__init__.py +0 -0
  67. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/model/implements/component.py +0 -0
  68. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/model/implements/diagram.py +0 -0
  69. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/model/implements/implement.py +0 -0
  70. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/model/jobDefinitions.py +0 -0
  71. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/model/model.py +0 -0
  72. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/model/revision.py +0 -0
  73. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/model/topology.py +0 -0
  74. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/project/__init__.py +0 -0
  75. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/project/project.py +0 -0
  76. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/runner/DSLabResult.py +0 -0
  77. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/runner/IESLabEvaluationResult.py +0 -0
  78. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/runner/IESLabPlanResult.py +0 -0
  79. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/runner/IESLabTypicalDayResult.py +0 -0
  80. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/runner/MessageStreamReceiver.py +0 -0
  81. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/runner/__init__.py +0 -0
  82. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/runner/receiver.py +0 -0
  83. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/runner/result.py +0 -0
  84. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/runner/storage.py +0 -0
  85. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/runner/transform.py +0 -0
  86. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/utils/IO.py +0 -0
  87. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/utils/__init__.py +0 -0
  88. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/utils/dataEncoder.py +0 -0
  89. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/utils/graphqlUtil.py +0 -0
  90. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/utils/httprequests.py +0 -0
  91. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/utils/matlab.py +0 -0
  92. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/utils/yamlLoader.py +0 -0
  93. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss/verify.py +0 -0
  94. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss.egg-info/dependency_links.txt +0 -0
  95. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss.egg-info/requires.txt +0 -0
  96. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/cloudpss.egg-info/top_level.txt +0 -0
  97. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/setup.cfg +0 -0
  98. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/setup.py +0 -0
  99. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/test/test-async.py +0 -0
  100. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/test/test-async2.py +0 -0
  101. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/test/test-async3.py +0 -0
  102. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/test/test-plot.py +0 -0
  103. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/test/test-sdk.py +0 -0
  104. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/test/test-sdk1.py +0 -0
  105. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/test/test-snapshot.py +0 -0
  106. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/test/test-topology.py +0 -0
  107. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/test/test-yield.py +0 -0
  108. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/test/test.py +0 -0
  109. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/test/test11.py +0 -0
  110. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/test/test12.py +0 -0
  111. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/test/test7950.py +0 -0
  112. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/test/testAsync.py +0 -0
  113. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/test/testEvent.py +0 -0
  114. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/test/testRt-test.py +0 -0
  115. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/test/testRt.py +0 -0
  116. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/test/testRt2.py +0 -0
  117. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/test/testSend.py +0 -0
  118. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/test/test_in_new_web_1.py +0 -0
  119. {cloudpss-4.5.1a4 → cloudpss-4.5.1a5}/test/test_modepower_ampratio(3).py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloudpss
3
- Version: 4.5.1a4
3
+ Version: 4.5.1a5
4
4
  Summary: cloudpss sdk
5
5
  Home-page: https://www.cloudpss.net
6
6
  Author: cloudpss
@@ -278,6 +278,10 @@ class DataManageModel(object):
278
278
 
279
279
  :return: list<dict>类型,返回该种类下所有数据项的列表
280
280
  '''
281
+ # 检查extra是否为空
282
+ if not data['extra']:
283
+ raise ValueError("extra 不能为空,必须包含有效的数据")
284
+
281
285
  url = f"{self._baseUri}rest/{kind}"
282
286
  r = {
283
287
  'id': data.get('id', ''),
@@ -168,6 +168,20 @@ class DSLab(object):
168
168
  if job['rid'] != rid:
169
169
  raise Exception("不是短路电流计算方案内核运行生成算法的计算方案")
170
170
  return self.run(job=job, name=name)
171
+
172
+ @staticmethod
173
+ def getProjectGroupList():
174
+ '''
175
+ 获取项目组列表
176
+
177
+ :return: List[Dict] 返回项目组列表
178
+ '''
179
+ try:
180
+ r = request('GET', 'api/dslab/rest/group')
181
+ groupList = json.loads(r.text)
182
+ return groupList
183
+ except Exception as e:
184
+ raise Exception('获取项目组列表失败')
171
185
 
172
186
  @staticmethod
173
187
  def createProjectGroup(name, description=None, createById=None):
@@ -196,18 +210,19 @@ class DSLab(object):
196
210
  if r.ok:
197
211
  r = request('GET', 'api/dslab/rest/group')
198
212
  groupList = json.loads(r.text)
199
- id = groupList[len(groupList) -1].get('id', None)
213
+ id = groupList[len(groupList) -1].get('id', None)\
214
+
200
215
  return id
201
216
  except Exception as e:
202
217
  raise Exception('创建项目组失败')
203
218
 
204
219
  @staticmethod
205
- def createProject(name, gid, description=None, initialTerm=None, build=None, operate=None, yearsInOperation=None):
220
+ def createProject(name, groupName, description=None, initialTerm=None, build=None, operate=None, yearsInOperation=None):
206
221
  '''
207
222
  创建项目
208
223
 
209
224
  :params name: String 项目名称
210
- :params gid: Int 父项目组id,
225
+ :params groupName: String 父项目组名称,
211
226
  :params description: String 项目描述, 可选参数
212
227
  :params initialTerm: String 项目起始年限,可选参数
213
228
  :params build: String 项目建设期(年),可选参数
@@ -217,6 +232,14 @@ class DSLab(object):
217
232
  :return: Int 返回创建的项目id
218
233
  '''
219
234
  try:
235
+ groupList = DSLab.getProjectGroupList()
236
+ matchedGroup = next((g for g in groupList if g.get('name') == groupName), None)
237
+ if not matchedGroup:
238
+ gid = DSLab.createProjectGroup(groupName)
239
+ else:
240
+ gid = matchedGroup.get('id')
241
+ if gid is None:
242
+ raise Exception(f"项目组 {groupName} 缺少 id 字段")
220
243
  payload = {
221
244
  'name': name,
222
245
  'gid': gid,
@@ -233,4 +256,4 @@ class DSLab(object):
233
256
  project = json.loads(r.text)
234
257
  return project.get('resource', None)
235
258
  except Exception as e:
236
- raise Exception('创建项目失败')
259
+ raise Exception(f'创建项目失败: {e}')
@@ -65,7 +65,11 @@ class Runner(Generic[T]):
65
65
  self.taskId = taskId
66
66
  self.db = Storage(taskId, name, job, config, revision, modelRid)
67
67
  rid =job['rid'].replace('job-definition/','function/').replace('/cloudpss/','/CloudPSS/')
68
- result = RESULT_DB.get(rid, Result)
68
+ resultClass = kwargs.get('RESULT_DB', None)
69
+ if resultClass is not None:
70
+ result = resultClass
71
+ else:
72
+ result = RESULT_DB.get(rid, Result)
69
73
  self.result: T = result(self.db)
70
74
  self.receiver = kwargs.get('receiver', None)
71
75
 
@@ -92,15 +96,14 @@ class Runner(Generic[T]):
92
96
  def __listen(self, **kwargs):
93
97
 
94
98
  receiver = kwargs.get('RECEIVER', 'default')
95
- receiverclass = None
96
99
  if type(receiver) is str:
97
100
  if receiver not in RECEIVER:
98
- receiverclass = RECEIVER['default']
101
+ receiver = RECEIVER['default']
99
102
  else:
100
- receiverclass = RECEIVER[receiver]
101
- if receiverclass is None:
103
+ receiver = RECEIVER[receiver]
104
+ if receiver is None:
102
105
  raise Exception('not find receiver')
103
- self.receiver = receiverclass(self.taskId, self.db, **kwargs)
106
+ self.receiver = receiver(self.taskId, self.db, **kwargs)
104
107
  self.receiver.connect()
105
108
 
106
109
  def terminate(self):
@@ -148,7 +151,7 @@ class Runner(Generic[T]):
148
151
  tres[k] = float(v) # type: ignore
149
152
  policy["tres"] = tres
150
153
  function = job["rid"].replace("job-definition/cloudpss/", "function/CloudPSS/")
151
- implement = kwargs.get("implement", None)
154
+ implement = kwargs.get("implement", kwargs.get("topology", None))
152
155
  debug = job["args"].get("@debug", None )
153
156
  debugargs={}
154
157
  if debug is not None:
@@ -0,0 +1 @@
1
+ __version__ = '4.5.1-alpha.5'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloudpss
3
- Version: 4.5.1a4
3
+ Version: 4.5.1a5
4
4
  Summary: cloudpss sdk
5
5
  Home-page: https://www.cloudpss.net
6
6
  Author: cloudpss
@@ -95,6 +95,7 @@ test/test-yield.py
95
95
  test/test.py
96
96
  test/test11.py
97
97
  test/test12.py
98
+ test/test2.py
98
99
  test/test7950.py
99
100
  test/testAsync.py
100
101
  test/testEvent.py
@@ -102,8 +103,11 @@ test/testRt-test.py
102
103
  test/testRt.py
103
104
  test/testRt2.py
104
105
  test/testSend.py
106
+ test/test_TCP.py
105
107
  test/test_in_new_web_1.py
106
108
  test/test_modepower_ampratio(3).py
107
109
  test/test_ws.py
108
110
  test/test_ws2.py
109
- test/testb.py
111
+ test/test_ws3.py
112
+ test/testb.py
113
+ test/testkey.py
@@ -0,0 +1,12 @@
1
+ import plotly.express as px
2
+ import pandas as pd
3
+
4
+ df = pd.DataFrame([
5
+ dict(Task="Job A", Start='2009-01-01', Finish='2009-02-28'),
6
+ dict(Task="Job B", Start='2009-03-05', Finish='2009-04-15'),
7
+ dict(Task="Job C", Start='2009-02-20', Finish='2009-05-30')
8
+ ])
9
+
10
+ fig = px.timeline(df, x_start="Start", x_end="Finish", y="Task")
11
+ fig.update_yaxes(autorange="reversed") # otherwise tasks are listed from the bottom up
12
+ fig.show()
@@ -0,0 +1,37 @@
1
+
2
+ import time
3
+ import sys
4
+ import os
5
+
6
+ sys.path.append(os.path.join(os.path.dirname(__file__), '..\\'))
7
+ import cloudpss
8
+ import time
9
+ import json
10
+
11
+ if __name__ == '__main__':
12
+ os.environ['CLOUDPSS_API_URL'] = 'http://10.101.10.45/'
13
+ print('CLOUDPSS connected')
14
+ cloudpss.setToken(
15
+ 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwidXNlcm5hbWUiOiJhZG1pbiIsInNjb3BlcyI6WyJtb2RlbDo5ODM2NyIsImZ1bmN0aW9uOjk4MzY3IiwiYXBwbGljYXRpb246MzI4MzEiXSwicm9sZXMiOlsiYWRtaW4iXSwidHlwZSI6ImFwcGx5IiwiZXhwIjoxNzY2MzA3MzU1LCJub3RlIjoiYWEiLCJpYXQiOjE3NTA3NTUzNTV9.iYh3otDGy-f7dKyIUd8xpnEuwVuRDfmBVsI112XeCZBe7sZLdyBb6a4XqOd8AoyTzFcpLj7rF1PQcT4mhEf6kA')
16
+ print('Token done')
17
+ project = cloudpss.Model.fetch('model/admin/xx11')
18
+ # topology = cloudpss.ModelTopology.fetch("-xrS3SewFhpVYKBtIXLk-XDLCQRQnUmlIbXS3s4sdPUkPKeAMhXHjRgZD1JPjPfQ","emtp",{'args':{}})
19
+ topology= project.fetchTopology(config={'args':{}},maximumDepth=50)
20
+ print(topology.components)
21
+
22
+
23
+ topology.dump(topology,'testTopology.json',indent=2)
24
+
25
+
26
+ # topology2 = cloudpss.ModelTopology.fetch('', 'emtp', {'args': {}}, maximumDepth=5, topology=topology)
27
+
28
+
29
+ # print(topology2.components)
30
+ # topology2.dump(topology2,'testTopology2.json',indent=2)
31
+
32
+
33
+ # topology3= project.fetchTopology(config={'args':{}},maximumDepth=5)
34
+ # print(topology3.components)
35
+
36
+
37
+ # topology3.dump(topology3,'testTopology3.json',indent=2)
@@ -0,0 +1,56 @@
1
+ import sys,os
2
+ sys.path.append(os.path.join(os.path.dirname(__file__), '../'))
3
+ import cloudpss
4
+ import json
5
+ import time
6
+ # import plotly.graph_objects as go # 使用 plotly 绘制曲线
7
+ import numpy as np
8
+ # from csv_write_function import csv_write_function
9
+
10
+
11
+ # 仿真设置
12
+ # 填写 token,注意不要加大括号{}
13
+ # cloudpss.setToken('{token}')
14
+ cloudpss.setToken('eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6NjM4LCJ1c2VybmFtZSI6IkNfeWFuamlvbmdjaGVuZyIsInNjb3BlcyI6WyJtb2RlbDo5ODM2NyIsImZ1bmN0aW9uOjk4MzY3IiwiYXBwbGljYXRpb246MzI4MzEiXSwicm9sZXMiOlsiQ195YW5qaW9uZ2NoZW5nIl0sInR5cGUiOiJhcHBseSIsImV4cCI6MTc3NTMwODY0Miwibm90ZSI6IllKQy10b2tlbiIsImlhdCI6MTc0NDIwNDY0Mn0.H_BdzcOh-MBFMTddb35fNXSe2TAOCgoo2E6RC4mex5k06ouD8GuT0Y60yzCXsR1jsU7YKj6x00KU2OCElg7FQQ')
15
+
16
+ # 设置访问的地址,即登录后的地址到.net/为止
17
+ os.environ['CLOUDPSS_API_URL'] = 'http://cloudpss-nari.ddns.cloudpss.net/'
18
+
19
+ # 选择算例,获取指定算例 rid 的项目
20
+ model = cloudpss.Model.fetch('model/C_yanjiongcheng/Qingdong-DC-simple') # 注意最后那个#号不要加,写完项目名称即可。
21
+
22
+
23
+ rid=model.rid
24
+ configs=model.configs
25
+ jobs=model.jobs
26
+ print('model的rid为', rid)
27
+ print('model的config为', configs)
28
+ print('model的jobs为', jobs)
29
+
30
+ # 选择参数方案,若未设置,则默认用 model 的第一个 config(参数方案)
31
+ config = model.configs[0] # Kes1.1
32
+
33
+ # 选择计算方案,若未设置,则默认用 model 的第一个 job,此处选择 jobs[0],为SimStudio中设置的第1个计算方案,即“图A”
34
+ job = model.jobs[0]
35
+
36
+ # 启动计算任务
37
+ time1 = time.time() # 计算当前的秒数
38
+ runner = model.runPowerFlow(job, config) # 运行计算方案
39
+
40
+ # 监听计算任务实例的运行状态
41
+ while not runner.status():
42
+ logs = runner.result.getLogs() # 获得运行日志
43
+ for log in logs:
44
+ print(log) # 打印每一条日志
45
+ # 每隔一秒判断一次运行状态
46
+ time.sleep(1)
47
+ print('end') # 运行结束
48
+
49
+ time2 = time.time() # 计算当前的秒数
50
+ print('潮流计算花费的时间为 %.2f 秒' % (time2 - time1))
51
+ print(cloudpss.__version__)
52
+
53
+ # 获取潮流计算结果
54
+ buses = runner.result.getBuses() # 获取节点电压计算结果
55
+ # print(buses)
56
+
@@ -0,0 +1,31 @@
1
+ import socket
2
+
3
+ def tcp_client():
4
+ host = '10.101.10.102' # 服务器 IP 地址
5
+ port = 8802 # 服务器端口
6
+
7
+ # 创建 socket 对象
8
+ client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
9
+
10
+ try:
11
+ # 连接到服务器
12
+ client_socket.connect((host, port))
13
+ print(f"已连接到服务器 {host}:{port}")
14
+ # 接收服务器返回的数据
15
+ while True:
16
+ rec_msg = client_socket.recv(1024)
17
+ hex_representation = ' '.join(f'{byte:02x}' for byte in rec_msg)
18
+ print(' 客户端消息的十六进制表示: ', hex_representation)
19
+ # print(f"接收到来自服务器的消息: {data.decode()}")
20
+
21
+ client_socket.send(rec_msg)
22
+
23
+ except ConnectionRefusedError:
24
+ print("连接失败,服务器可能未启动。")
25
+ finally:
26
+ # 关闭连接
27
+ client_socket.close()
28
+ print("客户端已关闭连接。")
29
+
30
+ if __name__ == '__main__':
31
+ tcp_client()
@@ -52,7 +52,7 @@ class WebsocketClient():
52
52
  return self._status
53
53
 
54
54
  async def create(self):
55
- asyncio.create_task(self.websocket_connect('ws://10.101.10.45/api/streams/id/2638cc71-2b02-4a78-ad7d-d186c54ecc7b'))
55
+ asyncio.create_task(self.websocket_connect('ws://www.rpssc.top:52694/api/streams/id/a454e6b7-e677-41df-a4e8-6202ff3cb35e'))
56
56
 
57
57
  async def main():
58
58
  ws=WebsocketClient()
@@ -87,7 +87,7 @@ class WebsocketClient():
87
87
 
88
88
  async def create(self):
89
89
  # await self.websocket_connect('ws://10.101.10.45/api/streams/id/bb30285a-7d11-484b-a8b0-4855cf8bf8ed')
90
- await self.websocket_connect('ws://10.101.10.45/api/streams/id/2638cc71-2b02-4a78-ad7d-d186c54ecc7b')
90
+ await self.websocket_connect('ws://www.rpssc.top:52694/api/streams/id/1d3b2722-dd65-42c2-ac91-a232e44582c9')
91
91
  # asyncio.create_task(self.websocket_connect('ws://10.101.10.45/api/streams/id/bb30285a-7d11-484b-a8b0-4855cf8bf8ed'))
92
92
 
93
93
  async def main():
@@ -0,0 +1,49 @@
1
+
2
+ import time
3
+ import threading
4
+ import websocket
5
+ # ws://10.101.10.45/api/streams/token/fe943635-0dc9-40c8-8a27-39d02af66894
6
+
7
+
8
+ class WebsocketClient():
9
+ message = []
10
+ _status=0
11
+ # __init__(self):
12
+ def on_close(self, *args, **kwargs):
13
+ self._status = 1
14
+ print("close")
15
+ def on_error(self, *args, **kwargs):
16
+ self._status = 1
17
+ print("error",args,kwargs)
18
+ def on_open(self,ws, *args, **kwargs):
19
+ self._status = 1
20
+ print("open")
21
+ def on_message(self, *args, **kwargs):
22
+ self._status = 0
23
+ print("on_message")
24
+ # websocket
25
+ def connect(self):
26
+ self._status = 0
27
+ path = "ws://www.rpssc.top:52694/api/streams/id/a454e6b7-e677-41df-a4e8-6202ff3cb35e"
28
+ self.ws = websocket.WebSocketApp(
29
+ path,
30
+ on_open=self.on_open,
31
+ on_message=self.on_message,
32
+ on_error=self.on_error,
33
+ on_close=self.on_close,
34
+ )
35
+ thread = threading.Thread(target=self.ws.run_forever, kwargs={'ping_interval':60,'ping_timeout':5,'reconnect':True})
36
+ thread.setDaemon(True)
37
+ thread.start()
38
+ while not self._status:
39
+ time.sleep(0)
40
+
41
+ def main():
42
+ ws=WebsocketClient()
43
+ ws.connect()
44
+ print("start")
45
+ while ws._status == 0:
46
+ time.sleep(0)
47
+ pass
48
+ if __name__ == '__main__':
49
+ main()
@@ -0,0 +1,16 @@
1
+ import os,sys
2
+ import time
3
+
4
+ import socketio
5
+ import threading
6
+ import struct
7
+ Uninitialized = type("Uninitialized", (), {})()
8
+
9
+ def pp():
10
+ x=b=c=q=x=t=Uninitialized
11
+ print(x,b,c,q,x,t)
12
+
13
+ if __name__ == '__main__':
14
+ pp()
15
+
16
+
@@ -0,0 +1,3 @@
1
+ x=input("请输入一个数:")
2
+
3
+ print(x)
@@ -1 +0,0 @@
1
- __version__ = '4.5.1-alpha.4'
File without changes
@@ -1,31 +0,0 @@
1
-
2
- import time
3
- import sys
4
- import os
5
-
6
- sys.path.append(os.path.join(os.path.dirname(__file__), '..\\'))
7
- import cloudpss
8
- import time
9
- import numpy as np
10
- import pandas as pd
11
- import json
12
-
13
- if __name__ == '__main__':
14
- os.environ['CLOUDPSS_API_URL'] = 'http://10.101.10.45/'
15
- print('CLOUDPSS connected')
16
- cloudpss.setToken(
17
- 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwidXNlcm5hbWUiOiJhZG1pbiIsInNjb3BlcyI6WyJtb2RlbDo5ODMzNSIsImZ1bmN0aW9uOjk4MzM1IiwiYXBwbGljYXRpb246OTgzMzUiXSwicm9sZXMiOlsiYWRtaW4iXSwidHlwZSI6ImFwcGx5IiwiZXhwIjoxNzI0NTU3MDIzLCJub3RlIjoiYSIsImlhdCI6MTY5MzQ1MzAyM30._Xuyo62ESKLcIAFeNdnfBM44yPiiXli9OPKvXDzL2rPV4J1_qsGZP--bsS1tXAVy-x8ooUIIAAG1yhwmZuk7-Q')
18
- print('Token done')
19
- project = cloudpss.Model.fetch('model/admin/asdfsadd')
20
- # topology = cloudpss.ModelTopology.fetch("-xrS3SewFhpVYKBtIXLk-XDLCQRQnUmlIbXS3s4sdPUkPKeAMhXHjRgZD1JPjPfQ","emtp",{'args':{}})
21
- topology= project.fetchTopology(config={'args':{}},maximumDepth=50)
22
- print(topology.components)
23
- # topology.dump(topology,'test.json')
24
-
25
-
26
- # # topology= project.fetchTopology(config={'args':{}})
27
-
28
- # topology.dump(topology,'test.json')
29
-
30
-
31
-
@@ -1,18 +0,0 @@
1
- import os,sys
2
- import time
3
-
4
- import socketio
5
- import threading
6
- import struct
7
-
8
-
9
- if __name__ == '__main__':
10
- a = [1.21,2.22,3.33]
11
- x = struct.pack('d'*len(a),*a)
12
- print(x)
13
- print(len(x))
14
-
15
- t = struct.unpack('d'*int(len(x)/8),x)
16
-
17
-
18
- print(t)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes