Add API covnertv3tov2
This commit is contained in:
@@ -2,7 +2,8 @@ from .project import list_project, have_project, create_project, delete_project,
|
||||
from .project import is_project_open, open_project, close_project
|
||||
from .project import copy_project
|
||||
|
||||
from .inp_in import read_inp, import_inp
|
||||
#DingZQ, 2024-12-28, convert inp v3 to v2
|
||||
from .inp_in import read_inp, import_inp, convert_inp_v3_to_v2
|
||||
from .inp_out import dump_inp, export_inp
|
||||
|
||||
from .database import API_ADD, API_UPDATE, API_DELETE
|
||||
|
||||
@@ -35,6 +35,9 @@ from .s27_backdrop import inp_in_backdrop
|
||||
from .s32_region import inp_in_region,inp_in_bound,inp_in_regionnodes
|
||||
from .s32_region_util import from_postgis_polygon,to_postgis_polygon
|
||||
|
||||
#DingZQ, 2024-12-28, export inp
|
||||
from .inp_out import export_inp
|
||||
|
||||
_S = 'S'
|
||||
_L = 'L'
|
||||
|
||||
@@ -371,6 +374,29 @@ def read_inp(project: str, inp: str, version: str = '3') -> bool:
|
||||
close_project(project)
|
||||
return True
|
||||
|
||||
#DingZQ, 2024-12-28, convert v3 to v2
|
||||
def convert_inp_v3_to_v2(inp: str) -> ChangeSet:
|
||||
project = 'v3Tov2'
|
||||
|
||||
if is_project_open(project):
|
||||
close_project(project)
|
||||
|
||||
if have_project(project):
|
||||
delete_project(project)
|
||||
|
||||
create_project(project)
|
||||
open_project(project)
|
||||
|
||||
parse_file(project, inp, '3')
|
||||
|
||||
'''try:
|
||||
parse_file(project, inp, version)
|
||||
except:
|
||||
close_project(project)
|
||||
delete_project(project)
|
||||
return False'''
|
||||
|
||||
return export_inp(project, '2')
|
||||
|
||||
def import_inp(project: str, cs: ChangeSet, version: str = '3') -> bool:
|
||||
if version != '3' and version != '2':
|
||||
|
||||
27
main.py
27
main.py
@@ -1819,6 +1819,33 @@ async def download_inp(name: str, response: Response):
|
||||
else:
|
||||
response.status_code = status.HTTP_400_BAD_REQUEST
|
||||
return True
|
||||
|
||||
# DingZQ, 2024-12-28, convert v3 to v2
|
||||
@app.get("/convertv3tov2/",response_model=None)
|
||||
async def fastapi_convert_v3_to_v2(inp: str) -> ChangeSet:
|
||||
network = 'v3Tov2'
|
||||
cs = convert_inp_v3_to_v2(inp)
|
||||
|
||||
op = cs.operations[0]
|
||||
open_project(network)
|
||||
op['vertex'] = json.dumps(get_all_vertices(network))
|
||||
op['scada'] = json.dumps(get_all_scada_elements(network))
|
||||
op['dma'] = json.dumps(get_all_district_metering_areas(network))
|
||||
op['sa'] = json.dumps(get_all_service_areas(network))
|
||||
op['vd'] = json.dumps(get_all_virtual_districts(network))
|
||||
op['legend'] = get_extension_data(network, 'legend')
|
||||
|
||||
db = get_extension_data(network, 'scada_db')
|
||||
print(db)
|
||||
scada_db = ''
|
||||
if db:
|
||||
scada_db = db
|
||||
print(scada_db)
|
||||
op['scada_db'] = scada_db
|
||||
|
||||
close_project(network)
|
||||
|
||||
return cs
|
||||
|
||||
@app.get("/getjson/")
|
||||
async def get_json():
|
||||
|
||||
@@ -222,6 +222,9 @@ def run_inp(name: str) -> str:
|
||||
def dump_output(path: str) -> str:
|
||||
return epanet.dump_output(path)
|
||||
|
||||
#DingZQ, 2024-12-28, convert inp v3 to v2
|
||||
def convert_inp_v3_to_v2(inp: str) -> ChangeSet:
|
||||
return api.convert_inp_v3_to_v2(inp)
|
||||
|
||||
############################################################
|
||||
# operation
|
||||
|
||||
Reference in New Issue
Block a user