优化 app/native/wndb/__init__.py 按域分组导入和注释

This commit is contained in:
2026-03-09 15:24:08 +08:00
parent 747b4cd229
commit 78978c6931
+337 -46
View File
@@ -1,46 +1,128 @@
from .project_backup import list_project, have_project, create_project, delete_project, clean_project
"""`app.native.wndb` 的公共 API 门面。
调用建议:
- 推荐使用模块方式导入,保持调用点清晰:
`import app.native.wndb as wndb`
- 典型流程:
1) 项目生命周期:`open_project(...)` / `close_project(...)`
2) 模型数据读写:`get_*`, `set_*`, `add_*`, `delete_*`
3) 持久化与恢复:`take_snapshot(...)`, `execute_undo()`, `restore(...)`
该文件刻意保持平铺导出,以兼容历史调用。
"""
# -----------------------------------------------------------------------------
# 项目生命周期与 INP 导入导出
# -----------------------------------------------------------------------------
from .project_backup import (
list_project,
have_project,
create_project,
delete_project,
clean_project,
)
from .project_backup import is_project_open, open_project, close_project
from .project_backup import copy_project
#DingZQ, 2024-12-28, convert inp v3 to v2
# DingZQ, 2024-12-28: 将 INP v3 转换为 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
from .database import ChangeSet
from .database import get_current_operation
from .database import execute_undo, execute_redo
from .database import list_snapshot
from .database import have_snapshot, have_snapshot_for_operation, have_snapshot_for_current_operation
from .database import take_snapshot_for_operation, take_snapshot_for_current_operation, take_snapshot
from .database import (
have_snapshot,
have_snapshot_for_operation,
have_snapshot_for_current_operation,
)
from .database import (
take_snapshot_for_operation,
take_snapshot_for_current_operation,
take_snapshot,
)
from .database import update_snapshot, update_snapshot_for_current_operation
from .database import delete_snapshot, delete_snapshot_by_operation
from .database import get_operation_by_snapshot, get_snapshot_by_operation
from .database import pick_snapshot
from .database import pick_operation, sync_with_server
from .database import get_restore_operation, set_restore_operation, set_restore_operation_to_current, restore
from .database import (
get_restore_operation,
set_restore_operation,
set_restore_operation_to_current,
restore,
)
from .database import read, try_read, read_all, write
# -----------------------------------------------------------------------------
# 批处理执行与扩展数据
# -----------------------------------------------------------------------------
from .batch_exe import execute_batch_commands, execute_batch_command
from .extension_data import get_all_extension_data_keys, get_all_extension_data, get_extension_data, set_extension_data
from .extension_data import (
get_all_extension_data_keys,
get_all_extension_data,
get_extension_data,
set_extension_data,
)
# -----------------------------------------------------------------------------
# 核心网络模型基础类型与辅助方法
# -----------------------------------------------------------------------------
from .s0_base import JUNCTION, RESERVOIR, TANK, PIPE, PUMP, VALVE, PATTERN, CURVE
from .s0_base import is_node, is_junction, is_reservoir, is_tank
from .s0_base import is_link, is_pipe, is_pump, is_valve
from .s0_base import is_curve
from .s0_base import is_pattern
from .s0_base import get_nodes, get_nodes_id_and_type, get_junctions, get_reservoirs, get_tanks, get_links, get_links_id_and_type, get_pipes, get_pumps, get_valves, get_curves, get_patterns
from .s0_base import get_node_type, get_link_type, get_element_type, get_element_type_value
from .s0_base import (
get_nodes,
get_nodes_id_and_type,
get_junctions,
get_reservoirs,
get_tanks,
get_links,
get_links_id_and_type,
get_pipes,
get_pumps,
get_valves,
get_curves,
get_patterns,
)
from .s0_base import (
get_node_type,
get_link_type,
get_element_type,
get_element_type_value,
)
from .s0_base import get_node_links, get_link_nodes
from .s0_base import get_major_nodes, get_major_pipes
# -----------------------------------------------------------------------------
# EPANET 基础分段(S1-S27
# -----------------------------------------------------------------------------
from .s1_title import get_title_schema, get_title, set_title
from .s2_junctions import get_junction_schema, add_junction, get_junction, set_junction, get_all_junctions
from .s2_junctions import (
get_junction_schema,
add_junction,
get_junction,
set_junction,
get_all_junctions,
)
from .batch_api import delete_junction_cascade
from .s3_reservoirs import get_reservoir_schema, add_reservoir, get_reservoir, set_reservoir, get_all_reservoirs
from .s3_reservoirs import (
get_reservoir_schema,
add_reservoir,
get_reservoir,
set_reservoir,
get_all_reservoirs,
)
from .batch_api import delete_reservoir_cascade
from .s4_tanks import OVERFLOW_YES, OVERFLOW_NO
@@ -54,7 +136,14 @@ from .batch_api import delete_pipe_cascade
from .s6_pumps import get_pump_schema, add_pump, get_pump, set_pump, get_all_pumps
from .batch_api import delete_pump_cascade
from .s7_valves import VALVES_TYPE_PRV, VALVES_TYPE_PSV, VALVES_TYPE_PBV, VALVES_TYPE_FCV, VALVES_TYPE_TCV, VALVES_TYPE_GPV
from .s7_valves import (
VALVES_TYPE_PRV,
VALVES_TYPE_PSV,
VALVES_TYPE_PBV,
VALVES_TYPE_FCV,
VALVES_TYPE_TCV,
VALVES_TYPE_GPV,
)
from .s7_valves import get_valve_schema, add_valve, get_valve, set_valve, get_all_valves
from .batch_api import delete_valve_cascade
@@ -69,7 +158,12 @@ from .s10_status import get_status_schema, get_status, set_status
from .s11_patterns import get_pattern_schema, get_pattern, set_pattern, add_pattern
from .batch_api import delete_pattern_cascade
from .s12_curves import CURVE_TYPE_PUMP, CURVE_TYPE_EFFICIENCY, CURVE_TYPE_VOLUME, CURVE_TYPE_HEADLOSS
from .s12_curves import (
CURVE_TYPE_PUMP,
CURVE_TYPE_EFFICIENCY,
CURVE_TYPE_VOLUME,
CURVE_TYPE_HEADLOSS,
)
from .s12_curves import get_curve_schema, get_curve, set_curve, add_curve
from .batch_api import delete_curve_cascade
@@ -84,91 +178,288 @@ from .s16_emitters import get_emitter_schema, get_emitter, set_emitter
from .s17_quality import get_quality_schema, get_quality, set_quality
from .s18_sources import SOURCE_TYPE_CONCEN, SOURCE_TYPE_MASS, SOURCE_TYPE_FLOWPACED, SOURCE_TYPE_SETPOINT
from .s18_sources import get_source_schema, get_source, set_source, add_source, delete_source
from .s18_sources import (
SOURCE_TYPE_CONCEN,
SOURCE_TYPE_MASS,
SOURCE_TYPE_FLOWPACED,
SOURCE_TYPE_SETPOINT,
)
from .s18_sources import (
get_source_schema,
get_source,
set_source,
add_source,
delete_source,
)
from .s19_reactions import get_reaction_schema, get_reaction, set_reaction
from .s19_reactions import get_pipe_reaction_schema, get_pipe_reaction, set_pipe_reaction
from .s19_reactions import get_tank_reaction_schema, get_tank_reaction, set_tank_reaction
from .s19_reactions import (
get_pipe_reaction_schema,
get_pipe_reaction,
set_pipe_reaction,
)
from .s19_reactions import (
get_tank_reaction_schema,
get_tank_reaction,
set_tank_reaction,
)
from .s20_mixing import MIXING_MODEL_MIXED, MIXING_MODEL_2COMP, MIXING_MODEL_FIFO, MIXING_MODEL_LIFO
from .s20_mixing import get_mixing_schema, get_mixing, set_mixing, add_mixing, delete_mixing
from .s20_mixing import (
MIXING_MODEL_MIXED,
MIXING_MODEL_2COMP,
MIXING_MODEL_FIFO,
MIXING_MODEL_LIFO,
)
from .s20_mixing import (
get_mixing_schema,
get_mixing,
set_mixing,
add_mixing,
delete_mixing,
)
from .s21_times import TIME_STATISTIC_NONE, TIME_STATISTIC_AVERAGED, TIME_STATISTIC_MINIMUM, TIME_STATISTIC_MAXIMUM, TIME_STATISTIC_RANGE
from .s21_times import (
TIME_STATISTIC_NONE,
TIME_STATISTIC_AVERAGED,
TIME_STATISTIC_MINIMUM,
TIME_STATISTIC_MAXIMUM,
TIME_STATISTIC_RANGE,
)
from .s21_times import get_time_schema, get_time, set_time
from .s23_options_util import OPTION_UNITS_CFS, OPTION_UNITS_GPM, OPTION_UNITS_MGD, OPTION_UNITS_IMGD, OPTION_UNITS_AFD, OPTION_UNITS_LPS, OPTION_UNITS_LPM, OPTION_UNITS_MLD, OPTION_UNITS_CMH, OPTION_UNITS_CMD
from .s23_options_util import OPTION_PRESSURE_PSI, OPTION_PRESSURE_KPA, OPTION_PRESSURE_METERS
from .s23_options_util import (
OPTION_UNITS_CFS,
OPTION_UNITS_GPM,
OPTION_UNITS_MGD,
OPTION_UNITS_IMGD,
OPTION_UNITS_AFD,
OPTION_UNITS_LPS,
OPTION_UNITS_LPM,
OPTION_UNITS_MLD,
OPTION_UNITS_CMH,
OPTION_UNITS_CMD,
)
from .s23_options_util import (
OPTION_PRESSURE_PSI,
OPTION_PRESSURE_KPA,
OPTION_PRESSURE_METERS,
)
from .s23_options_util import OPTION_HEADLOSS_HW, OPTION_HEADLOSS_DW, OPTION_HEADLOSS_CM
from .s23_options_util import OPTION_UNBALANCED_STOP, OPTION_UNBALANCED_CONTINUE
from .s23_options_util import OPTION_DEMAND_MODEL_DDA, OPTION_DEMAND_MODEL_PDA
from .s23_options_util import OPTION_QUALITY_NONE, OPTION_QUALITY_CHEMICAL, OPTION_QUALITY_AGE, OPTION_QUALITY_TRACE
from .s23_options_util import (
OPTION_QUALITY_NONE,
OPTION_QUALITY_CHEMICAL,
OPTION_QUALITY_AGE,
OPTION_QUALITY_TRACE,
)
from .s23_options_util import get_option_schema, get_option
from .batch_api import set_option_ex
from .s23_options_util import OPTION_V3_FLOW_UNITS_CFS, OPTION_V3_FLOW_UNITS_GPM, OPTION_V3_FLOW_UNITS_MGD, OPTION_V3_FLOW_UNITS_IMGD, OPTION_V3_FLOW_UNITS_AFD, OPTION_V3_FLOW_UNITS_LPS, OPTION_V3_FLOW_UNITS_LPM, OPTION_V3_FLOW_UNITS_MLD, OPTION_V3_FLOW_UNITS_CMH, OPTION_V3_FLOW_UNITS_CMD
from .s23_options_util import OPTION_V3_PRESSURE_UNITS_PSI, OPTION_V3_PRESSURE_UNITS_KPA, OPTION_V3_PRESSURE_UNITS_METERS
from .s23_options_util import OPTION_V3_HEADLOSS_MODEL_HW, OPTION_V3_HEADLOSS_MODEL_DW, OPTION_V3_HEADLOSS_MODEL_CM
from .s23_options_util import OPTION_V3_STEP_SIZING_FULL, OPTION_V3_STEP_SIZING_RELAXATION, OPTION_V3_STEP_SIZING_LINESEARCH
from .s23_options_util import OPTION_V3_IF_UNBALANCED_STOP, OPTION_V3_IF_UNBALANCED_CONTINUE
from .s23_options_util import OPTION_V3_DEMAND_MODEL_FIXED, OPTION_V3_DEMAND_MODEL_CONSTRAINED, OPTION_V3_DEMAND_MODEL_POWER, OPTION_V3_DEMAND_MODEL_LOGISTIC
from .s23_options_util import OPTION_V3_LEAKAGE_MODEL_NONE, OPTION_V3_LEAKAGE_MODEL_POWER, OPTION_V3_LEAKAGE_MODEL_FAVAD
from .s23_options_util import OPTION_V3_QUALITY_MODEL_NONE, OPTION_V3_QUALITY_MODEL_CHEMICAL, OPTION_V3_QUALITY_MODEL_AGE, OPTION_V3_QUALITY_MODEL_TRACE
from .s23_options_util import OPTION_V3_QUALITY_UNITS_HRS, OPTION_V3_QUALITY_UNITS_PCNT, OPTION_V3_QUALITY_UNITS_MGL, OPTION_V3_QUALITY_UNITS_UGL
from .s23_options_util import (
OPTION_V3_FLOW_UNITS_CFS,
OPTION_V3_FLOW_UNITS_GPM,
OPTION_V3_FLOW_UNITS_MGD,
OPTION_V3_FLOW_UNITS_IMGD,
OPTION_V3_FLOW_UNITS_AFD,
OPTION_V3_FLOW_UNITS_LPS,
OPTION_V3_FLOW_UNITS_LPM,
OPTION_V3_FLOW_UNITS_MLD,
OPTION_V3_FLOW_UNITS_CMH,
OPTION_V3_FLOW_UNITS_CMD,
)
from .s23_options_util import (
OPTION_V3_PRESSURE_UNITS_PSI,
OPTION_V3_PRESSURE_UNITS_KPA,
OPTION_V3_PRESSURE_UNITS_METERS,
)
from .s23_options_util import (
OPTION_V3_HEADLOSS_MODEL_HW,
OPTION_V3_HEADLOSS_MODEL_DW,
OPTION_V3_HEADLOSS_MODEL_CM,
)
from .s23_options_util import (
OPTION_V3_STEP_SIZING_FULL,
OPTION_V3_STEP_SIZING_RELAXATION,
OPTION_V3_STEP_SIZING_LINESEARCH,
)
from .s23_options_util import (
OPTION_V3_IF_UNBALANCED_STOP,
OPTION_V3_IF_UNBALANCED_CONTINUE,
)
from .s23_options_util import (
OPTION_V3_DEMAND_MODEL_FIXED,
OPTION_V3_DEMAND_MODEL_CONSTRAINED,
OPTION_V3_DEMAND_MODEL_POWER,
OPTION_V3_DEMAND_MODEL_LOGISTIC,
)
from .s23_options_util import (
OPTION_V3_LEAKAGE_MODEL_NONE,
OPTION_V3_LEAKAGE_MODEL_POWER,
OPTION_V3_LEAKAGE_MODEL_FAVAD,
)
from .s23_options_util import (
OPTION_V3_QUALITY_MODEL_NONE,
OPTION_V3_QUALITY_MODEL_CHEMICAL,
OPTION_V3_QUALITY_MODEL_AGE,
OPTION_V3_QUALITY_MODEL_TRACE,
)
from .s23_options_util import (
OPTION_V3_QUALITY_UNITS_HRS,
OPTION_V3_QUALITY_UNITS_PCNT,
OPTION_V3_QUALITY_UNITS_MGL,
OPTION_V3_QUALITY_UNITS_UGL,
)
from .s23_options_util import get_option_v3_schema, get_option_v3
from .batch_api import set_option_v3_ex
from .s24_coordinates import get_node_coord, get_nodes_in_extent, get_links_in_extent
from .s25_vertices import get_vertex_schema, get_vertex, set_vertex, add_vertex, delete_vertex
from .s25_vertices import (
get_vertex_schema,
get_vertex,
set_vertex,
add_vertex,
delete_vertex,
)
from .s25_vertices import get_all_vertex_links, get_all_vertices
from .s26_labels import get_label_schema, get_label, set_label, add_label, delete_label
from .s27_backdrop import get_backdrop_schema, get_backdrop, set_backdrop
from .s29_scada_device import SCADA_DEVICE_TYPE_PRESSURE, SCADA_DEVICE_TYPE_DEMAND, SCADA_DEVICE_TYPE_QUALITY, SCADA_DEVICE_TYPE_LEVEL, SCADA_DEVICE_TYPE_FLOW, SCADA_DEVICE_TYPE_UNKNOWN
from .s29_scada_device import get_scada_device_schema, get_scada_device, set_scada_device, add_scada_device, delete_scada_device
# -----------------------------------------------------------------------------
# SCADA 映射与遥测实体
# -----------------------------------------------------------------------------
from .s29_scada_device import (
SCADA_DEVICE_TYPE_PRESSURE,
SCADA_DEVICE_TYPE_DEMAND,
SCADA_DEVICE_TYPE_QUALITY,
SCADA_DEVICE_TYPE_LEVEL,
SCADA_DEVICE_TYPE_FLOW,
SCADA_DEVICE_TYPE_UNKNOWN,
)
from .s29_scada_device import (
get_scada_device_schema,
get_scada_device,
set_scada_device,
add_scada_device,
delete_scada_device,
)
from .s29_scada_device import get_all_scada_device_ids, get_all_scada_devices
from .clean_api import clean_scada_device
from .s30_scada_device_data import get_scada_device_data_schema, get_scada_device_data, set_scada_device_data, add_scada_device_data, delete_scada_device_data
from .s30_scada_device_data import (
get_scada_device_data_schema,
get_scada_device_data,
set_scada_device_data,
add_scada_device_data,
delete_scada_device_data,
)
from .clean_api import clean_scada_device_data
from .s31_scada_element import SCADA_MODEL_TYPE_JUNCTION, SCADA_MODEL_TYPE_RESERVOIR, SCADA_MODEL_TYPE_TANK, SCADA_MODEL_TYPE_PIPE, SCADA_MODEL_TYPE_PUMP, SCADA_MODEL_TYPE_VALVE
from .s31_scada_element import (
SCADA_MODEL_TYPE_JUNCTION,
SCADA_MODEL_TYPE_RESERVOIR,
SCADA_MODEL_TYPE_TANK,
SCADA_MODEL_TYPE_PIPE,
SCADA_MODEL_TYPE_PUMP,
SCADA_MODEL_TYPE_VALVE,
)
from .s31_scada_element import SCADA_ELEMENT_STATUS_OFFLINE, SCADA_ELEMENT_STATUS_ONLINE
from .s31_scada_element import get_scada_element_schema, get_scada_element, set_scada_element, add_scada_element, delete_scada_element
from .s31_scada_element import (
get_scada_element_schema,
get_scada_element,
set_scada_element,
add_scada_element,
delete_scada_element,
)
from .s31_scada_element import get_all_scada_element_ids, get_all_scada_elements
from .clean_api import clean_scada_element
from .s32_region_util import get_nodes_in_boundary, get_nodes_in_region, get_links_on_region_boundary, calculate_convex_hull, calculate_boundary, inflate_boundary, inflate_region
from .s32_region import get_region_schema, get_region, set_region, add_region, delete_region
# -----------------------------------------------------------------------------
# 区域、DMA、服务分区、虚拟分区与需水分配
# -----------------------------------------------------------------------------
from .s32_region_util import (
get_nodes_in_boundary,
get_nodes_in_region,
get_links_on_region_boundary,
calculate_convex_hull,
calculate_boundary,
inflate_boundary,
inflate_region,
)
from .s32_region import (
get_region_schema,
get_region,
set_region,
add_region,
delete_region,
)
from .s33_dma_cal import PARTITION_TYPE_RB, PARTITION_TYPE_KWAY
from .s33_dma_cal import calculate_district_metering_area_for_nodes, calculate_district_metering_area_for_region, calculate_district_metering_area_for_network
from .s33_dma import get_district_metering_area_schema, get_district_metering_area, set_district_metering_area, add_district_metering_area, delete_district_metering_area
from .s33_dma_cal import (
calculate_district_metering_area_for_nodes,
calculate_district_metering_area_for_region,
calculate_district_metering_area_for_network,
)
from .s33_dma import (
get_district_metering_area_schema,
get_district_metering_area,
set_district_metering_area,
add_district_metering_area,
delete_district_metering_area,
)
from .s33_dma import get_all_district_metering_area_ids, get_all_district_metering_areas
from .s33_dma_gen import generate_district_metering_area, generate_sub_district_metering_area
from .s33_dma_gen import (
generate_district_metering_area,
generate_sub_district_metering_area,
)
from .s34_sa_cal import calculate_service_area
from .s34_sa import get_service_area_schema, get_service_area, set_service_area, add_service_area, delete_service_area
from .s34_sa import (
get_service_area_schema,
get_service_area,
set_service_area,
add_service_area,
delete_service_area,
)
from .s34_sa import get_all_service_area_ids, get_all_service_areas
from .s34_sa_gen import generate_service_area
from .s35_vd_cal import calculate_virtual_district
from .s35_vd import get_virtual_district_schema, get_virtual_district, set_virtual_district, add_virtual_district, delete_virtual_district
from .s35_vd import (
get_virtual_district_schema,
get_virtual_district,
set_virtual_district,
add_virtual_district,
delete_virtual_district,
)
from .s35_vd import get_all_virtual_district_ids, get_all_virtual_districts
from .s35_vd_gen import generate_virtual_district
from .s36_wda_cal import calculate_demand_to_nodes, calculate_demand_to_region, calculate_demand_to_network
from .s36_wda_cal import (
calculate_demand_to_nodes,
calculate_demand_to_region,
calculate_demand_to_network,
)
# -----------------------------------------------------------------------------
# 元数据与高级分析
# -----------------------------------------------------------------------------
from .s38_scada_info import get_scada_info_schema, get_scada_info, get_all_scada_info
from .s39_user import get_user_schema, get_user, get_all_users
from .s40_schema import get_scheme_schema, get_scheme, get_all_schemes
from .s41_pipe_risk_probability import get_pipe_risk_probability_now, get_pipe_risk_probability, get_network_pipe_risk_probability_now, get_pipes_risk_probability, get_pipe_risk_probability_geometries
from .s41_pipe_risk_probability import (
get_pipe_risk_probability_now,
get_pipe_risk_probability,
get_network_pipe_risk_probability_now,
get_pipes_risk_probability,
get_pipe_risk_probability_geometries,
)
from .s42_sensor_placement import get_all_sensor_placements