Accept Merge Request #89: (api -> master)

Merge Request: Prioritize section parser

Created By: @王琼钰
Accepted By: @王琼钰
URL: https://tjwater.coding.net/p/tjwatercloud/d/TJWaterServer/git/merge/89
This commit is contained in:
王琼钰
2022-11-18 21:59:21 +08:00
4 changed files with 36 additions and 6 deletions

View File

@@ -171,11 +171,37 @@ def read_inp(project: str, inp: str):
pass # :)
cs = ChangeSet()
cs.merge(file_cs['PATTERNS'])
cs.merge(file_cs['CURVES'])
for s in section_name:
if s == 'PATTERNS' or s == 'CURVES':
continue
priorities = [
'PATTERNS',
'CURVES',
'JUNCTIONS',
'RESERVOIRS',
'TANKS',
'COORDINATES',
'PIPES',
'PUMPS',
'VALVES',
'DEMANDS',
'STATUS',
'OPTIONS',
'TIMES',
'EMITTERS',
'QUALITY',
'SOURCES',
'REACTIONS',
'MIXING',
'ENERGY',
'REPORT',
'VERTICES',
'CONTROLS',
'RULES',
'TITLE',
'TAGS',
'LABELS',
'BACKDROP',
'END',
]
for s in priorities:
cs.merge(file_cs[s])
if is_project_open(project):
@@ -187,7 +213,7 @@ def read_inp(project: str, inp: str):
create_project(project)
open_project(project)
execute_batch_command(project, cs)
execute_batch_commands(project, cs)
def dump_inp(name: str, inp: str):

View File

@@ -271,8 +271,11 @@ def execute_delete_command(name: str, cs: ChangeSet) -> ChangeSet:
def execute_batch_commands(name: str, cs: ChangeSet) -> ChangeSet:
result = ChangeSet()
todo = {}
try:
for op in cs.operations:
todo = op
operation = op['operation']
if operation == API_ADD:
result.merge(execute_add_command(name, ChangeSet(op)))
@@ -281,6 +284,7 @@ def execute_batch_commands(name: str, cs: ChangeSet) -> ChangeSet:
elif operation == API_DELETE:
result.merge(execute_delete_command(name, ChangeSet(op)))
except:
print(f'ERROR: Fail to execute {todo}!')
pass
return result