pathsim 0.29.0__tar.gz → 0.29.2__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 (403) hide show
  1. {pathsim-0.29.0 → pathsim-0.29.2}/PKG-INFO +1 -1
  2. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/_version.py +3 -3
  3. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/bvp.py +3 -1
  4. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/scope.py +4 -3
  5. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/spectrum.py +2 -1
  6. pathsim-0.29.2/src/pathsim/utils/plotting.py +33 -0
  7. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim.egg-info/PKG-INFO +1 -1
  8. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim.egg-info/SOURCES.txt +2 -0
  9. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim.egg-info/scm_file_list.json +2 -0
  10. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim.egg-info/scm_version.json +2 -2
  11. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_bvp.py +22 -0
  12. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_scope.py +0 -3
  13. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_spectrum.py +1 -6
  14. pathsim-0.29.2/tests/pathsim/utils/test_plotting.py +63 -0
  15. {pathsim-0.29.0 → pathsim-0.29.2}/.codecov.yml +0 -0
  16. {pathsim-0.29.0 → pathsim-0.29.2}/.github/FUNDING.yml +0 -0
  17. {pathsim-0.29.0 → pathsim-0.29.2}/.github/pull_request_template.md +0 -0
  18. {pathsim-0.29.0 → pathsim-0.29.2}/.github/workflows/pypi_deployment.yml +0 -0
  19. {pathsim-0.29.0 → pathsim-0.29.2}/.github/workflows/tests_codecov.yml +0 -0
  20. {pathsim-0.29.0 → pathsim-0.29.2}/.github/workflows/urlchecker.yml +0 -0
  21. {pathsim-0.29.0 → pathsim-0.29.2}/.gitignore +0 -0
  22. {pathsim-0.29.0 → pathsim-0.29.2}/CITATION.cff +0 -0
  23. {pathsim-0.29.0 → pathsim-0.29.2}/CONTRIBUTING.md +0 -0
  24. {pathsim-0.29.0 → pathsim-0.29.2}/LICENSE.txt +0 -0
  25. {pathsim-0.29.0 → pathsim-0.29.2}/README.md +0 -0
  26. {pathsim-0.29.0 → pathsim-0.29.2}/conftest.py +0 -0
  27. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/abs_braking.ipynb +0 -0
  28. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/algebraic_loop.ipynb +0 -0
  29. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/billards.ipynb +0 -0
  30. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/bouncing_ball.ipynb +0 -0
  31. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/bouncing_pendulum.ipynb +0 -0
  32. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/cascade_controller.ipynb +0 -0
  33. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/checkpoints.ipynb +0 -0
  34. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/chemical_reactor.ipynb +0 -0
  35. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/coupled_oscillators.ipynb +0 -0
  36. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/data/BouncingBall_ME.fmu +0 -0
  37. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/data/CoupledClutches_CS_linux64.fmu +0 -0
  38. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/data/CoupledClutches_CS_win64.fmu +0 -0
  39. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/data/Dahlquist.fmu +0 -0
  40. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/data/VanDerPol_ME.fmu +0 -0
  41. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/dcmotor_control.ipynb +0 -0
  42. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/delta_sigma_adc.ipynb +0 -0
  43. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/diode_circuit.ipynb +0 -0
  44. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/elastic_pendulum.ipynb +0 -0
  45. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/algebraicloop_blockdiagram_g.png +0 -0
  46. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/billard_circle_g.png +0 -0
  47. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/bouncing_ball_blockdiagram_g.png +0 -0
  48. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/bouncing_ball_both_g.png +0 -0
  49. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/bouncing_ball_g.png +0 -0
  50. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/bouncing_ball_result_events_g.png +0 -0
  51. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/bouncing_ball_result_g.png +0 -0
  52. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/bouncing_ball_result_timesteps_g.png +0 -0
  53. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/bouncing_pendulum_blockdiagram_g.png +0 -0
  54. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/cascade_blockdiagram_g.png +0 -0
  55. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/coupled_oscillators_blockdiagram_g.png +0 -0
  56. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/coupled_oscillators_g.png +0 -0
  57. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/delta_sigma_blockdiagram_g.png +0 -0
  58. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/diode_blockdiagram_g.png +0 -0
  59. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/elastic_pendulum_g.png +0 -0
  60. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/fmcw_blockdiagram_g.png +0 -0
  61. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/fmcw_g.png +0 -0
  62. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/harmonic_oscillator_g.png +0 -0
  63. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/harmonic_oscillator_result_g.png +0 -0
  64. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/kalman_filter_blockdiagram_g.png +0 -0
  65. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/linear_feedback_blockdiagram_g.png +0 -0
  66. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/linear_feedback_result_g.png +0 -0
  67. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/linear_feedback_result_sensitivity_g.png +0 -0
  68. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/miller_frequency_divider_blockdiagram_g.png +0 -0
  69. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/nonlinear_noisy_amplifier_blockdiagram_g.png +0 -0
  70. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/ode_blockdiagram_g.png +0 -0
  71. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/pendulum_blockdiagram_g.png +0 -0
  72. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/pid_blockdiagram_g.png +0 -0
  73. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/sar_adc_blockdiagram_g.png +0 -0
  74. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/stick_slip_blockdiagram_g.png +0 -0
  75. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/stick_slip_blockdiagram_slip_g.png +0 -0
  76. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/stick_slip_blockdiagram_stick_g.png +0 -0
  77. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/stick_slip_g.png +0 -0
  78. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/thermostat_blockdiagram_g.png +0 -0
  79. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/vanderpol_blockdiagram_g.png +0 -0
  80. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/vanderpol_result_g.png +0 -0
  81. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/vanderpol_subsystem_blockdiagram_g.png +0 -0
  82. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/vanderpol_subsystem_lvl1_g.png +0 -0
  83. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/vanderpol_subsystem_lvl2_g.png +0 -0
  84. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/vanderpol_subsystem_lvl3_g.png +0 -0
  85. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/figures_g/volterralotka_blockdiagram_g.png +0 -0
  86. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/ode_blockdiagram_2.png +0 -0
  87. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/stick_slip_blockdiagram_slip.png +0 -0
  88. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/figures/stick_slip_blockdiagram_stick.png +0 -0
  89. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/fmcw_radar.ipynb +0 -0
  90. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/fmu_cosimulation.ipynb +0 -0
  91. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/fmu_model_exchange_bouncing_ball.ipynb +0 -0
  92. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/fmu_model_exchange_vanderpol.ipynb +0 -0
  93. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/harmonic_oscillator.ipynb +0 -0
  94. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/kalman_filter.ipynb +0 -0
  95. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/linear_feedback.ipynb +0 -0
  96. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/lorenz_attractor.ipynb +0 -0
  97. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/nested_subsystems.ipynb +0 -0
  98. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/noisy_amplifier.ipynb +0 -0
  99. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/pendulum.ipynb +0 -0
  100. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/pid_controller.ipynb +0 -0
  101. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/poincare_maps.ipynb +0 -0
  102. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/rf_network_oneport.ipynb +0 -0
  103. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/sar_adc.ipynb +0 -0
  104. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/spectrum_analysis.ipynb +0 -0
  105. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/stick_slip.ipynb +0 -0
  106. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/switched_bouncing_ball.ipynb +0 -0
  107. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/thermostat.ipynb +0 -0
  108. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/transfer_function.ipynb +0 -0
  109. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/examples/vanderpol.ipynb +0 -0
  110. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/logos/pathsim_icon.png +0 -0
  111. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/logos/pathsim_logo.png +0 -0
  112. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/logos/pathsim_simplistic_logo.png +0 -0
  113. {pathsim-0.29.0 → pathsim-0.29.2}/docs/source/pathsim_docs.mplstyle +0 -0
  114. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_abs_braking.py +0 -0
  115. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_adc.py +0 -0
  116. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_algebraicchain.py +0 -0
  117. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_algebraicloop.py +0 -0
  118. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_cascade.py +0 -0
  119. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_dcmotor.py +0 -0
  120. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_deltasigma.py +0 -0
  121. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_derivative.py +0 -0
  122. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_diode.py +0 -0
  123. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_dualslope.py +0 -0
  124. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_elastic_pendulum.py +0 -0
  125. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_feedback.py +0 -0
  126. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_filters.py +0 -0
  127. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_harmonic_oscillator.py +0 -0
  128. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_kalman_filter.py +0 -0
  129. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_nested_subsystems.py +0 -0
  130. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_noise.py +0 -0
  131. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_pendulum.py +0 -0
  132. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_phasenoise.py +0 -0
  133. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_pid.py +0 -0
  134. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_pid_antiwindup.py +0 -0
  135. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_pid_vs_discretePID.py +0 -0
  136. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_radar.py +0 -0
  137. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_reactor.py +0 -0
  138. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_sar.py +0 -0
  139. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_solar.py +0 -0
  140. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_solver_hotswap.py +0 -0
  141. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_spectrum.py +0 -0
  142. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_spectrum_rf_oneport.py +0 -0
  143. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_steadystate.py +0 -0
  144. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_stickslip.py +0 -0
  145. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_transferfunction.py +0 -0
  146. {pathsim-0.29.0 → pathsim-0.29.2}/examples/example_vanderpol_subsystem.py +0 -0
  147. {pathsim-0.29.0 → pathsim-0.29.2}/examples/examples_event/example_billards_sphere.py +0 -0
  148. {pathsim-0.29.0 → pathsim-0.29.2}/examples/examples_event/example_bouncing_pendulum.py +0 -0
  149. {pathsim-0.29.0 → pathsim-0.29.2}/examples/examples_event/example_bouncingball.py +0 -0
  150. {pathsim-0.29.0 → pathsim-0.29.2}/examples/examples_event/example_bouncingball_friction.py +0 -0
  151. {pathsim-0.29.0 → pathsim-0.29.2}/examples/examples_event/example_bouncingball_switched.py +0 -0
  152. {pathsim-0.29.0 → pathsim-0.29.2}/examples/examples_event/example_integrator_reset.py +0 -0
  153. {pathsim-0.29.0 → pathsim-0.29.2}/examples/examples_event/example_pulse.py +0 -0
  154. {pathsim-0.29.0 → pathsim-0.29.2}/examples/examples_event/example_stickslip_event.py +0 -0
  155. {pathsim-0.29.0 → pathsim-0.29.2}/examples/examples_event/example_thermostat.py +0 -0
  156. {pathsim-0.29.0 → pathsim-0.29.2}/examples/examples_event/example_volterralotka_event.py +0 -0
  157. {pathsim-0.29.0 → pathsim-0.29.2}/examples/examples_odes/example_bonhoeffer_vanderpol.py +0 -0
  158. {pathsim-0.29.0 → pathsim-0.29.2}/examples/examples_odes/example_brusselator.py +0 -0
  159. {pathsim-0.29.0 → pathsim-0.29.2}/examples/examples_odes/example_chemical.py +0 -0
  160. {pathsim-0.29.0 → pathsim-0.29.2}/examples/examples_odes/example_duffing.py +0 -0
  161. {pathsim-0.29.0 → pathsim-0.29.2}/examples/examples_odes/example_fairen_velarde.py +0 -0
  162. {pathsim-0.29.0 → pathsim-0.29.2}/examples/examples_odes/example_fitzhughnagumo.py +0 -0
  163. {pathsim-0.29.0 → pathsim-0.29.2}/examples/examples_odes/example_flame.py +0 -0
  164. {pathsim-0.29.0 → pathsim-0.29.2}/examples/examples_odes/example_glycolysis.py +0 -0
  165. {pathsim-0.29.0 → pathsim-0.29.2}/examples/examples_odes/example_lorenz.py +0 -0
  166. {pathsim-0.29.0 → pathsim-0.29.2}/examples/examples_odes/example_morse.py +0 -0
  167. {pathsim-0.29.0 → pathsim-0.29.2}/examples/examples_odes/example_robertson.py +0 -0
  168. {pathsim-0.29.0 → pathsim-0.29.2}/examples/examples_odes/example_roessler.py +0 -0
  169. {pathsim-0.29.0 → pathsim-0.29.2}/examples/examples_odes/example_thomas_cyclic.py +0 -0
  170. {pathsim-0.29.0 → pathsim-0.29.2}/examples/examples_odes/example_vanderpol.py +0 -0
  171. {pathsim-0.29.0 → pathsim-0.29.2}/examples/examples_odes/example_volterralotka.py +0 -0
  172. {pathsim-0.29.0 → pathsim-0.29.2}/git +0 -0
  173. {pathsim-0.29.0 → pathsim-0.29.2}/pyproject.toml +0 -0
  174. {pathsim-0.29.0 → pathsim-0.29.2}/setup.cfg +0 -0
  175. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/__init__.py +0 -0
  176. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/_constants.py +0 -0
  177. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/README.md +0 -0
  178. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/__init__.py +0 -0
  179. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/_block.py +0 -0
  180. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/adder.py +0 -0
  181. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/amplifier.py +0 -0
  182. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/comparator.py +0 -0
  183. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/constraint.py +0 -0
  184. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/converters.py +0 -0
  185. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/counter.py +0 -0
  186. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/ctrl.py +0 -0
  187. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/dae.py +0 -0
  188. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/delay.py +0 -0
  189. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/differentiator.py +0 -0
  190. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/discrete.py +0 -0
  191. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/divider.py +0 -0
  192. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/dynsys.py +0 -0
  193. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/filters.py +0 -0
  194. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/fmu.py +0 -0
  195. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/function.py +0 -0
  196. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/integrator.py +0 -0
  197. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/kalman.py +0 -0
  198. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/logic.py +0 -0
  199. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/lti.py +0 -0
  200. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/math.py +0 -0
  201. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/multiplier.py +0 -0
  202. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/noise.py +0 -0
  203. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/ode.py +0 -0
  204. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/relay.py +0 -0
  205. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/rf.py +0 -0
  206. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/rng.py +0 -0
  207. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/sources.py +0 -0
  208. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/splitter.py +0 -0
  209. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/switch.py +0 -0
  210. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/table.py +0 -0
  211. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/blocks/wrapper.py +0 -0
  212. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/connection.py +0 -0
  213. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/events/__init__.py +0 -0
  214. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/events/_event.py +0 -0
  215. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/events/condition.py +0 -0
  216. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/events/schedule.py +0 -0
  217. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/events/zerocrossing.py +0 -0
  218. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/exceptions.py +0 -0
  219. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/optim/__init__.py +0 -0
  220. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/optim/anderson.py +0 -0
  221. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/optim/booster.py +0 -0
  222. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/optim/jacobian.py +0 -0
  223. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/optim/linearization.py +0 -0
  224. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/optim/newton.py +0 -0
  225. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/optim/numerical.py +0 -0
  226. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/optim/operator.py +0 -0
  227. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/simulation.py +0 -0
  228. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/solvers/README.md +0 -0
  229. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/solvers/__init__.py +0 -0
  230. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/solvers/_rungekutta.py +0 -0
  231. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/solvers/_solver.py +0 -0
  232. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/solvers/bdf.py +0 -0
  233. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/solvers/dirk2.py +0 -0
  234. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/solvers/dirk3.py +0 -0
  235. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/solvers/esdirk32.py +0 -0
  236. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/solvers/esdirk4.py +0 -0
  237. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/solvers/esdirk43.py +0 -0
  238. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/solvers/esdirk54.py +0 -0
  239. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/solvers/esdirk85.py +0 -0
  240. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/solvers/euler.py +0 -0
  241. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/solvers/gear.py +0 -0
  242. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/solvers/rk4.py +0 -0
  243. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/solvers/rkbs32.py +0 -0
  244. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/solvers/rkck54.py +0 -0
  245. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/solvers/rkdp54.py +0 -0
  246. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/solvers/rkdp87.py +0 -0
  247. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/solvers/rkf21.py +0 -0
  248. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/solvers/rkf45.py +0 -0
  249. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/solvers/rkf78.py +0 -0
  250. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/solvers/rkv65.py +0 -0
  251. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/solvers/ssprk22.py +0 -0
  252. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/solvers/ssprk33.py +0 -0
  253. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/solvers/ssprk34.py +0 -0
  254. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/solvers/steadystate.py +0 -0
  255. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/subsystem.py +0 -0
  256. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/utils/__init__.py +0 -0
  257. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/utils/adaptivebuffer.py +0 -0
  258. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/utils/analysis.py +0 -0
  259. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/utils/carrier.py +0 -0
  260. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/utils/deprecation.py +0 -0
  261. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/utils/diagnostics.py +0 -0
  262. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/utils/fmuwrapper.py +0 -0
  263. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/utils/gilbert.py +0 -0
  264. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/utils/graph.py +0 -0
  265. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/utils/logger.py +0 -0
  266. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/utils/mutable.py +0 -0
  267. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/utils/portreference.py +0 -0
  268. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/utils/progresstracker.py +0 -0
  269. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/utils/realtimeplotter.py +0 -0
  270. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim/utils/register.py +0 -0
  271. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim.egg-info/dependency_links.txt +0 -0
  272. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim.egg-info/requires.txt +0 -0
  273. {pathsim-0.29.0 → pathsim-0.29.2}/src/pathsim.egg-info/top_level.txt +0 -0
  274. {pathsim-0.29.0 → pathsim-0.29.2}/tests/README.md +0 -0
  275. {pathsim-0.29.0 → pathsim-0.29.2}/tests/__init__.py +0 -0
  276. {pathsim-0.29.0 → pathsim-0.29.2}/tests/evals/CoupledClutches_CS.fmu +0 -0
  277. {pathsim-0.29.0 → pathsim-0.29.2}/tests/evals/__init__.py +0 -0
  278. {pathsim-0.29.0 → pathsim-0.29.2}/tests/evals/conftest.py +0 -0
  279. {pathsim-0.29.0 → pathsim-0.29.2}/tests/evals/test_algebraic_system.py +0 -0
  280. {pathsim-0.29.0 → pathsim-0.29.2}/tests/evals/test_bouncingball_friction_event_system.py +0 -0
  281. {pathsim-0.29.0 → pathsim-0.29.2}/tests/evals/test_bouncingball_system.py +0 -0
  282. {pathsim-0.29.0 → pathsim-0.29.2}/tests/evals/test_brusselator_system.py +0 -0
  283. {pathsim-0.29.0 → pathsim-0.29.2}/tests/evals/test_cosim_fmu_system.py +0 -0
  284. {pathsim-0.29.0 → pathsim-0.29.2}/tests/evals/test_counter_comparator_system.py +0 -0
  285. {pathsim-0.29.0 → pathsim-0.29.2}/tests/evals/test_dynamical_system_ivp.py +0 -0
  286. {pathsim-0.29.0 → pathsim-0.29.2}/tests/evals/test_fitzhughnagumo_system.py +0 -0
  287. {pathsim-0.29.0 → pathsim-0.29.2}/tests/evals/test_harmonic_oscillator_system.py +0 -0
  288. {pathsim-0.29.0 → pathsim-0.29.2}/tests/evals/test_linear_feedback_system.py +0 -0
  289. {pathsim-0.29.0 → pathsim-0.29.2}/tests/evals/test_logic_system.py +0 -0
  290. {pathsim-0.29.0 → pathsim-0.29.2}/tests/evals/test_lorenz_system.py +0 -0
  291. {pathsim-0.29.0 → pathsim-0.29.2}/tests/evals/test_me_analytical.py +0 -0
  292. {pathsim-0.29.0 → pathsim-0.29.2}/tests/evals/test_model_exchange_fmu_system.py +0 -0
  293. {pathsim-0.29.0 → pathsim-0.29.2}/tests/evals/test_pid_system.py +0 -0
  294. {pathsim-0.29.0 → pathsim-0.29.2}/tests/evals/test_relay_thermostat_system.py +0 -0
  295. {pathsim-0.29.0 → pathsim-0.29.2}/tests/evals/test_rescale_delay_system.py +0 -0
  296. {pathsim-0.29.0 → pathsim-0.29.2}/tests/evals/test_robertson_system.py +0 -0
  297. {pathsim-0.29.0 → pathsim-0.29.2}/tests/evals/test_roessler_system.py +0 -0
  298. {pathsim-0.29.0 → pathsim-0.29.2}/tests/evals/test_signal_processing_system.py +0 -0
  299. {pathsim-0.29.0 → pathsim-0.29.2}/tests/evals/test_steadystate_transient_system.py +0 -0
  300. {pathsim-0.29.0 → pathsim-0.29.2}/tests/evals/test_switch_lti_system.py +0 -0
  301. {pathsim-0.29.0 → pathsim-0.29.2}/tests/evals/test_vanderpol_system.py +0 -0
  302. {pathsim-0.29.0 → pathsim-0.29.2}/tests/evals/test_volterralotka_system.py +0 -0
  303. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/__init__.py +0 -0
  304. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/__init__.py +0 -0
  305. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/_embedding.py +0 -0
  306. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/rf/__init__.py +0 -0
  307. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/rf/ring_slot.s2p +0 -0
  308. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/rf/ring_slot_meas.s1p +0 -0
  309. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/rf/test_rf.py +0 -0
  310. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_adder.py +0 -0
  311. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_amplifier.py +0 -0
  312. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_block.py +0 -0
  313. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_comparator.py +0 -0
  314. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_constraint.py +0 -0
  315. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_converters.py +0 -0
  316. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_counter.py +0 -0
  317. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_ctrl.py +0 -0
  318. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_dae.py +0 -0
  319. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_delay.py +0 -0
  320. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_delay_channels.py +0 -0
  321. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_differentiator.py +0 -0
  322. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_discrete.py +0 -0
  323. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_divider.py +0 -0
  324. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_dynsys.py +0 -0
  325. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_filters.py +0 -0
  326. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_fmu.py +0 -0
  327. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_function.py +0 -0
  328. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_integrator.py +0 -0
  329. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_kalman.py +0 -0
  330. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_logic.py +0 -0
  331. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_lti.py +0 -0
  332. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_math.py +0 -0
  333. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_multiplier.py +0 -0
  334. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_noise.py +0 -0
  335. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_ode.py +0 -0
  336. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_relay.py +0 -0
  337. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_rng.py +0 -0
  338. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_sources.py +0 -0
  339. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_sparsedae.py +0 -0
  340. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_splitter.py +0 -0
  341. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_switch.py +0 -0
  342. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_table.py +0 -0
  343. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/blocks/test_wrapper.py +0 -0
  344. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/events/__init__.py +0 -0
  345. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/events/test_condition.py +0 -0
  346. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/events/test_event.py +0 -0
  347. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/events/test_schedule.py +0 -0
  348. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/events/test_zerocrossing.py +0 -0
  349. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/optim/__init__.py +0 -0
  350. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/optim/test_anderson.py +0 -0
  351. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/optim/test_linearization.py +0 -0
  352. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/optim/test_newton.py +0 -0
  353. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/optim/test_numerical.py +0 -0
  354. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/optim/test_operator.py +0 -0
  355. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/optim/test_sparse_newton.py +0 -0
  356. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/solvers/__init__.py +0 -0
  357. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/solvers/_referenceproblems.py +0 -0
  358. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/solvers/test_bdf.py +0 -0
  359. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/solvers/test_dirk2.py +0 -0
  360. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/solvers/test_dirk3.py +0 -0
  361. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/solvers/test_esdirk32.py +0 -0
  362. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/solvers/test_esdirk4.py +0 -0
  363. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/solvers/test_esdirk43.py +0 -0
  364. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/solvers/test_esdirk54.py +0 -0
  365. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/solvers/test_esdirk85.py +0 -0
  366. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/solvers/test_euler.py +0 -0
  367. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/solvers/test_gear.py +0 -0
  368. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/solvers/test_rfk21.py +0 -0
  369. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/solvers/test_rk4.py +0 -0
  370. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/solvers/test_rkbs32.py +0 -0
  371. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/solvers/test_rkck54.py +0 -0
  372. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/solvers/test_rkdp54.py +0 -0
  373. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/solvers/test_rkdp87.py +0 -0
  374. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/solvers/test_rkf45.py +0 -0
  375. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/solvers/test_rkf78.py +0 -0
  376. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/solvers/test_rkv65.py +0 -0
  377. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/solvers/test_solver.py +0 -0
  378. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/solvers/test_ssprk22.py +0 -0
  379. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/solvers/test_ssprk33.py +0 -0
  380. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/solvers/test_ssprk34.py +0 -0
  381. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/solvers/test_steadystate.py +0 -0
  382. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/test_auto_initial_step.py +0 -0
  383. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/test_checkpoint.py +0 -0
  384. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/test_connection.py +0 -0
  385. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/test_diagnostics.py +0 -0
  386. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/test_simulation.py +0 -0
  387. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/test_simulation_pss.py +0 -0
  388. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/test_simulation_steadystate_recovery.py +0 -0
  389. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/test_subsystem.py +0 -0
  390. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/test_subsystem_current_inputs.py +0 -0
  391. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/utils/__init__.py +0 -0
  392. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/utils/test_adaptivebuffer.py +0 -0
  393. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/utils/test_analysis.py +0 -0
  394. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/utils/test_carrier.py +0 -0
  395. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/utils/test_fmuwrapper.py +0 -0
  396. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/utils/test_gilbert.py +0 -0
  397. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/utils/test_graph.py +0 -0
  398. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/utils/test_logger.py +0 -0
  399. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/utils/test_mutable.py +0 -0
  400. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/utils/test_portreference.py +0 -0
  401. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/utils/test_progresstracker.py +0 -0
  402. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/utils/test_realtimeplotter.py +0 -0
  403. {pathsim-0.29.0 → pathsim-0.29.2}/tests/pathsim/utils/test_register.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pathsim
3
- Version: 0.29.0
3
+ Version: 0.29.2
4
4
  Summary: A differentiable block based hybrid system simulation framework.
5
5
  Author-email: Milan Rother <milan.rother@gmx.de>
6
6
  License: MIT
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.29.0'
22
- __version_tuple__ = version_tuple = (0, 29, 0)
21
+ __version__ = version = '0.29.2'
22
+ __version_tuple__ = version_tuple = (0, 29, 2)
23
23
 
24
- __commit_id__ = commit_id = 'g220bc787c'
24
+ __commit_id__ = commit_id = 'gc2d44b82b'
@@ -252,8 +252,10 @@ class BVP1D(Block):
252
252
  u = self.inputs.to_array()
253
253
 
254
254
  #skip the solve if the boundary data is unchanged since the last
255
- #successful solve; the warm-start and output are still valid
255
+ #successful solve; the warm-start and output are still valid, also
256
+ #when a solve for another input failed in between
256
257
  if self._u_last is not None and np.array_equal(u, self._u_last):
258
+ self.success = True
257
259
  return
258
260
 
259
261
  #scipy callbacks, with or without free parameters
@@ -18,6 +18,7 @@ import matplotlib.pyplot as plt
18
18
  from ._block import Block
19
19
  from ..events.schedule import Schedule
20
20
  from ..utils.realtimeplotter import RealtimePlotter
21
+ from ..utils.plotting import show
21
22
  from ..utils.deprecation import deprecated
22
23
 
23
24
  from .._constants import COLORS_ALL
@@ -270,7 +271,7 @@ class Scope(Block):
270
271
  fig.canvas.mpl_connect("pick_event", on_pick)
271
272
 
272
273
  #show the plot without blocking following code
273
- plt.show(block=False)
274
+ show(fig)
274
275
 
275
276
  #return figure and axis for outside manipulation
276
277
  return fig, ax
@@ -337,7 +338,7 @@ class Scope(Block):
337
338
  ax.grid()
338
339
 
339
340
  #show the plot without blocking following code
340
- plt.show(block=False)
341
+ show(fig)
341
342
 
342
343
  #return figure and axis for outside manipulation
343
344
  return fig, ax
@@ -408,7 +409,7 @@ class Scope(Block):
408
409
  ax.set_zlabel(label3)
409
410
 
410
411
  #show the plot without blocking
411
- plt.show(block=False)
412
+ show(fig)
412
413
 
413
414
  return fig, ax
414
415
 
@@ -14,6 +14,7 @@ import matplotlib.pyplot as plt
14
14
  from ._block import Block
15
15
 
16
16
  from ..utils.realtimeplotter import RealtimePlotter
17
+ from ..utils.plotting import show
17
18
  from ..utils.deprecation import deprecated
18
19
  from ..utils.mutable import mutable
19
20
 
@@ -386,7 +387,7 @@ class Spectrum(Block):
386
387
  self.fig.canvas.mpl_connect("pick_event", on_pick)
387
388
 
388
389
  #show the plot without blocking following code
389
- plt.show(block=False)
390
+ show(self.fig)
390
391
 
391
392
  #return figure and axis for outside manipulation
392
393
  return self.fig, self.ax
@@ -0,0 +1,33 @@
1
+ #########################################################################################
2
+ ##
3
+ ## PLOTTING HELPERS
4
+ ## (utils/plotting.py)
5
+ ##
6
+ #########################################################################################
7
+
8
+ # IMPORTS ===============================================================================
9
+
10
+ import matplotlib.pyplot as plt
11
+
12
+ from matplotlib.backend_bases import FigureManagerBase
13
+
14
+
15
+ # FUNCTIONS =============================================================================
16
+
17
+ def show(fig):
18
+ """Show a figure without blocking the following code, if the matplotlib
19
+ backend opens figures in a window.
20
+
21
+ Backends without a window, such as the inline backend of Jupyter or 'Agg',
22
+ use the generic 'FigureManagerBase'. Jupyter displays the figure at the end
23
+ of the cell by itself, so the figure stays open for changes after the plot
24
+ call, for example 'ax.set_title(...)'.
25
+
26
+ Parameters
27
+ ----------
28
+ fig : matplotlib.figure.Figure
29
+ figure to show
30
+ """
31
+ if type(fig.canvas.manager) is FigureManagerBase:
32
+ return
33
+ plt.show(block=False)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pathsim
3
- Version: 0.29.0
3
+ Version: 0.29.2
4
4
  Summary: A differentiable block based hybrid system simulation framework.
5
5
  Author-email: Milan Rother <milan.rother@gmx.de>
6
6
  License: MIT
@@ -260,6 +260,7 @@ src/pathsim/utils/gilbert.py
260
260
  src/pathsim/utils/graph.py
261
261
  src/pathsim/utils/logger.py
262
262
  src/pathsim/utils/mutable.py
263
+ src/pathsim/utils/plotting.py
263
264
  src/pathsim/utils/portreference.py
264
265
  src/pathsim/utils/progresstracker.py
265
266
  src/pathsim/utils/realtimeplotter.py
@@ -393,6 +394,7 @@ tests/pathsim/utils/test_gilbert.py
393
394
  tests/pathsim/utils/test_graph.py
394
395
  tests/pathsim/utils/test_logger.py
395
396
  tests/pathsim/utils/test_mutable.py
397
+ tests/pathsim/utils/test_plotting.py
396
398
  tests/pathsim/utils/test_portreference.py
397
399
  tests/pathsim/utils/test_progresstracker.py
398
400
  tests/pathsim/utils/test_realtimeplotter.py
@@ -254,6 +254,7 @@
254
254
  "src/pathsim/utils/graph.py",
255
255
  "src/pathsim/utils/logger.py",
256
256
  "src/pathsim/utils/mutable.py",
257
+ "src/pathsim/utils/plotting.py",
257
258
  "src/pathsim/utils/portreference.py",
258
259
  "src/pathsim/utils/progresstracker.py",
259
260
  "src/pathsim/utils/realtimeplotter.py",
@@ -387,6 +388,7 @@
387
388
  "tests/pathsim/utils/test_graph.py",
388
389
  "tests/pathsim/utils/test_logger.py",
389
390
  "tests/pathsim/utils/test_mutable.py",
391
+ "tests/pathsim/utils/test_plotting.py",
390
392
  "tests/pathsim/utils/test_portreference.py",
391
393
  "tests/pathsim/utils/test_progresstracker.py",
392
394
  "tests/pathsim/utils/test_realtimeplotter.py",
@@ -1,7 +1,7 @@
1
1
  {
2
- "tag": "0.29.0",
2
+ "tag": "0.29.2",
3
3
  "distance": 0,
4
- "node": "g220bc787c4a58a7b1e7d6bf8af71f1bafbe04ba1",
4
+ "node": "gc2d44b82b34737fa578d0dff84befb04b6ee8dd0",
5
5
  "dirty": false,
6
6
  "branch": "HEAD",
7
7
  "node_date": "2026-11-04"
@@ -173,6 +173,28 @@ class TestBVP1D(unittest.TestCase):
173
173
  np.testing.assert_allclose(bvp.solution()[0, 2], 2.0*np.sin(np.pi/4), atol=1e-5)
174
174
 
175
175
 
176
+ def test_return_to_solved_input_after_failed_solve(self):
177
+ #a failed solve keeps the previous solution, returning to the input of
178
+ #that solution reuses it and reports success again (pathsim#275)
179
+ fun = lambda x, y, p, u: np.vstack([y[1], -y[0] if u[0] > 0 else np.nan*y[0]])
180
+ bc = lambda ya, yb, p, u: np.array([ya[0], yb[0] - u[0]])
181
+ bvp = BVP1D(fun, bc, n=2, domain=(0.0, np.pi/2))
182
+
183
+ bvp.inputs[0] = 2.0
184
+ bvp.update(0.0)
185
+ self.assertTrue(bvp.success)
186
+ y_ok = bvp.outputs.to_array()
187
+
188
+ bvp.inputs[0] = -1.0
189
+ bvp.update(0.0)
190
+ self.assertFalse(bvp.success)
191
+
192
+ bvp.inputs[0] = 2.0
193
+ bvp.update(0.0)
194
+ self.assertTrue(bvp.success)
195
+ np.testing.assert_array_equal(bvp.outputs.to_array(), y_ok)
196
+
197
+
176
198
  def test_input_unchanged_skips_resolve(self):
177
199
  #a re-evaluation with unchanged input must not trigger another solve,
178
200
  #but a changed input must
@@ -261,7 +261,6 @@ class TestScope(unittest.TestCase):
261
261
  self.assertIn("no recording", str(w[0].message))
262
262
 
263
263
 
264
- @unittest.skip("Matplotlib/numpy compatibility issue in Python 3.13")
265
264
  def test_plot_with_data(self):
266
265
  """Test plot() with recorded data"""
267
266
 
@@ -324,7 +323,6 @@ class TestScope(unittest.TestCase):
324
323
  self.assertIn("not enough channels", str(w[0].message))
325
324
 
326
325
 
327
- @unittest.skip("Matplotlib/numpy compatibility issue in Python 3.13")
328
326
  def test_plot2D_with_data(self):
329
327
  """Test plot2D() with 2 channels"""
330
328
 
@@ -408,7 +406,6 @@ class TestScope(unittest.TestCase):
408
406
  self.assertIn("at least 3 channels", str(w[0].message))
409
407
 
410
408
 
411
- @unittest.skip("Matplotlib/numpy compatibility issue in Python 3.13")
412
409
  def test_plot3D_with_data(self):
413
410
  """Test plot3D() with 3 channels"""
414
411
 
@@ -265,7 +265,6 @@ class TestSpectrum(unittest.TestCase):
265
265
  S.update(10.0)
266
266
 
267
267
 
268
- @unittest.skip("NumPy compatibility issue in Python 3.13")
269
268
  def test_read_with_state(self):
270
269
  """Test read returns spectrum from solver state"""
271
270
 
@@ -288,7 +287,6 @@ class TestSpectrum(unittest.TestCase):
288
287
  np.testing.assert_array_almost_equal(spec[0], state / S.time)
289
288
 
290
289
 
291
- @unittest.skip("NumPy compatibility issue in Python 3.13")
292
290
  def test_read_with_alpha(self):
293
291
  """Test read with forgetting factor applies correct scaling"""
294
292
 
@@ -323,7 +321,6 @@ class TestSpectrum(unittest.TestCase):
323
321
  self.assertIsNone(result)
324
322
 
325
323
 
326
- @unittest.skip("Matplotlib/numpy compatibility issue in Python 3.13")
327
324
  def test_plot_with_data(self):
328
325
  """Test plot creates figure with data"""
329
326
 
@@ -449,7 +446,6 @@ class TestRealtimeSpectrum(unittest.TestCase):
449
446
  Test the implementation of the 'RealtimeSpectrum' block class
450
447
  """
451
448
 
452
- @unittest.skip("Matplotlib/numpy compatibility issue in Python 3.13")
453
449
  def test_init(self):
454
450
  """Test RealtimeSpectrum initialization"""
455
451
 
@@ -477,7 +473,6 @@ class TestRealtimeSpectrum(unittest.TestCase):
477
473
  self.assertIsNotNone(RS.plotter)
478
474
 
479
475
 
480
- @unittest.skip("Matplotlib/numpy compatibility issue in Python 3.13")
481
476
  def test_step_early_time(self):
482
477
  """Test step before effective time > dt"""
483
478
 
@@ -500,7 +495,7 @@ class TestRealtimeSpectrum(unittest.TestCase):
500
495
  self.assertIsNone(scale) # No rescale needed
501
496
 
502
497
 
503
- @unittest.skip("Matplotlib/numpy compatibility issue in Python 3.13")
498
+ @unittest.skip("Base Solver.step does not return an error estimate")
504
499
  def test_step_after_wait(self):
505
500
  """Test step after wait period with solver"""
506
501
 
@@ -0,0 +1,63 @@
1
+ ########################################################################################
2
+ ##
3
+ ## TESTS FOR
4
+ ## 'utils.plotting.py'
5
+ ##
6
+ ## Milan Rother 2026
7
+ ##
8
+ ########################################################################################
9
+
10
+ # IMPORTS ==============================================================================
11
+
12
+ import unittest
13
+ from unittest import mock
14
+
15
+ import matplotlib
16
+ matplotlib.use("Agg")
17
+ import matplotlib.pyplot as plt
18
+
19
+ from matplotlib.backend_bases import FigureManagerBase
20
+
21
+ from pathsim.utils.plotting import show
22
+
23
+
24
+ # TESTS ================================================================================
25
+
26
+ class TestShow(unittest.TestCase):
27
+ """
28
+ Test the 'show' helper for figures
29
+ """
30
+
31
+ def tearDown(self):
32
+ plt.close("all")
33
+
34
+
35
+ def test_no_window(self):
36
+ """backends without a window (Agg, Jupyter inline) dont show"""
37
+
38
+ fig, _ = plt.subplots()
39
+ self.assertIs(type(fig.canvas.manager), FigureManagerBase)
40
+
41
+ with mock.patch("pathsim.utils.plotting.plt.show") as plt_show:
42
+ show(fig)
43
+ plt_show.assert_not_called()
44
+
45
+
46
+ def test_window(self):
47
+ """backends with a window show without blocking"""
48
+
49
+ class WindowManager(FigureManagerBase):
50
+ pass
51
+
52
+ fig, _ = plt.subplots()
53
+ fig.canvas.manager = WindowManager(fig.canvas, 1)
54
+
55
+ with mock.patch("pathsim.utils.plotting.plt.show") as plt_show:
56
+ show(fig)
57
+ plt_show.assert_called_once_with(block=False)
58
+
59
+
60
+ # RUN TESTS LOCALLY ====================================================================
61
+
62
+ if __name__ == '__main__':
63
+ unittest.main(verbosity=2)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes