myokit 1.34.0__tar.gz → 1.35.0__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.
- {myokit-1.34.0/myokit.egg-info → myokit-1.35.0}/PKG-INFO +2 -2
- {myokit-1.34.0 → myokit-1.35.0}/myokit/__init__.py +5 -23
- {myokit-1.34.0 → myokit-1.35.0}/myokit/__main__.py +70 -117
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_aux.py +5 -8
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_config.py +22 -31
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_datablock.py +26 -70
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_datalog.py +23 -53
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_err.py +13 -15
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_expressions.py +35 -55
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_io.py +5 -22
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_model_api.py +34 -47
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_myokit_version.py +1 -5
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_parsing.py +17 -25
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_progress.py +4 -7
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_protocol.py +6 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_sim/__init__.py +7 -24
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_sim/cable.c +1 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_sim/cable.py +3 -5
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_sim/cmodel.h +1 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_sim/cmodel.py +1 -4
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_sim/compiler.py +1 -4
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_sim/cvodessim.c +1 -4
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_sim/cvodessim.py +1 -4
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_sim/fiber_tissue.c +2 -6
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_sim/fiber_tissue.py +3 -5
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_sim/jacobian.py +6 -7
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_sim/mcl.h +51 -53
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_sim/opencl.py +9 -22
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_sim/openclsim.c +2 -6
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_sim/openclsim.py +6 -6
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_sim/pacing.h +2 -6
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_sim/rhs.c +3 -10
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_sim/rhs.py +4 -13
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_sim/sundials.py +1 -4
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_system.py +10 -16
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_unit.py +3 -12
- {myokit-1.34.0 → myokit-1.35.0}/myokit/float.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/__init__.py +8 -10
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/ansic/__init__.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/ansic/_ewriter.py +2 -4
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/ansic/_exporter.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/axon/__init__.py +1 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/axon/_abf.py +12 -15
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/axon/_atf.py +5 -6
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/axon/_importer.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/cellml/__init__.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/cellml/_ewriter.py +3 -6
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/cellml/_exporter.py +3 -6
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/cellml/_importer.py +1 -4
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/cellml/v1/__init__.py +0 -4
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/cellml/v1/_api.py +7 -10
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/cellml/v1/_parser.py +2 -5
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/cellml/v1/_writer.py +2 -11
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/cellml/v2/__init__.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/cellml/v2/_api.py +7 -16
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/cellml/v2/_parser.py +2 -5
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/cellml/v2/_writer.py +1 -4
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/channelml/__init__.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/channelml/_importer.py +4 -14
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/cpp/__init__.py +1 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/cpp/_ewriter.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/cuda/__init__.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/cuda/_ewriter.py +2 -4
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/cuda/_exporter.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/easyml/__init__.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/easyml/_ewriter.py +9 -11
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/easyml/_exporter.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/html/__init__.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/html/_exporter.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/html/_flatten.py +5 -21
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/latex/__init__.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/latex/_ewriter.py +1 -4
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/latex/_exporter.py +3 -5
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/mathml/__init__.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/mathml/_ewriter.py +2 -11
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/mathml/_parser.py +3 -5
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/matlab/__init__.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/matlab/_ewriter.py +1 -4
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/matlab/_exporter.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/opencl/__init__.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/opencl/_ewriter.py +2 -4
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/opencl/_exporter.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/python/__init__.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/python/_ewriter.py +2 -5
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/python/_exporter.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/python/template/sim.py +10 -10
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/sbml/__init__.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/sbml/_api.py +17 -11
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/sbml/_importer.py +1 -4
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/sbml/_parser.py +2 -5
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/stan/__init__.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/stan/_ewriter.py +2 -4
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/stan/_exporter.py +1 -4
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/sympy/__init__.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/sympy/_ereader.py +1 -4
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/sympy/_ewriter.py +2 -5
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/wcp/__init__.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/wcp/_wcp.py +1 -7
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/xml/__init__.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/xml/_exporter.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/xml/_split.py +0 -3
- myokit-1.35.0/myokit/gui/__init__.py +240 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/gui/datablock_viewer.py +100 -83
- {myokit-1.34.0 → myokit-1.35.0}/myokit/gui/datalog_viewer.py +32 -44
- {myokit-1.34.0 → myokit-1.35.0}/myokit/gui/explorer.py +15 -21
- {myokit-1.34.0 → myokit-1.35.0}/myokit/gui/ide.py +105 -125
- {myokit-1.34.0 → myokit-1.35.0}/myokit/gui/progress.py +9 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/gui/source.py +405 -374
- {myokit-1.34.0 → myokit-1.35.0}/myokit/gui/vargrapher.py +2 -12
- {myokit-1.34.0 → myokit-1.35.0}/myokit/lib/deps.py +7 -8
- {myokit-1.34.0 → myokit-1.35.0}/myokit/lib/guess.py +1 -2
- {myokit-1.34.0 → myokit-1.35.0}/myokit/lib/hh.py +5 -7
- {myokit-1.34.0 → myokit-1.35.0}/myokit/lib/markov.py +9 -11
- {myokit-1.34.0 → myokit-1.35.0}/myokit/lib/multi.py +1 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/lib/plots.py +1 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/pacing.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/pype.py +7 -18
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/__init__.py +3 -6
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/ansic_event_based_pacing.py +1 -4
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/ansic_fixed_form_pacing.py +1 -4
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_aux.py +9 -23
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_cellml_v1_api.py +1 -16
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_cellml_v1_parser.py +0 -15
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_cellml_v1_writer.py +0 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_cellml_v2_api.py +1 -16
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_cellml_v2_parser.py +0 -15
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_cellml_v2_writer.py +0 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_cmodel.py +0 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_compiler_detection.py +1 -11
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_component.py +0 -10
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_config.py +33 -66
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_datablock.py +1 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_datalog.py +4 -21
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_dependency_checking.py +8 -23
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_expressions.py +0 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_float.py +1 -5
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_formats.py +0 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_formats_axon.py +1 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_formats_cellml.py +0 -15
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_formats_channelml.py +0 -15
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_formats_easyml.py +0 -14
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_formats_exporters.py +1 -16
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_formats_expression_writers.py +1 -17
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_formats_html.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_formats_importers.py +1 -16
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_formats_mathml_content.py +0 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_formats_mathml_presentation.py +0 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_formats_opencl.py +0 -10
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_formats_sbml.py +0 -15
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_formats_sympy.py +0 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_formats_wcp.py +1 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_io.py +6 -14
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_jacobian_calculator.py +1 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_jacobian_tracer.py +0 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_lib_deps.py +0 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_lib_guess.py +0 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_lib_hh.py +1 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_lib_markov.py +1 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_lib_multi.py +0 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_lib_plots.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_meta.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_model.py +0 -10
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_model_building.py +2 -17
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_opencl_info.py +5 -14
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_pacing_factory.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_pacing_system_c.py +0 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_pacing_system_py.py +0 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_parsing.py +5 -20
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_progress_reporters.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_protocol.py +0 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_protocol_floating_point.py +0 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_protocol_time_series.py +0 -10
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_pype.py +0 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_quantity.py +0 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_rhs_benchmarker.py +1 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_sbml_api.py +0 -15
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_sbml_parser.py +0 -15
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_simulation_1d.py +1 -10
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_simulation_cvodes.py +8 -16
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_simulation_cvodes_from_disk.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_simulation_fiber_tissue.py +1 -10
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_simulation_log_interval.py +0 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_simulation_opencl.py +1 -10
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_simulation_opencl_log_interval.py +1 -3
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_simulation_opencl_vs_cvode.py +1 -10
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_simulation_opencl_vs_sim1d.py +1 -10
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_system_info.py +1 -11
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_tools.py +0 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_unit.py +0 -9
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_user_functions.py +0 -10
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/test_variable.py +0 -10
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tools.py +5 -21
- {myokit-1.34.0 → myokit-1.35.0}/myokit/units.py +0 -3
- {myokit-1.34.0 → myokit-1.35.0/myokit.egg-info}/PKG-INFO +2 -2
- {myokit-1.34.0 → myokit-1.35.0}/myokit.egg-info/SOURCES.txt +0 -2
- {myokit-1.34.0 → myokit-1.35.0}/myokit.egg-info/requires.txt +5 -5
- {myokit-1.34.0 → myokit-1.35.0}/setup.py +8 -8
- myokit-1.34.0/myokit/_exec_new.py +0 -15
- myokit-1.34.0/myokit/_exec_old.py +0 -15
- myokit-1.34.0/myokit/gui/__init__.py +0 -412
- {myokit-1.34.0 → myokit-1.35.0}/LICENSE.txt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/MANIFEST.in +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/README.md +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/example.mmt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/gui/find.png +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/gui/icon-datablock-viewer-128.xpm +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/gui/icon-datablock-viewer-16.xpm +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/gui/icon-datablock-viewer-24.xpm +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/gui/icon-datablock-viewer-256.xpm +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/gui/icon-datablock-viewer-32.xpm +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/gui/icon-datablock-viewer-48.xpm +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/gui/icon-datablock-viewer-64.xpm +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/gui/icon-datablock-viewer-96.xpm +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/gui/icon-datablock-viewer.ico +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/gui/icon-datablock-viewer.png +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/gui/icon-ide-128.xpm +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/gui/icon-ide-16.xpm +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/gui/icon-ide-24.xpm +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/gui/icon-ide-256.xpm +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/gui/icon-ide-32.xpm +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/gui/icon-ide-48.xpm +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/gui/icon-ide-64.xpm +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/gui/icon-ide-96.xpm +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/gui/icon-ide.ico +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/gui/icon-ide.png +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/gui/new.png +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/gui/open.png +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/gui/redo.png +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/gui/run.png +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/gui/save.png +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/gui/undo.png +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/install-lin/myokit-datablock-viewer.desktop +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/install-lin/myokit-datalog-viewer.desktop +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/install-lin/myokit-ide.desktop +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/install-lin/myokit.lang +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/install-lin/x-abf.xml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/install-lin/x-cellml.xml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/install-lin/x-myokit.xml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/install-lin/x-wcp.xml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/install-win/menu.json +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/sundials-win-vs/LICENSE +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/sundials-win-vs/include/cvodes/cvodes.h +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/sundials-win-vs/include/cvodes/cvodes_direct.h +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/sundials-win-vs/include/cvodes/cvodes_ls.h +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/sundials-win-vs/include/nvector/nvector_serial.h +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/sundials-win-vs/include/sundials/sundials_config.h +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/sundials-win-vs/include/sundials/sundials_dense.h +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/sundials-win-vs/include/sundials/sundials_direct.h +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/sundials-win-vs/include/sundials/sundials_export.h +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/sundials-win-vs/include/sundials/sundials_iterative.h +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/sundials-win-vs/include/sundials/sundials_linearsolver.h +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/sundials-win-vs/include/sundials/sundials_matrix.h +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/sundials-win-vs/include/sundials/sundials_nonlinearsolver.h +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/sundials-win-vs/include/sundials/sundials_nvector.h +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/sundials-win-vs/include/sundials/sundials_types.h +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/sundials-win-vs/include/sundials/sundials_version.h +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/sundials-win-vs/include/sunlinsol/sunlinsol_dense.h +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/sundials-win-vs/include/sunmatrix/sunmatrix_dense.h +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/sundials-win-vs/lib/sundials_cvodes.dll +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/sundials-win-vs/lib/sundials_cvodes.lib +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/sundials-win-vs/lib/sundials_nvecserial.dll +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_bin/sundials-win-vs/lib/sundials_nvecserial.lib +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_sim/compiler.c +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_sim/differential.hpp +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_sim/jacobian.cpp +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_sim/opencl.c +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_sim/openclsim.cl +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/_sim/sundials.c +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/ansic/template/cable.c +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/ansic/template/euler.c +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/ansic/template/sim.c +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/cuda/template/kernel.cu +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/matlab/template/constants.m +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/matlab/template/ifthenelse.m +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/matlab/template/main.m +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/matlab/template/model.m +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/matlab/template/model_wrapper.m +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/opencl/template/cable.c +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/opencl/template/kernel.cl +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/opencl/template/minilog.py +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/opencl/template/plot.py +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/opencl/template/test.sh +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/stan/template/cell.stan +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/formats/stan/template/run.py +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/lib/__init__.py +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/beeler-1977-model-compare-a.mmt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/beeler-1977-model-compare-b.mmt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/beeler-1977-model.mmt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/beeler-1977-protocol.mmt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/beeler-1977-script.mmt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/beeler-1977-units.mmt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/clancy-1999-fitting.mmt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/conditional.mmt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/cv1d.mmt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/cv1d.zip +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/decker-2009.mmt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/decker.model +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/dn-1985-normalised.mmt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/dom-markov.mmt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/abf-protocol.pro +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/abf-v1.abf +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/abf-v2.abf +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/cellml/LICENSE +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/cellml/br-1977-dot.cellml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/cellml/br-1977.cellml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/cellml/corrias.cellml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/cellml/decker-2009.cellml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/cellml/documentation.cellml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/cellml/invalid-file.cellml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/cellml/lr-1991-exported-1.cellml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/cellml/lr-1991-exported-2.cellml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/channelml/ch-00-valid-file.channelml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/channelml/ch-01-wrong-root.channelml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/channelml/ch-02-no-channel-type.channelml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/channelml/ch-03-overlapping-name.channelml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/channelml/ch-04-no-cvr.channelml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/channelml/ch-05-two-cvrs.channelml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/channelml/ch-06-no-q10.channelml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/channelml/ch-07-three-transitions.channelml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/channelml/ch-08-no-closed-to-open.channelml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/channelml/ch-09-no-open-to-closed.channelml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/channelml/ch-10-tco-bad-expression.channelml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/channelml/ch-11-toc-bad-expression.channelml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/channelml/ch-12-no-steady-state.channelml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/channelml/ch-13-no-time-course.channelml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/channelml/ch-14-inf-bad-expression.channelml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/channelml/ch-15-tau-bad-expression.channelml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/channelml/ch-16-no-gates.channelml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/channelml/ch-17-invalid-name.channelml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/channelml/ch-18-c-style-if.channelml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/sbml/00004-sbml-l2v1-modified.xml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/sbml/00004-sbml-l3v2-modified.xml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/sbml/HodgkinHuxley.xml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/sbml/LICENSE +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/sbml/model/00001-sbml-l3v2.xml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/sbml/model/00004-sbml-l3v2.xml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/sbml/model/01103-sbml-l3v2.xml +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/sbml/result/00001-results.csv +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/sbml/result/00004-results.csv +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/sbml/result/01103-results.csv +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/formats/wcp-file.wcp +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/bad1d-1-not-enough-files.zip +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/bad1d-2-no-header.zip +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/bad1d-3-no-data.zip +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/bad1d-4-not-a-zip.zip +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/bad1d-5-bad-data-type.zip +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/bad1d-6-time-too-short.zip +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/bad1d-7-0d-too-short.zip +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/bad1d-8-1d-too-short.zip +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/bad2d-1-not-enough-files.zip +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/bad2d-2-no-header.zip +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/bad2d-3-no-data.zip +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/bad2d-4-not-a-zip.zip +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/bad2d-5-bad-data-type.zip +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/bad2d-6-time-too-short.zip +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/bad2d-7-0d-too-short.zip +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/bad2d-8-2d-too-short.zip +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/badlog-1-no-data.zip +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/badlog-2-no-structure.zip +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/badlog-3-not-a-zip.zip +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/badlog-4-invalid-n-fields.zip +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/badlog-5-invalid-data-size.zip +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/badlog-6-bad-data-type.zip +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/badlog-7-not-enough-data.zip +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/block2d.mmt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/block2d.zip +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/datalog-1-empty.csv +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/datalog-10-just-spaces.csv +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/datalog-11-just-a-semicolon.csv +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/datalog-12-bad-header.csv +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/datalog-13-header-with-empty-1.csv +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/datalog-14-header-with-empty-2.csv +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/datalog-15-header-with-empty-3.csv +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/datalog-16-wrong-columns-in-data.csv +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/datalog-17-non-float-data.csv +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/datalog-2-windows.csv +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/datalog-3-old-mac.csv +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/datalog-4-empty-lines.csv +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/datalog-5-semicolons.csv +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/datalog-6-open-string.csv +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/datalog-7-empty-lines-2.csv +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/datalog-8-unquoted-header.csv +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/datalog-9-double-quoted-header.csv +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/datalog.csv +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/io/goodlog.zip +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/lr-1991-dep.mmt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/lr-1991-fitting.mmt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/lr-1991-testing.mmt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/lr-1991.mmt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/multi/beeler-1977-protocol.mmt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/multi/beeler-1977-script.mmt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/multi/beeler-no-name.mmt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/multi/lr-1991.mmt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/multi/not-a-model.csv +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/multi/subdir/beeler-no-name.mmt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit/tests/data/noble-1962.mmt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit.egg-info/dependency_links.txt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit.egg-info/entry_points.txt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit.egg-info/not-zip-safe +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/myokit.egg-info/top_level.txt +0 -0
- {myokit-1.34.0 → myokit-1.35.0}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: myokit
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.35.0
|
|
4
4
|
Summary: A simple interface to cardiac cellular electrophysiology
|
|
5
5
|
Home-page: http://myokit.org
|
|
6
6
|
Author: Michael Clerx
|
|
@@ -13,7 +13,6 @@ Classifier: Development Status :: 5 - Production/Stable
|
|
|
13
13
|
Classifier: Intended Audience :: Science/Research
|
|
14
14
|
Classifier: License :: OSI Approved :: BSD License
|
|
15
15
|
Classifier: Operating System :: OS Independent
|
|
16
|
-
Classifier: Programming Language :: Python :: 2.7
|
|
17
16
|
Classifier: Programming Language :: Python :: 3
|
|
18
17
|
Classifier: Topic :: Scientific/Engineering
|
|
19
18
|
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
|
|
@@ -21,6 +20,7 @@ Classifier: Topic :: Scientific/Engineering :: Chemistry
|
|
|
21
20
|
Classifier: Topic :: Scientific/Engineering :: Mathematics
|
|
22
21
|
Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
|
|
23
22
|
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
23
|
+
Requires-Python: >=3.7
|
|
24
24
|
Description-Content-Type: text/markdown
|
|
25
25
|
Provides-Extra: docs
|
|
26
26
|
Provides-Extra: dev
|
|
@@ -20,16 +20,11 @@ and then a myokit.Simulation which you can .run() to obtain simulated results.
|
|
|
20
20
|
# Without an explicit __all__, importing * will result in importing all
|
|
21
21
|
# functions and classes described below. No submodules of myokit will be
|
|
22
22
|
# loaded!
|
|
23
|
-
|
|
24
|
-
|
|
25
23
|
#
|
|
26
24
|
# GUI and graphical modules should not be auto-included because they define a
|
|
27
25
|
# matplotlib backend to use. If the user requires a different backend, this
|
|
28
26
|
# will generate an error.
|
|
29
27
|
#
|
|
30
|
-
from __future__ import absolute_import, division
|
|
31
|
-
from __future__ import print_function, unicode_literals
|
|
32
|
-
|
|
33
28
|
|
|
34
29
|
#
|
|
35
30
|
# Check python version
|
|
@@ -44,27 +39,14 @@ from __future__ import print_function, unicode_literals
|
|
|
44
39
|
#
|
|
45
40
|
import sys # noqa
|
|
46
41
|
if sys.hexversion < 0x03000000: # pragma: no cover
|
|
42
|
+
raise Exception('This version of Myokit does not support Python 2.')
|
|
43
|
+
elif sys.hexversion < 0x03070000: # pragma: no cover
|
|
47
44
|
import logging # noqa
|
|
48
45
|
log = logging.getLogger(__name__)
|
|
49
46
|
log.warning(
|
|
50
|
-
'Myokit
|
|
51
|
-
' Please upgrade as soon as possible! Detected Python version: '
|
|
52
|
-
+ sys.version)
|
|
53
|
-
del logging, log
|
|
54
|
-
elif sys.hexversion < 0x03060000: # pragma: no cover
|
|
55
|
-
import logging # noqa
|
|
56
|
-
log = logging.getLogger(__name__)
|
|
57
|
-
log.warning(
|
|
58
|
-
'Myokit is not tested on Python 3 versions older than 3.6. Detected'
|
|
47
|
+
'Myokit is not tested on Python 3 versions older than 3.7. Detected'
|
|
59
48
|
' Python version: ' + sys.version)
|
|
60
49
|
del logging, log
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
# Exec() that works with Python 2 versions before 2.7.9
|
|
64
|
-
if sys.hexversion < 0x020709F0: # pragma: no python 3 cover
|
|
65
|
-
from ._exec_old import _exec # noqa
|
|
66
|
-
else:
|
|
67
|
-
from ._exec_new import _exec # noqa
|
|
68
50
|
del sys
|
|
69
51
|
|
|
70
52
|
|
|
@@ -289,9 +271,9 @@ TIME_FORMAT = '%H:%M:%S'
|
|
|
289
271
|
#
|
|
290
272
|
# GUI: Favor PySide or PyQt
|
|
291
273
|
#
|
|
274
|
+
FORCE_PYQT6 = False
|
|
292
275
|
FORCE_PYQT5 = False
|
|
293
|
-
|
|
294
|
-
FORCE_PYSIDE = False
|
|
276
|
+
FORCE_PYSIDE6 = False
|
|
295
277
|
FORCE_PYSIDE2 = False
|
|
296
278
|
|
|
297
279
|
|
|
@@ -4,9 +4,6 @@
|
|
|
4
4
|
# This file is part of Myokit.
|
|
5
5
|
# See http://myokit.org for copyright, sharing, and licensing details.
|
|
6
6
|
#
|
|
7
|
-
from __future__ import absolute_import, division
|
|
8
|
-
from __future__ import print_function, unicode_literals
|
|
9
|
-
|
|
10
7
|
import warnings
|
|
11
8
|
|
|
12
9
|
_line_width = 79
|
|
@@ -29,6 +26,55 @@ def colored(color, text):
|
|
|
29
26
|
return colors[color] + str(text) + colors['normal']
|
|
30
27
|
|
|
31
28
|
|
|
29
|
+
def qtforce(pyqt6=False, pyqt5=False, pyside6=False, pyside2=False):
|
|
30
|
+
""" Enforce a chosen Qt version. """
|
|
31
|
+
|
|
32
|
+
if pyqt6 or pyqt5 or pyside6 or pyside2:
|
|
33
|
+
import myokit
|
|
34
|
+
|
|
35
|
+
myokit.FORCE_PYQT6 = False
|
|
36
|
+
myokit.FORCE_PYQT5 = False
|
|
37
|
+
myokit.FORCE_PYSIDE6 = False
|
|
38
|
+
myokit.FORCE_PYSIDE2 = False
|
|
39
|
+
|
|
40
|
+
if pyqt6:
|
|
41
|
+
myokit.FORCE_PYQT6 = True
|
|
42
|
+
elif pyside6:
|
|
43
|
+
myokit.FORCE_PYSIDE6 = True
|
|
44
|
+
elif pyqt5:
|
|
45
|
+
myokit.FORCE_PYQT5 = True
|
|
46
|
+
elif pyside2:
|
|
47
|
+
myokit.FORCE_PYSIDE2 = True
|
|
48
|
+
|
|
49
|
+
import myokit.gui
|
|
50
|
+
print('Using backend: ' + myokit.gui.backend)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def add_qtforce_arguments(parser):
|
|
54
|
+
""" Updates a parser with arguments to force a Qt version. """
|
|
55
|
+
|
|
56
|
+
parser.add_argument(
|
|
57
|
+
'--pyqt6',
|
|
58
|
+
action='store_true',
|
|
59
|
+
help='Run using the PyQt6 backend.',
|
|
60
|
+
)
|
|
61
|
+
parser.add_argument(
|
|
62
|
+
'--pyqt5',
|
|
63
|
+
action='store_true',
|
|
64
|
+
help='Run using the PyQt5 backend.',
|
|
65
|
+
)
|
|
66
|
+
parser.add_argument(
|
|
67
|
+
'--pyside6',
|
|
68
|
+
action='store_true',
|
|
69
|
+
help='Run using the PySide6 backend.',
|
|
70
|
+
)
|
|
71
|
+
parser.add_argument(
|
|
72
|
+
'--pyside2',
|
|
73
|
+
action='store_true',
|
|
74
|
+
help='Run using the PySide2 backend.',
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
|
|
32
78
|
def main():
|
|
33
79
|
"""
|
|
34
80
|
Parses command line arguments.
|
|
@@ -88,36 +134,13 @@ def main():
|
|
|
88
134
|
#
|
|
89
135
|
# Data block viewer
|
|
90
136
|
#
|
|
91
|
-
|
|
92
|
-
def block(filename, pyqt4=False, pyqt5=False, pyside=False, pyside2=False):
|
|
137
|
+
def block(filename, pyqt6=False, pyqt5=False, pyside6=False, pyside2=False):
|
|
93
138
|
"""
|
|
94
139
|
Runs the DataBlock viewer.
|
|
95
140
|
"""
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
myokit.FORCE_PYQT5 = True
|
|
99
|
-
myokit.FORCE_PYQT4 = False
|
|
100
|
-
myokit.FORCE_PYSIDE = False
|
|
101
|
-
myokit.FORCE_PYSIDE2 = False
|
|
102
|
-
elif pyqt4:
|
|
103
|
-
myokit.FORCE_PYQT5 = False
|
|
104
|
-
myokit.FORCE_PYQT4 = True
|
|
105
|
-
myokit.FORCE_PYSIDE = False
|
|
106
|
-
myokit.FORCE_PYSIDE2 = False
|
|
107
|
-
elif pyside:
|
|
108
|
-
myokit.FORCE_PYQT5 = False
|
|
109
|
-
myokit.FORCE_PYQT4 = False
|
|
110
|
-
myokit.FORCE_PYSIDE = True
|
|
111
|
-
myokit.FORCE_PYSIDE2 = False
|
|
112
|
-
elif pyside2:
|
|
113
|
-
myokit.FORCE_PYQT5 = False
|
|
114
|
-
myokit.FORCE_PYQT4 = False
|
|
115
|
-
myokit.FORCE_PYSIDE = False
|
|
116
|
-
myokit.FORCE_PYSIDE2 = True
|
|
117
|
-
import myokit.gui
|
|
141
|
+
qtforce(pyqt6, pyqt5, pyside6, pyside2)
|
|
142
|
+
|
|
118
143
|
import myokit.gui.datablock_viewer
|
|
119
|
-
if pyqt5 or pyqt4 or pyside or pyside2:
|
|
120
|
-
print('Using backend: ' + myokit.gui.backend)
|
|
121
144
|
myokit.gui.run(myokit.gui.datablock_viewer.DataBlockViewer, filename)
|
|
122
145
|
|
|
123
146
|
|
|
@@ -137,26 +160,7 @@ def add_block_parser(subparsers):
|
|
|
137
160
|
metavar='filename',
|
|
138
161
|
help='The DataBlock zip file to open (optional).',
|
|
139
162
|
)
|
|
140
|
-
parser
|
|
141
|
-
'--pyqt5',
|
|
142
|
-
action='store_true',
|
|
143
|
-
help='Run the DataBlock Viewer using the PyQt5 backend.',
|
|
144
|
-
)
|
|
145
|
-
parser.add_argument(
|
|
146
|
-
'--pyqt4',
|
|
147
|
-
action='store_true',
|
|
148
|
-
help='Run the DataBlock Viewer using the PyQt4 backend.',
|
|
149
|
-
)
|
|
150
|
-
parser.add_argument(
|
|
151
|
-
'--pyside',
|
|
152
|
-
action='store_true',
|
|
153
|
-
help='Run the DataBlock Viewer using the PySide backend.',
|
|
154
|
-
)
|
|
155
|
-
parser.add_argument(
|
|
156
|
-
'--pyside2',
|
|
157
|
-
action='store_true',
|
|
158
|
-
help='Run the DataBlock Viewer using the PySide2 backend.',
|
|
159
|
-
)
|
|
163
|
+
add_qtforce_arguments(parser)
|
|
160
164
|
parser.set_defaults(func=block)
|
|
161
165
|
|
|
162
166
|
|
|
@@ -421,10 +425,7 @@ def install():
|
|
|
421
425
|
if plat == 'Linux':
|
|
422
426
|
yesno = \
|
|
423
427
|
'Install launcher icons and file type associations for Gnome/KDE? '
|
|
424
|
-
|
|
425
|
-
yesno = raw_input(yesno)
|
|
426
|
-
except NameError: # pragma: no python 2 cover
|
|
427
|
-
yesno = input(yesno)
|
|
428
|
+
yesno = input(yesno)
|
|
428
429
|
yesno = (yesno.strip().lower())[:1] == 'y'
|
|
429
430
|
|
|
430
431
|
if yesno:
|
|
@@ -432,10 +433,7 @@ def install():
|
|
|
432
433
|
|
|
433
434
|
elif plat == 'Windows':
|
|
434
435
|
yesno = 'Install start menu shortcuts? '
|
|
435
|
-
|
|
436
|
-
yesno = raw_input(yesno)
|
|
437
|
-
except NameError: # pragma: no python 2 cover
|
|
438
|
-
yesno = input(yesno)
|
|
436
|
+
yesno = input(yesno)
|
|
439
437
|
yesno = (yesno.strip().lower())[:1] == 'y'
|
|
440
438
|
|
|
441
439
|
if yesno:
|
|
@@ -587,38 +585,17 @@ def add_icon_parser(subparsers):
|
|
|
587
585
|
# IDE
|
|
588
586
|
#
|
|
589
587
|
|
|
590
|
-
def ide(filename,
|
|
588
|
+
def ide(filename, pyqt6=False, pyqt5=False, pyside6=False, pyside2=False):
|
|
591
589
|
"""
|
|
592
590
|
Runs the Myokit IDE.
|
|
593
591
|
"""
|
|
592
|
+
qtforce(pyqt6, pyqt5, pyside6, pyside2)
|
|
593
|
+
|
|
594
594
|
import os
|
|
595
|
-
import myokit
|
|
596
|
-
if pyqt5:
|
|
597
|
-
myokit.FORCE_PYQT5 = True
|
|
598
|
-
myokit.FORCE_PYQT4 = False
|
|
599
|
-
myokit.FORCE_PYSIDE = False
|
|
600
|
-
myokit.FORCE_PYSIDE2 = False
|
|
601
|
-
elif pyqt4:
|
|
602
|
-
myokit.FORCE_PYQT5 = False
|
|
603
|
-
myokit.FORCE_PYQT4 = True
|
|
604
|
-
myokit.FORCE_PYSIDE = False
|
|
605
|
-
myokit.FORCE_PYSIDE2 = False
|
|
606
|
-
elif pyside:
|
|
607
|
-
myokit.FORCE_PYQT5 = False
|
|
608
|
-
myokit.FORCE_PYQT4 = False
|
|
609
|
-
myokit.FORCE_PYSIDE = True
|
|
610
|
-
myokit.FORCE_PYSIDE2 = False
|
|
611
|
-
elif pyside2:
|
|
612
|
-
myokit.FORCE_PYQT5 = False
|
|
613
|
-
myokit.FORCE_PYQT4 = False
|
|
614
|
-
myokit.FORCE_PYSIDE = False
|
|
615
|
-
myokit.FORCE_PYSIDE2 = True
|
|
616
|
-
import myokit.gui
|
|
617
|
-
import myokit.gui.ide
|
|
618
|
-
if pyqt5 or pyqt4 or pyside or pyside2:
|
|
619
|
-
print('Using backend: ' + myokit.gui.backend)
|
|
620
595
|
if filename is not None:
|
|
621
596
|
filename = os.path.abspath(os.path.expanduser(filename))
|
|
597
|
+
|
|
598
|
+
import myokit.gui.ide
|
|
622
599
|
myokit.gui.run(myokit.gui.ide.MyokitIDE, filename)
|
|
623
600
|
|
|
624
601
|
|
|
@@ -638,26 +615,7 @@ def add_ide_parser(subparsers):
|
|
|
638
615
|
metavar='filename',
|
|
639
616
|
help='The mmt file to open (optional).',
|
|
640
617
|
)
|
|
641
|
-
parser
|
|
642
|
-
'--pyqt5',
|
|
643
|
-
action='store_true',
|
|
644
|
-
help='Run the IDE using the PyQt5 backend.',
|
|
645
|
-
)
|
|
646
|
-
parser.add_argument(
|
|
647
|
-
'--pyqt4',
|
|
648
|
-
action='store_true',
|
|
649
|
-
help='Run the IDE using the PyQt4 backend.',
|
|
650
|
-
)
|
|
651
|
-
parser.add_argument(
|
|
652
|
-
'--pyside',
|
|
653
|
-
action='store_true',
|
|
654
|
-
help='Run the IDE using the PySide backend.',
|
|
655
|
-
)
|
|
656
|
-
parser.add_argument(
|
|
657
|
-
'--pyside2',
|
|
658
|
-
action='store_true',
|
|
659
|
-
help='Run the DataBlock Viewer using the PySide2 backend.',
|
|
660
|
-
)
|
|
618
|
+
add_qtforce_arguments(parser)
|
|
661
619
|
parser.set_defaults(func=ide)
|
|
662
620
|
|
|
663
621
|
|
|
@@ -741,11 +699,12 @@ def add_import_parser(subparsers):
|
|
|
741
699
|
# Log viewer
|
|
742
700
|
#
|
|
743
701
|
|
|
744
|
-
def log(filenames):
|
|
702
|
+
def log(filenames, pyqt6=False, pyqt5=False, pyside6=False, pyside2=False):
|
|
745
703
|
"""
|
|
746
704
|
Runs the DataLog Viewer.
|
|
747
705
|
"""
|
|
748
|
-
|
|
706
|
+
qtforce(pyqt6, pyqt5, pyside6, pyside2)
|
|
707
|
+
|
|
749
708
|
import myokit.gui.datalog_viewer
|
|
750
709
|
myokit.gui.run(myokit.gui.datalog_viewer.DataLogViewer, *filenames)
|
|
751
710
|
|
|
@@ -761,6 +720,7 @@ def add_log_parser(subparsers):
|
|
|
761
720
|
description='Runs the DataLog Viewer (PROTOTYPE).',
|
|
762
721
|
help='Runs the DataLog Viewer (PROTOTYPE).',
|
|
763
722
|
)
|
|
723
|
+
add_qtforce_arguments(parser)
|
|
764
724
|
parser.add_argument(
|
|
765
725
|
'filenames',
|
|
766
726
|
default=None,
|
|
@@ -867,10 +827,7 @@ def opencl_select():
|
|
|
867
827
|
try:
|
|
868
828
|
while True:
|
|
869
829
|
x = 'Select device: '
|
|
870
|
-
|
|
871
|
-
x = raw_input(x)
|
|
872
|
-
except NameError: # pragma: no python 2 cover
|
|
873
|
-
x = input(x) # lgtm [py/use-of-input]
|
|
830
|
+
x = input(x)
|
|
874
831
|
x = x.strip()
|
|
875
832
|
if x == '':
|
|
876
833
|
x = None
|
|
@@ -932,10 +889,7 @@ def reset(force=False):
|
|
|
932
889
|
remove = True
|
|
933
890
|
else:
|
|
934
891
|
yesno = 'Remove all Myokit settings files? '
|
|
935
|
-
|
|
936
|
-
yesno = raw_input(yesno)
|
|
937
|
-
except NameError: # pragma: no python 2 cover
|
|
938
|
-
yesno = input(yesno) # lgtm [py/use-of-input]
|
|
892
|
+
yesno = input(yesno)
|
|
939
893
|
yesno = yesno.strip().lower()
|
|
940
894
|
remove = (yesno[:1] == 'y')
|
|
941
895
|
if remove:
|
|
@@ -1329,7 +1283,7 @@ def test_coverage(args):
|
|
|
1329
1283
|
try:
|
|
1330
1284
|
print('Gathering coverage data')
|
|
1331
1285
|
p = subprocess.Popen([
|
|
1332
|
-
|
|
1286
|
+
sys.executable,
|
|
1333
1287
|
'-m',
|
|
1334
1288
|
'coverage',
|
|
1335
1289
|
'run',
|
|
@@ -1353,7 +1307,7 @@ def test_coverage(args):
|
|
|
1353
1307
|
|
|
1354
1308
|
print('Generating coverage report.')
|
|
1355
1309
|
p = subprocess.Popen([
|
|
1356
|
-
|
|
1310
|
+
sys.executable,
|
|
1357
1311
|
'-m',
|
|
1358
1312
|
'coverage',
|
|
1359
1313
|
'report',
|
|
@@ -1784,8 +1738,7 @@ def test_examples_single(root, path):
|
|
|
1784
1738
|
p = subprocess.Popen(
|
|
1785
1739
|
cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=env
|
|
1786
1740
|
)
|
|
1787
|
-
stdout, stderr = p.communicate()
|
|
1788
|
-
# TODO: Use p.communicate(timeout=3600) if Python3 only
|
|
1741
|
+
stdout, stderr = p.communicate(timeout=3600)
|
|
1789
1742
|
if p.returncode != 0:
|
|
1790
1743
|
# Show failing code, output and errors before returning
|
|
1791
1744
|
print('ERROR')
|
|
@@ -6,9 +6,6 @@
|
|
|
6
6
|
# This file is part of Myokit.
|
|
7
7
|
# See http://myokit.org for copyright, sharing, and licensing details.
|
|
8
8
|
#
|
|
9
|
-
from __future__ import absolute_import, division
|
|
10
|
-
from __future__ import print_function, unicode_literals
|
|
11
|
-
|
|
12
9
|
import myokit
|
|
13
10
|
|
|
14
11
|
import sys
|
|
@@ -29,7 +26,7 @@ class Benchmarker(myokit.tools.Benchmarker):
|
|
|
29
26
|
warnings.warn(
|
|
30
27
|
'The class `myokit.Benchmarker` is deprecated.'
|
|
31
28
|
' Please use `myokit.tools.Benchmarker` instead.')
|
|
32
|
-
super(
|
|
29
|
+
super().__init__()
|
|
33
30
|
|
|
34
31
|
|
|
35
32
|
def date():
|
|
@@ -150,7 +147,7 @@ def format_path(path, root='.'):
|
|
|
150
147
|
return myokit.tools.format_path(path, root)
|
|
151
148
|
|
|
152
149
|
|
|
153
|
-
class ModelComparison
|
|
150
|
+
class ModelComparison:
|
|
154
151
|
"""
|
|
155
152
|
Compares two models.
|
|
156
153
|
|
|
@@ -520,9 +517,9 @@ def run(model, protocol, script, stdout=None, stderr=None, progress=None):
|
|
|
520
517
|
script = '\n' + script
|
|
521
518
|
|
|
522
519
|
# Class to run scripts
|
|
523
|
-
class Runner
|
|
520
|
+
class Runner:
|
|
524
521
|
def __init__(self, model, protocol, script, stdout, stderr, progress):
|
|
525
|
-
super(
|
|
522
|
+
super().__init__()
|
|
526
523
|
self.model = model
|
|
527
524
|
self.protocol = protocol
|
|
528
525
|
self.script = script
|
|
@@ -555,7 +552,7 @@ def run(model, protocol, script, stdout=None, stderr=None, progress=None):
|
|
|
555
552
|
'get_model': get_model,
|
|
556
553
|
'get_protocol': get_protocol,
|
|
557
554
|
}
|
|
558
|
-
|
|
555
|
+
exec(self.script, environment)
|
|
559
556
|
finally:
|
|
560
557
|
if oldstdout is not None:
|
|
561
558
|
sys.stdout = oldstdout
|
|
@@ -5,27 +5,18 @@
|
|
|
5
5
|
# This file is part of Myokit.
|
|
6
6
|
# See http://myokit.org for copyright, sharing, and licensing details.
|
|
7
7
|
#
|
|
8
|
-
|
|
9
|
-
from __future__ import print_function, unicode_literals
|
|
10
|
-
|
|
11
|
-
# Load Myokit, at least, the bit that's been setup so far. This just means
|
|
12
|
-
# this method will add a link to the myokit module already being loaded
|
|
13
|
-
# into this method's namespace. This allows us to use the constants defined
|
|
14
|
-
# before this method was called.
|
|
15
|
-
import myokit
|
|
16
|
-
|
|
17
|
-
# Load standard library modules
|
|
8
|
+
import configparser
|
|
18
9
|
import logging
|
|
19
10
|
import os
|
|
20
11
|
import platform
|
|
21
12
|
import sys
|
|
22
13
|
import warnings
|
|
23
14
|
|
|
24
|
-
#
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
15
|
+
# Load Myokit, at least, the bit that's been setup so far. This just means
|
|
16
|
+
# this method will add a link to the myokit module already being loaded
|
|
17
|
+
# into this method's namespace. This allows us to use the constants defined
|
|
18
|
+
# before this method was called.
|
|
19
|
+
import myokit
|
|
29
20
|
|
|
30
21
|
|
|
31
22
|
def _create(path):
|
|
@@ -37,7 +28,7 @@ def _create(path):
|
|
|
37
28
|
system = platform.system()
|
|
38
29
|
|
|
39
30
|
# Create config parser
|
|
40
|
-
config =
|
|
31
|
+
config = configparser.RawConfigParser(allow_no_value=True)
|
|
41
32
|
|
|
42
33
|
# Make the parser case sensitive (need for unix paths!)
|
|
43
34
|
config.optionxform = str
|
|
@@ -71,12 +62,12 @@ def _create(path):
|
|
|
71
62
|
# GUI Backend
|
|
72
63
|
config.add_section('gui')
|
|
73
64
|
config.set('gui', '# Backend to use for graphical user interface.')
|
|
74
|
-
config.set('gui', '# Valid options are
|
|
65
|
+
config.set('gui', '# Valid options are pyqt6, pyqt5, pyside6 and pyside2.')
|
|
75
66
|
config.set('gui', '# Leave unset for automatic selection.')
|
|
67
|
+
config.set('gui', '#backend = pyqt6')
|
|
76
68
|
config.set('gui', '#backend = pyqt5')
|
|
77
|
-
config.set('gui', '#backend =
|
|
69
|
+
config.set('gui', '#backend = pyside6')
|
|
78
70
|
config.set('gui', '#backend = pyside2')
|
|
79
|
-
config.set('gui', '#backend = pyside')
|
|
80
71
|
|
|
81
72
|
# Locations of sundials library
|
|
82
73
|
config.add_section('sundials')
|
|
@@ -223,7 +214,7 @@ def _load():
|
|
|
223
214
|
del lines, inline_comment
|
|
224
215
|
|
|
225
216
|
# Create the config parser (no value allows comments)
|
|
226
|
-
config =
|
|
217
|
+
config = configparser.RawConfigParser(allow_no_value=True)
|
|
227
218
|
|
|
228
219
|
# Make the parser case sensitive (need for unix paths!)
|
|
229
220
|
config.optionxform = str
|
|
@@ -270,30 +261,30 @@ def _load():
|
|
|
270
261
|
# GUI Backend
|
|
271
262
|
if config.has_option('gui', 'backend'):
|
|
272
263
|
x = config.get('gui', 'backend').strip().lower()
|
|
273
|
-
if x == '
|
|
274
|
-
myokit.
|
|
264
|
+
if x == 'pyqt6':
|
|
265
|
+
myokit.FORCE_PYQT6 = True
|
|
275
266
|
myokit.FORCE_PYQT5 = False
|
|
276
|
-
myokit.
|
|
267
|
+
myokit.FORCE_PYSIDE6 = False
|
|
277
268
|
myokit.FORCE_PYSIDE2 = False
|
|
278
269
|
elif x == 'pyqt5':
|
|
279
|
-
myokit.
|
|
270
|
+
myokit.FORCE_PYQT6 = False
|
|
280
271
|
myokit.FORCE_PYQT5 = True
|
|
281
|
-
myokit.
|
|
272
|
+
myokit.FORCE_PYSIDE6 = False
|
|
282
273
|
myokit.FORCE_PYSIDE2 = False
|
|
283
|
-
elif x == '
|
|
284
|
-
myokit.
|
|
274
|
+
elif x == 'pyside6':
|
|
275
|
+
myokit.FORCE_PYQT6 = False
|
|
285
276
|
myokit.FORCE_PYQT5 = False
|
|
286
|
-
myokit.
|
|
277
|
+
myokit.FORCE_PYSIDE6 = True
|
|
287
278
|
myokit.FORCE_PYSIDE2 = False
|
|
288
279
|
elif x == 'pyside2':
|
|
289
|
-
myokit.
|
|
280
|
+
myokit.FORCE_PYQT6 = False
|
|
290
281
|
myokit.FORCE_PYQT5 = False
|
|
291
|
-
myokit.
|
|
282
|
+
myokit.FORCE_PYSIDE6 = False
|
|
292
283
|
myokit.FORCE_PYSIDE2 = True
|
|
293
284
|
elif x != '':
|
|
294
285
|
warnings.warn(
|
|
295
286
|
'Invalid setting in myokit.ini. Expected values for backend'
|
|
296
|
-
' are
|
|
287
|
+
' are pyqt6, pyqt5, pyside6, or pyside2. Got: ' + x)
|
|
297
288
|
|
|
298
289
|
# Sundials libraries, header files, and version
|
|
299
290
|
if config.has_option('sundials', 'lib'):
|