epyt-flow 0.14.2__py3-none-any.whl → 0.15.0__py3-none-any.whl
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.
- epyt_flow/VERSION +1 -1
- epyt_flow/__init__.py +0 -37
- epyt_flow/data/benchmarks/battledim.py +2 -2
- epyt_flow/data/benchmarks/leakdb.py +12 -9
- epyt_flow/gym/scenario_control_env.py +32 -33
- epyt_flow/simulation/events/actuator_events.py +24 -18
- epyt_flow/simulation/events/leakages.py +59 -57
- epyt_flow/simulation/events/quality_events.py +21 -30
- epyt_flow/simulation/events/system_event.py +3 -3
- epyt_flow/simulation/scada/complex_control.py +14 -12
- epyt_flow/simulation/scada/custom_control.py +22 -21
- epyt_flow/simulation/scada/scada_data.py +107 -104
- epyt_flow/simulation/scada/simple_control.py +38 -31
- epyt_flow/simulation/scenario_simulator.py +368 -395
- epyt_flow/simulation/sensor_config.py +31 -32
- epyt_flow/topology.py +11 -10
- epyt_flow/uncertainty/model_uncertainty.py +146 -122
- {epyt_flow-0.14.2.dist-info → epyt_flow-0.15.0.dist-info}/METADATA +14 -19
- epyt_flow-0.15.0.dist-info/RECORD +65 -0
- epyt_flow/EPANET/EPANET/SRC_engines/AUTHORS +0 -28
- epyt_flow/EPANET/EPANET/SRC_engines/LICENSE +0 -21
- epyt_flow/EPANET/EPANET/SRC_engines/Readme_SRC_Engines.txt +0 -18
- epyt_flow/EPANET/EPANET/SRC_engines/enumstxt.h +0 -134
- epyt_flow/EPANET/EPANET/SRC_engines/epanet.c +0 -5578
- epyt_flow/EPANET/EPANET/SRC_engines/epanet2.c +0 -865
- epyt_flow/EPANET/EPANET/SRC_engines/epanet2.def +0 -131
- epyt_flow/EPANET/EPANET/SRC_engines/errors.dat +0 -73
- epyt_flow/EPANET/EPANET/SRC_engines/funcs.h +0 -193
- epyt_flow/EPANET/EPANET/SRC_engines/genmmd.c +0 -1000
- epyt_flow/EPANET/EPANET/SRC_engines/hash.c +0 -177
- epyt_flow/EPANET/EPANET/SRC_engines/hash.h +0 -28
- epyt_flow/EPANET/EPANET/SRC_engines/hydcoeffs.c +0 -1151
- epyt_flow/EPANET/EPANET/SRC_engines/hydraul.c +0 -1117
- epyt_flow/EPANET/EPANET/SRC_engines/hydsolver.c +0 -720
- epyt_flow/EPANET/EPANET/SRC_engines/hydstatus.c +0 -476
- epyt_flow/EPANET/EPANET/SRC_engines/include/epanet2.h +0 -431
- epyt_flow/EPANET/EPANET/SRC_engines/include/epanet2_2.h +0 -1786
- epyt_flow/EPANET/EPANET/SRC_engines/include/epanet2_enums.h +0 -468
- epyt_flow/EPANET/EPANET/SRC_engines/inpfile.c +0 -810
- epyt_flow/EPANET/EPANET/SRC_engines/input1.c +0 -707
- epyt_flow/EPANET/EPANET/SRC_engines/input2.c +0 -864
- epyt_flow/EPANET/EPANET/SRC_engines/input3.c +0 -2170
- epyt_flow/EPANET/EPANET/SRC_engines/main.c +0 -93
- epyt_flow/EPANET/EPANET/SRC_engines/mempool.c +0 -142
- epyt_flow/EPANET/EPANET/SRC_engines/mempool.h +0 -24
- epyt_flow/EPANET/EPANET/SRC_engines/output.c +0 -852
- epyt_flow/EPANET/EPANET/SRC_engines/project.c +0 -1359
- epyt_flow/EPANET/EPANET/SRC_engines/quality.c +0 -685
- epyt_flow/EPANET/EPANET/SRC_engines/qualreact.c +0 -743
- epyt_flow/EPANET/EPANET/SRC_engines/qualroute.c +0 -694
- epyt_flow/EPANET/EPANET/SRC_engines/report.c +0 -1489
- epyt_flow/EPANET/EPANET/SRC_engines/rules.c +0 -1362
- epyt_flow/EPANET/EPANET/SRC_engines/smatrix.c +0 -871
- epyt_flow/EPANET/EPANET/SRC_engines/text.h +0 -497
- epyt_flow/EPANET/EPANET/SRC_engines/types.h +0 -874
- epyt_flow/EPANET/EPANET-MSX/MSX_Updates.txt +0 -53
- epyt_flow/EPANET/EPANET-MSX/Src/dispersion.h +0 -27
- epyt_flow/EPANET/EPANET-MSX/Src/hash.c +0 -107
- epyt_flow/EPANET/EPANET-MSX/Src/hash.h +0 -28
- epyt_flow/EPANET/EPANET-MSX/Src/include/epanetmsx.h +0 -102
- epyt_flow/EPANET/EPANET-MSX/Src/include/epanetmsx_export.h +0 -42
- epyt_flow/EPANET/EPANET-MSX/Src/mathexpr.c +0 -937
- epyt_flow/EPANET/EPANET-MSX/Src/mathexpr.h +0 -39
- epyt_flow/EPANET/EPANET-MSX/Src/mempool.c +0 -204
- epyt_flow/EPANET/EPANET-MSX/Src/mempool.h +0 -24
- epyt_flow/EPANET/EPANET-MSX/Src/msxchem.c +0 -1285
- epyt_flow/EPANET/EPANET-MSX/Src/msxcompiler.c +0 -368
- epyt_flow/EPANET/EPANET-MSX/Src/msxdict.h +0 -42
- epyt_flow/EPANET/EPANET-MSX/Src/msxdispersion.c +0 -586
- epyt_flow/EPANET/EPANET-MSX/Src/msxerr.c +0 -116
- epyt_flow/EPANET/EPANET-MSX/Src/msxfile.c +0 -260
- epyt_flow/EPANET/EPANET-MSX/Src/msxfuncs.c +0 -175
- epyt_flow/EPANET/EPANET-MSX/Src/msxfuncs.h +0 -35
- epyt_flow/EPANET/EPANET-MSX/Src/msxinp.c +0 -1504
- epyt_flow/EPANET/EPANET-MSX/Src/msxout.c +0 -401
- epyt_flow/EPANET/EPANET-MSX/Src/msxproj.c +0 -791
- epyt_flow/EPANET/EPANET-MSX/Src/msxqual.c +0 -2010
- epyt_flow/EPANET/EPANET-MSX/Src/msxrpt.c +0 -400
- epyt_flow/EPANET/EPANET-MSX/Src/msxtank.c +0 -422
- epyt_flow/EPANET/EPANET-MSX/Src/msxtoolkit.c +0 -1164
- epyt_flow/EPANET/EPANET-MSX/Src/msxtypes.h +0 -551
- epyt_flow/EPANET/EPANET-MSX/Src/msxutils.c +0 -524
- epyt_flow/EPANET/EPANET-MSX/Src/msxutils.h +0 -56
- epyt_flow/EPANET/EPANET-MSX/Src/newton.c +0 -158
- epyt_flow/EPANET/EPANET-MSX/Src/newton.h +0 -34
- epyt_flow/EPANET/EPANET-MSX/Src/rk5.c +0 -287
- epyt_flow/EPANET/EPANET-MSX/Src/rk5.h +0 -39
- epyt_flow/EPANET/EPANET-MSX/Src/ros2.c +0 -293
- epyt_flow/EPANET/EPANET-MSX/Src/ros2.h +0 -35
- epyt_flow/EPANET/EPANET-MSX/Src/smatrix.c +0 -816
- epyt_flow/EPANET/EPANET-MSX/Src/smatrix.h +0 -29
- epyt_flow/EPANET/EPANET-MSX/readme.txt +0 -14
- epyt_flow/EPANET/compile_linux.sh +0 -4
- epyt_flow/EPANET/compile_macos.sh +0 -4
- epyt_flow/simulation/backend/__init__.py +0 -1
- epyt_flow/simulation/backend/my_epyt.py +0 -1101
- epyt_flow-0.14.2.dist-info/RECORD +0 -142
- {epyt_flow-0.14.2.dist-info → epyt_flow-0.15.0.dist-info}/WHEEL +0 -0
- {epyt_flow-0.14.2.dist-info → epyt_flow-0.15.0.dist-info}/licenses/LICENSE +0 -0
- {epyt_flow-0.14.2.dist-info → epyt_flow-0.15.0.dist-info}/top_level.txt +0 -0
|
@@ -1,1101 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
This module contains a wrapper for EPyT that allows a better error/warning handling.
|
|
3
|
-
"""
|
|
4
|
-
import warnings
|
|
5
|
-
from ctypes import byref, create_string_buffer
|
|
6
|
-
from epyt import epanet
|
|
7
|
-
from epyt.epanet import epanetapi, epanetmsxapi
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class EPyT(epanet):
|
|
11
|
-
"""
|
|
12
|
-
Wrapper for the `epyt.epanet <https://epanet-python-toolkit-epyt.readthedocs.io/en/latest/api.html#epyt.epanet.epanet>`_ class.
|
|
13
|
-
This wrapper adds functionalities for getting error/warning messages after each
|
|
14
|
-
EPANET function call.
|
|
15
|
-
"""
|
|
16
|
-
def __init__(self, *argv, version=2.2, ph=False, loadfile=False, customlib=None,
|
|
17
|
-
display_msg=True, display_warnings=True):
|
|
18
|
-
super().__init__(*argv, version=version, ph=ph, loadfile=loadfile, customlib=customlib,
|
|
19
|
-
display_msg=display_msg, display_warnings=display_warnings)
|
|
20
|
-
|
|
21
|
-
# Inject custom EPANET API wrapper
|
|
22
|
-
if self.api._ph is not None:
|
|
23
|
-
self.api.ENdeleteproject()
|
|
24
|
-
else:
|
|
25
|
-
self.api.ENclose()
|
|
26
|
-
|
|
27
|
-
self.api = MyEpanetAPI(version=version, ph=ph, customlib=customlib)
|
|
28
|
-
|
|
29
|
-
self.api.ENopen(self.TempInpFile, self.RptTempfile, self.BinTempfile)
|
|
30
|
-
|
|
31
|
-
self.LibEPANETpath = self.api.LibEPANETpath
|
|
32
|
-
self.LibEPANET = self.api.LibEPANET
|
|
33
|
-
|
|
34
|
-
def _logFunctionError(self, function_name):
|
|
35
|
-
# Do not print warnings.
|
|
36
|
-
pass
|
|
37
|
-
|
|
38
|
-
def loadMSXFile(self, msxname, customMSXlib=None, ignore_properties=False):
|
|
39
|
-
super().loadMSXFile(msxname, customMSXlib, ignore_properties)
|
|
40
|
-
|
|
41
|
-
# Inject custom EPANET-MSX API wrapper
|
|
42
|
-
self.msx.MSXclose()
|
|
43
|
-
self.msx = MyEpanetMsxAPI(msxfile=self.MSXTempFile, customMSXlib=customMSXlib,
|
|
44
|
-
display_msg=self.display_msg,
|
|
45
|
-
msxrealfile=self.MSXFile)
|
|
46
|
-
return self.msx
|
|
47
|
-
|
|
48
|
-
def set_error_handling(self, raise_exception_on_error: bool, warn_on_error: bool,
|
|
49
|
-
ignore_error_codes: list[int]) -> None:
|
|
50
|
-
"""
|
|
51
|
-
Specifies the behavior in the case of an error/warning --
|
|
52
|
-
i.e. should an exception or warning be raised or not?
|
|
53
|
-
|
|
54
|
-
Parameters
|
|
55
|
-
----------
|
|
56
|
-
raise_exception_on_error : `bool`
|
|
57
|
-
True if an exception should be raise, False otherwise.
|
|
58
|
-
warn_on_error : `bool`
|
|
59
|
-
True if a warning should be generated, False otherwise.
|
|
60
|
-
ignore_error_codes : `list[int]`
|
|
61
|
-
List of error codes that should be ignored -- i.e., no exception or
|
|
62
|
-
warning will be generated.
|
|
63
|
-
"""
|
|
64
|
-
self.api.set_error_handling(raise_exception_on_error, warn_on_error, ignore_error_codes)
|
|
65
|
-
if self.msx is not None:
|
|
66
|
-
self.msx.set_error_handling(raise_exception_on_error, warn_on_error, ignore_error_codes)
|
|
67
|
-
|
|
68
|
-
def was_last_func_successful(self) -> bool:
|
|
69
|
-
"""
|
|
70
|
-
Checks if the last EPANET function call was successful.
|
|
71
|
-
|
|
72
|
-
Returns
|
|
73
|
-
-------
|
|
74
|
-
`bool`
|
|
75
|
-
True if there was no error/warning, False otherwise.
|
|
76
|
-
"""
|
|
77
|
-
return self.api.was_last_func_successful()
|
|
78
|
-
|
|
79
|
-
def get_last_error_desc(self) -> str:
|
|
80
|
-
"""
|
|
81
|
-
Returns a description of the last error/warning if any occured.
|
|
82
|
-
Returns None if there was no error/warning.
|
|
83
|
-
|
|
84
|
-
Returns
|
|
85
|
-
-------
|
|
86
|
-
`str`
|
|
87
|
-
Error/warning description.
|
|
88
|
-
"""
|
|
89
|
-
return self.api.get_last_error_desc()
|
|
90
|
-
|
|
91
|
-
def get_last_error_code(self) -> int:
|
|
92
|
-
"""
|
|
93
|
-
Returns the code of the last error/warning if any occured.
|
|
94
|
-
Returns 0 if there was no error/warning.
|
|
95
|
-
|
|
96
|
-
Refer to the `EPANET documentation <http://wateranalytics.org/EPANET/group___warning_codes.html>`_
|
|
97
|
-
for a list of all possible warning codes and their meanings.
|
|
98
|
-
|
|
99
|
-
Returns
|
|
100
|
-
-------
|
|
101
|
-
`int`
|
|
102
|
-
Error/warning code.
|
|
103
|
-
"""
|
|
104
|
-
return self.api.get_last_error_code()
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
class MyEpanetMsxAPI(epanetmsxapi):
|
|
108
|
-
"""
|
|
109
|
-
Wrapper for the `epyt.epanet.epanetmsxapi <https://epanet-python-toolkit-epyt.readthedocs.io/en/latest/api.html#epyt.epanet.epanetmsxapi>`_
|
|
110
|
-
class adding error/warning storage functionalities.
|
|
111
|
-
"""
|
|
112
|
-
def __init__(self, raise_on_error: bool = True, warn_on_error: bool = False,
|
|
113
|
-
ignore_error_codes: list[int] = [], **kwds):
|
|
114
|
-
self.__raise_on_error = raise_on_error
|
|
115
|
-
self.__warn_on_error = warn_on_error
|
|
116
|
-
self.__ignore_error_codes = ignore_error_codes
|
|
117
|
-
self.__last_error_code = None
|
|
118
|
-
self.__last_error_desc = None
|
|
119
|
-
|
|
120
|
-
super().__init__(**kwds)
|
|
121
|
-
|
|
122
|
-
def _logFunctionError(self, function_name):
|
|
123
|
-
# Do not print warnings.
|
|
124
|
-
pass
|
|
125
|
-
|
|
126
|
-
def set_error_handling(self, raise_on_error: bool, warn_on_error: bool,
|
|
127
|
-
ignore_error_codes: list[int] = []) -> None:
|
|
128
|
-
"""
|
|
129
|
-
Specifies the behavior in the case of an error/warning --
|
|
130
|
-
i.e. should an exception or warning be raised or not?
|
|
131
|
-
|
|
132
|
-
Parameters
|
|
133
|
-
----------
|
|
134
|
-
raise_exception_on_error : `bool`
|
|
135
|
-
True if an exception should be raise, False otherwise.
|
|
136
|
-
warn_on_error : `bool`
|
|
137
|
-
True if a warning should be generated, False otherwise.
|
|
138
|
-
ignore_error_codes : `list[int]`
|
|
139
|
-
List of error codes that should be ignored -- i.e., no exception or
|
|
140
|
-
warning will be generated.
|
|
141
|
-
"""
|
|
142
|
-
self.__raise_on_error = raise_on_error
|
|
143
|
-
self.__warn_on_error = warn_on_error
|
|
144
|
-
self.__ignore_error_codes = ignore_error_codes
|
|
145
|
-
|
|
146
|
-
def get_last_error_desc(self) -> str:
|
|
147
|
-
"""
|
|
148
|
-
Returns the description of the last EPANET-MSX error/warning (if any).
|
|
149
|
-
|
|
150
|
-
Returns
|
|
151
|
-
-------
|
|
152
|
-
`str`
|
|
153
|
-
Description of the last error/warning. None, if there was no error/warning.
|
|
154
|
-
"""
|
|
155
|
-
return self.__last_error_desc
|
|
156
|
-
|
|
157
|
-
def get_last_error_code(self) -> int:
|
|
158
|
-
"""
|
|
159
|
-
Returns the code of the last EPANET-MSX error/warnning (if any).
|
|
160
|
-
|
|
161
|
-
Refer to the EPANET-MSX user manual for a list of all possible warning codes
|
|
162
|
-
and their meanings.
|
|
163
|
-
|
|
164
|
-
Returns
|
|
165
|
-
-------
|
|
166
|
-
`int`
|
|
167
|
-
Code of the last error/warning. 0, if there was no error/warning.
|
|
168
|
-
"""
|
|
169
|
-
return self.__last_error_code
|
|
170
|
-
|
|
171
|
-
def was_last_func_successful(self) -> bool:
|
|
172
|
-
"""
|
|
173
|
-
Checks if the last EPANET-MSX call was successful or not.
|
|
174
|
-
|
|
175
|
-
Parameters
|
|
176
|
-
----------
|
|
177
|
-
`bool`
|
|
178
|
-
True if the last EPANET-MSX call returned an error/warning, False otherwise.
|
|
179
|
-
"""
|
|
180
|
-
return self.__last_error_desc is None
|
|
181
|
-
|
|
182
|
-
def _reset_error(self) -> None:
|
|
183
|
-
self.__last_error_code = 0
|
|
184
|
-
self.__last_error_desc = None
|
|
185
|
-
|
|
186
|
-
def MSXerror(self, err_code: int) -> None:
|
|
187
|
-
error_desc = create_string_buffer(256)
|
|
188
|
-
self.msx_error(err_code, error_desc, 256)
|
|
189
|
-
self.__last_error_code = err_code
|
|
190
|
-
self.__last_error_desc = error_desc.value.decode()
|
|
191
|
-
|
|
192
|
-
if self.__last_error_code not in self.__ignore_error_codes:
|
|
193
|
-
if self.__warn_on_error:
|
|
194
|
-
warnings.warn(self.__last_error_desc, RuntimeWarning)
|
|
195
|
-
if self.__raise_on_error:
|
|
196
|
-
raise RuntimeError(self.__last_error_desc)
|
|
197
|
-
|
|
198
|
-
def MSXopen(self, msxfile, msxrealfile):
|
|
199
|
-
self._reset_error()
|
|
200
|
-
super().MSXopen(msxfile, msxrealfile)
|
|
201
|
-
|
|
202
|
-
def MSXclose(self):
|
|
203
|
-
self._reset_error()
|
|
204
|
-
return super().MSXclose()
|
|
205
|
-
|
|
206
|
-
def MSXgetindex(self, obj_type, obj_id):
|
|
207
|
-
self._reset_error()
|
|
208
|
-
return super().MSXgetindex(obj_type, obj_id)
|
|
209
|
-
|
|
210
|
-
def MSXgetID(self, obj_type, index, id_len=80):
|
|
211
|
-
self._reset_error()
|
|
212
|
-
return super().MSXgetID(obj_type, index, id_len)
|
|
213
|
-
|
|
214
|
-
def MSXgetIDlen(self, obj_type, index):
|
|
215
|
-
self._reset_error()
|
|
216
|
-
return super().MSXgetIDlen(obj_type, index)
|
|
217
|
-
|
|
218
|
-
def MSXgetspecies(self, index):
|
|
219
|
-
self._reset_error()
|
|
220
|
-
return super().MSXgetspecies(index)
|
|
221
|
-
|
|
222
|
-
def MSXgetcount(self, code):
|
|
223
|
-
self._reset_error()
|
|
224
|
-
return super().MSXgetcount(code)
|
|
225
|
-
|
|
226
|
-
def MSXgetconstant(self, index):
|
|
227
|
-
self._reset_error()
|
|
228
|
-
return super().MSXgetconstant(index)
|
|
229
|
-
|
|
230
|
-
def MSXgetparameter(self, obj_type, index, param):
|
|
231
|
-
self._reset_error()
|
|
232
|
-
return super().MSXgetparameter(obj_type, index, param)
|
|
233
|
-
|
|
234
|
-
def MSXgetpatternlen(self, pattern_index):
|
|
235
|
-
self._reset_error()
|
|
236
|
-
return super().MSXgetpatternlen(pattern_index)
|
|
237
|
-
|
|
238
|
-
def MSXgetpatternvalue(self, pattern_index, period):
|
|
239
|
-
self._reset_error()
|
|
240
|
-
return super().MSXgetpatternvalue(pattern_index, period)
|
|
241
|
-
|
|
242
|
-
def MSXgetinitqual(self, obj_type, index, species):
|
|
243
|
-
self._reset_error()
|
|
244
|
-
return super().MSXgetinitqual(obj_type, index, species)
|
|
245
|
-
|
|
246
|
-
def MSXgetsource(self, node_index, species_index):
|
|
247
|
-
self._reset_error()
|
|
248
|
-
return super().MSXgetsource(node_index, species_index)
|
|
249
|
-
|
|
250
|
-
def MSXsaveoutfile(self, filename):
|
|
251
|
-
self._reset_error()
|
|
252
|
-
super().MSXsaveoutfile(filename)
|
|
253
|
-
|
|
254
|
-
def MSXsavemsxfile(self, filename):
|
|
255
|
-
self._reset_error()
|
|
256
|
-
super().MSXsavemsxfile(filename)
|
|
257
|
-
|
|
258
|
-
def MSXsetconstant(self, index, value):
|
|
259
|
-
self._reset_error()
|
|
260
|
-
super().MSXsetconstant(index, value)
|
|
261
|
-
|
|
262
|
-
def MSXsetparameter(self, obj_type, index, param, value):
|
|
263
|
-
self._reset_error()
|
|
264
|
-
super().MSXsetparameter(obj_type, index, param, value)
|
|
265
|
-
|
|
266
|
-
def MSXsetinitqual(self, obj_type, index, species, value):
|
|
267
|
-
self._reset_error()
|
|
268
|
-
super().MSXsetinitqual(obj_type, index, species, value)
|
|
269
|
-
|
|
270
|
-
def MSXsetpattern(self, index, factors, nfactors):
|
|
271
|
-
self._reset_error()
|
|
272
|
-
super().MSXsetpattern(index, factors, nfactors)
|
|
273
|
-
|
|
274
|
-
def MSXsetpatternvalue(self, pattern, period, value):
|
|
275
|
-
self._reset_error()
|
|
276
|
-
super().MSXsetpatternvalue(pattern, period, value)
|
|
277
|
-
|
|
278
|
-
def MSXsolveQ(self):
|
|
279
|
-
self._reset_error()
|
|
280
|
-
super().MSXsolveQ()
|
|
281
|
-
|
|
282
|
-
def MSXsolveH(self):
|
|
283
|
-
self._reset_error()
|
|
284
|
-
super().MSXsolveH()
|
|
285
|
-
|
|
286
|
-
def MSXaddpattern(self, pattern_id):
|
|
287
|
-
self._reset_error()
|
|
288
|
-
super().MSXaddpattern(pattern_id)
|
|
289
|
-
|
|
290
|
-
def MSXusehydfile(self, filename):
|
|
291
|
-
self._reset_error()
|
|
292
|
-
super().MSXusehydfile(filename)
|
|
293
|
-
|
|
294
|
-
def MSXstep(self):
|
|
295
|
-
self._reset_error()
|
|
296
|
-
return super().MSXstep()
|
|
297
|
-
|
|
298
|
-
def MSXinit(self, flag):
|
|
299
|
-
self._reset_error()
|
|
300
|
-
super().MSXinit(flag)
|
|
301
|
-
|
|
302
|
-
def MSXreport(self):
|
|
303
|
-
self._reset_error()
|
|
304
|
-
super().MSXreport()
|
|
305
|
-
|
|
306
|
-
def MSXgetqual(self, type, index, species):
|
|
307
|
-
self._reset_error()
|
|
308
|
-
return super().MSXgetqual(type, index, species)
|
|
309
|
-
|
|
310
|
-
def MSXsetsource(self, node, species, type, level, pat):
|
|
311
|
-
self._reset_error()
|
|
312
|
-
super().MSXsetsource(node, species, type, level, pat)
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
class MyEpanetAPI(epanetapi):
|
|
316
|
-
"""
|
|
317
|
-
Wrapper for the `epyt.epanet.epanetapi <https://epanet-python-toolkit-epyt.readthedocs.io/en/latest/api.html#epyt.epanet.epanetapi>`_
|
|
318
|
-
class adding error/warning storage functionalities.
|
|
319
|
-
"""
|
|
320
|
-
def __init__(self, raise_on_error: bool = True, warn_on_error: bool = False,
|
|
321
|
-
ignore_error_codes: list[int] = [], **kwds):
|
|
322
|
-
self.__raise_on_error = raise_on_error
|
|
323
|
-
self.__warn_on_error = warn_on_error
|
|
324
|
-
self.__ignore_error_codes = ignore_error_codes
|
|
325
|
-
self.__last_error_code = None
|
|
326
|
-
self.__last_error_desc = None
|
|
327
|
-
|
|
328
|
-
super().__init__(**kwds)
|
|
329
|
-
|
|
330
|
-
def set_error_handling(self, raise_on_error: bool, warn_on_error: bool,
|
|
331
|
-
ignore_error_codes: list[int] = []) -> None:
|
|
332
|
-
"""
|
|
333
|
-
Specifies the behavior in the case of an error/warning --
|
|
334
|
-
i.e. should an exception or warning be raised or not?
|
|
335
|
-
|
|
336
|
-
Parameters
|
|
337
|
-
----------
|
|
338
|
-
raise_exception_on_error : `bool`
|
|
339
|
-
True if an exception should be raise, False otherwise.
|
|
340
|
-
warn_on_error : `bool`
|
|
341
|
-
True if a warning should be generated, False otherwise.
|
|
342
|
-
ignore_error_codes : `list[int]`
|
|
343
|
-
List of error codes that should be ignored -- i.e., no exception or
|
|
344
|
-
warning will be generated.
|
|
345
|
-
"""
|
|
346
|
-
self.__raise_on_error = raise_on_error
|
|
347
|
-
self.__warn_on_error = warn_on_error
|
|
348
|
-
self.__ignore_error_codes = ignore_error_codes
|
|
349
|
-
|
|
350
|
-
def get_last_error_desc(self) -> str:
|
|
351
|
-
"""
|
|
352
|
-
Returns the description of the last EPANET error/warning (if any).
|
|
353
|
-
|
|
354
|
-
Returns
|
|
355
|
-
-------
|
|
356
|
-
`str`
|
|
357
|
-
Description of the last error/warning. None, if there was no error/warning.
|
|
358
|
-
"""
|
|
359
|
-
return self.__last_error_desc
|
|
360
|
-
|
|
361
|
-
def get_last_error_code(self) -> int:
|
|
362
|
-
"""
|
|
363
|
-
Returns the code of the last EPANET error/warnning (if any).
|
|
364
|
-
|
|
365
|
-
Refer to the `EPANET documentation <http://wateranalytics.org/EPANET/group___warning_codes.html>`_
|
|
366
|
-
for a list of all possible warning codes and their meanings.
|
|
367
|
-
|
|
368
|
-
Returns
|
|
369
|
-
-------
|
|
370
|
-
`int`
|
|
371
|
-
Code of the last error/warning. 0, if there was no error/warning.
|
|
372
|
-
"""
|
|
373
|
-
return self.__last_error_code
|
|
374
|
-
|
|
375
|
-
def was_last_func_successful(self) -> bool:
|
|
376
|
-
"""
|
|
377
|
-
Checks if the last EPANET call was successful or not.
|
|
378
|
-
|
|
379
|
-
Parameters
|
|
380
|
-
----------
|
|
381
|
-
`bool`
|
|
382
|
-
True if the last EPANET call returned an error/warning, False otherwise.
|
|
383
|
-
"""
|
|
384
|
-
return self.__last_error_desc is None
|
|
385
|
-
|
|
386
|
-
def _reset_error(self) -> None:
|
|
387
|
-
self.__last_error_code = 0
|
|
388
|
-
self.__last_error_desc = None
|
|
389
|
-
|
|
390
|
-
def _check_for_error(self) -> None:
|
|
391
|
-
if self.errcode != 0:
|
|
392
|
-
error_desc = create_string_buffer(150)
|
|
393
|
-
self._lib.ENgeterror(self.errcode, byref(error_desc), 150)
|
|
394
|
-
|
|
395
|
-
self.__last_error_code = self.errcode
|
|
396
|
-
self.__last_error_desc = error_desc.value.decode()
|
|
397
|
-
|
|
398
|
-
if self.__last_error_code not in self.__ignore_error_codes:
|
|
399
|
-
if self.__warn_on_error:
|
|
400
|
-
warnings.warn(self.__last_error_desc, RuntimeWarning)
|
|
401
|
-
if self.__raise_on_error:
|
|
402
|
-
raise RuntimeError(self.__last_error_desc)
|
|
403
|
-
|
|
404
|
-
def ENepanet(self, inpfile="", rptfile="", binfile=""):
|
|
405
|
-
self._reset_error()
|
|
406
|
-
super().ENepanet(inpfile, rptfile, binfile)
|
|
407
|
-
self._check_for_error()
|
|
408
|
-
|
|
409
|
-
def ENaddcontrol(self, conttype, lindex, setting, nindex, level):
|
|
410
|
-
self._reset_error()
|
|
411
|
-
r = super().ENaddcontrol(conttype, lindex, setting, nindex, level)
|
|
412
|
-
self._check_for_error()
|
|
413
|
-
return r
|
|
414
|
-
|
|
415
|
-
def ENaddcurve(self, cid):
|
|
416
|
-
self._reset_error()
|
|
417
|
-
super().ENaddcurve(cid)
|
|
418
|
-
self._check_for_error()
|
|
419
|
-
|
|
420
|
-
def ENadddemand(self, nodeIndex, baseDemand, demandPattern, demandName):
|
|
421
|
-
self._reset_error()
|
|
422
|
-
super().ENadddemand(nodeIndex, baseDemand, demandPattern, demandName)
|
|
423
|
-
self._check_for_error()
|
|
424
|
-
|
|
425
|
-
def ENaddlink(self, linkid, linktype, fromnode, tonode):
|
|
426
|
-
self._reset_error()
|
|
427
|
-
r = super().ENaddlink(linkid, linktype, fromnode, tonode)
|
|
428
|
-
self._check_for_error()
|
|
429
|
-
return r
|
|
430
|
-
|
|
431
|
-
def ENaddnode(self, nodeid, nodetype):
|
|
432
|
-
self._reset_error()
|
|
433
|
-
r = super().ENaddnode(nodeid, nodetype)
|
|
434
|
-
self._check_for_error()
|
|
435
|
-
return r
|
|
436
|
-
|
|
437
|
-
def ENaddpattern(self, patid):
|
|
438
|
-
self._reset_error()
|
|
439
|
-
super().ENaddpattern(patid)
|
|
440
|
-
self._check_for_error()
|
|
441
|
-
|
|
442
|
-
def ENaddrule(self, rule):
|
|
443
|
-
self._reset_error()
|
|
444
|
-
super().ENaddrule(rule)
|
|
445
|
-
self._check_for_error()
|
|
446
|
-
|
|
447
|
-
def ENclearreport(self):
|
|
448
|
-
self._reset_error()
|
|
449
|
-
super().ENclearreport()
|
|
450
|
-
self._check_for_error()
|
|
451
|
-
|
|
452
|
-
def ENclose(self):
|
|
453
|
-
self._reset_error()
|
|
454
|
-
super().ENclose()
|
|
455
|
-
self._check_for_error()
|
|
456
|
-
|
|
457
|
-
def ENcloseH(self):
|
|
458
|
-
self._reset_error()
|
|
459
|
-
super().ENcloseH()
|
|
460
|
-
self._check_for_error()
|
|
461
|
-
|
|
462
|
-
def ENcloseQ(self):
|
|
463
|
-
self._reset_error()
|
|
464
|
-
super().ENcloseQ()
|
|
465
|
-
self._check_for_error()
|
|
466
|
-
|
|
467
|
-
def ENcopyreport(self, filename):
|
|
468
|
-
self._reset_error()
|
|
469
|
-
super().ENcopyreport(filename)
|
|
470
|
-
self._check_for_error()
|
|
471
|
-
|
|
472
|
-
def ENcreateproject(self):#
|
|
473
|
-
self._reset_error()
|
|
474
|
-
super().ENcreateproject()
|
|
475
|
-
self._check_for_error()
|
|
476
|
-
|
|
477
|
-
def ENdeletecontrol(self, index):
|
|
478
|
-
self._reset_error()
|
|
479
|
-
super().ENdeletecontrol(index)
|
|
480
|
-
self._check_for_error()
|
|
481
|
-
|
|
482
|
-
def ENdeletecurve(self, indexCurve):
|
|
483
|
-
self._reset_error()
|
|
484
|
-
super().ENdeletecurve(indexCurve)
|
|
485
|
-
self._check_for_error()
|
|
486
|
-
|
|
487
|
-
def ENdeletedemand(self, nodeIndex, demandIndex):
|
|
488
|
-
self._reset_error()
|
|
489
|
-
super().ENdeletedemand(nodeIndex, demandIndex)
|
|
490
|
-
self._check_for_error()
|
|
491
|
-
|
|
492
|
-
def ENdeletelink(self, indexLink, condition):
|
|
493
|
-
self._reset_error()
|
|
494
|
-
super().ENdeletelink(indexLink, condition)
|
|
495
|
-
self._check_for_error()
|
|
496
|
-
|
|
497
|
-
def ENdeletenode(self, indexNode, condition):
|
|
498
|
-
self._reset_error()
|
|
499
|
-
super().ENdeletenode(indexNode, condition)
|
|
500
|
-
self._check_for_error()
|
|
501
|
-
|
|
502
|
-
def ENdeletepattern(self, indexPat):
|
|
503
|
-
self._reset_error()
|
|
504
|
-
super().ENdeletepattern(indexPat)
|
|
505
|
-
self._check_for_error()
|
|
506
|
-
|
|
507
|
-
def ENdeleteproject(self):
|
|
508
|
-
self._reset_error()
|
|
509
|
-
super().ENdeleteproject()
|
|
510
|
-
self._check_for_error()
|
|
511
|
-
|
|
512
|
-
def ENdeleterule(self, index):
|
|
513
|
-
self._reset_error()
|
|
514
|
-
super().ENdeleterule(index)
|
|
515
|
-
self._check_for_error()
|
|
516
|
-
|
|
517
|
-
def ENgetaveragepatternvalue(self, index):
|
|
518
|
-
self._reset_error()
|
|
519
|
-
r = super().ENgetaveragepatternvalue(index)
|
|
520
|
-
self._check_for_error()
|
|
521
|
-
return r
|
|
522
|
-
|
|
523
|
-
def ENgetbasedemand(self, index, numdemands):
|
|
524
|
-
self._reset_error()
|
|
525
|
-
r = super().ENgetbasedemand(index, numdemands)
|
|
526
|
-
self._check_for_error()
|
|
527
|
-
return r
|
|
528
|
-
|
|
529
|
-
def ENgetcomment(self, object_, index):
|
|
530
|
-
self._reset_error()
|
|
531
|
-
r = super().ENgetcomment(object_, index)
|
|
532
|
-
self._check_for_error()
|
|
533
|
-
return r
|
|
534
|
-
|
|
535
|
-
def ENgetcontrol(self, cindex):
|
|
536
|
-
self._reset_error()
|
|
537
|
-
r = super().ENgetcontrol(cindex)
|
|
538
|
-
self._check_for_error()
|
|
539
|
-
return r
|
|
540
|
-
|
|
541
|
-
def ENgetcoord(self, index):
|
|
542
|
-
self._reset_error()
|
|
543
|
-
r = super().ENgetcoord(index)
|
|
544
|
-
self._check_for_error()
|
|
545
|
-
return r
|
|
546
|
-
|
|
547
|
-
def ENgetcount(self, countcode):
|
|
548
|
-
self._reset_error()
|
|
549
|
-
r = super().ENgetcount(countcode)
|
|
550
|
-
self._check_for_error()
|
|
551
|
-
return r
|
|
552
|
-
|
|
553
|
-
def ENgetcurve(self, index):
|
|
554
|
-
self._reset_error()
|
|
555
|
-
r = super().ENgetcurve(index)
|
|
556
|
-
self._check_for_error()
|
|
557
|
-
return r
|
|
558
|
-
|
|
559
|
-
def ENgetcurveid(self, index):
|
|
560
|
-
self._reset_error()
|
|
561
|
-
r = super().ENgetcurveid(index)
|
|
562
|
-
self._check_for_error()
|
|
563
|
-
return r
|
|
564
|
-
|
|
565
|
-
def ENgetcurveindex(self, Id):
|
|
566
|
-
self._reset_error()
|
|
567
|
-
r = super().ENgetcurveindex(Id)
|
|
568
|
-
self._check_for_error()
|
|
569
|
-
return r
|
|
570
|
-
|
|
571
|
-
def ENgetcurvelen(self, index):
|
|
572
|
-
self._reset_error()
|
|
573
|
-
r = super().ENgetcurvelen(index)
|
|
574
|
-
self._check_for_error()
|
|
575
|
-
return r
|
|
576
|
-
|
|
577
|
-
def ENgetcurvetype(self, index):
|
|
578
|
-
self._reset_error()
|
|
579
|
-
r = super().ENgetcurvetype(index)
|
|
580
|
-
self._check_for_error()
|
|
581
|
-
return r
|
|
582
|
-
|
|
583
|
-
def ENgetcurvevalue(self, index, period):
|
|
584
|
-
self._reset_error()
|
|
585
|
-
r = super().ENgetcurvevalue(index, period)
|
|
586
|
-
self._check_for_error()
|
|
587
|
-
return r
|
|
588
|
-
|
|
589
|
-
def ENgetdemandindex(self, nodeindex, demandName):
|
|
590
|
-
self._reset_error()
|
|
591
|
-
r = super().ENgetdemandindex(nodeindex, demandName)
|
|
592
|
-
self._check_for_error()
|
|
593
|
-
return r
|
|
594
|
-
|
|
595
|
-
def ENgetdemandmodel(self):
|
|
596
|
-
self._reset_error()
|
|
597
|
-
r = super().ENgetdemandmodel()
|
|
598
|
-
self._check_for_error()
|
|
599
|
-
return r
|
|
600
|
-
|
|
601
|
-
def ENgetdemandname(self, node_index, demand_index):
|
|
602
|
-
self._reset_error()
|
|
603
|
-
r = super().ENgetdemandname(node_index, demand_index)
|
|
604
|
-
self._check_for_error()
|
|
605
|
-
return r
|
|
606
|
-
|
|
607
|
-
def ENgetdemandpattern(self, index, numdemands):
|
|
608
|
-
self._reset_error()
|
|
609
|
-
r = super().ENgetdemandpattern(index,numdemands)
|
|
610
|
-
self._check_for_error()
|
|
611
|
-
return r
|
|
612
|
-
|
|
613
|
-
def ENgetelseaction(self, ruleIndex, actionIndex):
|
|
614
|
-
self._reset_error()
|
|
615
|
-
r = super().ENgetelseaction(ruleIndex, actionIndex)
|
|
616
|
-
self._check_for_error()
|
|
617
|
-
return r
|
|
618
|
-
|
|
619
|
-
def ENgetflowunits(self):
|
|
620
|
-
self._reset_error()
|
|
621
|
-
r = super().ENgetflowunits()
|
|
622
|
-
self._check_for_error()
|
|
623
|
-
return r
|
|
624
|
-
|
|
625
|
-
def ENgetheadcurveindex(self, pumpindex):
|
|
626
|
-
self._reset_error()
|
|
627
|
-
r = super().ENgetheadcurveindex(pumpindex)
|
|
628
|
-
self._check_for_error()
|
|
629
|
-
return r
|
|
630
|
-
|
|
631
|
-
def ENgetlinkid(self, index):
|
|
632
|
-
self._reset_error()
|
|
633
|
-
r = super().ENgetlinkid(index)
|
|
634
|
-
self._check_for_error()
|
|
635
|
-
return r
|
|
636
|
-
|
|
637
|
-
def ENgetlinkindex(self, Id):
|
|
638
|
-
self._reset_error()
|
|
639
|
-
r = super().ENgetlinkindex(Id)
|
|
640
|
-
self._check_for_error()
|
|
641
|
-
return r
|
|
642
|
-
|
|
643
|
-
def ENgetlinknodes(self, index):
|
|
644
|
-
self._reset_error()
|
|
645
|
-
r = super().ENgetlinknodes(index)
|
|
646
|
-
self._check_for_error()
|
|
647
|
-
return r
|
|
648
|
-
|
|
649
|
-
def ENgetlinktype(self, index):
|
|
650
|
-
self._reset_error()
|
|
651
|
-
r = super().ENgetlinktype(index)
|
|
652
|
-
self._check_for_error()
|
|
653
|
-
return r
|
|
654
|
-
|
|
655
|
-
def ENgetlinkvalue(self, index, paramcode):
|
|
656
|
-
self._reset_error()
|
|
657
|
-
r = super().ENgetlinkvalue(index, paramcode)
|
|
658
|
-
self._check_for_error()
|
|
659
|
-
return r
|
|
660
|
-
|
|
661
|
-
def ENgetnodeid(self, index):
|
|
662
|
-
self._reset_error()
|
|
663
|
-
r = super().ENgetnodeid(index)
|
|
664
|
-
self._check_for_error()
|
|
665
|
-
return r
|
|
666
|
-
|
|
667
|
-
def ENgetnodeindex(self, Id):
|
|
668
|
-
self._reset_error()
|
|
669
|
-
r = super().ENgetnodeindex(Id)
|
|
670
|
-
self._check_for_error()
|
|
671
|
-
return r
|
|
672
|
-
|
|
673
|
-
def ENgetnodetype(self, index):
|
|
674
|
-
self._reset_error()
|
|
675
|
-
r = super().ENgetnodetype(index)
|
|
676
|
-
self._check_for_error()
|
|
677
|
-
return r
|
|
678
|
-
|
|
679
|
-
def ENgetnodevalue(self, index, code_p):
|
|
680
|
-
self._reset_error()
|
|
681
|
-
r = super().ENgetnodevalue(index, code_p)
|
|
682
|
-
self._check_for_error()
|
|
683
|
-
return r
|
|
684
|
-
|
|
685
|
-
def ENgetnumdemands(self, index):
|
|
686
|
-
self._reset_error()
|
|
687
|
-
r = super().ENgetnumdemands(index)
|
|
688
|
-
self._check_for_error()
|
|
689
|
-
return r
|
|
690
|
-
|
|
691
|
-
def ENgetoption(self, optioncode):
|
|
692
|
-
self._reset_error()
|
|
693
|
-
r = super().ENgetoption(optioncode)
|
|
694
|
-
self._check_for_error()
|
|
695
|
-
return r
|
|
696
|
-
|
|
697
|
-
def ENgetpatternid(self, index):
|
|
698
|
-
self._reset_error()
|
|
699
|
-
r = super().ENgetpatternid(index)
|
|
700
|
-
self._check_for_error()
|
|
701
|
-
return r
|
|
702
|
-
|
|
703
|
-
def ENgetpatternindex(self, Id):
|
|
704
|
-
self._reset_error()
|
|
705
|
-
r = super().ENgetpatternindex(Id)
|
|
706
|
-
self._check_for_error()
|
|
707
|
-
return r
|
|
708
|
-
|
|
709
|
-
def ENgetpatternlen(self, index):
|
|
710
|
-
self._reset_error()
|
|
711
|
-
r = super().ENgetpatternlen(index)
|
|
712
|
-
self._check_for_error()
|
|
713
|
-
return r
|
|
714
|
-
|
|
715
|
-
def ENgetpatternvalue(self, index, period):
|
|
716
|
-
self._reset_error()
|
|
717
|
-
r = super().ENgetpatternvalue(index, period)
|
|
718
|
-
self._check_for_error()
|
|
719
|
-
return r
|
|
720
|
-
|
|
721
|
-
def ENgetpremise(self, ruleIndex, premiseIndex):
|
|
722
|
-
self._reset_error()
|
|
723
|
-
r = super().ENgetpremise(ruleIndex, premiseIndex)
|
|
724
|
-
self._check_for_error()
|
|
725
|
-
return r
|
|
726
|
-
|
|
727
|
-
def ENgetpumptype(self, index):
|
|
728
|
-
self._reset_error()
|
|
729
|
-
r = super().ENgetpumptype(index)
|
|
730
|
-
self._check_for_error()
|
|
731
|
-
return r
|
|
732
|
-
|
|
733
|
-
def ENgetqualinfo(self):
|
|
734
|
-
self._reset_error()
|
|
735
|
-
r = super().ENgetqualinfo()
|
|
736
|
-
self._check_for_error()
|
|
737
|
-
return r
|
|
738
|
-
|
|
739
|
-
def ENgetqualtype(self):
|
|
740
|
-
self._reset_error()
|
|
741
|
-
r = super().ENgetqualtype()
|
|
742
|
-
self._check_for_error()
|
|
743
|
-
return r
|
|
744
|
-
|
|
745
|
-
def ENgetresultindex(self, objecttype, index):
|
|
746
|
-
self._reset_error()
|
|
747
|
-
r = super().ENgetresultindex(objecttype, index)
|
|
748
|
-
self._check_for_error()
|
|
749
|
-
return r
|
|
750
|
-
|
|
751
|
-
def ENgetrule(self, index):
|
|
752
|
-
self._reset_error()
|
|
753
|
-
r = super().ENgetrule(index)
|
|
754
|
-
self._check_for_error()
|
|
755
|
-
return r
|
|
756
|
-
|
|
757
|
-
def ENgetruleID(self, index):
|
|
758
|
-
self._reset_error()
|
|
759
|
-
r = super().ENgetruleID(index)
|
|
760
|
-
self._check_for_error()
|
|
761
|
-
return r
|
|
762
|
-
|
|
763
|
-
def ENgetstatistic(self, code):
|
|
764
|
-
self._reset_error()
|
|
765
|
-
r = super().ENgetstatistic(code)
|
|
766
|
-
self._check_for_error()
|
|
767
|
-
return r
|
|
768
|
-
|
|
769
|
-
def ENgetthenaction(self, ruleIndex, actionIndex):
|
|
770
|
-
self._reset_error()
|
|
771
|
-
r = super().ENgetthenaction(ruleIndex, actionIndex)
|
|
772
|
-
self._check_for_error()
|
|
773
|
-
return r
|
|
774
|
-
|
|
775
|
-
def ENgettimeparam(self, paramcode):
|
|
776
|
-
self._reset_error()
|
|
777
|
-
r = super().ENgettimeparam(paramcode)
|
|
778
|
-
self._check_for_error()
|
|
779
|
-
return r
|
|
780
|
-
|
|
781
|
-
def ENgettitle(self):
|
|
782
|
-
self._reset_error()
|
|
783
|
-
r = super().ENgettitle()
|
|
784
|
-
self._check_for_error()
|
|
785
|
-
return r
|
|
786
|
-
|
|
787
|
-
def ENgetversion(self):
|
|
788
|
-
self._reset_error()
|
|
789
|
-
r = super().ENgetversion()
|
|
790
|
-
self._check_for_error()
|
|
791
|
-
return r
|
|
792
|
-
|
|
793
|
-
def ENgetvertex(self, index, vertex):
|
|
794
|
-
self._reset_error()
|
|
795
|
-
r = super().ENgetvertex(index, vertex)
|
|
796
|
-
self._check_for_error()
|
|
797
|
-
return r
|
|
798
|
-
|
|
799
|
-
def ENgetvertexcount(self, index):
|
|
800
|
-
self._reset_error()
|
|
801
|
-
r = super().ENgetvertexcount(index)
|
|
802
|
-
self._check_for_error()
|
|
803
|
-
return r
|
|
804
|
-
|
|
805
|
-
def ENinit(self, unitsType, headLossType):
|
|
806
|
-
self._reset_error()
|
|
807
|
-
super().ENinit(unitsType, headLossType)
|
|
808
|
-
self._check_for_error()
|
|
809
|
-
|
|
810
|
-
def ENinitH(self, flag):
|
|
811
|
-
self._reset_error()
|
|
812
|
-
super().ENinitH(flag)
|
|
813
|
-
self._check_for_error()
|
|
814
|
-
|
|
815
|
-
def ENinitQ(self, saveflag):
|
|
816
|
-
self._reset_error()
|
|
817
|
-
super().ENinitQ(saveflag)
|
|
818
|
-
self._check_for_error()
|
|
819
|
-
|
|
820
|
-
def ENnextH(self):
|
|
821
|
-
self._reset_error()
|
|
822
|
-
r = super().ENnextH()
|
|
823
|
-
self._check_for_error()
|
|
824
|
-
return r
|
|
825
|
-
|
|
826
|
-
def ENnextQ(self):
|
|
827
|
-
self._reset_error()
|
|
828
|
-
r = super().ENnextQ()
|
|
829
|
-
self._check_for_error()
|
|
830
|
-
return r
|
|
831
|
-
|
|
832
|
-
def ENopen(self, inpname=None, repname=None, binname=None):
|
|
833
|
-
self._reset_error()
|
|
834
|
-
super().ENopen(inpname, repname, binname)
|
|
835
|
-
self._check_for_error()
|
|
836
|
-
|
|
837
|
-
def ENopenH(self):
|
|
838
|
-
self._reset_error()
|
|
839
|
-
super().ENopenH()
|
|
840
|
-
self._check_for_error()
|
|
841
|
-
|
|
842
|
-
def ENopenQ(self):
|
|
843
|
-
self._reset_error()
|
|
844
|
-
super().ENopenQ()
|
|
845
|
-
self._check_for_error()
|
|
846
|
-
|
|
847
|
-
def ENreport(self):
|
|
848
|
-
self._reset_error()
|
|
849
|
-
super().ENreport()
|
|
850
|
-
self._check_for_error()
|
|
851
|
-
|
|
852
|
-
def ENresetreport(self):
|
|
853
|
-
self._reset_error()
|
|
854
|
-
super().ENresetreport()
|
|
855
|
-
self._check_for_error()
|
|
856
|
-
|
|
857
|
-
def ENrunH(self):
|
|
858
|
-
self._reset_error()
|
|
859
|
-
r = super().ENrunH()
|
|
860
|
-
self._check_for_error()
|
|
861
|
-
return r
|
|
862
|
-
|
|
863
|
-
def ENrunQ(self):
|
|
864
|
-
self._reset_error()
|
|
865
|
-
r = super().ENrunQ()
|
|
866
|
-
self._check_for_error()
|
|
867
|
-
return r
|
|
868
|
-
|
|
869
|
-
def ENsaveH(self):
|
|
870
|
-
self._reset_error()
|
|
871
|
-
super().ENsaveH()
|
|
872
|
-
self._check_for_error()
|
|
873
|
-
|
|
874
|
-
def ENsavehydfile(self, fname):
|
|
875
|
-
self._reset_error()
|
|
876
|
-
super().ENsavehydfile(fname)
|
|
877
|
-
self._check_for_error()
|
|
878
|
-
|
|
879
|
-
def ENsaveinpfile(self, inpname):
|
|
880
|
-
self._reset_error()
|
|
881
|
-
super().ENsaveinpfile(inpname)
|
|
882
|
-
self._check_for_error()
|
|
883
|
-
|
|
884
|
-
def ENsetbasedemand(self, index, demandIdx, value):
|
|
885
|
-
self._reset_error()
|
|
886
|
-
super().ENsetbasedemand(index, demandIdx, value)
|
|
887
|
-
self._check_for_error()
|
|
888
|
-
|
|
889
|
-
def ENsetcomment(self, object_, index, comment):
|
|
890
|
-
self._reset_error()
|
|
891
|
-
super().ENsetcomment(object_, index, comment)
|
|
892
|
-
self._check_for_error()
|
|
893
|
-
|
|
894
|
-
def ENsetcontrol(self, cindex, ctype, lindex, setting, nindex, level):
|
|
895
|
-
self._reset_error()
|
|
896
|
-
super().ENsetcontrol(cindex, ctype, lindex, setting, nindex, level)
|
|
897
|
-
self._check_for_error()
|
|
898
|
-
|
|
899
|
-
def ENsetcoord(self, index, x, y):
|
|
900
|
-
self._reset_error()
|
|
901
|
-
super().ENsetcoord(index, x, y)
|
|
902
|
-
self._check_for_error()
|
|
903
|
-
|
|
904
|
-
def ENsetcurve(self, index, x, y, nfactors):
|
|
905
|
-
self._reset_error()
|
|
906
|
-
super().ENsetcurve(index, x, y, nfactors)
|
|
907
|
-
self._check_for_error()
|
|
908
|
-
|
|
909
|
-
def ENsetcurveid(self, index, Id):
|
|
910
|
-
self._reset_error()
|
|
911
|
-
super().ENsetcurveid(index, Id)
|
|
912
|
-
self._check_for_error()
|
|
913
|
-
|
|
914
|
-
def ENsetcurvevalue(self, index, pnt, x, y):
|
|
915
|
-
self._reset_error()
|
|
916
|
-
super().ENsetcurvevalue(index, pnt, x, y)
|
|
917
|
-
self._check_for_error()
|
|
918
|
-
|
|
919
|
-
def ENsetdemandmodel(self, Type, pmin, preq, pexp):
|
|
920
|
-
self._reset_error()
|
|
921
|
-
super().ENsetdemandmodel(Type, pmin, preq, pexp)
|
|
922
|
-
self._check_for_error()
|
|
923
|
-
|
|
924
|
-
def ENsetdemandname(self, node_index, demand_index, demand_name):
|
|
925
|
-
self._reset_error()
|
|
926
|
-
super().ENsetdemandname(node_index, demand_index, demand_name)
|
|
927
|
-
self._check_for_error()
|
|
928
|
-
|
|
929
|
-
def ENsetdemandpattern(self, index, demandIdx, patInd):
|
|
930
|
-
self._reset_error()
|
|
931
|
-
super().ENsetdemandpattern(index, demandIdx, patInd)
|
|
932
|
-
self._check_for_error()
|
|
933
|
-
|
|
934
|
-
def ENsetelseaction(self, ruleIndex, actionIndex, linkIndex, status, setting):
|
|
935
|
-
self._reset_error()
|
|
936
|
-
super().ENsetelseaction(ruleIndex, actionIndex, linkIndex, status, setting)
|
|
937
|
-
self._check_for_error()
|
|
938
|
-
|
|
939
|
-
def ENsetflowunits(self, code):
|
|
940
|
-
self._reset_error()
|
|
941
|
-
super().ENsetflowunits(code)
|
|
942
|
-
self._check_for_error()
|
|
943
|
-
|
|
944
|
-
def ENsetheadcurveindex(self, pumpindex, curveindex):
|
|
945
|
-
self._reset_error()
|
|
946
|
-
super().ENsetheadcurveindex(pumpindex, curveindex)
|
|
947
|
-
self._check_for_error()
|
|
948
|
-
|
|
949
|
-
def ENsetjuncdata(self, index, elev, dmnd, dmndpat):
|
|
950
|
-
self._reset_error()
|
|
951
|
-
super().ENsetjuncdata(index, elev, dmnd, dmndpat)
|
|
952
|
-
self._check_for_error()
|
|
953
|
-
|
|
954
|
-
def ENsetlinkid(self, index, newid):
|
|
955
|
-
self._reset_error()
|
|
956
|
-
super().ENsetlinkid(index, newid)
|
|
957
|
-
self._check_for_error()
|
|
958
|
-
|
|
959
|
-
def ENsetlinknodes(self, index, startnode, endnode):
|
|
960
|
-
self._reset_error()
|
|
961
|
-
super().ENsetlinknodes(index, startnode, endnode)
|
|
962
|
-
self._check_for_error()
|
|
963
|
-
|
|
964
|
-
def ENsetlinktype(self, indexLink, paramcode, actionCode):
|
|
965
|
-
self._reset_error()
|
|
966
|
-
r = super().ENsetlinktype(indexLink, paramcode, actionCode)
|
|
967
|
-
self._check_for_error()
|
|
968
|
-
return r
|
|
969
|
-
|
|
970
|
-
def ENsetlinkvalue(self, index, paramcode, value):
|
|
971
|
-
self._reset_error()
|
|
972
|
-
super().ENsetlinkvalue(index, paramcode, value)
|
|
973
|
-
self._check_for_error()
|
|
974
|
-
|
|
975
|
-
def ENsetnodeid(self, index, newid):
|
|
976
|
-
self._reset_error()
|
|
977
|
-
super().ENsetnodeid(index, newid)
|
|
978
|
-
self._check_for_error()
|
|
979
|
-
|
|
980
|
-
def ENsetnodevalue(self, index, paramcode, value):
|
|
981
|
-
self._reset_error()
|
|
982
|
-
super().ENsetnodevalue(index, paramcode, value)
|
|
983
|
-
self._check_for_error()
|
|
984
|
-
|
|
985
|
-
def ENsetoption(self, optioncode, value):
|
|
986
|
-
self._reset_error()
|
|
987
|
-
super().ENsetoption(optioncode, value)
|
|
988
|
-
self._check_for_error()
|
|
989
|
-
|
|
990
|
-
def ENsetpattern(self, index, factors, nfactors):
|
|
991
|
-
self._reset_error()
|
|
992
|
-
super().ENsetpattern(index, factors, nfactors)
|
|
993
|
-
self._check_for_error()
|
|
994
|
-
|
|
995
|
-
def ENsetpatternid(self, index, Id):
|
|
996
|
-
self._reset_error()
|
|
997
|
-
super().ENsetpatternid(index, Id)
|
|
998
|
-
self._check_for_error()
|
|
999
|
-
|
|
1000
|
-
def ENsetpatternvalue(self, index, period, value):
|
|
1001
|
-
self._reset_error()
|
|
1002
|
-
super().ENsetpatternvalue(index, period, value)
|
|
1003
|
-
self._check_for_error()
|
|
1004
|
-
|
|
1005
|
-
def ENsetpipedata(self, index, length, diam, rough, mloss):
|
|
1006
|
-
self._reset_error()
|
|
1007
|
-
super().ENsetpipedata(index, length, diam, rough, mloss)
|
|
1008
|
-
self._check_for_error()
|
|
1009
|
-
|
|
1010
|
-
def ENsetpremise(self, ruleIndex, premiseIndex, logop, object_, objIndex, variable,
|
|
1011
|
-
relop, status, value):
|
|
1012
|
-
self._reset_error()
|
|
1013
|
-
super().ENsetpremise(ruleIndex, premiseIndex, logop, object_, objIndex, variable,
|
|
1014
|
-
relop, status, value)
|
|
1015
|
-
self._check_for_error()
|
|
1016
|
-
|
|
1017
|
-
def ENsetpremiseindex(self, ruleIndex, premiseIndex, objIndex):
|
|
1018
|
-
self._reset_error()
|
|
1019
|
-
super().ENsetpremiseindex(ruleIndex, premiseIndex, objIndex)
|
|
1020
|
-
self._check_for_error()
|
|
1021
|
-
|
|
1022
|
-
def ENsetpremisestatus(self, ruleIndex, premiseIndex, status):
|
|
1023
|
-
self._reset_error()
|
|
1024
|
-
super().ENsetpremisestatus(ruleIndex, premiseIndex, status)
|
|
1025
|
-
self._check_for_error()
|
|
1026
|
-
|
|
1027
|
-
def ENsetpremisevalue(self, ruleIndex, premiseIndex, value):
|
|
1028
|
-
self._reset_error()
|
|
1029
|
-
super().ENsetpremisevalue(ruleIndex, premiseIndex, value)
|
|
1030
|
-
self._check_for_error()
|
|
1031
|
-
|
|
1032
|
-
def ENsetqualtype(self, qualcode, chemname, chemunits, tracenode):
|
|
1033
|
-
self._reset_error()
|
|
1034
|
-
super().ENsetqualtype(qualcode, chemname, chemunits, tracenode)
|
|
1035
|
-
self._check_for_error()
|
|
1036
|
-
|
|
1037
|
-
def ENsetreport(self, command):
|
|
1038
|
-
self._reset_error()
|
|
1039
|
-
super().ENsetreport(command)
|
|
1040
|
-
self._check_for_error()
|
|
1041
|
-
|
|
1042
|
-
def ENsetrulepriority(self, ruleIndex, priority):
|
|
1043
|
-
self._reset_error()
|
|
1044
|
-
super().ENsetrulepriority(ruleIndex, priority)
|
|
1045
|
-
self._check_for_error()
|
|
1046
|
-
|
|
1047
|
-
def ENsetstatusreport(self, statuslevel):
|
|
1048
|
-
self._reset_error()
|
|
1049
|
-
super().ENsetstatusreport(statuslevel)
|
|
1050
|
-
self._check_for_error()
|
|
1051
|
-
|
|
1052
|
-
def ENsettankdata(self, index, elev, initlvl, minlvl, maxlvl, diam, minvol, volcurve):
|
|
1053
|
-
self._reset_error()
|
|
1054
|
-
super().ENsettankdata(index, elev, initlvl, minlvl, maxlvl, diam, minvol, volcurve)
|
|
1055
|
-
self._check_for_error()
|
|
1056
|
-
|
|
1057
|
-
def ENsetthenaction(self, ruleIndex, actionIndex, linkIndex, status, setting):
|
|
1058
|
-
self._reset_error()
|
|
1059
|
-
super().ENsetthenaction(ruleIndex, actionIndex, linkIndex, status, setting)
|
|
1060
|
-
self._check_for_error()
|
|
1061
|
-
|
|
1062
|
-
def ENsettimeparam(self, paramcode, timevalue):
|
|
1063
|
-
self._reset_error()
|
|
1064
|
-
super().ENsettimeparam(paramcode, timevalue)
|
|
1065
|
-
self._check_for_error()
|
|
1066
|
-
|
|
1067
|
-
def ENsettitle(self, line1, line2, line3):
|
|
1068
|
-
self._reset_error()
|
|
1069
|
-
super().ENsettitle(line1, line2, line3)
|
|
1070
|
-
self._check_for_error()
|
|
1071
|
-
|
|
1072
|
-
def ENsetvertices(self, index, x, y, vertex):
|
|
1073
|
-
self._reset_error()
|
|
1074
|
-
super().ENsetvertices(index, x, y, vertex)
|
|
1075
|
-
self._check_for_error()
|
|
1076
|
-
|
|
1077
|
-
def ENsolveH(self):
|
|
1078
|
-
self._reset_error()
|
|
1079
|
-
super().ENsolveH()
|
|
1080
|
-
self._check_for_error()
|
|
1081
|
-
|
|
1082
|
-
def ENsolveQ(self):
|
|
1083
|
-
self._reset_error()
|
|
1084
|
-
super().ENsolveQ()
|
|
1085
|
-
self._check_for_error()
|
|
1086
|
-
|
|
1087
|
-
def ENstepQ(self):
|
|
1088
|
-
self._reset_error()
|
|
1089
|
-
r = super().ENstepQ()
|
|
1090
|
-
self._check_for_error()
|
|
1091
|
-
return r
|
|
1092
|
-
|
|
1093
|
-
def ENusehydfile(self, hydfname):
|
|
1094
|
-
self._reset_error()
|
|
1095
|
-
super().ENusehydfile(hydfname)
|
|
1096
|
-
self._check_for_error()
|
|
1097
|
-
|
|
1098
|
-
def ENwriteline(self, line):
|
|
1099
|
-
self._reset_error()
|
|
1100
|
-
super().ENwriteline(line)
|
|
1101
|
-
self._check_for_error()
|