floodmodeller-api 0.5.3.post2__tar.gz → 0.5.5__tar.gz

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.
Files changed (276) hide show
  1. {floodmodeller_api-0.5.3.post2/floodmodeller_api.egg-info → floodmodeller_api-0.5.5}/PKG-INFO +1 -1
  2. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/dat.py +41 -4
  3. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/hydrology_plus/hydrology_plus_export.py +1 -2
  4. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/ied.py +1 -1
  5. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_dat.py +16 -1
  6. floodmodeller_api-0.5.5/floodmodeller_api/test/test_data/River_Bridge.dat +1453 -0
  7. floodmodeller_api-0.5.5/floodmodeller_api/test/test_data/River_Bridge.gxy +221 -0
  8. floodmodeller_api-0.5.5/floodmodeller_api/test/test_data/River_Bridge_DAT_expected.json +27273 -0
  9. floodmodeller_api-0.5.5/floodmodeller_api/test/test_data/River_Bridge_no_gxy.dat +1453 -0
  10. floodmodeller_api-0.5.5/floodmodeller_api/test/test_data/River_Bridge_no_gxy_DAT_expected.json +26853 -0
  11. floodmodeller_api-0.5.5/floodmodeller_api/test/test_gxy.py +98 -0
  12. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_json.py +37 -2
  13. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_unit.py +12 -0
  14. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/to_from_json.py +16 -2
  15. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/toolbox/model_build/structure_log/structure_log.py +8 -8
  16. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/units/_base.py +30 -0
  17. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/units/boundaries.py +4 -1
  18. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/units/conduits.py +1 -1
  19. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/units/losses.py +2 -2
  20. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/units/sections.py +36 -0
  21. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/units/structures.py +60 -13
  22. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/units/unsupported.py +2 -2
  23. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/validation/validation.py +6 -6
  24. floodmodeller_api-0.5.5/floodmodeller_api/version.py +1 -0
  25. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5/floodmodeller_api.egg-info}/PKG-INFO +1 -1
  26. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api.egg-info/SOURCES.txt +6 -0
  27. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/requirements.txt +9 -10
  28. floodmodeller_api-0.5.3.post2/floodmodeller_api/version.py +0 -1
  29. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/LICENSE.txt +0 -0
  30. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/MANIFEST.in +0 -0
  31. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/README.md +0 -0
  32. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/__init__.py +0 -0
  33. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/_base.py +0 -0
  34. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/backup.py +0 -0
  35. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/diff.py +0 -0
  36. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/hydrology_plus/__init__.py +0 -0
  37. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/hydrology_plus/helper.py +0 -0
  38. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/ief.py +0 -0
  39. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/ief_flags.py +0 -0
  40. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/inp.py +0 -0
  41. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/libs/libifcoremd.dll +0 -0
  42. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/libs/libifcoremt.so.5 +0 -0
  43. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/libs/libifport.so.5 +0 -0
  44. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/libs/libimf.so +0 -0
  45. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/libs/libintlc.so.5 +0 -0
  46. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/libs/libmmd.dll +0 -0
  47. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/libs/libsvml.so +0 -0
  48. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/libs/libzzn_read.so +0 -0
  49. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/libs/zzn_read.dll +0 -0
  50. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/logs/__init__.py +0 -0
  51. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/logs/lf.py +0 -0
  52. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/logs/lf_helpers.py +0 -0
  53. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/logs/lf_params.py +0 -0
  54. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/mapping.py +0 -0
  55. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/__init__.py +0 -0
  56. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/conftest.py +0 -0
  57. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_backup.py +0 -0
  58. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_conveyance.py +0 -0
  59. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/7082.ief +0 -0
  60. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/All Units 4_6.DAT +0 -0
  61. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/All Units 4_6.feb +0 -0
  62. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/BRIDGE.DAT +0 -0
  63. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/BaseModel_2D_Q100.ief +0 -0
  64. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/Baseline_unchecked.csv +0 -0
  65. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/Constant QT.ief +0 -0
  66. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/Culvert_Inlet_Outlet.dat +0 -0
  67. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/Culvert_Inlet_Outlet.feb +0 -0
  68. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/DamBreakADI.xml +0 -0
  69. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/DamBreakFAST.xml +0 -0
  70. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/DamBreakFAST_dy.xml +0 -0
  71. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/DamBreakTVD.xml +0 -0
  72. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/DefenceBreach.xml +0 -0
  73. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/DefenceBreachFAST.xml +0 -0
  74. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/DefenceBreachFAST_dy.xml +0 -0
  75. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/Domain1+2_QH.xml +0 -0
  76. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/Domain1_H.xml +0 -0
  77. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/Domain1_Q.xml +0 -0
  78. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/Domain1_Q_FAST.xml +0 -0
  79. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/Domain1_Q_FAST_dy.xml +0 -0
  80. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/Domain1_Q_xml_expected.json +0 -0
  81. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/Domain1_W.xml +0 -0
  82. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/EX1.DAT +0 -0
  83. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/EX1.ext +0 -0
  84. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/EX1.feb +0 -0
  85. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/EX1.gxy +0 -0
  86. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/EX17.DAT +0 -0
  87. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/EX17.ext +0 -0
  88. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/EX17.feb +0 -0
  89. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/EX18.DAT +0 -0
  90. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/EX18_DAT_expected.json +0 -0
  91. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/EX2.DAT +0 -0
  92. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/EX3.DAT +0 -0
  93. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/EX3_DAT_expected.json +0 -0
  94. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/EX3_IEF_expected.json +0 -0
  95. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/EX6.DAT +0 -0
  96. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/EX6.ext +0 -0
  97. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/EX6.feb +0 -0
  98. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/EX6_DAT_expected.json +0 -0
  99. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/Event Data Example.DAT +0 -0
  100. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/Event Data Example.ext +0 -0
  101. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/Event Data Example.feb +0 -0
  102. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/FEH boundary.ief +0 -0
  103. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/Linked1D2D.xml +0 -0
  104. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/Linked1D2DFAST.xml +0 -0
  105. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/Linked1D2DFAST_dy.xml +0 -0
  106. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/Linked1D2D_xml_expected.json +0 -0
  107. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/P3Panels_UNsteady.ief +0 -0
  108. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/QT in dat file.ief +0 -0
  109. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/T10.ief +0 -0
  110. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/T2.ief +0 -0
  111. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/T5.ief +0 -0
  112. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/blockage.dat +0 -0
  113. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/blockage.ext +0 -0
  114. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/blockage.feb +0 -0
  115. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/blockage.gxy +0 -0
  116. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/conveyance_test.dat +0 -0
  117. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/conveyance_test.feb +0 -0
  118. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/conveyance_test.gxy +0 -0
  119. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/defaultUnits.dat +0 -0
  120. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/defaultUnits.ext +0 -0
  121. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/defaultUnits.feb +0 -0
  122. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/defaultUnits.fmpx +0 -0
  123. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/defaultUnits.gxy +0 -0
  124. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/df_flows_hplus.csv +0 -0
  125. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/duplicate_unit_test.dat +0 -0
  126. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/duplicate_unit_test_unsupported.dat +0 -0
  127. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/encoding_test_cp1252.dat +0 -0
  128. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/encoding_test_utf8.dat +0 -0
  129. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/event_hplus.csv +0 -0
  130. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/ex3.ief +0 -0
  131. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/ex3.lf1 +0 -0
  132. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/ex4.DAT +0 -0
  133. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/ex4.ief +0 -0
  134. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/ex4_changed.DAT +0 -0
  135. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/ex6.ief +0 -0
  136. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/example1.inp +0 -0
  137. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/example2.inp +0 -0
  138. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/example3.inp +0 -0
  139. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/example4.inp +0 -0
  140. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/example5.inp +0 -0
  141. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/example6.inp +0 -0
  142. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/example_h+_export.csv +0 -0
  143. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/expected_conveyance.csv +0 -0
  144. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/floodplain.dat +0 -0
  145. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/hplus_export_example_1.csv +0 -0
  146. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/hplus_export_example_10.csv +0 -0
  147. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/hplus_export_example_2.csv +0 -0
  148. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/hplus_export_example_3.csv +0 -0
  149. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/hplus_export_example_4.csv +0 -0
  150. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/hplus_export_example_5.csv +0 -0
  151. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/hplus_export_example_6.csv +0 -0
  152. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/hplus_export_example_7.csv +0 -0
  153. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/hplus_export_example_8.csv +0 -0
  154. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/hplus_export_example_9.csv +0 -0
  155. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/integrated_bridge/AR_NoSP_NoBl_2O_NO_OneFRC.ied +0 -0
  156. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/integrated_bridge/AR_vSP_25pc_1O.ied +0 -0
  157. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/integrated_bridge/PL_vSP_25pc_1O.ied +0 -0
  158. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/integrated_bridge/SBTwoFRCsStaggered.IED +0 -0
  159. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/integrated_bridge/US_NoSP_NoBl_OR_RN.ied +0 -0
  160. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/integrated_bridge/US_SP_NoBl_OR_frc_PT2-5_RN.ied +0 -0
  161. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/integrated_bridge/US_fSP_NoBl_1O.ied +0 -0
  162. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/integrated_bridge/US_nSP_NoBl_1O.ied +0 -0
  163. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/integrated_bridge/US_vSP_NoBl_2O_Para.ied +0 -0
  164. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/integrated_bridge.dat +0 -0
  165. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/jump.dat +0 -0
  166. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/lf_complex_ex.lf1 +0 -0
  167. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/multievent.ief +0 -0
  168. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/network.dat +0 -0
  169. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/network.ext +0 -0
  170. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/network.exy +0 -0
  171. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/network.feb +0 -0
  172. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/network.ied +0 -0
  173. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/network.ief +0 -0
  174. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/network.inp +0 -0
  175. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/network.mmm +0 -0
  176. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/network.pxy +0 -0
  177. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/network.uic +0 -0
  178. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/network.zzd +0 -0
  179. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/network.zzl +0 -0
  180. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/network.zzn +0 -0
  181. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/network.zzu +0 -0
  182. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/network.zzx +0 -0
  183. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/network_dat_expected.json +0 -0
  184. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/network_ied_expected.json +0 -0
  185. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/network_with_comments.ied +0 -0
  186. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/remove_dummy_test.dat +0 -0
  187. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/rnweir.dat +0 -0
  188. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/rnweir.ext +0 -0
  189. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/rnweir.feb +0 -0
  190. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/rnweir.gxy +0 -0
  191. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/rnweir_default.dat +0 -0
  192. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/rnweir_default.ext +0 -0
  193. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/rnweir_default.feb +0 -0
  194. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/rnweir_default.fmpx +0 -0
  195. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/rnweir_default.gxy +0 -0
  196. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/structure_logs/EX17_expected.csv +0 -0
  197. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/structure_logs/EX17_expected.json +0 -0
  198. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/structure_logs/EX18_expected.csv +0 -0
  199. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/structure_logs/EX18_expected.json +0 -0
  200. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/structure_logs/EX6_expected.csv +0 -0
  201. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/structure_logs/EX6_expected.json +0 -0
  202. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/tabular_csv_outputs/network_zzn_flow.csv +0 -0
  203. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/tabular_csv_outputs/network_zzn_fr.csv +0 -0
  204. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/tabular_csv_outputs/network_zzn_max.csv +0 -0
  205. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/tabular_csv_outputs/network_zzn_mode.csv +0 -0
  206. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/tabular_csv_outputs/network_zzn_stage.csv +0 -0
  207. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/tabular_csv_outputs/network_zzn_state.csv +0 -0
  208. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/tabular_csv_outputs/network_zzn_velocity.csv +0 -0
  209. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/tabular_csv_outputs/network_zzx_left_fp_h.csv +0 -0
  210. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/tabular_csv_outputs/network_zzx_left_fp_mode.csv +0 -0
  211. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/tabular_csv_outputs/network_zzx_link_inflow.csv +0 -0
  212. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/tabular_csv_outputs/network_zzx_max.csv +0 -0
  213. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/tabular_csv_outputs/network_zzx_right_fp_h.csv +0 -0
  214. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/tabular_csv_outputs/network_zzx_right_fp_mode.csv +0 -0
  215. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_data/unit checks.dat +0 -0
  216. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_flowtimeprofile.py +0 -0
  217. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_fmfile.py +0 -0
  218. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_hydrology_plus_export.py +0 -0
  219. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_ied.py +0 -0
  220. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_ief.py +0 -0
  221. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_inp.py +0 -0
  222. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_integrated_bridge.py +0 -0
  223. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_logs_lf.py +0 -0
  224. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_read_file.py +0 -0
  225. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_river.py +0 -0
  226. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_sluice.py +0 -0
  227. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_tool.py +0 -0
  228. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_toolbox_structure_log.py +0 -0
  229. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_xml2d.py +0 -0
  230. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/test/test_zz.py +0 -0
  231. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/tool.py +0 -0
  232. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/toolbox/__init__.py +0 -0
  233. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/toolbox/example_tool.py +0 -0
  234. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/toolbox/gui/bg.PNG +0 -0
  235. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/toolbox/gui/logo.PNG +0 -0
  236. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/toolbox/model_build/__init__.py +0 -0
  237. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/toolbox/model_build/add_siltation_definition.py +0 -0
  238. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/toolbox/model_build/structure_log/__init__.py +0 -0
  239. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/toolbox/model_build/structure_log_definition.py +0 -0
  240. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/toolbox/model_conversion/__init__.py +0 -0
  241. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/toolbox/model_review/__init__.py +0 -0
  242. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/toolbox/results_analysis/__init__.py +0 -0
  243. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/units/__init__.py +0 -0
  244. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/units/_helpers.py +0 -0
  245. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/units/comment.py +0 -0
  246. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/units/connectors.py +0 -0
  247. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/units/controls.py +0 -0
  248. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/units/conveyance.py +0 -0
  249. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/units/iic.py +0 -0
  250. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/units/units.py +0 -0
  251. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/units/variables.py +0 -0
  252. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/urban1d/__init__.py +0 -0
  253. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/urban1d/_base.py +0 -0
  254. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/urban1d/conduits.py +0 -0
  255. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/urban1d/general_parameters.py +0 -0
  256. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/urban1d/junctions.py +0 -0
  257. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/urban1d/losses.py +0 -0
  258. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/urban1d/outfalls.py +0 -0
  259. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/urban1d/raingauges.py +0 -0
  260. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/urban1d/subsections.py +0 -0
  261. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/urban1d/xsections.py +0 -0
  262. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/util.py +0 -0
  263. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/validation/__init__.py +0 -0
  264. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/validation/parameters.py +0 -0
  265. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/validation/urban_parameters.py +0 -0
  266. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/xml2d.py +0 -0
  267. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/xml2d_template.py +0 -0
  268. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/xsd_backup.xml +0 -0
  269. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api/zz.py +0 -0
  270. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api.egg-info/dependency_links.txt +0 -0
  271. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api.egg-info/entry_points.txt +0 -0
  272. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api.egg-info/requires.txt +0 -0
  273. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/floodmodeller_api.egg-info/top_level.txt +0 -0
  274. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/pyproject.toml +0 -0
  275. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/setup.cfg +0 -0
  276. {floodmodeller_api-0.5.3.post2 → floodmodeller_api-0.5.5}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: floodmodeller_api
3
- Version: 0.5.3.post2
3
+ Version: 0.5.5
4
4
  Summary: Extends the functionality of Flood Modeller to python users
5
5
  Author: Jacobs
6
6
  Author-email: joe.pierce@jacobs.com
@@ -63,6 +63,8 @@ class DAT(FMFile):
63
63
 
64
64
  self._get_general_parameters()
65
65
  self._get_unit_definitions()
66
+ if self._gxy_data:
67
+ self._get_unit_locations()
66
68
 
67
69
  def update(self) -> None:
68
70
  """Updates the existing DAT based on any altered attributes"""
@@ -529,6 +531,33 @@ class DAT(FMFile):
529
531
  msg = f"Unexpected unit type encountered: {unit_type}"
530
532
  raise Exception(msg)
531
533
 
534
+ def _get_unit_locations(self):
535
+ # use gxy data to assign locations to units.
536
+ gxy_lines = self._gxy_data.splitlines()
537
+ line = 0
538
+ gxy_dict = {}
539
+ while True:
540
+ header = gxy_lines[line][1:-1].split("_", 2)
541
+
542
+ # header format for a unit is [TYPE_SUBTYPE_NAME], so simple check that our header is a unit is check split length is 3
543
+ if len(header) != 3: # noqa: PLR2004
544
+ break
545
+
546
+ x = float(gxy_lines[line + 1][2:].strip())
547
+ y = float(gxy_lines[line + 2][2:].strip())
548
+
549
+ # key should match ._unique_name attributes
550
+ gxy_dict[f"{header[0]}_{header[2]}"] = (x, y)
551
+
552
+ line += 4
553
+
554
+ for unit in self._all_units:
555
+ if unit.unit in ("COMMENT",):
556
+ break
557
+
558
+ if unit.unique_name in gxy_dict:
559
+ unit.set_cached_location_from_gxy(gxy_dict.pop(unit.unique_name))
560
+
532
561
  def _initialize_collections(self) -> None:
533
562
  # Initialize unit collections
534
563
  self.sections: dict[str, units.TSections] = {}
@@ -552,8 +581,11 @@ class DAT(FMFile):
552
581
  else:
553
582
  # Check to see whether unit type has associated subtypes so that unit name can be correctly assigned
554
583
  unit_name = self._get_unit_name(unit_type, unit_data)
555
- # Create instance of unit and add to relevant group
584
+
585
+ # fetch the relevant group that the unit belongs in
556
586
  unit_group = getattr(self, units.SUPPORTED_UNIT_TYPES[unit_type]["group"])
587
+
588
+ # Create instance of unit and add to group
557
589
  self._add_unit_to_group(unit_group, unit_type, unit_name, unit_data)
558
590
 
559
591
  def _get_unit_name(self, unit_type, unit_data):
@@ -571,12 +603,17 @@ class DAT(FMFile):
571
603
  ) -> None:
572
604
  # Raise exception if a duplicate label is encountered
573
605
  if unit_name in unit_group:
574
- msg = f'Duplicate label ({unit_name}) encountered within category: {units.SUPPORTED_UNIT_TYPES[unit_type]["group"]}'
606
+ msg = f"Duplicate label ({unit_name}) encountered within category: {units.SUPPORTED_UNIT_TYPES[unit_type]['group']}"
575
607
  raise Exception(msg)
576
608
  # Changes done to account for unit types with spaces/dashes eg Flat-V Weir
577
609
  unit_type_safe = unit_type.replace(" ", "_").replace("-", "_")
578
- unit_group[unit_name] = getattr(units, unit_type_safe)(unit_data, self._label_len)
579
- self._all_units.append(unit_group[unit_name])
610
+
611
+ # Get class object from unit type and instantiate unit with block data & length.
612
+ unit = getattr(units, unit_type_safe)(unit_data, self._label_len)
613
+
614
+ # Add unit to group, and to all units list.
615
+ unit_group[unit_name] = unit
616
+ self._all_units.append(unit)
580
617
 
581
618
  def _process_unsupported_unit(self, unit_type, unit_data) -> None:
582
619
  # Check to see whether unit type has associated subtypes so that unit name can be correctly assigned
@@ -97,8 +97,7 @@ class HydrologyPlusExport(FMFile):
97
97
  if s == scenario and float(sd) == storm_duration and float(rp) == return_period:
98
98
  return column
99
99
  msg = (
100
- "No matching event was found based on "
101
- f"{return_period=}, {storm_duration=}, {scenario=}"
100
+ f"No matching event was found based on {return_period=}, {storm_duration=}, {scenario=}"
102
101
  )
103
102
  raise ValueError(msg)
104
103
 
@@ -181,7 +181,7 @@ class IED(FMFile):
181
181
  # Create instance of unit and add to relevant group
182
182
  unit_group = getattr(self, units.SUPPORTED_UNIT_TYPES[block["Type"]]["group"])
183
183
  if unit_name in unit_group:
184
- msg = f'Duplicate label ({unit_name}) encountered within category: {units.SUPPORTED_UNIT_TYPES[block["Type"]]["group"]}'
184
+ msg = f"Duplicate label ({unit_name}) encountered within category: {units.SUPPORTED_UNIT_TYPES[block['Type']]['group']}"
185
185
  raise Exception(msg)
186
186
  unit_group[unit_name] = getattr(units, block["Type"])(unit_data)
187
187
 
@@ -99,15 +99,30 @@ def test_dat_read_doesnt_change_data(test_workspace, tmp_path):
99
99
  if datfile.name.startswith("duplicate_unit_test"):
100
100
  # Skipping as invalid DAT (duplicate units)
101
101
  continue
102
+
102
103
  dat = DAT(datfile)
103
104
  first_output = dat._write()
104
105
  new_path = tmp_path / "tmp.dat"
105
106
  dat.save(new_path)
106
107
  second_dat = DAT(new_path)
107
- assert dat == second_dat, f"dat objects not equal for {datfile=}"
108
+ assert dat == second_dat, f"dat objects not equal for {datfile=}\n{dat.diff(second_dat)}"
108
109
  second_output = second_dat._write()
109
110
  assert first_output == second_output, f"dat outputs not equal for {datfile=}"
110
111
 
112
+ gxy_path = datfile.with_suffix(".gxy")
113
+ if gxy_path.exists():
114
+ second_gxy_path = new_path.with_suffix(".gxy")
115
+ assert second_gxy_path.exists(), f"updated .gxy not found when testing {datfile=}"
116
+
117
+ # note filecmp.cmp() doesnt work here because input/output data has different eol sequences.
118
+ assert (
119
+ gxy_path.read_text() == second_gxy_path.read_text()
120
+ ), f".gxy file content not identical for {datfile=}"
121
+
122
+ new_path.unlink()
123
+ if gxy_path.exists():
124
+ second_gxy_path.unlink()
125
+
111
126
 
112
127
  def test_insert_unit_before(units, dat_ex6):
113
128
  dat_ex6.insert_unit(units[0], add_before=dat_ex6.sections["P4000"])