floodmodeller-api 0.5.3.post1__py3-none-any.whl → 0.5.5__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.
- floodmodeller_api/dat.py +140 -53
- floodmodeller_api/hydrology_plus/hydrology_plus_export.py +1 -2
- floodmodeller_api/ied.py +1 -1
- floodmodeller_api/test/test_dat.py +89 -2
- floodmodeller_api/test/test_data/All Units 4_6.DAT +0 -2
- floodmodeller_api/test/test_data/All Units 4_6.feb +0 -2
- floodmodeller_api/test/test_data/River_Bridge.dat +1453 -0
- floodmodeller_api/test/test_data/River_Bridge.gxy +221 -0
- floodmodeller_api/test/test_data/River_Bridge_DAT_expected.json +27273 -0
- floodmodeller_api/test/test_data/River_Bridge_no_gxy.dat +1453 -0
- floodmodeller_api/test/test_data/River_Bridge_no_gxy_DAT_expected.json +26853 -0
- floodmodeller_api/test/test_data/duplicate_unit_test.dat +18 -0
- floodmodeller_api/test/test_data/duplicate_unit_test_unsupported.dat +28 -0
- floodmodeller_api/test/test_data/encoding_test_cp1252.dat +0 -2
- floodmodeller_api/test/test_data/encoding_test_utf8.dat +0 -2
- floodmodeller_api/test/test_data/remove_dummy_test.dat +19 -0
- floodmodeller_api/test/test_gxy.py +98 -0
- floodmodeller_api/test/test_json.py +40 -2
- floodmodeller_api/test/test_read_file.py +3 -0
- floodmodeller_api/test/test_unit.py +12 -0
- floodmodeller_api/to_from_json.py +16 -2
- floodmodeller_api/toolbox/model_build/structure_log/structure_log.py +8 -8
- floodmodeller_api/units/_base.py +30 -0
- floodmodeller_api/units/boundaries.py +4 -1
- floodmodeller_api/units/conduits.py +1 -1
- floodmodeller_api/units/losses.py +2 -2
- floodmodeller_api/units/sections.py +36 -0
- floodmodeller_api/units/structures.py +60 -13
- floodmodeller_api/units/units.py +1 -0
- floodmodeller_api/units/unsupported.py +2 -2
- floodmodeller_api/validation/validation.py +6 -6
- floodmodeller_api/version.py +1 -1
- {floodmodeller_api-0.5.3.post1.dist-info → floodmodeller_api-0.5.5.dist-info}/METADATA +1 -1
- {floodmodeller_api-0.5.3.post1.dist-info → floodmodeller_api-0.5.5.dist-info}/RECORD +38 -29
- {floodmodeller_api-0.5.3.post1.dist-info → floodmodeller_api-0.5.5.dist-info}/WHEEL +0 -0
- {floodmodeller_api-0.5.3.post1.dist-info → floodmodeller_api-0.5.5.dist-info}/entry_points.txt +0 -0
- {floodmodeller_api-0.5.3.post1.dist-info → floodmodeller_api-0.5.5.dist-info}/licenses/LICENSE.txt +0 -0
- {floodmodeller_api-0.5.3.post1.dist-info → floodmodeller_api-0.5.5.dist-info}/top_level.txt +0 -0
|
@@ -47,6 +47,15 @@ from ._helpers import (
|
|
|
47
47
|
)
|
|
48
48
|
|
|
49
49
|
|
|
50
|
+
def _get_median_coordinate(data):
|
|
51
|
+
# trim rows that have invalid coordinates (0,0)
|
|
52
|
+
data = data[(data["Easting"] != 0) | (data["Northing"] != 0)]
|
|
53
|
+
median_coords = data[["Easting", "Northing"]].median()
|
|
54
|
+
if median_coords.isna().any():
|
|
55
|
+
return None
|
|
56
|
+
return (float(median_coords["Easting"]), float(median_coords["Northing"]))
|
|
57
|
+
|
|
58
|
+
|
|
50
59
|
class BRIDGE(Unit):
|
|
51
60
|
"""Class to hold and process BRIDGE unit type. The Bridge class supports the three main bridge sub-types in
|
|
52
61
|
Flood Modeller: Arch, USBPR1978 and Pierloss. Each of these sub-types forms a unique instance of the class
|
|
@@ -163,7 +172,7 @@ class BRIDGE(Unit):
|
|
|
163
172
|
self.comment = self._remove_unit_name(br_block[0])
|
|
164
173
|
self._subtype = self._get_first_word(br_block[1])
|
|
165
174
|
# Extends label line to be correct length before splitting to pick up blank labels
|
|
166
|
-
labels = split_n_char(f"{br_block[2]:<{4*self._label_len}}", self._label_len)
|
|
175
|
+
labels = split_n_char(f"{br_block[2]:<{4 * self._label_len}}", self._label_len)
|
|
167
176
|
self.name = labels[0]
|
|
168
177
|
self.ds_label = labels[1]
|
|
169
178
|
self.us_remote_label = labels[2]
|
|
@@ -374,7 +383,7 @@ class BRIDGE(Unit):
|
|
|
374
383
|
)
|
|
375
384
|
if self.specify_piers:
|
|
376
385
|
if self.pier_use_calibration_coeff:
|
|
377
|
-
pier_params = f
|
|
386
|
+
pier_params = f"{self.npiers:>10}{'COEFF':<10}{'':>10}{self.pier_calibration_coeff:>10.3f}"
|
|
378
387
|
else:
|
|
379
388
|
pier_params = f"{self.npiers:>10}{self.pier_shape:<10}{self.pier_faces:<10}"
|
|
380
389
|
else:
|
|
@@ -589,7 +598,7 @@ class SLUICE(Unit):
|
|
|
589
598
|
self._subtype = self._get_first_word(block[1])
|
|
590
599
|
|
|
591
600
|
# Extends label line to be correct length before splitting to pick up blank labels
|
|
592
|
-
labels = split_n_char(f"{block[2]:<{3*self._label_len}}", self._label_len)
|
|
601
|
+
labels = split_n_char(f"{block[2]:<{3 * self._label_len}}", self._label_len)
|
|
593
602
|
self.name = labels[0]
|
|
594
603
|
self.ds_label = labels[1]
|
|
595
604
|
self.remote_label = labels[2]
|
|
@@ -675,8 +684,8 @@ class SLUICE(Unit):
|
|
|
675
684
|
self.weir_length,
|
|
676
685
|
)
|
|
677
686
|
if self.subtype == "RADIAL":
|
|
678
|
-
params1 += f'
|
|
679
|
-
params1 += "FREESLUICE" if self.allow_free_flow_under else f'
|
|
687
|
+
params1 += f"{'DEGREES':<10}" if self.use_degrees else f"{'':<10}"
|
|
688
|
+
params1 += "FREESLUICE" if self.allow_free_flow_under else f"{'':<10}"
|
|
680
689
|
|
|
681
690
|
# Second parameter line
|
|
682
691
|
params2 = join_10_char(
|
|
@@ -726,7 +735,7 @@ class SLUICE(Unit):
|
|
|
726
735
|
# ADD GATES
|
|
727
736
|
block.append(
|
|
728
737
|
join_10_char(
|
|
729
|
-
f'
|
|
738
|
+
f"{'LOGICAL':<10}",
|
|
730
739
|
self.max_movement_rate,
|
|
731
740
|
self.max_setting,
|
|
732
741
|
self.min_setting,
|
|
@@ -827,7 +836,7 @@ class ORIFICE(Unit):
|
|
|
827
836
|
self.flapped = self.subtype == "FLAPPED"
|
|
828
837
|
|
|
829
838
|
# Extends label line to be correct length before splitting to pick up blank labels
|
|
830
|
-
labels = split_n_char(f"{block[2]:<{2*self._label_len}}", self._label_len)
|
|
839
|
+
labels = split_n_char(f"{block[2]:<{2 * self._label_len}}", self._label_len)
|
|
831
840
|
self.name = labels[0]
|
|
832
841
|
self.ds_label = labels[1]
|
|
833
842
|
self.comment = self._remove_unit_name(block[0])
|
|
@@ -928,7 +937,7 @@ class SPILL(Unit):
|
|
|
928
937
|
def _read(self, block):
|
|
929
938
|
"""Function to read a given SPILL block and store data as class attributes"""
|
|
930
939
|
# Extends label line to be correct length before splitting to pick up blank labels
|
|
931
|
-
labels = split_n_char(f"{block[1]:<{2*self._label_len}}", self._label_len)
|
|
940
|
+
labels = split_n_char(f"{block[1]:<{2 * self._label_len}}", self._label_len)
|
|
932
941
|
self.name = labels[0]
|
|
933
942
|
self.ds_label = labels[1]
|
|
934
943
|
self.comment = self._remove_unit_name(block[0])
|
|
@@ -984,6 +993,25 @@ class SPILL(Unit):
|
|
|
984
993
|
else pd.DataFrame([[0.0, 0.0, 0.0, 0.0]], columns=["X", "Y", "Easting", "Northing"])
|
|
985
994
|
)
|
|
986
995
|
|
|
996
|
+
@property
|
|
997
|
+
def location(self) -> tuple[float, float] | None:
|
|
998
|
+
# for SPILL units, source priority is as follows:
|
|
999
|
+
# 1. GXY location if defined
|
|
1000
|
+
# 2. median location if not (0,0)
|
|
1001
|
+
# 3. None
|
|
1002
|
+
if self._location is not None:
|
|
1003
|
+
return self._location
|
|
1004
|
+
|
|
1005
|
+
try:
|
|
1006
|
+
return _get_median_coordinate(self.data)
|
|
1007
|
+
except (ValueError, IndexError):
|
|
1008
|
+
return None
|
|
1009
|
+
|
|
1010
|
+
@location.setter
|
|
1011
|
+
def location(self, new_value: tuple[float, float] | None) -> None:
|
|
1012
|
+
msg = "Currently unit location is read-only."
|
|
1013
|
+
raise NotImplementedError(msg)
|
|
1014
|
+
|
|
987
1015
|
|
|
988
1016
|
class RNWEIR(Unit):
|
|
989
1017
|
"""Class to hold and process RNWEIR unit type
|
|
@@ -1009,7 +1037,7 @@ class RNWEIR(Unit):
|
|
|
1009
1037
|
def _read(self, block):
|
|
1010
1038
|
"""Function to read a given RNWEIR block and store data as class attributes"""
|
|
1011
1039
|
# Extends label line to be correct length before splitting to pick up blank labels
|
|
1012
|
-
labels = split_n_char(f"{block[1]:<{2*self._label_len}}", self._label_len)
|
|
1040
|
+
labels = split_n_char(f"{block[1]:<{2 * self._label_len}}", self._label_len)
|
|
1013
1041
|
self.name = labels[0]
|
|
1014
1042
|
self.ds_label = labels[1]
|
|
1015
1043
|
self.comment = self._remove_unit_name(block[0])
|
|
@@ -1110,7 +1138,7 @@ class WEIR(Unit):
|
|
|
1110
1138
|
def _read(self, block):
|
|
1111
1139
|
"""Function to read a given WEIR block and store data as class attributes"""
|
|
1112
1140
|
# Extends label line to be correct length before splitting to pick up blank labels
|
|
1113
|
-
labels = split_n_char(f"{block[1]:<{2*self._label_len}}", self._label_len)
|
|
1141
|
+
labels = split_n_char(f"{block[1]:<{2 * self._label_len}}", self._label_len)
|
|
1114
1142
|
self.name = labels[0]
|
|
1115
1143
|
self.ds_label = labels[1]
|
|
1116
1144
|
self.comment = self._remove_unit_name(block[0])
|
|
@@ -1202,7 +1230,7 @@ class CRUMP(Unit):
|
|
|
1202
1230
|
def _read(self, block):
|
|
1203
1231
|
"""Function to read a given CRUMP block and store data as class attributes"""
|
|
1204
1232
|
# Extends label line to be correct length before splitting to pick up blank labels
|
|
1205
|
-
labels = split_n_char(f"{block[1]:<{4*self._label_len}}", self._label_len)
|
|
1233
|
+
labels = split_n_char(f"{block[1]:<{4 * self._label_len}}", self._label_len)
|
|
1206
1234
|
self.name = labels[0]
|
|
1207
1235
|
self.ds_label = labels[1]
|
|
1208
1236
|
self.us_remote_label = labels[2]
|
|
@@ -1311,7 +1339,7 @@ class FLAT_V_WEIR(Unit): # noqa: N801
|
|
|
1311
1339
|
def _read(self, block):
|
|
1312
1340
|
"""Function to read a given FLAT-V WEIR block and store data as class attributes"""
|
|
1313
1341
|
# Extends label line to be correct length before splitting to pick up blank labels
|
|
1314
|
-
labels = split_n_char(f"{block[1]:<{4*self._label_len}}", self._label_len)
|
|
1342
|
+
labels = split_n_char(f"{block[1]:<{4 * self._label_len}}", self._label_len)
|
|
1315
1343
|
self.name = labels[0]
|
|
1316
1344
|
self.ds_label = labels[1]
|
|
1317
1345
|
self.us_remote_label = labels[2]
|
|
@@ -1440,7 +1468,7 @@ class OUTFALL(Unit):
|
|
|
1440
1468
|
self.flapped = self.subtype == "FLAPPED"
|
|
1441
1469
|
|
|
1442
1470
|
# Extends label line to be correct length before splitting to pick up blank labels
|
|
1443
|
-
labels = split_n_char(f"{block[2]:<{2*self._label_len}}", self._label_len)
|
|
1471
|
+
labels = split_n_char(f"{block[2]:<{2 * self._label_len}}", self._label_len)
|
|
1444
1472
|
self.name = labels[0]
|
|
1445
1473
|
self.ds_label = labels[1]
|
|
1446
1474
|
self.comment = self._remove_unit_name(block[0])
|
|
@@ -1660,3 +1688,22 @@ class FLOODPLAIN(Unit):
|
|
|
1660
1688
|
msg = f"The DataFrame must only contain columns: {self._required_columns}"
|
|
1661
1689
|
raise ValueError(msg)
|
|
1662
1690
|
self._data = new_df
|
|
1691
|
+
|
|
1692
|
+
@property
|
|
1693
|
+
def location(self) -> tuple[float, float] | None:
|
|
1694
|
+
# for FLOODPLAIN units, source priority is as follows:
|
|
1695
|
+
# 1. GXY location if defined
|
|
1696
|
+
# 2. median location if not (0,0)
|
|
1697
|
+
# 3. None
|
|
1698
|
+
if self._location is not None:
|
|
1699
|
+
return self._location
|
|
1700
|
+
|
|
1701
|
+
try:
|
|
1702
|
+
return _get_median_coordinate(self.data)
|
|
1703
|
+
except (ValueError, IndexError):
|
|
1704
|
+
return None
|
|
1705
|
+
|
|
1706
|
+
@location.setter
|
|
1707
|
+
def location(self, new_value: tuple[float, float] | None) -> None:
|
|
1708
|
+
msg = "Currently unit location is read-only."
|
|
1709
|
+
raise NotImplementedError(msg)
|
floodmodeller_api/units/units.py
CHANGED
|
@@ -89,6 +89,7 @@ UNSUPPORTED_UNIT_TYPES: dict[str, UnsupportedUnitTypes] = {
|
|
|
89
89
|
"SCWEIR": {"group": "structures", "has_subtype": False}, # sharp crested weir
|
|
90
90
|
"SYPHON": {"group": "structures", "has_subtype": False}, # syphon unit
|
|
91
91
|
"TIDBDY": {"group": "boundaries", "has_subtype": False}, # tidal
|
|
92
|
+
"APITESTDUMMY": {"group": None, "has_subtype": False}, # Made up for API testing
|
|
92
93
|
}
|
|
93
94
|
|
|
94
95
|
ALL_UNIT_TYPES = set(SUPPORTED_UNIT_TYPES.keys()).union(UNSUPPORTED_UNIT_TYPES)
|
|
@@ -29,11 +29,11 @@ class UNSUPPORTED(Unit):
|
|
|
29
29
|
self.comment = self._remove_unit_name(block[0])
|
|
30
30
|
|
|
31
31
|
if self._subtype is False:
|
|
32
|
-
self.labels = split_n_char(f"{block[1]:<{2*self._label_len}}", self._label_len)
|
|
32
|
+
self.labels = split_n_char(f"{block[1]:<{2 * self._label_len}}", self._label_len)
|
|
33
33
|
|
|
34
34
|
else:
|
|
35
35
|
self._subtype = self._get_first_word(block[1])
|
|
36
|
-
self.labels = split_n_char(f"{block[2]:<{2*self._label_len}}", self._label_len)
|
|
36
|
+
self.labels = split_n_char(f"{block[2]:<{2 * self._label_len}}", self._label_len)
|
|
37
37
|
|
|
38
38
|
if self.labels[1] != "":
|
|
39
39
|
self.ds_label = self.labels[1]
|
|
@@ -46,12 +46,12 @@ def _validate_unit(unit, urban=False):
|
|
|
46
46
|
|
|
47
47
|
def _validate_parameter(param, value): # noqa: C901, PLR0911, PLR0912
|
|
48
48
|
if param["type"] == "type-match":
|
|
49
|
-
return isinstance(value, param["options"]), f
|
|
49
|
+
return isinstance(value, param["options"]), f"-> Expected: {param['options']}"
|
|
50
50
|
|
|
51
51
|
if param["type"] == "value-match":
|
|
52
52
|
if isinstance(value, str):
|
|
53
|
-
return value.upper() in param["options"], f
|
|
54
|
-
return value in param["options"], f
|
|
53
|
+
return value.upper() in param["options"], f"-> Expected: {param['options']}"
|
|
54
|
+
return value in param["options"], f"-> Expected: {param['options']}"
|
|
55
55
|
|
|
56
56
|
if param["type"] == "end-value-match":
|
|
57
57
|
if value.strip().upper().endswith(tuple(param["options"])):
|
|
@@ -70,7 +70,7 @@ def _validate_parameter(param, value): # noqa: C901, PLR0911, PLR0912
|
|
|
70
70
|
|
|
71
71
|
return (
|
|
72
72
|
type_match_result or value_match_result,
|
|
73
|
-
f
|
|
73
|
+
f"-> Expected: Type {param['options'][0]} or Value {param['options'][1]}",
|
|
74
74
|
)
|
|
75
75
|
|
|
76
76
|
if param["type"] == "value-range":
|
|
@@ -84,13 +84,13 @@ def _validate_parameter(param, value): # noqa: C901, PLR0911, PLR0912
|
|
|
84
84
|
if param["type"] == "string-length":
|
|
85
85
|
return (
|
|
86
86
|
len(value) <= param["max_length"],
|
|
87
|
-
f
|
|
87
|
+
f"-> Exceeds {param['max_length']} characters",
|
|
88
88
|
)
|
|
89
89
|
|
|
90
90
|
if param["type"] == "list-string-length":
|
|
91
91
|
return (
|
|
92
92
|
all(len(item) <= param["max_length"] for item in value),
|
|
93
|
-
f
|
|
93
|
+
f"-> Contains labels exceeding {param['max_length']} characters",
|
|
94
94
|
)
|
|
95
95
|
|
|
96
96
|
if param["type"] == "dict-match":
|
floodmodeller_api/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "0.5.
|
|
1
|
+
__version__ = "0.5.5"
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
floodmodeller_api/__init__.py,sha256=gPtU8nKJL-XHb19XuMryUpwlYNA3dlHlxl8xy69KPQA,400
|
|
2
2
|
floodmodeller_api/_base.py,sha256=XY5bxyGzppQnY1SSL9qqBK0wCmvC9t3lQnj-jfnRLBU,7971
|
|
3
3
|
floodmodeller_api/backup.py,sha256=Pdqq3VF-aiEuLOGFyoEINLc_vauhUeaNedJTa1cWDLI,11139
|
|
4
|
-
floodmodeller_api/dat.py,sha256=
|
|
4
|
+
floodmodeller_api/dat.py,sha256=IbW2HQeyF3eAfqdDTTtJYSWozOdNlpSMEbP9j0zZpHs,43155
|
|
5
5
|
floodmodeller_api/diff.py,sha256=y7W5l-03iYdm-YPcwrbHZMdlXFhBe0JEl-WahWL_pi8,5208
|
|
6
|
-
floodmodeller_api/ied.py,sha256=
|
|
6
|
+
floodmodeller_api/ied.py,sha256=vzt5Qt_2Eg_QgXPujBHByyNhr7-DuyIVf0egYc_j11E,12313
|
|
7
7
|
floodmodeller_api/ief.py,sha256=u_VYIGkBQwHY7nSXVhT0G6-UkWmlpPLzkzodi9OPrIg,31891
|
|
8
8
|
floodmodeller_api/ief_flags.py,sha256=WFP-mcIFIAf5DRpHH3BuP-zuzoIpm5wGxltTsXm0Wd8,11351
|
|
9
9
|
floodmodeller_api/inp.py,sha256=o8hh7SmzTfuWWQVYTywIVWtPBCv-VCmrRzjGwwkFPUE,11012
|
|
10
10
|
floodmodeller_api/mapping.py,sha256=eHbGYd7lFptmRvPYi4PxkvbD72w953RUb6KXKeiHTwg,3798
|
|
11
|
-
floodmodeller_api/to_from_json.py,sha256=
|
|
11
|
+
floodmodeller_api/to_from_json.py,sha256=ozdRwtmFEYNvH_tiPwhp9jHTHDFZuLT5dCoxfYRshX8,7877
|
|
12
12
|
floodmodeller_api/tool.py,sha256=Lpx4LiF_OhCqt8KiXNtOrYx1K0tSwxig2ZJcGU3gbM4,11330
|
|
13
13
|
floodmodeller_api/util.py,sha256=16oY6ia5SJjyjKYIoxa8jMw_sZ828y73NWbpe31ig-w,4590
|
|
14
|
-
floodmodeller_api/version.py,sha256=
|
|
14
|
+
floodmodeller_api/version.py,sha256=78mfpLewKVki6c9UONSUdlVme_JsN9ZwIfp4Hf4jmG0,22
|
|
15
15
|
floodmodeller_api/xml2d.py,sha256=MvH0oftUAdQRrsvxifXQOFwk0eB3sQOUX3qwU-58W6s,25698
|
|
16
16
|
floodmodeller_api/xml2d_template.py,sha256=lu0tM7-YysYniqAw331bhvulH0Ha5xKsgtIo9KTnyNw,1806
|
|
17
17
|
floodmodeller_api/xsd_backup.xml,sha256=hRZYhpNcucT7TgFPhuINMAEJOkds-lg6n7RH3b2jeq4,28430
|
|
18
18
|
floodmodeller_api/zz.py,sha256=N9KHVPKyveDKG8jxrjuR0abHKbJhrTiKuNZ1kMD4zzs,20739
|
|
19
19
|
floodmodeller_api/hydrology_plus/__init__.py,sha256=VWXZCEesqplOaj9REiEdtcm1eMIvyl1GU1iH1CnW2qM,106
|
|
20
20
|
floodmodeller_api/hydrology_plus/helper.py,sha256=8ujBHFGEh1DXBhT8OJPAS-HYp19cP2vnyEkmkpN95rs,645
|
|
21
|
-
floodmodeller_api/hydrology_plus/hydrology_plus_export.py,sha256=
|
|
21
|
+
floodmodeller_api/hydrology_plus/hydrology_plus_export.py,sha256=ZhETCp1hOAH6cWROIE-rKVIPPR5uESLpzI9J_--hHzc,15057
|
|
22
22
|
floodmodeller_api/libs/libifcoremd.dll,sha256=kef4LcAB6uORn3tjPwlLngTMQRcJ5gbY2P_U7r29lho,1341056
|
|
23
23
|
floodmodeller_api/libs/libifcoremt.so.5,sha256=vKK1nJ9OLlS6qshCh8uoOGdmJdXR1bsxVwJF8BruX-A,1259936
|
|
24
24
|
floodmodeller_api/libs/libifport.so.5,sha256=ZvM9s0pRqv0KPwTBpUG1YlDHn2DaZ8Hyr2sqdhrEaD8,176840
|
|
@@ -36,27 +36,28 @@ floodmodeller_api/test/__init__.py,sha256=H_reXbKdnzqlFWBdfJIPsgtRIXY7BxM1_p4oOv
|
|
|
36
36
|
floodmodeller_api/test/conftest.py,sha256=_qZ3fepZ6TM-IbieVDIzHt5R8u-BybUbhGAZgdFKdzA,301
|
|
37
37
|
floodmodeller_api/test/test_backup.py,sha256=_hGjDladK-EXa9uqzMlW7pJMvCldxiYdJn7dtqVQJq4,4221
|
|
38
38
|
floodmodeller_api/test/test_conveyance.py,sha256=Urw85ev6aDMfKKwL4qG0pKSutnlPP9ZlXyag538kqQI,4075
|
|
39
|
-
floodmodeller_api/test/test_dat.py,sha256=
|
|
39
|
+
floodmodeller_api/test/test_dat.py,sha256=dJPFT9b3mkFv3lVdwWBBM_1V6OnH4-m9Vwj2HimxTt8,18007
|
|
40
40
|
floodmodeller_api/test/test_flowtimeprofile.py,sha256=yB70e_1SEjfbk1mmqtGRWHt8KYs_FgFjHfdUiAGWR0g,4114
|
|
41
41
|
floodmodeller_api/test/test_fmfile.py,sha256=RTe1Rpy1sRK-_QzStrTJe7GNlC0ruURMdkoHZ2kozrY,550
|
|
42
|
+
floodmodeller_api/test/test_gxy.py,sha256=KpQhtPBcJrhxwvEFccigOjq6MXZPscWTsqo8cw0Npzs,3559
|
|
42
43
|
floodmodeller_api/test/test_hydrology_plus_export.py,sha256=USY-mqqNkmagkd_gfKGGj0ZTASQHQ30LKRBFBKTKKaw,7350
|
|
43
44
|
floodmodeller_api/test/test_ied.py,sha256=VRscnsFPdYEVHNeJpUZW-ftUKvSBl4y_NjjsLXOJ8Zo,1117
|
|
44
45
|
floodmodeller_api/test/test_ief.py,sha256=uhcljtMgyW2wAx9T7Ccq37hvQAYVZlTiSVz7kea2cXs,8377
|
|
45
46
|
floodmodeller_api/test/test_inp.py,sha256=2KYo3cgvngZrXblL8Xtqpl2bJS9nCOog3rDtqHem3gg,1493
|
|
46
47
|
floodmodeller_api/test/test_integrated_bridge.py,sha256=m81pA5AQpfVPvG8OX9NlsXD_8Z8MIoa8SIGrdmTMV28,5157
|
|
47
|
-
floodmodeller_api/test/test_json.py,sha256=
|
|
48
|
+
floodmodeller_api/test/test_json.py,sha256=wU8DL1Vt9qwa8lxVL9NpcUB7pdMcO6gmKbtAXYfkvac,5276
|
|
48
49
|
floodmodeller_api/test/test_logs_lf.py,sha256=gODj_Ysm_hf-upScPKpCDkuoTZFUgr5-FdB5hM7Y2iw,5290
|
|
49
|
-
floodmodeller_api/test/test_read_file.py,sha256=
|
|
50
|
+
floodmodeller_api/test/test_read_file.py,sha256=3gOz7sl1zQUwg6MCBDTFOcZDtldpQbWa0mi51zcFKPQ,911
|
|
50
51
|
floodmodeller_api/test/test_river.py,sha256=hZXATFm2chYr0OlJQgEsa30o__X-hhGSvKYpV7iWlQU,8620
|
|
51
52
|
floodmodeller_api/test/test_sluice.py,sha256=-t_3k2QZahJCTG3U60buUfFpUfA0ANngRABhMb8oM1w,1241
|
|
52
53
|
floodmodeller_api/test/test_tool.py,sha256=izvi9YF4hVqP57uVFkmBMD2wJvd93LeIo7XF-JZ2RZM,4245
|
|
53
54
|
floodmodeller_api/test/test_toolbox_structure_log.py,sha256=43RUYsmGIyavg5YrmXgaE1iFo35s7iKnp6cK1BzgdsY,6701
|
|
54
|
-
floodmodeller_api/test/test_unit.py,sha256=
|
|
55
|
+
floodmodeller_api/test/test_unit.py,sha256=JKEQeRcSNOI_ID2J70ggYR1EhrHxIxyD6gAZI5sXABI,2255
|
|
55
56
|
floodmodeller_api/test/test_xml2d.py,sha256=pMwNySpxuCkidFimdD-0kQSYGc3jJFdak98nUZGwmqo,5149
|
|
56
57
|
floodmodeller_api/test/test_zz.py,sha256=DVmossrrOI5fnXi8V8KWvzCmgOaZeobxcxT7G7OY53s,4414
|
|
57
58
|
floodmodeller_api/test/test_data/7082.ief,sha256=IfH9Oybu3Mwemt1WLjLF_B3_7gud4O673R4QajvUIuU,748
|
|
58
|
-
floodmodeller_api/test/test_data/All Units 4_6.DAT,sha256=
|
|
59
|
-
floodmodeller_api/test/test_data/All Units 4_6.feb,sha256=
|
|
59
|
+
floodmodeller_api/test/test_data/All Units 4_6.DAT,sha256=udlIuVTtCJXFAFKZwS3AgPjr0EuVVOa9L3sEjWU6604,32569
|
|
60
|
+
floodmodeller_api/test/test_data/All Units 4_6.feb,sha256=udlIuVTtCJXFAFKZwS3AgPjr0EuVVOa9L3sEjWU6604,32569
|
|
60
61
|
floodmodeller_api/test/test_data/BRIDGE.DAT,sha256=tJZgLmKyzErVpj0rYIQfWBUJHBsGETkMY01CJvEfGJA,31756
|
|
61
62
|
floodmodeller_api/test/test_data/BaseModel_2D_Q100.ief,sha256=BrotqABIiDabs-DmNwlrjD-u-Twud5Sz2wyArzoVq0Q,660
|
|
62
63
|
floodmodeller_api/test/test_data/Baseline_unchecked.csv,sha256=uakQjcVVCbafCOAhPuoT-Zgkf-9HyvJ4GHubB-ZzFjs,9049
|
|
@@ -104,6 +105,11 @@ floodmodeller_api/test/test_data/Linked1D2DFAST_dy.xml,sha256=Yha3kCmRCMXr7WnK0w
|
|
|
104
105
|
floodmodeller_api/test/test_data/Linked1D2D_xml_expected.json,sha256=OO4AmymX-Cx-i4v8jba7I6qlE-_lN1vxmG-NaZzE224,8427
|
|
105
106
|
floodmodeller_api/test/test_data/P3Panels_UNsteady.ief,sha256=87LgYLT7D5yPjzvSxTyyWksm2WXsfZSaK62nstIgB4g,661
|
|
106
107
|
floodmodeller_api/test/test_data/QT in dat file.ief,sha256=4v5aGqy07wzPUDWlAJZhke9m6NR_uY1sVG7rAq2U7I0,399
|
|
108
|
+
floodmodeller_api/test/test_data/River_Bridge.dat,sha256=JAPuSD_nx7XBQU6020abtLD7GVPsCm2zGsaFYplVx6Q,98552
|
|
109
|
+
floodmodeller_api/test/test_data/River_Bridge.gxy,sha256=Fdp-EsmNm-LeH6RtlBousbPGxY1Nws4-6_d23ovrWJs,3653
|
|
110
|
+
floodmodeller_api/test/test_data/River_Bridge_DAT_expected.json,sha256=3MR2oh-m1mJ-ijlyP1O738bnJxr2gN3uV-mlDDzh05Q,818759
|
|
111
|
+
floodmodeller_api/test/test_data/River_Bridge_no_gxy.dat,sha256=JAPuSD_nx7XBQU6020abtLD7GVPsCm2zGsaFYplVx6Q,98552
|
|
112
|
+
floodmodeller_api/test/test_data/River_Bridge_no_gxy_DAT_expected.json,sha256=pUINNMWyVsJeTh1jEUc87Ym6pe0VTYt0K8vwBw6QdRg,805961
|
|
107
113
|
floodmodeller_api/test/test_data/T10.ief,sha256=I9dqmRNSL1A0OC4loNkfpe2D_5Qr8gsI3jiPOUblKQQ,635
|
|
108
114
|
floodmodeller_api/test/test_data/T2.ief,sha256=JqJ_Z9jw4A8zSypv8RIrLFPjCypZSQTrjhhUMdIUlBQ,632
|
|
109
115
|
floodmodeller_api/test/test_data/T5.ief,sha256=sT4DQqb_1qjNbbZoi3A4BKPxdJB8QJN0-3n5BqcCrEI,632
|
|
@@ -120,8 +126,10 @@ floodmodeller_api/test/test_data/defaultUnits.feb,sha256=GM6Ne-6Ce3tf6BhHJm0XpPA
|
|
|
120
126
|
floodmodeller_api/test/test_data/defaultUnits.fmpx,sha256=DF9E6x38IlhwMS2ENva62kwM-kerj9FqVZAT5ozNOB0,2392
|
|
121
127
|
floodmodeller_api/test/test_data/defaultUnits.gxy,sha256=H4cuPLiGSXxr4OtgK2-q3oRfssa4BPU730hiJd7K1c8,972
|
|
122
128
|
floodmodeller_api/test/test_data/df_flows_hplus.csv,sha256=1mXiFFjw7aqdd-QsmSH8bKgwCR2hBGxkiyuHyEd97X4,7703
|
|
123
|
-
floodmodeller_api/test/test_data/
|
|
124
|
-
floodmodeller_api/test/test_data/
|
|
129
|
+
floodmodeller_api/test/test_data/duplicate_unit_test.dat,sha256=62fT73-6hiW9biH-hLQF8Q3d7Eed427O-iilVGs2oRQ,450
|
|
130
|
+
floodmodeller_api/test/test_data/duplicate_unit_test_unsupported.dat,sha256=EWEleUjncQJdBkvFklAoliFfICG3hTwdPrZdKmJJ0F4,971
|
|
131
|
+
floodmodeller_api/test/test_data/encoding_test_cp1252.dat,sha256=fwcE38umUj4cR4vCxfnhxhyxzZurfhtK9ZTWPUfvQGI,32569
|
|
132
|
+
floodmodeller_api/test/test_data/encoding_test_utf8.dat,sha256=XPcvlF6hUwGxL0V1bvME5dFZCpxda4jyNCtXPMlnme4,32570
|
|
125
133
|
floodmodeller_api/test/test_data/event_hplus.csv,sha256=C2pDyjnQs0pte2Zh6jft00Y5j6qNWzkSKrHd6Yx7iXY,523
|
|
126
134
|
floodmodeller_api/test/test_data/ex3.ief,sha256=fnNuyiIRry7-onvcTkA_IOJF2VHnCzxzB-IMb5vqXtM,361
|
|
127
135
|
floodmodeller_api/test/test_data/ex3.lf1,sha256=nM6Sh9mw1oo-FVZbqurZu_YSCODlhMGW4mEgXgoSFTg,91578
|
|
@@ -170,6 +178,7 @@ floodmodeller_api/test/test_data/network.zzx,sha256=aT1RW2nerZuCOtcvxJ8VJqL-Ly8I
|
|
|
170
178
|
floodmodeller_api/test/test_data/network_dat_expected.json,sha256=usRioM5sXeMSgwTfNCKYN4jO3E4uQu69zwBtSmqUXvM,623625
|
|
171
179
|
floodmodeller_api/test/test_data/network_ied_expected.json,sha256=6ng9RLh4D2--8oxVZBdlJBec2z1W3ZL3FDTvZFMZ8HA,8409
|
|
172
180
|
floodmodeller_api/test/test_data/network_with_comments.ied,sha256=bIbV_wJ_BDb5Zx2V_w82VtVtmNJYptH9RVF2VTZ7dPE,1003
|
|
181
|
+
floodmodeller_api/test/test_data/remove_dummy_test.dat,sha256=6hZYi7pD_IStMJjhB4XXhwgH0gB8Z__NKIGDjMIjZV8,739
|
|
173
182
|
floodmodeller_api/test/test_data/rnweir.dat,sha256=GM6Ne-6Ce3tf6BhHJm0XpPA6aRtNTCqhckfkO-UI0Sw,269
|
|
174
183
|
floodmodeller_api/test/test_data/rnweir.ext,sha256=QW8XUTJuO9SWT6DCkgUvePXIJb2B9vsD4ppo46yywtk,468
|
|
175
184
|
floodmodeller_api/test/test_data/rnweir.feb,sha256=GM6Ne-6Ce3tf6BhHJm0XpPA6aRtNTCqhckfkO-UI0Sw,269
|
|
@@ -216,25 +225,25 @@ floodmodeller_api/toolbox/model_build/__init__.py,sha256=AvtpvGVkBIM88k7mXFA_a3y
|
|
|
216
225
|
floodmodeller_api/toolbox/model_build/add_siltation_definition.py,sha256=f4YGdteOgYIT9Pz1fzM7GQzozwSP0F4Juz5_LR2A0cA,3100
|
|
217
226
|
floodmodeller_api/toolbox/model_build/structure_log_definition.py,sha256=15i17agV9FoupUVIUxK9Z1WQ69_cIzFEHuuOmS4dUnc,1866
|
|
218
227
|
floodmodeller_api/toolbox/model_build/structure_log/__init__.py,sha256=uIChpuOCUua7vREPLedWwgcRH4ApbheC_GO-Pi8VwV8,47
|
|
219
|
-
floodmodeller_api/toolbox/model_build/structure_log/structure_log.py,sha256=
|
|
228
|
+
floodmodeller_api/toolbox/model_build/structure_log/structure_log.py,sha256=vHqbb4kS5zGgB_lKNgVylUWHVkgNSS-DAm_9ykmmHn8,22839
|
|
220
229
|
floodmodeller_api/toolbox/model_conversion/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
221
230
|
floodmodeller_api/toolbox/model_review/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
222
231
|
floodmodeller_api/toolbox/results_analysis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
223
232
|
floodmodeller_api/units/__init__.py,sha256=aoWw79JGXL1Yonz-9HM43CeOV_fGrf6rvd4Rrs5BTAE,1059
|
|
224
|
-
floodmodeller_api/units/_base.py,sha256=
|
|
233
|
+
floodmodeller_api/units/_base.py,sha256=QGF17d31yOl6djPQ0jekvSyca9UaTxmsq9XMuvejOTc,12178
|
|
225
234
|
floodmodeller_api/units/_helpers.py,sha256=KqH9Qn6_mGB-TQBPkObb1_DRGfpvwdKqdA1iYFtAMuc,10918
|
|
226
|
-
floodmodeller_api/units/boundaries.py,sha256=
|
|
235
|
+
floodmodeller_api/units/boundaries.py,sha256=DLrIwk8pMu8IUEUOkSWlS_p8I4dMwKeY_ZPkDghVNI8,19262
|
|
227
236
|
floodmodeller_api/units/comment.py,sha256=KFaPuypi4RfkSPVwFuyLG1AtiBhlcliptWXp7Bo45R0,1864
|
|
228
|
-
floodmodeller_api/units/conduits.py,sha256=
|
|
237
|
+
floodmodeller_api/units/conduits.py,sha256=Y8KRq_foK6hsSdIHlAeiQcl9zl9PqcN1H9Mhs0D8Jp8,17027
|
|
229
238
|
floodmodeller_api/units/connectors.py,sha256=7z9ImmaLX7wVZTg9Z-sYe5bZwLkejHbFEFgzFMm2LmU,3383
|
|
230
239
|
floodmodeller_api/units/controls.py,sha256=zwK9qcJex2lcZFbA9XW0ks1-CFn8TGJglpV_q3UCVjw,3549
|
|
231
240
|
floodmodeller_api/units/conveyance.py,sha256=yx-6DZfz4VHPi_ho0ZWkMM4Z79qFwmri1HW-YcxTkE8,6324
|
|
232
241
|
floodmodeller_api/units/iic.py,sha256=3fl_90HETaIdVSlJexBKiLtJ473sT4UEusS1k5Dd-WY,3408
|
|
233
|
-
floodmodeller_api/units/losses.py,sha256=
|
|
234
|
-
floodmodeller_api/units/sections.py,sha256=
|
|
235
|
-
floodmodeller_api/units/structures.py,sha256=
|
|
236
|
-
floodmodeller_api/units/units.py,sha256=
|
|
237
|
-
floodmodeller_api/units/unsupported.py,sha256=
|
|
242
|
+
floodmodeller_api/units/losses.py,sha256=jJno9a9xPmptt31GR7Xi0lxurVI2evw5C-PMgHudf6s,11976
|
|
243
|
+
floodmodeller_api/units/sections.py,sha256=3wbEknJk5ZWIhYF5KkYUKm8h0Hbmv76LzsDlqeQj8AE,21069
|
|
244
|
+
floodmodeller_api/units/structures.py,sha256=1M2xyY7WR_KgF4HDLlWRZUq2QxnPonRCNwTNbSvjmfM,68975
|
|
245
|
+
floodmodeller_api/units/units.py,sha256=pKofHXAVClcOsoypPx_sAOwXa6B-Geoz3WT0_fWvL5M,5395
|
|
246
|
+
floodmodeller_api/units/unsupported.py,sha256=Ot8uTBeSCCj_obh_Esnoarqc2wW3YzFoDn3EG7niLdU,1774
|
|
238
247
|
floodmodeller_api/units/variables.py,sha256=g1VCxgJbd5Tv9Njn4B_UBTo1Sa8eBP3j8Efko8p0lgI,3061
|
|
239
248
|
floodmodeller_api/urban1d/__init__.py,sha256=7-_TpJTV8N2SoTEOpHUo0pi87ue8BqBii5FldTc_SjA,192
|
|
240
249
|
floodmodeller_api/urban1d/_base.py,sha256=18nczYWXxNiGRWNauqohM-VOeD3tQwWpYV1yJJ4N6u0,6069
|
|
@@ -249,10 +258,10 @@ floodmodeller_api/urban1d/xsections.py,sha256=49n08yE4WfxPzPy72mi0NJWG46p--I2ZmZ
|
|
|
249
258
|
floodmodeller_api/validation/__init__.py,sha256=sUMqShUGLnuQjmxKN3wAR7XpDVYsSFn4gWT63awXjOU,39
|
|
250
259
|
floodmodeller_api/validation/parameters.py,sha256=VG6wlDiA5A5cm3TEhYCJ4dNqzm8Hl1X7CMpohBIdOjQ,16585
|
|
251
260
|
floodmodeller_api/validation/urban_parameters.py,sha256=tD4ORsexmvvVZhDxbRyDlYyEH4uswySxiTIs2JWZwKs,11391
|
|
252
|
-
floodmodeller_api/validation/validation.py,sha256=
|
|
253
|
-
floodmodeller_api-0.5.
|
|
254
|
-
floodmodeller_api-0.5.
|
|
255
|
-
floodmodeller_api-0.5.
|
|
256
|
-
floodmodeller_api-0.5.
|
|
257
|
-
floodmodeller_api-0.5.
|
|
258
|
-
floodmodeller_api-0.5.
|
|
261
|
+
floodmodeller_api/validation/validation.py,sha256=z2l3haf-dfaGvF0l8_JUwj_gnaQx54bi2ZdcyoZypnM,4665
|
|
262
|
+
floodmodeller_api-0.5.5.dist-info/licenses/LICENSE.txt,sha256=las1guEzggQukja_R_nI5E6jGEYEnpQdJoTZvup2e5E,920
|
|
263
|
+
floodmodeller_api-0.5.5.dist-info/METADATA,sha256=zIrFJzbHSfostr6jNAouPBvNPTlxxBExlG4kH9AMejg,5788
|
|
264
|
+
floodmodeller_api-0.5.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
265
|
+
floodmodeller_api-0.5.5.dist-info/entry_points.txt,sha256=RQFzb_zf1hNv2uNRfoCD3nRzyzGi8vPvj7VGOhrOjtI,198
|
|
266
|
+
floodmodeller_api-0.5.5.dist-info/top_level.txt,sha256=x10nxct120kv2PpqYA2lhiwrYre3wKyic2wcUyNWWRw,18
|
|
267
|
+
floodmodeller_api-0.5.5.dist-info/RECORD,,
|
|
File without changes
|
{floodmodeller_api-0.5.3.post1.dist-info → floodmodeller_api-0.5.5.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{floodmodeller_api-0.5.3.post1.dist-info → floodmodeller_api-0.5.5.dist-info}/licenses/LICENSE.txt
RENAMED
|
File without changes
|
|
File without changes
|