Add DMA api

This commit is contained in:
DingZQ
2023-05-14 23:30:44 +08:00
parent b00c870a89
commit c17629ee28

56
main.py
View File

@@ -247,7 +247,6 @@ async def fastapi_execute_batch_commands(network: str, req: Request)-> ChangeSet
cs: ChangeSet = ChangeSet()
cs.operations = jo_root['operations']
rcs = execute_batch_commands(network, cs)
print(rcs)
return rcs
@app.post("/compressedbatch/")
@@ -1543,7 +1542,7 @@ async def fastapi_clean_scada_element(network: str) -> ChangeSet:
return clean_scada_element(network)
############################################################
# general_region 33
# general_region 32
############################################################
@app.get('/getregionschema/')
async def fastapi_get_region_schema(network: str) -> dict[str, dict[str, Any]]:
@@ -1569,12 +1568,63 @@ async def fastapi_delete_region(network: str, req: Request) -> ChangeSet:
props = await req.json()
return delete_region(network, ChangeSet(props))
############################################################
# district_metering_area 33
############################################################
@app.get('/calculatedistrictmeteringareafornodes/')
async def fastapi_calculate_district_metering_area_for_nodes(name: str, nodes: list[str], part_count: int = 1, part_type: int = PARTITION_TYPE_RB) -> list[list[str]]:
return calculate_district_metering_area_for_nodes(name, nodes, part_count, part_type)
@app.get('/calculatedistrictmeteringareaforregion/')
async def fastapi_calculate_district_metering_area_for_region(name: str, region: str, part_count: int = 1, part_type: int = PARTITION_TYPE_RB) -> list[list[str]]:
return calculate_district_metering_area_for_region(name, region, part_count, part_type)
@app.get('/calculatedistrictmeteringareafornetwork/')
async def fastapi_calculate_district_metering_area_for_network(name: str, part_count: int = 1, part_type: int = PARTITION_TYPE_RB) -> list[list[str]]:
return calculate_district_metering_area_for_network(name, part_count, part_type)
@app.get('/getdistrictmeteringareaschema/')
async def fastapi_get_district_metering_area_schema(name: str) -> dict[str, dict[str, Any]]:
return get_district_metering_area_schema(name)
@app.get('/getdistrictmeteringarea/')
async def fastapi_get_district_metering_area(name: str, id: str) -> dict[str, Any]:
return get_district_metering_area(name, id)
@app.post('/setdistrictmeteringarea/')
async def fastapi_set_district_metering_area(name: str, cs: ChangeSet) -> ChangeSet:
return set_district_metering_area(name, cs)
@app.post('/adddistrictmeteringarea/')
async def fastapi_add_district_metering_area(name: str, cs: ChangeSet) -> ChangeSet:
return add_district_metering_area(name, cs)
@app.post('/deletedistrictmeteringarea/')
async def fastapi_delete_district_metering_area(name: str, cs: ChangeSet) -> ChangeSet:
return delete_district_metering_area(name, cs)
@app.get('/getalldistrictmeteringareaids/')
async def fastapi_get_all_district_metering_area_ids(name: str) -> list[str]:
return get_all_district_metering_area_ids(name)
@app.get('/calculatedistrictmeteringareafornodes/')
async def getalldistrictmeteringareas(name: str) -> list[dict[str, Any]]:
return get_all_district_metering_areas(name)
@app.post('/generatedistrictmeteringarea/')
async def fastapi_generate_district_metering_area(name: str, part_count: int = 1, part_type: int = PARTITION_TYPE_RB) -> ChangeSet:
return generate_district_metering_area(name, part_count, part_type)
@app.post('/generatesubdistrictmeteringarea/')
async def fastapi_generate_sub_district_metering_area(name: str, dma: str, part_count: int = 1, part_type: int = PARTITION_TYPE_RB) -> ChangeSet:
return generate_sub_district_metering_area(name, dma, part_count, part_type)
############################################################
# water_distribution 34
############################################################
@app.post('/distributedemandtonodes/')
async def fastapi_distribute_demand_to_nodes(network: str, demand: float, nodes: list[str], type: str) -> ChangeSet:
return distribute_demand_to_nodes(network, demand, nodes, type)
return calculate_demand_to_nodes(network, demand, nodes, type)
@app.post("/distributedemandtoregion/")
async def fastapi_distribute_demand_to_region(network: str, demand: float, region: str, type: str) -> ChangeSet: