wolfhece 2.0.3__tar.gz → 2.0.4__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 (275) hide show
  1. {wolfhece-2.0.3 → wolfhece-2.0.4}/PKG-INFO +9 -10
  2. wolfhece-2.0.4/README.md +99 -0
  3. wolfhece-2.0.4/pyproject.toml +148 -0
  4. wolfhece-2.0.4/setup.cfg +4 -0
  5. wolfhece-2.0.4/tests/test_laz_viewer.py +19 -0
  6. wolfhece-2.0.4/tests/test_link.py +27 -0
  7. wolfhece-2.0.4/tests/test_myfirsttest.py +19 -0
  8. wolfhece-2.0.4/tests/test_numpy_reshape.py +63 -0
  9. wolfhece-2.0.4/tests/test_params.py +474 -0
  10. wolfhece-2.0.4/tests/test_particlesystem.py +243 -0
  11. wolfhece-2.0.4/tests/test_scenario_gpu.py +96 -0
  12. wolfhece-2.0.4/tests/test_shields.py +38 -0
  13. wolfhece-2.0.4/tests/test_wolfgpu.py +134 -0
  14. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/PyDraw.py +1 -1
  15. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/PyGui.py +1 -1
  16. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/RatingCurve_xml.py +1 -1
  17. wolfhece-2.0.4/wolfhece/cli.py +57 -0
  18. wolfhece-2.0.4/wolfhece/fonts/arial.ttf +0 -0
  19. wolfhece-2.0.4/wolfhece/fonts/helvetica.ttf +0 -0
  20. wolfhece-2.0.4/wolfhece/fonts/sanserif.ttf +0 -0
  21. wolfhece-2.0.4/wolfhece/libs/GL/gl.h +1044 -0
  22. wolfhece-2.0.4/wolfhece/libs/GL/glaux.h +272 -0
  23. wolfhece-2.0.4/wolfhece/libs/GL/glcorearb.h +3597 -0
  24. wolfhece-2.0.4/wolfhece/libs/GL/glext.h +11771 -0
  25. wolfhece-2.0.4/wolfhece/libs/GL/glu.h +255 -0
  26. wolfhece-2.0.4/wolfhece/libs/GL/glxext.h +926 -0
  27. wolfhece-2.0.4/wolfhece/libs/GL/wglext.h +840 -0
  28. wolfhece-2.0.4/wolfhece/libs/WolfOGL.c +28187 -0
  29. wolfhece-2.0.3/src/wolfhece/locales/en/LC_MESSAGES/base.po → wolfhece-2.0.4/wolfhece/locales/base.pot +19 -11
  30. wolfhece-2.0.4/wolfhece/models/HECE_169.pptx +0 -0
  31. wolfhece-2.0.4/wolfhece/models/blue.pal +9 -0
  32. wolfhece-2.0.4/wolfhece/models/diff16.pal +65 -0
  33. wolfhece-2.0.4/wolfhece/models/diff3.pal +13 -0
  34. wolfhece-2.0.4/wolfhece/models/red.pal +9 -0
  35. wolfhece-2.0.4/wolfhece/models/shields.pal +33 -0
  36. wolfhece-2.0.4/wolfhece/models/shields_cst.pal +21 -0
  37. wolfhece-2.0.4/wolfhece/models/waterdepths.pal +33 -0
  38. wolfhece-2.0.4/wolfhece/ui/wolf_multiselection_collapsiblepane.py +346 -0
  39. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece.egg-info/PKG-INFO +9 -10
  40. wolfhece-2.0.4/wolfhece.egg-info/SOURCES.txt +246 -0
  41. wolfhece-2.0.4/wolfhece.egg-info/entry_points.txt +8 -0
  42. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece.egg-info/requires.txt +1 -0
  43. wolfhece-2.0.3/LICENCE +0 -19
  44. wolfhece-2.0.3/MANIFEST.in +0 -11
  45. wolfhece-2.0.3/pyproject.toml +0 -6
  46. wolfhece-2.0.3/setup.cfg +0 -77
  47. wolfhece-2.0.3/src/wolfhece/apps/WolfPython.png +0 -0
  48. wolfhece-2.0.3/src/wolfhece/bernoulli/MQTT/CurlPython.py +0 -50
  49. wolfhece-2.0.3/src/wolfhece/bernoulli/MQTT/Example_MQTT_Epanet_Ana.py +0 -67
  50. wolfhece-2.0.3/src/wolfhece/bernoulli/MQTT/Local_File.py +0 -139
  51. wolfhece-2.0.3/src/wolfhece/bernoulli/MQTT/Local_Test_Thingsboard.py +0 -94
  52. wolfhece-2.0.3/src/wolfhece/bernoulli/MQTT/NewTestThings.py +0 -90
  53. wolfhece-2.0.3/src/wolfhece/bernoulli/MQTT/Reader_Thingsboard.py +0 -40
  54. wolfhece-2.0.3/src/wolfhece/bernoulli/MQTT/Thingsboard.py +0 -76
  55. wolfhece-2.0.3/src/wolfhece/bernoulli/Pyth_bern.cp37-win_amd64.pyd +0 -0
  56. wolfhece-2.0.3/src/wolfhece/bernoulli/exit3.png +0 -0
  57. wolfhece-2.0.3/src/wolfhece/bernoulli/exit7.png +0 -0
  58. wolfhece-2.0.3/src/wolfhece/bernoulli/exit8.png +0 -0
  59. wolfhece-2.0.3/src/wolfhece/bernoulli/fib8.cp37-win_amd64.pyd +0 -0
  60. wolfhece-2.0.3/src/wolfhece/lazviewer/libs/qwindows.dll +0 -0
  61. wolfhece-2.0.3/src/wolfhece/libs/compile_wcython.py +0 -25
  62. wolfhece-2.0.3/src/wolfhece/locales/en/LC_MESSAGES/base.mo +0 -0
  63. wolfhece-2.0.3/src/wolfhece/locales/en-GB/LC_MESSAGES/base.mo +0 -0
  64. wolfhece-2.0.3/src/wolfhece/locales/en-GB/LC_MESSAGES/base.po +0 -53
  65. wolfhece-2.0.3/src/wolfhece/locales/fr/LC_MESSAGES/base.mo +0 -0
  66. wolfhece-2.0.3/src/wolfhece/locales/fr/LC_MESSAGES/base.po +0 -62
  67. wolfhece-2.0.3/src/wolfhece/locales/fr-FR/LC_MESSAGES/base.mo +0 -0
  68. wolfhece-2.0.3/src/wolfhece/locales/fr-FR/LC_MESSAGES/base.po +0 -62
  69. wolfhece-2.0.3/src/wolfhece.egg-info/SOURCES.txt +0 -239
  70. /wolfhece-2.0.3/README.md → /wolfhece-2.0.4/README-package.md +0 -0
  71. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/CpGrid.py +0 -0
  72. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/GraphNotebook.py +0 -0
  73. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/GraphProfile.py +0 -0
  74. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/Lidar2002.py +0 -0
  75. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/ManageParams.py +0 -0
  76. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/PyConfig.py +0 -0
  77. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/PyCrosssections.py +0 -0
  78. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/PyGuiHydrology.py +0 -0
  79. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/PyHydrographs.py +0 -0
  80. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/PyPalette.py +0 -0
  81. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/PyParams.py +0 -0
  82. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/PyPictures.py +0 -0
  83. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/PyTranslate.py +0 -0
  84. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/PyVertex.py +0 -0
  85. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/PyVertexvectors.py +0 -0
  86. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/PyWMS.py +0 -0
  87. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/RatingCurve.py +0 -0
  88. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/RatingCurveData.py +0 -0
  89. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/ReadDataDCENN.py +0 -0
  90. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/Results2DGPU.py +0 -0
  91. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/__init__.py +0 -0
  92. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/_add_path.py +0 -0
  93. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/apps/ManageParams.py +0 -0
  94. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/apps/Optimisation_hydro.py +0 -0
  95. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/apps/__init__.py +0 -0
  96. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/apps/curvedigitizer.py +0 -0
  97. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/apps/isocurrent.py +0 -0
  98. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/apps/splashscreen.py +0 -0
  99. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/apps/wolf.py +0 -0
  100. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/apps/wolf2D.py +0 -0
  101. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/apps/wolfBernoulli.py +0 -0
  102. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/apps/wolfcompare2Darrays.py +0 -0
  103. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/apps/wolfhydro.py +0 -0
  104. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/bernoulli/ModelJockgrim.py +0 -0
  105. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/bernoulli/NetworkOpenGL.py +0 -0
  106. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/bernoulli/ReadNeupotzData.py +0 -0
  107. {wolfhece-2.0.3/src/wolfhece/bernoulli/MQTT → wolfhece-2.0.4/wolfhece/bernoulli}/__init__.py +0 -0
  108. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/bernoulli/opti_results_interactive_plot.py +0 -0
  109. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/color_constants.py +0 -0
  110. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/debug.py +0 -0
  111. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/drawing_obj.py +0 -0
  112. {wolfhece-2.0.3/src/wolfhece/bernoulli → wolfhece-2.0.4/wolfhece/eva}/__init__.py +0 -0
  113. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/eva/bootstrap.py +0 -0
  114. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/eva/hydrogramme_mono.py +0 -0
  115. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/eva/joint_models.py +0 -0
  116. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/eva/mixture_models.py +0 -0
  117. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/eva/pyseries.py +0 -0
  118. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/flow_SPWMI.py +0 -0
  119. {wolfhece-2.0.3/src/wolfhece/eva → wolfhece-2.0.4/wolfhece/fonts}/__init__.py +0 -0
  120. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/friction_law.py +0 -0
  121. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/ftp/__init__.py +0 -0
  122. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/ftp/downloader.py +0 -0
  123. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/gpuview.py +0 -0
  124. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/Catchment.py +0 -0
  125. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/Comparison.py +0 -0
  126. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/Dumping.py +0 -0
  127. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/Optimisation.py +0 -0
  128. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/Outlet.py +0 -0
  129. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/PostProcessHydrology.py +0 -0
  130. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/PyWatershed.py +0 -0
  131. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/RetentionBasin.py +0 -0
  132. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/SubBasin.py +0 -0
  133. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/__init__.py +0 -0
  134. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/constant.py +0 -0
  135. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/cst_exchanges.py +0 -0
  136. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/data_treatment.py +0 -0
  137. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/forcedexchanges.py +0 -0
  138. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/plot_hydrology.py +0 -0
  139. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/read.py +0 -0
  140. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/slope_manager.py +0 -0
  141. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrology/wolfMap_treatment.py +0 -0
  142. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrometry/__init__.py +0 -0
  143. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrometry/kiwis.py +0 -0
  144. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrometry/kiwis_gui.py +0 -0
  145. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/hydrometry/kiwispie.py +0 -0
  146. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/icons/folder_open.png +0 -0
  147. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/icons/folder_plus.png +0 -0
  148. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/icons/image.png +0 -0
  149. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/icons/multiple_files.png +0 -0
  150. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/icons/python.png +0 -0
  151. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/icons/simulation.png +0 -0
  152. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/import_ascfiles.py +0 -0
  153. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/ins.py +0 -0
  154. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/irm_qdf.py +0 -0
  155. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/ismember.py +0 -0
  156. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lagrangian/__init__.py +0 -0
  157. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lagrangian/advection.py +0 -0
  158. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lagrangian/emitter.py +0 -0
  159. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lagrangian/example_domain.py +0 -0
  160. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lagrangian/particle_system.py +0 -0
  161. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lagrangian/particle_system_ui.py +0 -0
  162. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lagrangian/particles.py +0 -0
  163. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lagrangian/velocity_field.py +0 -0
  164. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/__init__.py +0 -0
  165. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/_add_path.py +0 -0
  166. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/laz_viewer.py +0 -0
  167. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/libs/Qt5Core.dll +0 -0
  168. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/libs/Qt5Gui.dll +0 -0
  169. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/libs/Qt5Network.dll +0 -0
  170. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/libs/Qt5Widgets.dll +0 -0
  171. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/libs/icudt53.dll +0 -0
  172. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/libs/icuin53.dll +0 -0
  173. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/libs/icuuc53.dll +0 -0
  174. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/libs/msvcp120.dll +0 -0
  175. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/libs/msvcr120.dll +0 -0
  176. {wolfhece-2.0.3/src/wolfhece/lazviewer/libs/qt_plugins/platforms → wolfhece-2.0.4/wolfhece/lazviewer/libs}/qwindows.dll +0 -0
  177. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/libs/tbb.dll +0 -0
  178. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/libs/tbbmalloc.dll +0 -0
  179. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/libs/vcomp120.dll +0 -0
  180. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/points/__init__.py +0 -0
  181. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/points/expr.py +0 -0
  182. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/points/points.py +0 -0
  183. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/processing/__init__.py +0 -0
  184. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/processing/estimate_normals/__init__.py +0 -0
  185. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/processing/estimate_normals/estimate_normals.cp310-win_amd64.pyd +0 -0
  186. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/processing/estimate_normals/estimate_normals.cp39-win_amd64.pyd +0 -0
  187. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/vfuncs/__init__.py +0 -0
  188. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/vfuncs/vfuncs.cp310-win_amd64.pyd +0 -0
  189. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/vfuncs/vfuncs.cp39-win_amd64.pyd +0 -0
  190. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/viewer/__init__.py +0 -0
  191. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/viewer/viewer.exe +0 -0
  192. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/lazviewer/viewer/viewer.py +0 -0
  193. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/MSVCP140.dll +0 -0
  194. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/WolfDll.dll +0 -0
  195. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/WolfOGL.pyx +0 -0
  196. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/api-ms-win-crt-heap-l1-1-0.dll +0 -0
  197. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/api-ms-win-crt-math-l1-1-0.dll +0 -0
  198. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/api-ms-win-crt-runtime-l1-1-0.dll +0 -0
  199. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/glu32.dll +0 -0
  200. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/hdf5.dll +0 -0
  201. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/hdf5_hl.dll +0 -0
  202. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/libcurl.dll +0 -0
  203. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/libifcoremd.dll +0 -0
  204. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/libifcoremdd.dll +0 -0
  205. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/libifportmd.dll +0 -0
  206. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/libiomp5md.dll +0 -0
  207. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/libmmd.dll +0 -0
  208. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/libmmdd.dll +0 -0
  209. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/libpardiso600-WIN-X86-64.dll +0 -0
  210. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/mkl_core.2.dll +0 -0
  211. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/mkl_intel_thread.2.dll +0 -0
  212. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/mkl_rt.2.dll +0 -0
  213. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/msvcr100.dll +0 -0
  214. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/netcdf.dll +0 -0
  215. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/paho-mqtt3cs.dll +0 -0
  216. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/svml_dispmd.dll +0 -0
  217. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/vcomp100.dll +0 -0
  218. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/vcruntime140.dll +0 -0
  219. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/vcruntime140_1.dll +0 -0
  220. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/wolfogl.cp310-win_amd64.pyd +0 -0
  221. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/wolfogl.cp39-win_amd64.pyd +0 -0
  222. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/wolfpy.cp310-win_amd64.pyd +0 -0
  223. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/wolfpy.cp39-win_amd64.pyd +0 -0
  224. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/libs/zlib1.dll +0 -0
  225. {wolfhece-2.0.3/src/wolfhece/libs → wolfhece-2.0.4/wolfhece/links}/__init__.py +0 -0
  226. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/links/link.py +0 -0
  227. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/locales/base.po +0 -0
  228. {wolfhece-2.0.3/src/wolfhece/links → wolfhece-2.0.4/wolfhece/mar}/__init__.py +0 -0
  229. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/mar/commontools.py +0 -0
  230. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/mar/interface_MAR_WOLF.py +0 -0
  231. {wolfhece-2.0.3/src/wolfhece/mar → wolfhece-2.0.4/wolfhece/mesh2d}/__init__.py +0 -0
  232. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/mesh2d/bc_manager.py +0 -0
  233. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/mesh2d/cell_tracker.py +0 -0
  234. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/mesh2d/config_manager.py +0 -0
  235. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/mesh2d/cst_2D_boundary_conditions.py +0 -0
  236. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/mesh2d/wolf2dprev.py +0 -0
  237. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/multiprojects.py +0 -0
  238. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/pybridges.py +0 -0
  239. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/pydike.py +0 -0
  240. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/pylogging.py +0 -0
  241. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/pypolygons_scen.py +0 -0
  242. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/pyshields.py +0 -0
  243. {wolfhece-2.0.3/src/wolfhece/mesh2d → wolfhece-2.0.4/wolfhece/pythonfortran}/__init__.py +0 -0
  244. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/pythonfortran/example_makendarray.py +0 -0
  245. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/pythonfortran/example_numpy_memory.py +0 -0
  246. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/pythonfortran/tools.py +0 -0
  247. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/pyviews.py +0 -0
  248. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/pywalous.py +0 -0
  249. {wolfhece-2.0.3/src/wolfhece/pythonfortran → wolfhece-2.0.4/wolfhece/radar}/__init__.py +0 -0
  250. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/radar/wolfradar.py +0 -0
  251. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/rain_SPWMI.py +0 -0
  252. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/rem/REMMaker.py +0 -0
  253. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/rem/RasterViz.py +0 -0
  254. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/rem/__init__.py +0 -0
  255. {wolfhece-2.0.3/src/wolfhece/radar → wolfhece-2.0.4/wolfhece/scenario}/__init__.py +0 -0
  256. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/scenario/check_scenario.py +0 -0
  257. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/scenario/config_manager.py +0 -0
  258. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/scenario/imposebc_void.py +0 -0
  259. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/scenario/update_void.py +0 -0
  260. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/sounds/son12.wav +0 -0
  261. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/sounds/son6.wav +0 -0
  262. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/sounds/sonsw1.wav +0 -0
  263. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/sounds/sonsw2.wav +0 -0
  264. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/textpillow.py +0 -0
  265. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/tools_mpl.py +0 -0
  266. {wolfhece-2.0.3/src/wolfhece/scenario → wolfhece-2.0.4/wolfhece/ui}/__init__.py +0 -0
  267. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/wolf_array.py +0 -0
  268. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/wolf_hist.py +0 -0
  269. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/wolf_texture.py +0 -0
  270. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/wolf_tiles.py +0 -0
  271. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/wolf_vrt.py +0 -0
  272. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/wolfresults_2D.py +0 -0
  273. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece/xyz_file.py +0 -0
  274. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece.egg-info/dependency_links.txt +0 -0
  275. {wolfhece-2.0.3/src → wolfhece-2.0.4}/wolfhece.egg-info/top_level.txt +0 -0
@@ -1,17 +1,15 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: wolfhece
3
- Version: 2.0.3
4
- Summary: WOLF package
5
- Home-page: https://uee.uliege.be/hece
6
- Author: Pierre Archambeau
7
- Author-email: pierre.archambeau@uliege.be
8
- Project-URL: Bug Tracker, https://uee.uliege.be/hece
9
- Classifier: Programming Language :: Python :: 3
10
- Classifier: License :: OSI Approved :: MIT License
11
- Classifier: Operating System :: OS Independent
3
+ Version: 2.0.4
4
+ Author-email: Stéphane Champailler <stephane.champailler@uliege.be>, Pierre Archambeau <pierre.archambeau@uliege.be>
5
+ Project-URL: Homepage, https://uee.uliege.be/hece
6
+ Project-URL: Issues, https://uee.uliege.be/hece
7
+ Classifier: Programming Language :: Python :: 3.9
8
+ Classifier: Operating System :: Microsoft :: Windows :: Windows 10
9
+ Classifier: Operating System :: Microsoft :: Windows :: Windows 11
10
+ Classifier: Topic :: Scientific/Engineering :: Physics
12
11
  Requires-Python: <3.11,>=3.9
13
12
  Description-Content-Type: text/markdown
14
- License-File: LICENCE
15
13
  Requires-Dist: wxpython
16
14
  Requires-Dist: numpy
17
15
  Requires-Dist: pyopengl
@@ -49,6 +47,7 @@ Requires-Dist: osmnx
49
47
  Requires-Dist: tifffile
50
48
  Requires-Dist: numba
51
49
  Requires-Dist: xmltodict
50
+ Requires-Dist: opencv-python
52
51
 
53
52
  Ce paquet contient l'interface graphique Python du logiciel WOLF (HECE - ULiège) de même que plusieurs outils de traitements topographique, hydraulique et hydrologique.
54
53
 
@@ -0,0 +1,99 @@
1
+ As someone who develops real applications or one off programs as well as new functionalities in WolfHECE:
2
+
3
+ - I fork the *HECEPython* repository with git branch so that my developments don't pollute the main branch
4
+ - I install Wolf's dependencies with "pip install -r requirements.txt" and "pip install GDAL-3.4.3-cp39-cp39-win_amd64.whl"
5
+ - I get an issue in GitLab to track my work (I create it or it is given to me)
6
+ - I can use my local copy of WolfHECE (for *.py files; *lib files via the add_path) (possibly instead of the one installed with pip) with:
7
+ - import sys
8
+ - sys.path.insert(0, r"pathfiletolib")
9
+
10
+ <h1> Organisation générale - General Structure</h1>
11
+ <h2>Fr</h2>
12
+
13
+ Ce repository Gitlab est destiné à contenir tous les codes Python du HECE.
14
+
15
+ Pour le moment, sa structure est la suivante :
16
+
17
+ - BlenderCityGML : Blenger plugin pour impoter des bâtiments depuis un fichier 3DML
18
+ - BlenderGIS : Blender plugin pour traiter des maillages comme des informations SIG (-> petites corrections "nécessaire" par rapport au projet GitHub pour gérer les palettes de couleurs)
19
+ - data : répertoire de données (utile notamment pour l'import de valeurs hydrométriques depuis le web)
20
+ - debug : code de développement d'une fonctionnalité spécifique
21
+ - dike breaching : rupture de digue (cf thèse Vincent Schmitz)
22
+ - doc : permet d'y stocker des exemples utiles pour la doc
23
+ - doxygen : pages web résultat du traitement automatique du code via Doxygen
24
+ - f2py : outil de compilation d'une librairie d'interaction avec le Fortran via Numpy/f2py --> devrait être remplacé par une interaction DLL+CTypes
25
+ - pypi_config : fichiers de paramétrisation pour le paquet Pypi.org
26
+ - real_apps : applications plus complètes exploitant le paquet wolfhece
27
+ - wolfhece : paquet d'outils dans lequel les développements de base doivent se trouver
28
+ - des sous-répertoires thématiques existent déjà, d'autres peuvent être ajoutés
29
+ - les outils "communs" sont actuellement dans le sous-répertoire principal
30
+
31
+ Vous pouvez créer des répertoires supplémentaires pour des applications particulières.
32
+
33
+ La méthode de travail souhaitée est la suivante pour une nouvelle idée/fonctionnalité :
34
+ - créer un ticket
35
+ - créer une branche associée
36
+ - développer
37
+ - demander la fusion
38
+
39
+ <h2>En</h2>
40
+
41
+ This Gitlab repository is intended to contain all the HECE Python code.
42
+
43
+ For the moment, its structure is as follows:
44
+
45
+ - BlenderCityGML: Blender plugin for importing buildings from a 3DML file
46
+ - BlenderGIS: Blender plugin for processing meshes as GIS data (-> some "necessary" corrections compared to the GitHub project for managing colormap).
47
+ - data: data directory (useful especially for importing hydrometric values from the web).
48
+ - debug: development code for a specific functionality.
49
+ - dike breaching: evolution of a breach in a dike (see Vincent Schmitz's PhD).
50
+ - doc: used to store useful examples for documentation.
51
+ - doxygen: web pages resulting from automatic code processing via Doxygen.
52
+ - f2py: tool for compiling a library for interaction with Fortran using Numpy/f2py --> should be replaced by DLL+CTypes interaction.
53
+ - pypi_config: parameterization files for the Pypi.org package.
54
+ - real_apps: more comprehensive applications that utilize the wolfhece package.
55
+ - wolfhece: tools package
56
+ - thematic subdirectories already exist, others can be added.
57
+ - most "common" tools are currently in the main subdirectory.
58
+
59
+ You can create additional directories for particular applications.
60
+
61
+ The desired way of working is as follows for a new idea/feature:
62
+ - create an issue
63
+ - create an associated branch
64
+ - code
65
+ - create merge request
66
+
67
+ More information on Gitlab (token, ...): https://moodle.hece.uliege.be/mod/wiki/view.php?pageid=298
68
+
69
+ <h1>Interaction Fortran-Python - How to Call Fortran from Python </h1>
70
+
71
+ <h2>Fr</h2>
72
+ Il est possible de faire interagir Fortran et Python.
73
+
74
+ Une voie possible est f2py (https://numpy.org/doc/stable/f2py/). C'est d'ailleurs exploité pour certaines fonctions dans la librairie "wolfpy.pyd", mais cela offre peu de souplesse.
75
+
76
+ Une autre voie est le module "ctypes" qui est dédié à de l'interaction avec le C, ce que peut faire également nativement le Fortran.
77
+
78
+ Comme pour toute interaction multilanguages, le débogage devient cependant plus complexe. Il est en effet nécessaire de disposer d'un outil de débogage en Python (-> VSCode) mais également en Fortran (-> VisualStudio). Le Python doit être tout d'abord lancé et il faut récupérer le PID du process (cd fonction "getpid()" du module "os"). Ce PID est nécessaire pour attacher le débuggeur de Visual Studio au process en cours afin de capter l'appel aux fonctions de la DLL (cf https://stackoverflow.com/questions/27154325/how-to-debug-a-windows-dll-used-inside-python). Il faut bien faire attention à ce que les 2 codes utilisent la même DLL, autrement dit soit adapter le répertoire de sortie de VisualStudio, soit utiliser un chemin absolu vers la librairie compilée dans VSCode.
79
+
80
+ Dans VSCode, pour que la lecture de la DLL depuis un chemin absolu soit possible, il est utile d'explicitement passer le paramètre "winmode" et de lui imposer une valeur de "0" (source : https://stackoverflow.com/questions/59330863/cant-import-dll-module-in-python).
81
+
82
+ Un autre problème peut venir du besoin de mémoire de pile (Memory Stack), mémoire notamment exploitée pour les variables locales des routines/fonctions. Comme c'est le Python qui gère le process de base, le paramétrage du projet VisualStudio ne semble pas fonctionner. Il est donc nécessaire de passer par le module "Threading" de Python, seul moyen semble-t-il, d'augmenter la mémoire de pile d'un thread spécifique (cf https://stackoverflow.com/questions/2067637/how-do-i-increase-the-stack-size-in-python).
83
+
84
+ Une autre approche est de forcer l'allocation de toutes les variables dans la Heap et non dans la Stack. Cela peut se faire via les paramètres du projet Fortran dans "Fortran/Optimization/Heap Arrays" en mettant "0". La conséquence sur le temps de calcul n'a cependant jamais été étudiée.
85
+
86
+ <h2>En</h2>
87
+ Interfacing Fortran and Python is possible.
88
+
89
+ One viable approach is through the use of f2py (https://numpy.org/doc/stable/f2py/). This technique is actually employed in certain functions within the 'wolfpy.pyd' library, although it provides limited flexibility.
90
+
91
+ Another way is the 'ctypes' module, specifically designed for interacting with C, which Fortran can naturally interface with as well.
92
+
93
+ As is customary in multilingual interaction scenarios, debugging becomes significantly more intricate. It is essential to have debugging tools available for both Python (e.g., VSCode) and Fortran (e.g., Visual Studio). Initially, Python must be launched, and the Process ID (PID) of the running instance must be retrieved (accomplished using the 'getpid()' function from the 'os' module). This PID is necessary for attaching the Visual Studio debugger to the running process to capture calls to functions within the DLL (see https://stackoverflow.com/questions/27154325/how-to-debug-a-windows-dll-used-inside-python). Ensuring that both codes utilize the same DLL is crucial, either by adjusting the Visual Studio output directory or specifying an absolute path to the compiled library within VSCode.
94
+
95
+ In VSCode, to allow for DLL access from an absolute path, it proves advantageous to explicitly set the 'winmode' parameter and set its value to '0' (source: https://stackoverflow.com/questions/59330863/cant-import-dll-module-in-python).
96
+
97
+ Another potential complication may stem from the necessity for stack memory, typically employed for local variables within routines/functions. Since Python governs the primary process, configuring the Visual Studio project settings may prove ineffective. Therefore, employing Python's 'Threading' module appears to be the sole method of augmenting stack memory for a specific thread (refer to https://stackoverflow.com/questions/2067637/how-do-i-increase-the-stack-size-in-python).
98
+
99
+ Alternatively, one may opt to force the allocation of all variables in the Heap rather than the Stack. This can be achieved through the Fortran project settings under 'Fortran/Optimization/Heap Arrays' by setting it to '0'. However, it is worth noting that the impact on computation time resulting from this change has not been extensively studied.
@@ -0,0 +1,148 @@
1
+ # Build the release with `python -m build`
2
+ # Test with: pip install --force-reinstall --no-deps dist\wolfgpu-2.0.xx-py3-none-any.whl
3
+ # This will install a script called wolf
4
+ # Upload to Pypi with python -m twine upload --repository pypi dist/wolfgpu-2.0.xx-py3-none-any.whl
5
+ # __token__
6
+ # pypi-AgEIcHlwaS5vcmcCJDM3MDAyYjBlLWUwZDQtNDg1Yy1hM2E3LTljNGU0NzNkOGM0NAACEFsxLFsid29sZmhlY2UiXV0AAixbMixbImNlMDg1NDZjLTk0NjEtNGQ0OS1iMDY2LWNlMjExNmQyNTM1OCJdXQAABiCUZc7TVTde5cz6ONY759JZRZH75ooavff6EFGWtESIig
7
+ # pypi-AgEIcHlwaS5vcmcCJGY2YTkwMTY2LWU3Y2MtNGU1OS1hODc4LTgxYzJjZmM4NjIzYgACEFsxLFsid29sZmhlY2UiXV0AAixbMixbImNlMDg1NDZjLTk0NjEtNGQ0OS1iMDY2LWNlMjExNmQyNTM1OCJdXQAABiBLxP4zjGXvSNwtNkg_xVjnA-86zSK_-wImRB9_ELAYMw#
8
+ #
9
+ # Upload to Gitlab with python -m twine upload --repository gitlab \dist\*
10
+ #
11
+ # update version : python update_cfg.py
12
+
13
+ [build-system]
14
+ requires = [
15
+ "setuptools>=61.0",
16
+ "wheel"
17
+ ]
18
+ build-backend = "setuptools.build_meta"
19
+
20
+ [project]
21
+ name = "wolfhece"
22
+ version = "2.0.4"
23
+ readme = "README-package.md"
24
+ authors = [
25
+ { name="Stéphane Champailler", email="stephane.champailler@uliege.be" },
26
+ { name="Pierre Archambeau", email="pierre.archambeau@uliege.be" },
27
+ ]
28
+ requires-python = ">=3.9,<3.11"
29
+ classifiers = [
30
+ "Programming Language :: Python :: 3.9",
31
+ "Operating System :: Microsoft :: Windows :: Windows 10",
32
+ "Operating System :: Microsoft :: Windows :: Windows 11",
33
+ # "Environment :: CPU",
34
+ "Topic :: Scientific/Engineering :: Physics"
35
+ ]
36
+ dependencies = [
37
+ 'wxpython',
38
+ 'numpy',
39
+ 'pyopengl',
40
+ 'pandas',
41
+ 'geopandas',
42
+ 'scipy',
43
+ 'owslib',
44
+ 'pillow',
45
+ 'cython',
46
+ 'pyproj',
47
+ 'dbfread',
48
+ 'graphviz',
49
+ 'owslib',
50
+ 'beautifulsoup4',
51
+ 'requests',
52
+ 'notebook',
53
+ 'matplotlib',
54
+ 'mkl',
55
+ 'python-gettext',
56
+ 'shapely',
57
+ 'openpyxl',
58
+ 'xlrd',
59
+ 'openkmi',
60
+ 'lxml',
61
+ 'laspy',
62
+ 'laszip',
63
+ 'sympy',
64
+ 'python-pptx',
65
+ 'python-docx',
66
+ 'pygltflib',
67
+ 'ezdxf',
68
+ 'pyvista',
69
+ 'tqdm',
70
+ 'osmnx',
71
+ 'tifffile',
72
+ 'numba',
73
+ 'xmltodict',
74
+ 'opencv-python' ]
75
+
76
+
77
+ [project.urls]
78
+ Homepage = "https://uee.uliege.be/hece"
79
+ Issues = "https://uee.uliege.be/hece"
80
+
81
+ [tool.setuptools]
82
+ include-package-data = false
83
+
84
+
85
+ [project.gui-scripts]
86
+ wolf = "wolfhece.cli:wolf"
87
+ wolfoptimhydro = "wolfhece.cli:optihydro"
88
+ wolfhydro = "wolfhece.cli:hydro"
89
+ wolf2d = "wolfhece.cli:wolf2d"
90
+ wolfdigitizer = "wolfhece.cli:digitizer"
91
+ wolfparam = "wolfhece.cli:params"
92
+ wolfcompare = "wolfhece.cli:compare"
93
+
94
+ [tool.setuptools.packages.find]
95
+ exclude = ["wolfhece.hydrometry_hece"]
96
+
97
+ include = [
98
+ "wolfhece",
99
+ "wolfhece.apps",
100
+ "wolfhece.bernoulli",
101
+ "wolfhece.eva",
102
+ "wolfhece.fonts",
103
+ "wolfhece.ftp",
104
+ "wolfhece.hydrology",
105
+ "wolfhece.hydrometry",
106
+ "wolfhece.icons",
107
+ "wolfhece.lagrangian",
108
+ "wolfhece.lazviewer",
109
+ "wolfhece.lazviewer.points",
110
+ "wolfhece.lazviewer.processing",
111
+ "wolfhece.lazviewer.processing.estimate_normals",
112
+ "wolfhece.lazviewer.vfuncs",
113
+ "wolfhece.lazviewer.viewer",
114
+ "wolfhece.libs/*",
115
+ "wolfhece.links",
116
+ "wolfhece.locales",
117
+ "wolfhece.mar",
118
+ "wolfhece.mesh2d",
119
+ "wolfhece.models",
120
+ "wolfhece.pythonfortran",
121
+ "wolfhece.radar",
122
+ "wolfhece.rem",
123
+ "wolfhece.scenario",
124
+ "wolfhece.sounds",
125
+ "wolfhece.ui"
126
+ ]
127
+
128
+ [tool.setuptools.package-data]
129
+ # For package wolfhece, you have to include
130
+ wolfhece = [
131
+ "libs/*.dll",
132
+ "libs/*.c",
133
+ "libs/*.pyx",
134
+ "libs/GL/*.h",
135
+ "libs/*.pyd",
136
+ "locales/*.po*",
137
+ "locales/*/*.po",
138
+ "locales/*/*.mo",
139
+ "models/*.*",
140
+ "sounds/*.wav",
141
+ "fonts/*.ttf",
142
+ "icons/*.png",
143
+ "lazviewer/qt_plugins/*.dll",
144
+ "lazviewer/libs/*.dll",
145
+ "lazviewer/processing/estimate_normals/*.pyd",
146
+ "lazviewer/vfuncs/*.pyd",
147
+ "lazviewer/viewer/*.exe"
148
+ ]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,19 @@
1
+ import _add_path
2
+ import unittest
3
+ import tempfile
4
+
5
+ from wolfhece.lazviewer import viewer
6
+ from wolfhece.lazviewer.laz_viewer import myviewer, xyz_laz_grids, Colors_Lazviewer
7
+
8
+ class LazViewer(unittest.TestCase):
9
+
10
+ def test_viewer_Theux_2023(self):
11
+
12
+ mygrids = xyz_laz_grids(r'D:\OneDrive\OneDrive - Universite de Liege\Crues\2021-07 Vesdre\CSC - Convention - ARNE\Data\LAZ_Vesdre\2023\grids')
13
+ xyz = mygrids.scan([[252500, 252700],[136400,136500]])
14
+ newview_code = myviewer(xyz,Colors_Lazviewer.CODE_2023)
15
+ newview = myviewer(xyz,Colors_Lazviewer.ORTHO_2021)
16
+
17
+ self.assertTrue(isinstance(newview, viewer), 'Bad type viewer')
18
+ self.assertTrue(isinstance(newview_code, viewer), 'Bad type viewer')
19
+ self.assertTrue(xyz.shape==(2220375,4), 'badv shape in xyz')
@@ -0,0 +1,27 @@
1
+ import _add_path
2
+ import unittest
3
+ import os
4
+ import sys
5
+ from pathlib import Path
6
+ from tempfile import TemporaryDirectory
7
+
8
+ from wolfhece.links import link
9
+
10
+ class TestLink(unittest.TestCase):
11
+
12
+ def test_create_link(self):
13
+
14
+ with TemporaryDirectory() as tempdir:
15
+ directory = os.path.join(tempdir, "directory")
16
+ os.mkdir(directory)
17
+ link_path = os.path.join(tempdir, "link")
18
+
19
+ # Act
20
+ link.create_link(directory, link_path)
21
+
22
+ # Assert
23
+ if not sys.platform == "win32":
24
+ self.assertTrue(os.path.islink(Path(link_path)), 'link not created')
25
+ else:
26
+ self.assertTrue(os.path.exists(link_path), 'link not created')
27
+ self.assertTrue((directory in str(os.readlink(link_path))), 'link not readable')
@@ -0,0 +1,19 @@
1
+ import _add_path
2
+ import unittest
3
+
4
+
5
+ class MyFirstTest(unittest.TestCase):
6
+
7
+ def test_helloworld(self):
8
+
9
+ a = "Hello World !"
10
+
11
+ self.assertEqual(a, 'Hello World !', 'Bad chain with case')
12
+ self.assertEqual(a.lower(), 'hello world !', 'Bad chain lower case')
13
+ self.assertEqual(a.upper(), 'HELLO WORLD !', 'Bad chain lower case')
14
+
15
+ def firstfunc(a):
16
+ return a+1
17
+
18
+ def test_firstfunc(self):
19
+ self.assertEqual(MyFirstTest.firstfunc(3), 4, 'Bad result')
@@ -0,0 +1,63 @@
1
+ import _add_path
2
+ import unittest
3
+ import numpy as np
4
+ from wolfhece.wolf_array import WolfArray, WOLF_ARRAY_FULL_SINGLE
5
+ from tempfile import TemporaryDirectory, TemporaryFile
6
+ from os.path import join
7
+
8
+
9
+ class NumpyTests(unittest.TestCase):
10
+
11
+ def test_reshape(self):
12
+
13
+ a = np.zeros((4,4))
14
+ a[0:2,0:2] = 0
15
+ a[0:2,2:] = 1
16
+ a[2:,0:2] = 2
17
+ a[2:,2:] = 3
18
+
19
+ b = np.mean(a.reshape((2,2,2,2)), axis=(1,3))
20
+ # b = a.reshape((2,2,2,2))
21
+ c = np.asarray([[0,1],[2,3]])
22
+ d=np.sum(np.abs(b-c))
23
+
24
+ self.assertEqual(d, 0., 'bad reshape and mean')
25
+
26
+
27
+ def test_wolf2Numpy(self):
28
+
29
+ # Create wolfarray
30
+ w_array = WolfArray()
31
+ # set sizes/shape
32
+ w_array.nbx, w_array.nby = 100,200
33
+ # allocate memory space
34
+ w_array.allocate_ressources()
35
+
36
+ # fill-in with data
37
+ w_array.array.data[:,:] = np.arange(100*200, dtype=np.float32).reshape(w_array.array.shape, order='F')
38
+
39
+ with TemporaryDirectory() as tmpdir:
40
+ # write on disk
41
+ w_array.write_all(join(tmpdir, 'test.bin'))
42
+ # read in another array
43
+ r_array = WolfArray(join(tmpdir, 'test.bin'))
44
+
45
+ # binary read
46
+ with open(join(tmpdir, 'test.bin'), 'rb') as f:
47
+ # numpy from buffer
48
+ locarray = np.frombuffer(f.read(100*200 * 4), dtype=np.float32)
49
+
50
+ # copy buffer in numpy array alive after "with open"
51
+ np_array_F = np.asarray(locarray.copy(), dtype=np.float32)
52
+ # using order "F", data is aligned/ordered as Fortran (first indice most rapid)
53
+ np_array_F = np_array_F.reshape(100, 200, order='F')
54
+
55
+ # using order "C", data is aligned/ordered as C (last indice most rapid)
56
+ # the array is 'transposed' --> like numpy default definition
57
+ np_array_C = np.asarray(locarray.copy(), dtype=np.float32)
58
+ np_array_C = np_array_C.reshape(200, 100, order='C')
59
+
60
+ self.assertEqual(np.all(w_array.array-r_array.array == 0.), True)
61
+ self.assertEqual(np.all(w_array.array-np_array_F == 0.), True)
62
+ self.assertEqual(np.all(w_array.array-np_array_C.T == 0.), True)
63
+ self.assertEqual(np.all(w_array.array.T-np_array_C == 0.), True)