floodmodeller-api 0.5.2__tar.gz → 0.5.3__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.
- {floodmodeller_api-0.5.2/floodmodeller_api.egg-info → floodmodeller_api-0.5.3}/PKG-INFO +5 -3
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/README.md +2 -1
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/_base.py +10 -4
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/dat.py +2 -3
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/logs/lf.py +14 -7
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/logs/lf_helpers.py +2 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/logs/lf_params.py +54 -26
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/mapping.py +2 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_dat.py +13 -1
- floodmodeller_api-0.5.3/floodmodeller_api/test/test_data/floodplain.dat +52 -0
- floodmodeller_api-0.5.3/floodmodeller_api/test/test_data/lf_complex_ex.lf1 +51499 -0
- floodmodeller_api-0.5.3/floodmodeller_api/test/test_fmfile.py +20 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_logs_lf.py +57 -12
- floodmodeller_api-0.5.3/floodmodeller_api/test/test_unit.py +57 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/toolbox/model_build/structure_log/structure_log.py +0 -2
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/units/__init__.py +2 -1
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/units/_base.py +19 -7
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/units/sections.py +4 -4
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/units/structures.py +142 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/units/units.py +1 -1
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/validation/parameters.py +16 -0
- floodmodeller_api-0.5.3/floodmodeller_api/version.py +1 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/xml2d.py +1 -1
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3/floodmodeller_api.egg-info}/PKG-INFO +5 -3
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api.egg-info/SOURCES.txt +4 -0
- floodmodeller_api-0.5.2/floodmodeller_api/version.py +0 -1
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/LICENSE.txt +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/MANIFEST.in +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/__init__.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/backup.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/diff.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/hydrology_plus/__init__.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/hydrology_plus/helper.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/hydrology_plus/hydrology_plus_export.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/ied.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/ief.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/ief_flags.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/inp.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/libs/libifcoremd.dll +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/libs/libifcoremt.so.5 +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/libs/libifport.so.5 +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/libs/libimf.so +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/libs/libintlc.so.5 +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/libs/libmmd.dll +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/libs/libsvml.so +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/libs/libzzn_read.so +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/libs/zzn_read.dll +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/logs/__init__.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/__init__.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/conftest.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_backup.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_conveyance.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/7082.ief +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/All Units 4_6.DAT +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/All Units 4_6.feb +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/BRIDGE.DAT +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/BaseModel_2D_Q100.ief +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/Baseline_unchecked.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/Constant QT.ief +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/Culvert_Inlet_Outlet.dat +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/Culvert_Inlet_Outlet.feb +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/DamBreakADI.xml +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/DamBreakFAST.xml +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/DamBreakFAST_dy.xml +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/DamBreakTVD.xml +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/DefenceBreach.xml +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/DefenceBreachFAST.xml +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/DefenceBreachFAST_dy.xml +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/Domain1+2_QH.xml +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/Domain1_H.xml +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/Domain1_Q.xml +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/Domain1_Q_FAST.xml +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/Domain1_Q_FAST_dy.xml +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/Domain1_Q_xml_expected.json +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/Domain1_W.xml +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/EX1.DAT +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/EX1.ext +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/EX1.feb +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/EX1.gxy +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/EX17.DAT +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/EX17.ext +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/EX17.feb +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/EX18.DAT +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/EX18_DAT_expected.json +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/EX2.DAT +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/EX3.DAT +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/EX3_DAT_expected.json +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/EX3_IEF_expected.json +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/EX6.DAT +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/EX6.ext +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/EX6.feb +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/EX6_DAT_expected.json +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/Event Data Example.DAT +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/Event Data Example.ext +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/Event Data Example.feb +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/FEH boundary.ief +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/Linked1D2D.xml +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/Linked1D2DFAST.xml +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/Linked1D2DFAST_dy.xml +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/Linked1D2D_xml_expected.json +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/P3Panels_UNsteady.ief +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/QT in dat file.ief +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/T10.ief +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/T2.ief +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/T5.ief +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/blockage.dat +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/blockage.ext +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/blockage.feb +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/blockage.gxy +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/conveyance_test.dat +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/conveyance_test.feb +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/conveyance_test.gxy +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/defaultUnits.dat +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/defaultUnits.ext +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/defaultUnits.feb +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/defaultUnits.fmpx +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/defaultUnits.gxy +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/df_flows_hplus.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/encoding_test_cp1252.dat +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/encoding_test_utf8.dat +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/event_hplus.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/ex3.ief +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/ex3.lf1 +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/ex4.DAT +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/ex4.ief +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/ex4_changed.DAT +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/ex6.ief +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/example1.inp +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/example2.inp +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/example3.inp +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/example4.inp +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/example5.inp +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/example6.inp +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/example_h+_export.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/expected_conveyance.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/hplus_export_example_1.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/hplus_export_example_10.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/hplus_export_example_2.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/hplus_export_example_3.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/hplus_export_example_4.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/hplus_export_example_5.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/hplus_export_example_6.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/hplus_export_example_7.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/hplus_export_example_8.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/hplus_export_example_9.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/integrated_bridge/AR_NoSP_NoBl_2O_NO_OneFRC.ied +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/integrated_bridge/AR_vSP_25pc_1O.ied +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/integrated_bridge/PL_vSP_25pc_1O.ied +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/integrated_bridge/SBTwoFRCsStaggered.IED +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/integrated_bridge/US_NoSP_NoBl_OR_RN.ied +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/integrated_bridge/US_SP_NoBl_OR_frc_PT2-5_RN.ied +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/integrated_bridge/US_fSP_NoBl_1O.ied +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/integrated_bridge/US_nSP_NoBl_1O.ied +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/integrated_bridge/US_vSP_NoBl_2O_Para.ied +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/integrated_bridge.dat +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/jump.dat +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/network.dat +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/network.ext +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/network.exy +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/network.feb +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/network.ied +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/network.ief +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/network.inp +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/network.mmm +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/network.pxy +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/network.uic +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/network.zzd +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/network.zzl +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/network.zzn +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/network.zzu +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/network.zzx +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/network_dat_expected.json +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/network_ied_expected.json +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/network_with_comments.ied +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/rnweir.dat +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/rnweir.ext +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/rnweir.feb +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/rnweir.gxy +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/rnweir_default.dat +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/rnweir_default.ext +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/rnweir_default.feb +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/rnweir_default.fmpx +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/rnweir_default.gxy +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/structure_logs/EX17_expected.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/structure_logs/EX17_expected.json +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/structure_logs/EX18_expected.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/structure_logs/EX18_expected.json +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/structure_logs/EX6_expected.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/structure_logs/EX6_expected.json +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/tabular_csv_outputs/network_zzn_flow.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/tabular_csv_outputs/network_zzn_fr.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/tabular_csv_outputs/network_zzn_max.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/tabular_csv_outputs/network_zzn_mode.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/tabular_csv_outputs/network_zzn_stage.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/tabular_csv_outputs/network_zzn_state.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/tabular_csv_outputs/network_zzn_velocity.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/tabular_csv_outputs/network_zzx_left_fp_h.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/tabular_csv_outputs/network_zzx_left_fp_mode.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/tabular_csv_outputs/network_zzx_link_inflow.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/tabular_csv_outputs/network_zzx_max.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/tabular_csv_outputs/network_zzx_right_fp_h.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/tabular_csv_outputs/network_zzx_right_fp_mode.csv +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_data/unit checks.dat +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_flowtimeprofile.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_hydrology_plus_export.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_ied.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_ief.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_inp.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_integrated_bridge.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_json.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_read_file.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_river.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_tool.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_toolbox_structure_log.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_xml2d.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/test/test_zz.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/to_from_json.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/tool.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/toolbox/__init__.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/toolbox/example_tool.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/toolbox/gui/bg.PNG +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/toolbox/gui/logo.PNG +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/toolbox/model_build/__init__.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/toolbox/model_build/add_siltation_definition.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/toolbox/model_build/structure_log/__init__.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/toolbox/model_build/structure_log_definition.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/toolbox/model_conversion/__init__.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/toolbox/model_review/__init__.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/toolbox/results_analysis/__init__.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/units/_helpers.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/units/boundaries.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/units/comment.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/units/conduits.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/units/connectors.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/units/controls.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/units/conveyance.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/units/iic.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/units/losses.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/units/unsupported.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/units/variables.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/urban1d/__init__.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/urban1d/_base.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/urban1d/conduits.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/urban1d/general_parameters.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/urban1d/junctions.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/urban1d/losses.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/urban1d/outfalls.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/urban1d/raingauges.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/urban1d/subsections.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/urban1d/xsections.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/util.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/validation/__init__.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/validation/urban_parameters.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/validation/validation.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/xml2d_template.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/xsd_backup.xml +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api/zz.py +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api.egg-info/dependency_links.txt +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api.egg-info/entry_points.txt +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api.egg-info/requires.txt +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/floodmodeller_api.egg-info/top_level.txt +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/pyproject.toml +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/requirements.txt +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/setup.cfg +0 -0
- {floodmodeller_api-0.5.2 → floodmodeller_api-0.5.3}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: floodmodeller_api
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.3
|
|
4
4
|
Summary: Extends the functionality of Flood Modeller to python users
|
|
5
5
|
Author: Jacobs
|
|
6
6
|
Author-email: joe.pierce@jacobs.com
|
|
@@ -24,6 +24,7 @@ Dynamic: author-email
|
|
|
24
24
|
Dynamic: description
|
|
25
25
|
Dynamic: description-content-type
|
|
26
26
|
Dynamic: license
|
|
27
|
+
Dynamic: license-file
|
|
27
28
|
Dynamic: project-url
|
|
28
29
|
Dynamic: requires-dist
|
|
29
30
|
Dynamic: summary
|
|
@@ -60,7 +61,8 @@ You can install the floodmodeller_api package from PyPI with the following comma
|
|
|
60
61
|
pip install floodmodeller-api
|
|
61
62
|
```
|
|
62
63
|
|
|
63
|
-
|
|
64
|
+
Flood Modeller API is regularly tested for all versions of python 3.10 onwards. Although it may work for older versions of python, we recommend using at least v3.10 and ideally the latest
|
|
65
|
+
stable release.
|
|
64
66
|
|
|
65
67
|
Once you have installed floodmodeller_api to your python environment, you can import the package with:
|
|
66
68
|
|
|
@@ -30,7 +30,8 @@ You can install the floodmodeller_api package from PyPI with the following comma
|
|
|
30
30
|
pip install floodmodeller-api
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
Flood Modeller API is regularly tested for all versions of python 3.10 onwards. Although it may work for older versions of python, we recommend using at least v3.10 and ideally the latest
|
|
34
|
+
stable release.
|
|
34
35
|
|
|
35
36
|
Once you have installed floodmodeller_api to your python environment, you can import the package with:
|
|
36
37
|
|
|
@@ -83,18 +83,24 @@ class FMFile(Jsonable):
|
|
|
83
83
|
def _read(self):
|
|
84
84
|
raise NotImplementedError
|
|
85
85
|
|
|
86
|
-
def
|
|
86
|
+
def update(self) -> None:
|
|
87
|
+
raise NotImplementedError
|
|
88
|
+
|
|
89
|
+
def save(self, filepath: str | Path) -> None:
|
|
90
|
+
raise NotImplementedError
|
|
91
|
+
|
|
92
|
+
def _update(self) -> None:
|
|
87
93
|
"""Updates the existing self._filetype based on any altered attributes"""
|
|
88
94
|
if self._filepath is None:
|
|
89
95
|
msg = f"{self._filetype} must be saved to a specific filepath before update() can be called."
|
|
90
96
|
raise UserWarning(msg)
|
|
91
97
|
|
|
92
98
|
string = self._write()
|
|
93
|
-
with open(self._filepath, "w", encoding=self.ENCODING) as _file:
|
|
99
|
+
with open(self._filepath, "w", encoding=self.ENCODING, newline="\r\n") as _file:
|
|
94
100
|
_file.write(string)
|
|
95
101
|
logging.info("%s File Updated!", self._filepath)
|
|
96
102
|
|
|
97
|
-
def _save(self, filepath):
|
|
103
|
+
def _save(self, filepath: str | Path) -> None:
|
|
98
104
|
filepath = Path(filepath).absolute()
|
|
99
105
|
if filepath.suffix.lower() != self._suffix:
|
|
100
106
|
msg = f'Given filepath does not point to a filepath suffixed "{self._suffix}". Please point to the full path to save the {self._filetype} file'
|
|
@@ -104,7 +110,7 @@ class FMFile(Jsonable):
|
|
|
104
110
|
Path.mkdir(filepath.parent)
|
|
105
111
|
|
|
106
112
|
string = self._write()
|
|
107
|
-
with open(filepath, "w", encoding=self.ENCODING) as _file:
|
|
113
|
+
with open(filepath, "w", encoding=self.ENCODING, newline="\r\n") as _file:
|
|
108
114
|
_file.write(string)
|
|
109
115
|
self._filepath = filepath # Updates the filepath attribute to the given path
|
|
110
116
|
|
|
@@ -88,7 +88,7 @@ class DAT(FMFile):
|
|
|
88
88
|
if self._gxy_data is not None:
|
|
89
89
|
gxy_string = self._gxy_data
|
|
90
90
|
new_gxy_path = filepath.with_suffix(".gxy")
|
|
91
|
-
with open(new_gxy_path, "w") as gxy_file:
|
|
91
|
+
with open(new_gxy_path, "w", encoding=self.ENCODING, newline="\r\n") as gxy_file:
|
|
92
92
|
gxy_file.write(gxy_string)
|
|
93
93
|
self._gxy_filepath = new_gxy_path
|
|
94
94
|
|
|
@@ -941,7 +941,6 @@ class DAT(FMFile):
|
|
|
941
941
|
in_reach = hasattr(unit, "dist_to_next") and unit.dist_to_next > 0
|
|
942
942
|
if in_reach: # has implicit downstream labels
|
|
943
943
|
next_unit = units[idx + 1]
|
|
944
|
-
next_next_unit = units[idx + 2]
|
|
945
944
|
|
|
946
945
|
if next_unit.name is None:
|
|
947
946
|
msg = "Unit has no name."
|
|
@@ -950,7 +949,7 @@ class DAT(FMFile):
|
|
|
950
949
|
end_of_reach = (
|
|
951
950
|
(not hasattr(next_unit, "dist_to_next"))
|
|
952
951
|
or (next_unit.dist_to_next == 0)
|
|
953
|
-
or (not hasattr(
|
|
952
|
+
or (not hasattr(units[idx + 2], "dist_to_next"))
|
|
954
953
|
)
|
|
955
954
|
|
|
956
955
|
if end_of_reach:
|
|
@@ -124,16 +124,23 @@ class LF(FMFile):
|
|
|
124
124
|
for key in self._data_to_extract:
|
|
125
125
|
parser = self._extracted_data[key]
|
|
126
126
|
|
|
127
|
-
|
|
128
|
-
|
|
127
|
+
if parser.use_regex:
|
|
128
|
+
if not (match := parser.prefix.match(raw_line)):
|
|
129
|
+
continue
|
|
130
|
+
end_of_line = match.group(1).lstrip()
|
|
131
|
+
|
|
132
|
+
elif raw_line.startswith(parser.prefix):
|
|
129
133
|
# store everything after prefix
|
|
130
134
|
end_of_line = raw_line.split(parser.prefix)[1].lstrip()
|
|
131
|
-
parser.process_line(end_of_line)
|
|
132
135
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
136
|
+
else:
|
|
137
|
+
continue
|
|
138
|
+
parser.process_line(end_of_line)
|
|
139
|
+
|
|
140
|
+
# index marks the end of an iteration
|
|
141
|
+
if parser.is_index is True:
|
|
142
|
+
self._sync_cols()
|
|
143
|
+
self._no_iters += 1
|
|
137
144
|
|
|
138
145
|
# update counter
|
|
139
146
|
self._no_lines += 1
|
|
@@ -171,6 +171,7 @@ class Parser(ABC):
|
|
|
171
171
|
exclude: str | None = None,
|
|
172
172
|
is_index: bool | None = False,
|
|
173
173
|
before_index: bool | None = False,
|
|
174
|
+
use_regex: bool | None = False,
|
|
174
175
|
):
|
|
175
176
|
self._name = name
|
|
176
177
|
|
|
@@ -184,6 +185,7 @@ class Parser(ABC):
|
|
|
184
185
|
|
|
185
186
|
self.data_type = data_type
|
|
186
187
|
self.data = data_factory(data_type, name)
|
|
188
|
+
self.use_regex = use_regex
|
|
187
189
|
|
|
188
190
|
def process_line(self, raw_line: str) -> None:
|
|
189
191
|
"""self._process_line with exception handling of expected nan values"""
|
|
@@ -14,6 +14,8 @@ If you have any query about this program or this License, please contact us at s
|
|
|
14
14
|
address: Jacobs UK Limited, Flood Modeller, Cottons Centre, Cottons Lane, London, SE1 2QG, United Kingdom.
|
|
15
15
|
"""
|
|
16
16
|
|
|
17
|
+
import re
|
|
18
|
+
|
|
17
19
|
from .lf_helpers import (
|
|
18
20
|
DateTimeParser,
|
|
19
21
|
FloatParser,
|
|
@@ -185,93 +187,108 @@ lf1_unsteady_data_to_extract = {
|
|
|
185
187
|
},
|
|
186
188
|
"initial_volume": {
|
|
187
189
|
"class": FloatSplitParser,
|
|
188
|
-
"prefix": "
|
|
190
|
+
"prefix": re.compile(r"^!!output1\s+Initial volume\s*:(.*)"),
|
|
189
191
|
"data_type": "last",
|
|
190
192
|
"split": "m3",
|
|
193
|
+
"use_regex": True,
|
|
191
194
|
},
|
|
192
195
|
"final_volume": {
|
|
193
196
|
"class": FloatSplitParser,
|
|
194
|
-
"prefix": "
|
|
197
|
+
"prefix": re.compile(r"^!!output1\s+Final volume\s*:(.*)"),
|
|
195
198
|
"data_type": "last",
|
|
196
199
|
"split": "m3",
|
|
200
|
+
"use_regex": True,
|
|
197
201
|
},
|
|
198
202
|
"total_boundary_inflow": {
|
|
199
203
|
"class": FloatSplitParser,
|
|
200
|
-
"prefix": "
|
|
204
|
+
"prefix": re.compile(r"^!!output1\s+Total boundary inflow\s*:(.*)"),
|
|
201
205
|
"data_type": "last",
|
|
202
206
|
"split": "m3",
|
|
207
|
+
"use_regex": True,
|
|
203
208
|
},
|
|
204
209
|
"total_boundary_outflow": {
|
|
205
210
|
"class": FloatSplitParser,
|
|
206
|
-
"prefix": "
|
|
211
|
+
"prefix": re.compile(r"^!!output1\s+Total boundary outflow\s*:(.*)"),
|
|
207
212
|
"data_type": "last",
|
|
208
213
|
"split": "m3",
|
|
214
|
+
"use_regex": True,
|
|
209
215
|
},
|
|
210
216
|
"total_lat_link_inflow": {
|
|
211
217
|
"class": FloatSplitParser,
|
|
212
|
-
"prefix": "
|
|
218
|
+
"prefix": re.compile(r"^!!output1\s+Total lat. link inflow\s*:(.*)"),
|
|
213
219
|
"data_type": "last",
|
|
214
220
|
"split": "m3",
|
|
221
|
+
"use_regex": True,
|
|
215
222
|
},
|
|
216
223
|
"total_lat_link_outflow": {
|
|
217
224
|
"class": FloatSplitParser,
|
|
218
|
-
"prefix": "
|
|
225
|
+
"prefix": re.compile(r"^!!output1\s+Total lat. link outflow\s*:(.*)"),
|
|
219
226
|
"data_type": "last",
|
|
220
227
|
"split": "m3",
|
|
228
|
+
"use_regex": True,
|
|
221
229
|
},
|
|
222
230
|
"max_system_volume": {
|
|
223
231
|
"class": FloatSplitParser,
|
|
224
|
-
"prefix": "
|
|
232
|
+
"prefix": re.compile(r"^!!output1\s+Max. system volume\s*:(.*)"),
|
|
225
233
|
"data_type": "last",
|
|
226
234
|
"split": "m3",
|
|
235
|
+
"use_regex": True,
|
|
227
236
|
},
|
|
228
237
|
"max_volume_increase": {
|
|
229
238
|
"class": FloatSplitParser,
|
|
230
|
-
"prefix": "
|
|
239
|
+
"prefix": re.compile(r"^!!output1\s+Max. \|volume\| increase\s*:(.*)"),
|
|
231
240
|
"data_type": "last",
|
|
232
241
|
"split": "m3",
|
|
242
|
+
"use_regex": True,
|
|
233
243
|
},
|
|
234
244
|
"max_boundary_inflow": {
|
|
235
245
|
"class": FloatSplitParser,
|
|
236
|
-
"prefix": "
|
|
246
|
+
"prefix": re.compile(r"^!!output1\s+Max. boundary inflow\s*:(.*)"),
|
|
237
247
|
"data_type": "last",
|
|
238
248
|
"split": "m3",
|
|
249
|
+
"use_regex": True,
|
|
239
250
|
},
|
|
240
251
|
"max_boundary_outflow": {
|
|
241
252
|
"class": FloatSplitParser,
|
|
242
|
-
"prefix": "
|
|
253
|
+
"prefix": re.compile(r"^!!output1\s+Max. boundary outflow\s*:(.*)"),
|
|
243
254
|
"data_type": "last",
|
|
244
255
|
"split": "m3",
|
|
256
|
+
"use_regex": True,
|
|
245
257
|
},
|
|
246
258
|
"net_volume_increase": {
|
|
247
259
|
"class": FloatSplitParser,
|
|
248
|
-
"prefix": "
|
|
260
|
+
"prefix": re.compile(r"^!!output1\s+Net increase in volume\s*:(.*)"),
|
|
249
261
|
"data_type": "last",
|
|
250
262
|
"split": "m3",
|
|
263
|
+
"use_regex": True,
|
|
251
264
|
},
|
|
252
265
|
"net_inflow_volume": {
|
|
253
266
|
"class": FloatSplitParser,
|
|
254
|
-
"prefix": "
|
|
267
|
+
"prefix": re.compile(r"^!!output1\s+Net inflow volume\s*:(.*)"),
|
|
255
268
|
"data_type": "last",
|
|
256
269
|
"split": "m3",
|
|
270
|
+
"use_regex": True,
|
|
257
271
|
},
|
|
258
272
|
"volume_discrepancy": {
|
|
259
273
|
"class": FloatSplitParser,
|
|
260
|
-
"prefix": "
|
|
274
|
+
"prefix": re.compile(r"^!!output1\s+Volume discrepancy\s*:(.*)"),
|
|
261
275
|
"data_type": "last",
|
|
262
276
|
"split": "m3",
|
|
277
|
+
"use_regex": True,
|
|
263
278
|
},
|
|
264
279
|
"mass_balance_error": {
|
|
265
280
|
"class": FloatSplitParser,
|
|
266
|
-
"prefix": "
|
|
281
|
+
"prefix": re.compile(r"^!!output1\s+Mass balance error\s*:(.*)"),
|
|
267
282
|
"data_type": "last",
|
|
268
283
|
"split": "%",
|
|
284
|
+
"use_regex": True,
|
|
269
285
|
},
|
|
270
286
|
"mass_balance_error_2": {
|
|
271
287
|
"class": FloatSplitParser,
|
|
272
|
-
"prefix": "
|
|
288
|
+
"prefix": re.compile(r"^!!output1\s+Mass balance error \[2\]\s*:(.*)"),
|
|
273
289
|
"data_type": "last",
|
|
274
290
|
"split": "%",
|
|
291
|
+
"use_regex": True,
|
|
275
292
|
},
|
|
276
293
|
"tuflow_start_time": {
|
|
277
294
|
"class": FloatParser,
|
|
@@ -453,43 +470,51 @@ lf2_data_to_extract = {
|
|
|
453
470
|
},
|
|
454
471
|
"timestep": {
|
|
455
472
|
"class": FloatParser,
|
|
456
|
-
"prefix": "
|
|
473
|
+
"prefix": re.compile(r"^!!output2\s+Model timestep\s*:(.*)"),
|
|
457
474
|
"data_type": "last",
|
|
475
|
+
"use_regex": True,
|
|
458
476
|
},
|
|
459
477
|
"wetting_drying_depth": {
|
|
460
478
|
"class": FloatParser,
|
|
461
|
-
"prefix": "
|
|
479
|
+
"prefix": re.compile(r"^!!output2\s+Wetting/drying depth\s*:(.*)"),
|
|
462
480
|
"data_type": "last",
|
|
481
|
+
"use_regex": True,
|
|
463
482
|
},
|
|
464
483
|
"beta": {
|
|
465
484
|
"class": FloatParser,
|
|
466
|
-
"prefix": "
|
|
485
|
+
"prefix": re.compile(r"^!!output2\s+Beta\s*:(.*)"),
|
|
467
486
|
"data_type": "last",
|
|
487
|
+
"use_regex": True,
|
|
468
488
|
},
|
|
469
489
|
"number_of_iterations": {
|
|
470
490
|
"class": FloatParser,
|
|
471
|
-
"prefix": "
|
|
491
|
+
"prefix": re.compile(r"^!!output2\s+Number of iterations\s*:(.*)"),
|
|
472
492
|
"data_type": "last",
|
|
493
|
+
"use_regex": True,
|
|
473
494
|
},
|
|
474
495
|
"calculation_depth": {
|
|
475
496
|
"class": FloatParser,
|
|
476
|
-
"prefix": "
|
|
497
|
+
"prefix": re.compile(r"^!!output2\s+Calculation depth\s*:(.*)"),
|
|
477
498
|
"data_type": "last",
|
|
499
|
+
"use_regex": True,
|
|
478
500
|
},
|
|
479
501
|
"friction_depth": {
|
|
480
502
|
"class": FloatParser,
|
|
481
|
-
"prefix": "
|
|
503
|
+
"prefix": re.compile(r"^!!output2\s+Friction depth\s*:(.*)"),
|
|
482
504
|
"data_type": "last",
|
|
505
|
+
"use_regex": True,
|
|
483
506
|
},
|
|
484
507
|
"eddy_viscosity": {
|
|
485
508
|
"class": FloatParser,
|
|
486
|
-
"prefix": "
|
|
509
|
+
"prefix": re.compile(r"^!!output2\s+Eddy Viscosity\s*:(.*)"),
|
|
487
510
|
"data_type": "last",
|
|
511
|
+
"use_regex": True,
|
|
488
512
|
},
|
|
489
513
|
"velocity_head_threshold": {
|
|
490
514
|
"class": FloatParser,
|
|
491
|
-
"prefix": "
|
|
515
|
+
"prefix": re.compile(r"^!!output2\s+Velocity head threshold\s*:(.*)"),
|
|
492
516
|
"data_type": "last",
|
|
517
|
+
"use_regex": True,
|
|
493
518
|
},
|
|
494
519
|
"rainfall_accumulation_depth": {
|
|
495
520
|
"class": FloatParser,
|
|
@@ -498,8 +523,9 @@ lf2_data_to_extract = {
|
|
|
498
523
|
},
|
|
499
524
|
"negative_depth_threshold": {
|
|
500
525
|
"class": FloatParser,
|
|
501
|
-
"prefix": "
|
|
526
|
+
"prefix": re.compile(r"^!!output2\s+Negative depth threshold\s*:(.*)"),
|
|
502
527
|
"data_type": "last",
|
|
528
|
+
"use_regex": True,
|
|
503
529
|
},
|
|
504
530
|
"memory_use_estimate": {
|
|
505
531
|
"class": FloatSplitParser,
|
|
@@ -509,8 +535,9 @@ lf2_data_to_extract = {
|
|
|
509
535
|
},
|
|
510
536
|
"friction_depth_threshold": {
|
|
511
537
|
"class": FloatParser,
|
|
512
|
-
"prefix": "
|
|
538
|
+
"prefix": re.compile(r"^!!output2\s+Friction depth threshold\s*:(.*)"),
|
|
513
539
|
"data_type": "last",
|
|
540
|
+
"use_regex": True,
|
|
514
541
|
},
|
|
515
542
|
"number_of_cells": {
|
|
516
543
|
"class": FloatParser,
|
|
@@ -529,8 +556,9 @@ lf2_data_to_extract = {
|
|
|
529
556
|
},
|
|
530
557
|
"final_mass_error": {
|
|
531
558
|
"class": FloatSplitParser,
|
|
532
|
-
"prefix": "
|
|
559
|
+
"prefix": re.compile(r"^!!output2\s+Final mass error\s*:(.*)"),
|
|
533
560
|
"data_type": "last",
|
|
561
|
+
"use_regex": True,
|
|
534
562
|
"split": "%",
|
|
535
563
|
},
|
|
536
564
|
"combined_mass_error": {
|
|
@@ -13,6 +13,7 @@ from .units import (
|
|
|
13
13
|
CRUMP,
|
|
14
14
|
CULVERT,
|
|
15
15
|
FLAT_V_WEIR,
|
|
16
|
+
FLOODPLAIN,
|
|
16
17
|
HTBDY,
|
|
17
18
|
IIC,
|
|
18
19
|
INTERPOLATE,
|
|
@@ -81,6 +82,7 @@ api_class_mapping: dict[str, Any] = {
|
|
|
81
82
|
"floodmodeller_api.units.sections.INTERPOLATE": INTERPOLATE,
|
|
82
83
|
"floodmodeller_api.units.sections.REPLICATE": REPLICATE,
|
|
83
84
|
"floodmodeller_api.units.sections.RIVER": RIVER,
|
|
85
|
+
"floodmodeller_api.units.structures.FLOODPLAIN": FLOODPLAIN,
|
|
84
86
|
"floodmodeller_api.units.structures.BRIDGE": BRIDGE,
|
|
85
87
|
"floodmodeller_api.units.structures.CRUMP": CRUMP,
|
|
86
88
|
"floodmodeller_api.units.structures.FLAT_V_WEIR": FLAT_V_WEIR,
|
|
@@ -202,7 +202,7 @@ def test_diff(test_workspace, caplog):
|
|
|
202
202
|
dat_ex4.diff(dat_ex4_changed)
|
|
203
203
|
|
|
204
204
|
assert caplog.text == (
|
|
205
|
-
"INFO root:_base.py:
|
|
205
|
+
"INFO root:_base.py:141 Files not equivalent, 12 difference(s) found:\n"
|
|
206
206
|
" DAT->structures->MILLAu->RNWEIR..MILLAu->upstream_crest_height: 1.07 != 1.37\n"
|
|
207
207
|
" DAT->structures->MILLBu->RNWEIR..MILLBu->upstream_crest_height: 0.43 != 0.73\n"
|
|
208
208
|
" DAT->structures->ROAD1->RNWEIR..ROAD1->upstream_crest_height: 2.02 != 2.32\n"
|
|
@@ -218,6 +218,18 @@ def test_diff(test_workspace, caplog):
|
|
|
218
218
|
)
|
|
219
219
|
|
|
220
220
|
|
|
221
|
+
def test_diff_active_data(test_workspace):
|
|
222
|
+
dat = DAT(Path(test_workspace, "ex4.DAT"))
|
|
223
|
+
dat_copy = DAT(Path(test_workspace, "ex4.DAT"))
|
|
224
|
+
assert dat == dat_copy
|
|
225
|
+
|
|
226
|
+
for section in dat.sections.values():
|
|
227
|
+
if section.unit == "RIVER":
|
|
228
|
+
_ = section.active_data
|
|
229
|
+
|
|
230
|
+
assert dat == dat_copy
|
|
231
|
+
|
|
232
|
+
|
|
221
233
|
def test_valid_network(test_workspace: Path):
|
|
222
234
|
"""Test against network derived manually."""
|
|
223
235
|
dat = DAT(test_workspace / "network.dat")
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
|
|
2
|
+
#REVISION#1
|
|
3
|
+
4 0.750 0.900 0.100 0.001 12SI
|
|
4
|
+
10.000 0.010 0.010 0.700 0.100 0.700 0.000
|
|
5
|
+
RAD FILE
|
|
6
|
+
|
|
7
|
+
END GENERAL
|
|
8
|
+
RIVER
|
|
9
|
+
SECTION
|
|
10
|
+
1
|
|
11
|
+
5.000 0.0001 1000
|
|
12
|
+
1
|
|
13
|
+
0.000 0.000 0.000 1.000 0.000 0.000
|
|
14
|
+
RIVER
|
|
15
|
+
SECTION
|
|
16
|
+
2
|
|
17
|
+
5.000 0.0001 1000
|
|
18
|
+
1
|
|
19
|
+
0.000 0.000 0.000 1.000 0.000 0.000
|
|
20
|
+
RIVER
|
|
21
|
+
SECTION
|
|
22
|
+
3
|
|
23
|
+
0.000 1000.000
|
|
24
|
+
1
|
|
25
|
+
0.000 0.000 0.000 1.000
|
|
26
|
+
FLOODPLAIN floodplain comment
|
|
27
|
+
SECTION
|
|
28
|
+
3 down
|
|
29
|
+
1.000 0.800 150.000 75.000 FRICTION 0.100
|
|
30
|
+
3
|
|
31
|
+
0.000 1.000 0.030 0.00 0.00
|
|
32
|
+
10.000 1.500 0.030 0.00 0.00
|
|
33
|
+
90.000 1.800 0.030 0.00 0.00
|
|
34
|
+
RIVER
|
|
35
|
+
SECTION
|
|
36
|
+
down
|
|
37
|
+
0.000 1000.000
|
|
38
|
+
1
|
|
39
|
+
0.000 0.000 0.000 1.000
|
|
40
|
+
INITIAL CONDITIONS
|
|
41
|
+
label ? flow stage froude no velocity umode ustate z
|
|
42
|
+
3 y 0.000 0.000 0.000 0.000 0.000 0.000 0.000
|
|
43
|
+
1 y 0.000 0.000 0.000 0.000 0.000 0.000 0.000
|
|
44
|
+
2 y 0.000 0.000 0.000 0.000 0.000 0.000 0.000
|
|
45
|
+
down y 0.000 0.000 0.000 0.000 0.000 0.000 0.000
|
|
46
|
+
GISINFO
|
|
47
|
+
RIVER SECTION 1 0 0 0 0 0
|
|
48
|
+
RIVER SECTION 2 0 0 0 0 0
|
|
49
|
+
RIVER SECTION 3 0 0 0 0 0
|
|
50
|
+
FLOODPLAIN SECTION 3 0 0 0 0 0
|
|
51
|
+
RIVER SECTION down 0 0 0 0 0
|
|
52
|
+
down 0 0 0 0 0
|