cloudpss 4.5.15__tar.gz → 4.5.17__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 (115) hide show
  1. {cloudpss-4.5.15 → cloudpss-4.5.17}/PKG-INFO +1 -1
  2. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/job/job.py +7 -3
  3. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/job/messageStreamReceiver.py +4 -1
  4. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/job/messageStreamSender.py +3 -1
  5. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/model/implements/diagram.py +1 -1
  6. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/runner/runner.py +7 -3
  7. cloudpss-4.5.17/cloudpss/utils/parseDebugArgs.py +93 -0
  8. cloudpss-4.5.17/cloudpss/version.py +1 -0
  9. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss.egg-info/PKG-INFO +1 -1
  10. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss.egg-info/SOURCES.txt +1 -0
  11. cloudpss-4.5.15/cloudpss/version.py +0 -1
  12. {cloudpss-4.5.15 → cloudpss-4.5.17}/README.md +0 -0
  13. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/__init__.py +0 -0
  14. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/asyncio/__init__.py +0 -0
  15. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/asyncio/job/__init__.py +0 -0
  16. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/asyncio/job/job.py +0 -0
  17. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/asyncio/job/messageStreamReceiver.py +0 -0
  18. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/asyncio/job/messageStreamSender.py +0 -0
  19. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/asyncio/model/__init__.py +0 -0
  20. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/asyncio/model/model.py +0 -0
  21. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/asyncio/model/revision.py +0 -0
  22. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/asyncio/model/topology.py +0 -0
  23. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/asyncio/utils/AsyncIterable.py +0 -0
  24. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/asyncio/utils/__init__.py +0 -0
  25. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/asyncio/utils/httpAsyncRequest.py +0 -0
  26. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/dslab/__init__.py +0 -0
  27. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/dslab/dataManageModel.py +0 -0
  28. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/dslab/dslab.py +0 -0
  29. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/dslab/files/__init__.py +0 -0
  30. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/dslab/files/curveData.py +0 -0
  31. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/dslab/files/files.py +0 -0
  32. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/dslab/financialAnalysisModel.py +0 -0
  33. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/function/__init__.py +0 -0
  34. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/function/function.py +0 -0
  35. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/function/functionExecution.py +0 -0
  36. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/function/job.py +0 -0
  37. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/ieslab/DataManageModel.py +0 -0
  38. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/ieslab/EvaluationModel.py +0 -0
  39. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/ieslab/IESLabOpt.py +0 -0
  40. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/ieslab/IESLabPlan.py +0 -0
  41. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/ieslab/IESLabSimulation.py +0 -0
  42. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/ieslab/PlanModel.py +0 -0
  43. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/ieslab/__init__.py +0 -0
  44. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/job/TemplateCompiler.py +0 -0
  45. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/job/TemplateManager.py +0 -0
  46. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/job/__init__.py +0 -0
  47. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/job/jobReceiver.py +0 -0
  48. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/job/result/EMTResult.py +0 -0
  49. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/job/result/IESLabSimulationResult.py +0 -0
  50. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/job/result/IESLabTypicalDayResult.py +0 -0
  51. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/job/result/IESResult.py +0 -0
  52. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/job/result/PowerFlowResult.py +0 -0
  53. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/job/result/__init__.py +0 -0
  54. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/job/result/result.py +0 -0
  55. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/model/__init__.py +0 -0
  56. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/model/implements/__init__.py +0 -0
  57. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/model/implements/component.py +0 -0
  58. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/model/implements/implement.py +0 -0
  59. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/model/jobDefinitions.py +0 -0
  60. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/model/model.py +0 -0
  61. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/model/revision.py +0 -0
  62. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/model/topology.py +0 -0
  63. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/project/__init__.py +0 -0
  64. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/project/project.py +0 -0
  65. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/runner/DSLabResult.py +0 -0
  66. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/runner/IESLabEvaluationResult.py +0 -0
  67. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/runner/IESLabPlanResult.py +0 -0
  68. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/runner/IESLabTypicalDayResult.py +0 -0
  69. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/runner/MessageStreamReceiver.py +0 -0
  70. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/runner/__init__.py +0 -0
  71. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/runner/receiver.py +0 -0
  72. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/runner/result.py +0 -0
  73. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/runner/storage.py +0 -0
  74. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/runner/transform.py +0 -0
  75. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/utils/IO.py +0 -0
  76. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/utils/__init__.py +0 -0
  77. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/utils/dataEncoder.py +0 -0
  78. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/utils/graphqlUtil.py +0 -0
  79. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/utils/httprequests.py +0 -0
  80. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/utils/matlab.py +0 -0
  81. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/utils/yamlLoader.py +0 -0
  82. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss/verify.py +0 -0
  83. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss.egg-info/dependency_links.txt +0 -0
  84. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss.egg-info/requires.txt +0 -0
  85. {cloudpss-4.5.15 → cloudpss-4.5.17}/cloudpss.egg-info/top_level.txt +0 -0
  86. {cloudpss-4.5.15 → cloudpss-4.5.17}/setup.cfg +0 -0
  87. {cloudpss-4.5.15 → cloudpss-4.5.17}/setup.py +0 -0
  88. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/test-async.py +0 -0
  89. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/test-async2.py +0 -0
  90. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/test-async3.py +0 -0
  91. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/test-plot.py +0 -0
  92. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/test-plot1.py +0 -0
  93. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/test-sdk.py +0 -0
  94. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/test-sdk1.py +0 -0
  95. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/test-snapshot.py +0 -0
  96. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/test-topology.py +0 -0
  97. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/test-topology1.py +0 -0
  98. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/test-yield.py +0 -0
  99. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/test.py +0 -0
  100. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/test11.py +0 -0
  101. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/test12.py +0 -0
  102. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/test7950.py +0 -0
  103. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/testAsync.py +0 -0
  104. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/testEvent.py +0 -0
  105. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/testRt-test.py +0 -0
  106. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/testRt.py +0 -0
  107. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/testRt2.py +0 -0
  108. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/testSend.py +0 -0
  109. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/test_in_new_web_1.py +0 -0
  110. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/test_modepower_ampratio(3).py +0 -0
  111. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/test_ws.py +0 -0
  112. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/test_ws2.py +0 -0
  113. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/test_ws3.py +0 -0
  114. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/testb.py +0 -0
  115. {cloudpss-4.5.15 → cloudpss-4.5.17}/test/testkey.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloudpss
3
- Version: 4.5.15
3
+ Version: 4.5.17
4
4
  Summary: cloudpss sdk
5
5
  Home-page: https://www.cloudpss.net
6
6
  Author: cloudpss
@@ -4,6 +4,7 @@ import re
4
4
  import time
5
5
 
6
6
  from cloudpss.job.result.result import Result
7
+ from cloudpss.utils.parseDebugArgs import parse_debug_args
7
8
  from .result import getResultClass
8
9
 
9
10
  from cloudpss.utils.IO import IO
@@ -134,9 +135,12 @@ class Job(Generic[T]):
134
135
  debug = job["args"].get("@debug", None )
135
136
  debugargs={}
136
137
  if debug is not None:
137
- t= [ i.split('=') for i in re.split(r'\s+',debug) if i.find('=')>0]
138
- for i in t:
139
- debugargs[i[0]]=i[1]
138
+ parsed = parse_debug_args(debug)
139
+ if parsed is not None:
140
+ debugargs = parsed
141
+ # t= [ i.split('=') for i in re.split(r'\s+',debug) if i.find('=')>0]
142
+ # for i in t:
143
+ # debugargs[i[0]]=i[1]
140
144
  context=[
141
145
  function,
142
146
  f"model/@sdk/{str(int(time.time() * random.random()))}",
@@ -27,7 +27,10 @@ class MessageStreamReceiver(JobReceiver):
27
27
  def __init__(self, output,**kwargs):
28
28
  super().__init__()
29
29
  self.id = output
30
- self.origin = kwargs.get("baseUrl",os.environ.get("CLOUDPSS_API_URL", "https://cloudpss.net/"))
30
+ print(kwargs)
31
+ self.origin = kwargs.get("baseUrl",None)
32
+ if self.origin is None:
33
+ self.origin =os.environ.get("CLOUDPSS_API_URL", "https://cloudpss.net/")
31
34
  self.__hasOpen = False
32
35
  self.templates=TemplateManager()
33
36
  self.timeOffset=0
@@ -15,7 +15,9 @@ class MessageStreamSender:
15
15
  def __init__(self, input,**kwargs):
16
16
  super().__init__()
17
17
  self.input = input
18
- self.origin = kwargs.get("baseUrl",os.environ.get("CLOUDPSS_API_URL", "https://cloudpss.net/"))
18
+ self.origin = kwargs.get("baseUrl",None)
19
+ if self.origin is None:
20
+ self.origin =os.environ.get("CLOUDPSS_API_URL", "https://cloudpss.net/")
19
21
  self.__hasOpen = False
20
22
 
21
23
  def __on_message(self, ws, message):
@@ -73,7 +73,7 @@ class DiagramImplement(object):
73
73
 
74
74
  >>>> diagram.addComponent(args)
75
75
  """
76
- id = "comp_" + str(uuid.uuid4())
76
+ id = "comp_" + str(uuid.uuid4()).replace("-", "_")
77
77
  shape = "diagram-component"
78
78
  definition = definition
79
79
  label = label or definition
@@ -7,6 +7,7 @@ import random
7
7
  from deprecated import deprecated
8
8
 
9
9
  from cloudpss.utils.graphqlUtil import graphql_request
10
+ from cloudpss.utils.parseDebugArgs import parse_debug_args
10
11
  from .receiver import Receiver
11
12
  from .MessageStreamReceiver import MessageStreamReceiver
12
13
  from .result import IESLabSimulationResult, PowerFlowResult, EMTResult, Result, IESResult
@@ -164,9 +165,12 @@ class Runner(Generic[T]):
164
165
  debug = job["args"].get("@debug", None )
165
166
  debugargs={}
166
167
  if debug is not None:
167
- t= [ i.split('=') for i in re.split(r'\s+',debug) if i.find('=')>0]
168
- for i in t:
169
- debugargs[i[0]]=i[1]
168
+ parsed = parse_debug_args(debug)
169
+ if parsed is not None:
170
+ debugargs = parsed
171
+ # t= [ i.split('=') for i in re.split(r'\s+',debug) if i.find('=')>0]
172
+ # for i in t:
173
+ # debugargs[i[0]]=i[1]
170
174
 
171
175
  context= [
172
176
  function,
@@ -0,0 +1,93 @@
1
+ def parse_debug_args(debug=None):
2
+ if not debug or not isinstance(debug, str):
3
+ return None
4
+
5
+ tokens = []
6
+
7
+ # 1. 先按照非转义的空格拆分字符串,获取每个 token
8
+ current_token = ''
9
+ escaping = False # 表示当前是否在处理转义字符
10
+
11
+ for char in debug:
12
+ if escaping:
13
+ # 如果上一个字符是 '\',则把当前字符直接添加到 token,并保留 '\' 以供二阶段使用
14
+ current_token += '\\' + char
15
+ escaping = False
16
+ elif char == '\\':
17
+ # 开始转义
18
+ escaping = True
19
+ elif char.isspace():
20
+ # 如果遇到空格 (并且不在转义状态),说明一个 token 结束
21
+ if current_token:
22
+ tokens.append(current_token)
23
+ current_token = ''
24
+ else:
25
+ # 普通字符,直接添加
26
+ current_token += char
27
+
28
+ # 最后一个 token 加入数组(如果有的话)
29
+ if current_token:
30
+ tokens.append(current_token)
31
+
32
+ if not tokens:
33
+ return None
34
+
35
+ # 2. 对每个 token,找第一个非转义的 '=' 分割 key/value
36
+ entries = []
37
+
38
+ for token in tokens:
39
+ key = ''
40
+ value = ''
41
+ has_equal = False
42
+ escaping = False
43
+
44
+ # 我们只需要区分第一处真正的 '='
45
+ for char in token:
46
+ if escaping:
47
+ # 处理转义字符
48
+ if char == 'b':
49
+ escaped_char = '\b'
50
+ elif char == 'f':
51
+ escaped_char = '\f'
52
+ elif char == 'n':
53
+ escaped_char = '\n'
54
+ elif char == 'r':
55
+ escaped_char = '\r'
56
+ elif char == 't':
57
+ escaped_char = '\t'
58
+ elif char == 'v':
59
+ escaped_char = '\v'
60
+ else:
61
+ escaped_char = char
62
+
63
+ # 直接添加当前字符
64
+ if not has_equal:
65
+ key += escaped_char
66
+ else:
67
+ if escaped_char in ['\\', '$']:
68
+ # 保留转义字符
69
+ value += '\\' + escaped_char
70
+ else:
71
+ value += escaped_char
72
+ escaping = False
73
+ elif char == '\\':
74
+ escaping = True
75
+ elif char == '=' and not has_equal:
76
+ # 遇到第一个非转义的 '=' 时,视为 key/value 分隔
77
+ has_equal = True
78
+ else:
79
+ # 普通字符
80
+ if not has_equal:
81
+ key += char
82
+ else:
83
+ value += char
84
+
85
+ # 添加 key 和 value 到 entries 列表
86
+ entries.append((key, value))
87
+
88
+ return dict(entries)
89
+
90
+ # 示例用法
91
+ # debug_str = r"TASK_CMD=cloudpssrun:mkl DOCKER_MOUNT=/dev/disk/by-id:/dev/disk/by-id:ro\n/home/cloudpss/NR_ADPSS_HVDC37.key:/usr/include/NR_ADPSS_HVDC37.key:ro\n"
92
+ # result = parse_debug_args(debug_str)
93
+ # print(result)
@@ -0,0 +1 @@
1
+ __version__ = '4.5.17'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloudpss
3
- Version: 4.5.15
3
+ Version: 4.5.17
4
4
  Summary: cloudpss sdk
5
5
  Home-page: https://www.cloudpss.net
6
6
  Author: cloudpss
@@ -80,6 +80,7 @@ cloudpss/utils/dataEncoder.py
80
80
  cloudpss/utils/graphqlUtil.py
81
81
  cloudpss/utils/httprequests.py
82
82
  cloudpss/utils/matlab.py
83
+ cloudpss/utils/parseDebugArgs.py
83
84
  cloudpss/utils/yamlLoader.py
84
85
  test/test-async.py
85
86
  test/test-async2.py
@@ -1 +0,0 @@
1
- __version__ = '4.5.15'
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
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