physioblocks 1.1.0__tar.gz → 1.1.1__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 (220) hide show
  1. {physioblocks-1.1.0 → physioblocks-1.1.1}/PKG-INFO +2 -1
  2. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/__init__.py +1 -1
  3. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/launcher/__main__.py +10 -6
  4. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/simulation/runtime.py +70 -64
  5. {physioblocks-1.1.0 → physioblocks-1.1.1}/pyproject.toml +2 -1
  6. {physioblocks-1.1.0 → physioblocks-1.1.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  7. {physioblocks-1.1.0 → physioblocks-1.1.1}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
  8. {physioblocks-1.1.0 → physioblocks-1.1.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  9. {physioblocks-1.1.0 → physioblocks-1.1.1}/.gitignore +0 -0
  10. {physioblocks-1.1.0 → physioblocks-1.1.1}/.gitlab/issue_templates/Bug.md +0 -0
  11. {physioblocks-1.1.0 → physioblocks-1.1.1}/.gitlab/issue_templates/Documentation.md +0 -0
  12. {physioblocks-1.1.0 → physioblocks-1.1.1}/.gitlab/issue_templates/Feature.md +0 -0
  13. {physioblocks-1.1.0 → physioblocks-1.1.1}/.gitlab-ci.yml +0 -0
  14. {physioblocks-1.1.0 → physioblocks-1.1.1}/README.md +0 -0
  15. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/.gitignore +0 -0
  16. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/Makefile +0 -0
  17. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/make.bat +0 -0
  18. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/api_reference/base.rst +0 -0
  19. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/api_reference/computing.rst +0 -0
  20. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/api_reference/configuration.rst +0 -0
  21. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/api_reference/description.rst +0 -0
  22. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/api_reference/io.rst +0 -0
  23. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/api_reference/registers.rst +0 -0
  24. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/api_reference/simulation.rst +0 -0
  25. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/api_reference/utils.rst +0 -0
  26. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/api_reference.rst +0 -0
  27. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/conf.py +0 -0
  28. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/index.rst +0 -0
  29. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/installation.rst +0 -0
  30. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/library/aliases/blocks.rst +0 -0
  31. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/library/aliases/model_components.rst +0 -0
  32. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/library/aliases/nets.rst +0 -0
  33. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/library/aliases/simulation.rst +0 -0
  34. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/library/aliases.rst +0 -0
  35. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/library/blocks.rst +0 -0
  36. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/library/configuration/functions.rst +0 -0
  37. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/library/configuration/net.rst +0 -0
  38. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/library/configuration/simulation.rst +0 -0
  39. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/library/configuration.rst +0 -0
  40. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/library/functions.rst +0 -0
  41. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/library/model_components.rst +0 -0
  42. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/library.rst +0 -0
  43. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/presentation.rst +0 -0
  44. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/schemes/assembling_example_scheme.tex +0 -0
  45. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/schemes/circulation_net_scheme.tex +0 -0
  46. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/schemes/circulation_net_scheme_heart.tex +0 -0
  47. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/schemes/model_heart_circulation_0D.tex +0 -0
  48. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/schemes/simple_circulation_model.tex +0 -0
  49. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/schemes/simple_circulation_model_heart.tex +0 -0
  50. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/schemes/spherical_heart_net_scheme.tex +0 -0
  51. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_1/launch_simulation.rst +0 -0
  52. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_1/launcher.rst +0 -0
  53. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_1.rst +0 -0
  54. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_2/aliases.rst +0 -0
  55. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_2/create_net.rst +0 -0
  56. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_2/create_simulation.rst +0 -0
  57. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_2/overview.rst +0 -0
  58. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_2.rst +0 -0
  59. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_3/block_configuration.rst +0 -0
  60. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_3/block_definition.rst +0 -0
  61. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_3/block_test.rst +0 -0
  62. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_3/overview.rst +0 -0
  63. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_3/specific_installations.rst +0 -0
  64. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_3.rst +0 -0
  65. {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide.rst +0 -0
  66. {physioblocks-1.1.0 → physioblocks-1.1.1}/docker/latex/Dockerfile +0 -0
  67. {physioblocks-1.1.0 → physioblocks-1.1.1}/docker/pyenv/Dockerfile +0 -0
  68. {physioblocks-1.1.0 → physioblocks-1.1.1}/licenses/GPL-3.0-only.txt +0 -0
  69. {physioblocks-1.1.0 → physioblocks-1.1.1}/licenses/LGPL-3.0-only.txt +0 -0
  70. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/base/__init__.py +0 -0
  71. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/base/operators.py +0 -0
  72. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/base/registers.py +0 -0
  73. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/computing/__init__.py +0 -0
  74. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/computing/assembling.py +0 -0
  75. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/computing/models.py +0 -0
  76. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/computing/quantities.py +0 -0
  77. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/configuration/__init__.py +0 -0
  78. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/configuration/aliases.py +0 -0
  79. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/configuration/base.py +0 -0
  80. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/configuration/computing/__init__.py +0 -0
  81. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/configuration/computing/quantities.py +0 -0
  82. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/configuration/constants.py +0 -0
  83. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/configuration/description/__init__.py +0 -0
  84. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/configuration/description/blocks.py +0 -0
  85. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/configuration/description/nets.py +0 -0
  86. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/configuration/functions.py +0 -0
  87. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/configuration/simulation/__init__.py +0 -0
  88. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/configuration/simulation/simulations.py +0 -0
  89. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/description/__init__.py +0 -0
  90. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/description/blocks.py +0 -0
  91. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/description/flux.py +0 -0
  92. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/description/nets.py +0 -0
  93. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/io/__init__.py +0 -0
  94. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/io/aliases.py +0 -0
  95. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/io/configuration.py +0 -0
  96. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/launcher/configuration.py +0 -0
  97. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/launcher/configure/__main__.py +0 -0
  98. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/launcher/constants.py +0 -0
  99. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/launcher/files.py +0 -0
  100. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/launcher/series.py +0 -0
  101. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/__init__.py +0 -0
  102. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/blocks/c_block.json +0 -0
  103. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/blocks/rc_block.json +0 -0
  104. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/blocks/rcr_block.json +0 -0
  105. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/blocks/spherical_cavity_block.json +0 -0
  106. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/blocks/valve_rl_block.json +0 -0
  107. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/flux/heart_flux_dof_couples.jsonc +0 -0
  108. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/model_components/active_law_macro_huxley_two_moments.json +0 -0
  109. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/model_components/rheology_fiber_additive.json +0 -0
  110. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/model_components/spherical_dynamics.json +0 -0
  111. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/model_components/velocity_law_hht.json +0 -0
  112. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/nets/circulation_alone_net.json +0 -0
  113. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/nets/spherical_heart_net.json +0 -0
  114. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/simulations/circulation_alone_forward_simulation.jsonc +0 -0
  115. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/simulations/default_forward_simulation.jsonc +0 -0
  116. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/simulations/default_time.jsonc +0 -0
  117. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/simulations/newton_method_solver.json +0 -0
  118. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/simulations/spherical_heart_forward_simulation.jsonc +0 -0
  119. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/simulations/spherical_heart_with_respiration_forward_simulation.jsonc +0 -0
  120. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/blocks/__init__.py +0 -0
  121. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/blocks/capacitances.py +0 -0
  122. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/blocks/cavity.py +0 -0
  123. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/blocks/valves.py +0 -0
  124. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/functions/__init__.py +0 -0
  125. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/functions/base_operations.py +0 -0
  126. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/functions/first_order.py +0 -0
  127. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/functions/piecewise.py +0 -0
  128. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/functions/trigonometric.py +0 -0
  129. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/functions/watchers.py +0 -0
  130. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/model_components/__init__.py +0 -0
  131. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/model_components/active_law.py +0 -0
  132. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/model_components/dynamics.py +0 -0
  133. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/model_components/rheology.py +0 -0
  134. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/model_components/velocity_law.py +0 -0
  135. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/registers/__init__.py +0 -0
  136. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/registers/load_function_register.py +0 -0
  137. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/registers/save_function_register.py +0 -0
  138. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/registers/type_register.py +0 -0
  139. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/simulation/__init__.py +0 -0
  140. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/simulation/constants.py +0 -0
  141. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/simulation/functions.py +0 -0
  142. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/simulation/saved_quantities.py +0 -0
  143. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/simulation/setup.py +0 -0
  144. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/simulation/solvers.py +0 -0
  145. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/simulation/state.py +0 -0
  146. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/simulation/time_manager.py +0 -0
  147. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/utils/__init__.py +0 -0
  148. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/utils/dynamic_import_utils.py +0 -0
  149. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/utils/exceptions_utils.py +0 -0
  150. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/utils/gradient_test_utils.py +0 -0
  151. {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/utils/math_utils.py +0 -0
  152. {physioblocks-1.1.0 → physioblocks-1.1.1}/references/circulation_alone_sim.jsonc +0 -0
  153. {physioblocks-1.1.0 → physioblocks-1.1.1}/references/spherical_heart_respiration_sim.jsonc +0 -0
  154. {physioblocks-1.1.0 → physioblocks-1.1.1}/references/spherical_heart_sim.jsonc +0 -0
  155. {physioblocks-1.1.0 → physioblocks-1.1.1}/ruff.toml +0 -0
  156. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/__init__.py +0 -0
  157. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/base/test_register.py +0 -0
  158. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/helpers/__init__.py +0 -0
  159. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/helpers/assertion_helpers.py +0 -0
  160. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/helpers/file_helpers.py +0 -0
  161. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_computing/test_assembling.py +0 -0
  162. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_computing/test_models.py +0 -0
  163. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_computing/test_quantities.py +0 -0
  164. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/__init__.py +0 -0
  165. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/test_definitions.py +0 -0
  166. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/test_generic_save_load.py +0 -0
  167. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/tests_alias/test_alias.py +0 -0
  168. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/tests_description/__init__.py +0 -0
  169. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/tests_description/test_config_blocks.py +0 -0
  170. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/tests_description/test_config_boundary_condition.py +0 -0
  171. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/tests_description/test_config_nets.py +0 -0
  172. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/tests_simulation/__init__.py +0 -0
  173. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/tests_simulation/simulation_reference.json +0 -0
  174. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/tests_simulation/test_config_simulation.py +0 -0
  175. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/tests_simulation/test_config_solvers.py +0 -0
  176. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/tests_simulation/test_config_time.py +0 -0
  177. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/tests_simulation/test_functions.py +0 -0
  178. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_description/__init__.py +0 -0
  179. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_description/test_blocks.py +0 -0
  180. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_description/test_nets.py +0 -0
  181. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_description/test_relations.py +0 -0
  182. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_io/__init__.py +0 -0
  183. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_io/references/alt_config_file_path.json +0 -0
  184. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_io/references/commented_config_file_path.jsonc +0 -0
  185. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_io/references/configuration.json +0 -0
  186. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_io/test_aliases.py +0 -0
  187. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_io/test_configuration.py +0 -0
  188. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_library/tests_blocks/test_capacitances.py +0 -0
  189. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_library/tests_blocks/test_cavity.py +0 -0
  190. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_library/tests_blocks/test_valves.py +0 -0
  191. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_library/tests_functions/test_base_operations_functions.py +0 -0
  192. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_library/tests_functions/test_first_order_functions.py +0 -0
  193. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_library/tests_functions/test_piecewise_functions.py +0 -0
  194. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_library/tests_functions/test_trigonometric_functions.py +0 -0
  195. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_library/tests_functions/test_watch_functions.py +0 -0
  196. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_library/tests_model_components/test_active_law.py +0 -0
  197. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_library/tests_model_components/test_dynamics_block.py +0 -0
  198. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_library/tests_model_components/test_rheology.py +0 -0
  199. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_library/tests_model_components/test_velocity_law_hht.py +0 -0
  200. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_references/__init__.py +0 -0
  201. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_references/circulation_alone/circulation_alone_sim_gradient_test.json +0 -0
  202. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_references/circulation_alone/ref_circulation_alone_sim.csv +0 -0
  203. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_references/conftest.py +0 -0
  204. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_references/io.py +0 -0
  205. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_references/spherical_heart/ref_spherical_heart_respiration_sim.csv +0 -0
  206. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_references/spherical_heart/ref_spherical_heart_sim.csv +0 -0
  207. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_references/spherical_heart/spherical_heart_sim_gradient_test.json +0 -0
  208. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_references/test_circulation_alone.py +0 -0
  209. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_references/test_spherical_heart.py +0 -0
  210. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_registers/test_load_register.py +0 -0
  211. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_registers/test_save_register.py +0 -0
  212. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_registers/test_type_register.py +0 -0
  213. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_simulation/__init__.py +0 -0
  214. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_simulation/test_runtime.py +0 -0
  215. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_simulation/test_setup.py +0 -0
  216. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_simulation/test_solvers.py +0 -0
  217. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_simulation/test_state.py +0 -0
  218. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_simulation/test_time_manager.py +0 -0
  219. {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_utils/test_math_utils.py +0 -0
  220. {physioblocks-1.1.0 → physioblocks-1.1.1}/tox.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: physioblocks
3
- Version: 1.1.0
3
+ Version: 1.1.1
4
4
  Dynamic: Author
5
5
  Dynamic: Author-email
6
6
  Dynamic: License
@@ -31,6 +31,7 @@ Requires-Dist: pandas
31
31
  Requires-Dist: plotly
32
32
  Requires-Dist: pyarrow
33
33
  Requires-Dist: regex
34
+ Requires-Dist: rich
34
35
  Requires-Dist: scipy
35
36
  Provides-Extra: doc
36
37
  Requires-Dist: sphinx; extra == 'doc'
@@ -26,7 +26,7 @@
26
26
 
27
27
  """Physioblocks package definition"""
28
28
 
29
- __version__ = "1.1.0"
29
+ __version__ = "1.1.1"
30
30
  __copyright__ = "INRIA"
31
31
  __license__ = "LGPL-3.0-only"
32
32
  __authors__ = [
@@ -37,6 +37,7 @@ from pathlib import Path
37
37
  from typing import Any
38
38
 
39
39
  import pandas as pd
40
+ from rich.logging import RichHandler
40
41
 
41
42
  import physioblocks.utils.exceptions_utils as exception_utils
42
43
  from physioblocks.configuration import Configuration, load, unwrap_aliases
@@ -64,8 +65,9 @@ from physioblocks.simulation import AbstractSimulation, SimulationError
64
65
  .. note:: When deleting a serie from the launcher folder, or a specific simulation from
65
66
  a serie, the launchers logs are updated the next time any simulation is launched.
66
67
  """
68
+ FILE_LOG_FORMATTER = logging.Formatter(logging.BASIC_FORMAT)
69
+ RICH_LOG_FORMATTER = logging.Formatter("%(message)s", "[%X]")
67
70
 
68
- SIMULATION_LOG_FORMATER = logging.Formatter(logging.BASIC_FORMAT)
69
71
  _root_logger = logging.getLogger()
70
72
  _root_logger.setLevel(logging.DEBUG)
71
73
 
@@ -90,8 +92,10 @@ def run_simulation(config: Configuration) -> pd.DataFrame:
90
92
  return pd.DataFrame(results)
91
93
 
92
94
 
93
- def add_log_handler(handler: logging.Handler, level: str | int) -> None:
94
- handler.setFormatter(SIMULATION_LOG_FORMATER)
95
+ def add_log_handler(
96
+ handler: logging.Handler, level: str | int, formatter: logging.Formatter
97
+ ) -> None:
98
+ handler.setFormatter(formatter)
95
99
  handler.setLevel(level)
96
100
  _root_logger.addHandler(handler)
97
101
 
@@ -132,7 +136,7 @@ def main(
132
136
  # configure the simulation log file (always in DEBUG)
133
137
  log_file_path = sim_folder / str.join(".", [sim_info.reference, "log"])
134
138
  file_handler = logging.FileHandler(log_file_path)
135
- add_log_handler(file_handler, logging.DEBUG)
139
+ add_log_handler(file_handler, logging.DEBUG, FILE_LOG_FORMATTER)
136
140
 
137
141
  # log the current simulation infos
138
142
  _root_logger.info(str(sim_info))
@@ -260,8 +264,8 @@ if __name__ == "__main__":
260
264
 
261
265
  # setup logger when verbose
262
266
  if args.verbose is True:
263
- stdout_handler = logging.StreamHandler(sys.stdout)
264
- add_log_handler(stdout_handler, args.log_level)
267
+ # stdout_handler = logging.StreamHandler(sys.stdout)
268
+ add_log_handler(RichHandler(), args.log_level, RICH_LOG_FORMATTER)
265
269
 
266
270
  # create paths from arguments
267
271
  root_folder_path = Path(args.launcher_directory).absolute()
@@ -37,6 +37,7 @@ from typing import Any, TypeAlias
37
37
 
38
38
  import numpy as np
39
39
  from numpy.typing import NDArray
40
+ from rich.progress import Progress
40
41
 
41
42
  from physioblocks.computing.assembling import EqSystem
42
43
  from physioblocks.computing.models import ModelComponent
@@ -359,77 +360,82 @@ class ForwardSimulation(AbstractSimulation):
359
360
  """
360
361
  # initialize the simulation and save the initial results
361
362
  results = self._initialize()
362
-
363
- try:
364
- while self.time_manager.ended is False:
365
- next_step = self.time_manager.time.new
366
-
367
- self._update_time()
368
-
369
- while (
370
- np.abs(next_step - self.time_manager.time.current)
371
- > self.time_manager.min_step
372
- ):
373
- self.state.reset_state_vector()
374
-
375
- sol = self.solver.solve(self.state, self.eq_system)
376
-
377
- if sol.converged is False:
378
- inter_time = 0.5 * self.time_manager.current_step_size
379
- if inter_time < self.time_manager.min_step:
380
- raise ConvergenceError(
381
- str.format(
382
- "The solver did not converge at {0}s for minimal"
383
- "time step {1}",
384
- self.time_manager.time.current,
385
- self.time_manager.min_step,
363
+ progress_step_update = (
364
+ 100.0 * self.time_manager.step_size / self.time_manager.duration
365
+ )
366
+ with Progress() as progress:
367
+ try:
368
+ sim_task = progress.add_task("Simulation in progress...")
369
+ while self.time_manager.ended is False:
370
+ next_step = self.time_manager.time.new
371
+
372
+ self._update_time()
373
+
374
+ while (
375
+ np.abs(next_step - self.time_manager.time.current)
376
+ > self.time_manager.min_step
377
+ ):
378
+ self.state.reset_state_vector()
379
+
380
+ sol = self.solver.solve(self.state, self.eq_system)
381
+
382
+ if sol.converged is False:
383
+ inter_time = 0.5 * self.time_manager.current_step_size
384
+ if inter_time < self.time_manager.min_step:
385
+ raise ConvergenceError(
386
+ str.format(
387
+ "The solver did not converge at {0}s for "
388
+ "minimal time step {1}",
389
+ self.time_manager.time.current,
390
+ self.time_manager.min_step,
391
+ )
386
392
  )
387
- )
388
393
 
389
- self.time_manager.current_step_size = inter_time
390
- self.time_manager.time.update(
391
- self.time_manager.time.current
392
- + self.time_manager.current_step_size
393
- )
394
- else:
395
- self.state.set_state_vector(sol.x)
396
-
397
- self.time_manager.update_time()
398
- if (
399
- np.abs(next_step - self.time_manager.time.current)
400
- >= self.time_manager.min_step
401
- ):
402
- self.time_manager.current_step_size = (
403
- next_step - self.time_manager.time.current
404
- )
405
- self.time_manager.time.update(next_step)
406
- else:
407
- self.time_manager.time.initialize(next_step)
408
- self.time_manager.current_step_size = (
409
- self.time_manager.step_size
410
- )
394
+ self.time_manager.current_step_size = inter_time
411
395
  self.time_manager.time.update(
412
396
  self.time_manager.time.current
413
397
  + self.time_manager.current_step_size
414
398
  )
399
+ else:
400
+ self.state.set_state_vector(sol.x)
401
+
402
+ self.time_manager.update_time()
403
+ if (
404
+ np.abs(next_step - self.time_manager.time.current)
405
+ >= self.time_manager.min_step
406
+ ):
407
+ self.time_manager.current_step_size = (
408
+ next_step - self.time_manager.time.current
409
+ )
410
+ self.time_manager.time.update(next_step)
411
+ else:
412
+ progress.update(sim_task, advance=progress_step_update)
413
+ self.time_manager.time.initialize(next_step)
414
+ self.time_manager.current_step_size = (
415
+ self.time_manager.step_size
416
+ )
417
+ self.time_manager.time.update(
418
+ self.time_manager.time.current
419
+ + self.time_manager.current_step_size
420
+ )
415
421
 
416
- self.state.set_state_vector(sol.x)
417
- results.append(self._get_current_result())
418
- except Exception as exception:
419
- log_exception(
420
- _logger,
421
- type(exception),
422
- exception,
423
- exception.__traceback__,
424
- logging.DEBUG,
425
- )
426
- raise SimulationError(
427
- str.format(
428
- "An error caused the simulation to stop prematurely",
429
- intermediate_results=results,
430
- ),
431
- results,
432
- ) from exception
422
+ self.state.set_state_vector(sol.x)
423
+ results.append(self._get_current_result())
424
+ except Exception as exception:
425
+ log_exception(
426
+ _logger,
427
+ type(exception),
428
+ exception,
429
+ exception.__traceback__,
430
+ logging.DEBUG,
431
+ )
432
+ raise SimulationError(
433
+ str.format(
434
+ "An error caused the simulation to stop prematurely",
435
+ intermediate_results=results,
436
+ ),
437
+ results,
438
+ ) from exception
433
439
 
434
440
  self._finalize()
435
441
  return results
@@ -10,7 +10,8 @@ dependencies = [
10
10
  "pandas",
11
11
  "plotly",
12
12
  "pyarrow",
13
- "regex"
13
+ "regex",
14
+ "rich"
14
15
  ]
15
16
  description = "Physioblocks allows the simulation of dynamical models of physiological systems"
16
17
  keywords = [
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes