iints-sdk-python35 1.5.23__tar.gz → 1.5.24__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.
- {iints_sdk_python35-1.5.23/src/iints_sdk_python35.egg-info → iints_sdk_python35-1.5.24}/PKG-INFO +1 -1
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/pyproject.toml +4 -1
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/__init__.py +1 -1
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/patient/bergman_model.py +38 -10
- iints_sdk_python35-1.5.24/src/iints/research/stem_cell_optimizer.py +85 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_desktop/app.py +11 -0
- iints_sdk_python35-1.5.24/src/iints_desktop/assets/app_icon.icns +0 -0
- iints_sdk_python35-1.5.24/src/iints_desktop/assets/app_icon.ico +0 -0
- iints_sdk_python35-1.5.24/src/iints_desktop/assets/app_icon.png +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_desktop/cocoa_app.py +14 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_desktop/local_ai.py +9 -8
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_desktop/qt_app.py +191 -334
- iints_sdk_python35-1.5.24/src/iints_desktop/terminal_utils.py +47 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24/src/iints_sdk_python35.egg-info}/PKG-INFO +1 -1
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_sdk_python35.egg-info/SOURCES.txt +5 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/tests/test_bergman.py +1 -1
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/tests/test_desktop_app.py +38 -10
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/LICENSE +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/LICENSE-MIT-IINTS-LEGACY +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/NOTICE +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/README.md +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/setup.cfg +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/ai/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/ai/assistant.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/ai/backends/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/ai/backends/base.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/ai/backends/mistral_api.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/ai/backends/ollama.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/ai/cli.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/ai/deterministic.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/ai/insights.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/ai/mdmp_guard.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/ai/model_catalog.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/ai/prepare.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/ai/prompts.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/algorithm_xray.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/baseline.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/booth_demo.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/carelink_workbench.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/clinical_benchmark.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/clinical_metrics.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/clinical_tir_analyzer.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/diabetes_metrics.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/edge_efficiency.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/edge_performance_monitor.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/eucys_results.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/evidence_bundle.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/explainability.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/explainable_ai.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/hardware_benchmark.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/metrics.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/population_report.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/poster.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/reporting.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/run_quality.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/safety_index.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/safety_visualizer.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/sensor_filtering.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/study_analysis.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/study_engine.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/study_experiment.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/study_poster.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/study_protocol.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/analysis/validator.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/api/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/api/base_algorithm.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/api/registry.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/api/template_algorithm.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/assets/iints_logo.png +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/cli/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/cli/cli.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/cli/patient_cli.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/algorithms/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/algorithms/battle_runner.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/algorithms/clinical_baseline.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/algorithms/correction_bolus.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/algorithms/discovery.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/algorithms/fixed_basal_bolus.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/algorithms/hybrid_algorithm.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/algorithms/imitation_controller.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/algorithms/lstm_algorithm.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/algorithms/mock_algorithms.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/algorithms/mpc_controller.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/algorithms/neural_controller.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/algorithms/pid_controller.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/algorithms/standard_pump_algo.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/clinical_metrics.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/device.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/device_manager.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/devices/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/devices/models.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/digital_twin.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/formula_registry.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/patient/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/patient/advanced_metabolic_model.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/patient/hovorka_model.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/patient/models.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/patient/patient_factory.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/patient/physiology.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/patient/profile.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/physiology_variation.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/safety/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/safety/config.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/safety/input_validator.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/safety/supervisor.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/simulation/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/simulation/scenario_parser.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/simulator.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/supervisor.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/units.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/adapter.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/certify.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/column_mapper.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/contracts/diabetes_cgm_mdmp_contract.yaml +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/contracts.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/datasets.json +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/demo/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/demo/demo_cgm.csv +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/evidence.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/guardians.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/importer.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/ingestor.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/mdmp_visualizer.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/medtronic_live.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/nightscout.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/physiology_residual_profiles.json +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/quality_checker.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/realism_dashboard.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/realism_governance.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/realism_reference.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/realism_references.json +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/realism_validator.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/registry.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/research_catalog.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/runner.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/study_corruption.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/synthetic_mirror.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/tidepool.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/universal_parser.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/virtual_patients/clinic_safe_baseline.yaml +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/virtual_patients/clinic_safe_hyper_challenge.yaml +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/virtual_patients/clinic_safe_hypo_prone.yaml +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/virtual_patients/clinic_safe_midnight.yaml +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/virtual_patients/clinic_safe_pizza.yaml +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/virtual_patients/clinic_safe_stress_meal.yaml +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/virtual_patients/default_patient.yaml +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/virtual_patients/patient_559_config.yaml +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/virtual_patients/reference_azt1d_t1d.yaml +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/virtual_patients/reference_free_living_t1d.yaml +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/data/virtual_patients/reference_hupa_ucm_t1d.yaml +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/demo_assets.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/emulation/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/emulation/legacy_base.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/emulation/medtronic_780g.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/emulation/omnipod_5.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/emulation/tandem_controliq.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/highlevel.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/jetson/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/jetson/endurance.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/jetson/research_pipeline.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/learning/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/learning/autonomous_optimizer.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/learning/learning_system.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/live_patient/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/live_patient/api.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/live_patient/daemon.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/live_patient/edge_benchmark.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/live_patient/edge_ops.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/live_patient/fpga.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/live_patient/long_study.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/live_patient/medtronic_direct.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/live_patient/pico_pump.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/live_patient/runtime.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/live_patient/service_export.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/live_patient/uno_q.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/mdmp/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/mdmp/backend.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/mdmp/eu_ai_pact.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/metrics.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/population/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/population/generator.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/population/runner.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/presets/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/presets/evidence_sources.yaml +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/presets/forecast_calibration_profiles.yaml +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/presets/golden_benchmark.yaml +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/presets/presets.json +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/presets/safety_contract_default.yaml +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/presets/validation_profiles.yaml +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/alphafold_engine.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/anatomy.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/audit.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/calibration_gate.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/config.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/control.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/control_eval.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/data_blend.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/dataset.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/evaluation.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/forecasting.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/genetics.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/genomics_engine.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/glucose_model.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/jetson_hf_trainer.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/local_ai.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/local_ai_gate.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/losses.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/metrics.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/model_registry.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/neural_control.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/pharmacology.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/physiology.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/physiology_calibration.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/predictor.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/results_manager.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/structure.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/research/tissue_stressor.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/scenarios/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/scenarios/generator.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/scenarios/study_pack.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/templates/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/templates/default_algorithm.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/templates/demos/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/templates/demos/live_stage_demo.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/templates/pico_pump/README.md +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/templates/pico_pump/code.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/templates/pico_pump/serial_protocol.txt +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/templates/scenarios/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/templates/scenarios/chaos_insulin_stacking.json +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/templates/scenarios/chaos_runaway_ai.json +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/templates/scenarios/example_scenario.json +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/templates/scenarios/exercise_stress.json +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/templates/uno_q/README.md +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/templates/uno_q/iints_supervisor_bridge.ino +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/tools/ai_realism_auditor.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/tools/digital_twin_calibrator.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/tools/theory_stress_lab.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/utils/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/utils/academic_artifacts.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/utils/csv_safety.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/utils/plotting.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/utils/run_io.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/utils/url_safety.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/validation/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/validation/golden.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/validation/replay.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/validation/run_doctor.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/validation/run_validation.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/validation/safety_contract.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/validation/schemas.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/visualization/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/visualization/cockpit.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/visualization/uncertainty_cloud.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_desktop/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_desktop/assets/alphafold/AF-P01275-F1-model_v4.cif +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_desktop/assets/alphafold/AF-P01308-F1-model_v4.cif +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_desktop/assets/alphafold/AF-P06213-F1-model_v6.cif +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_desktop/assets/alphafold/AF-P14672-F1-model_v6.cif +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_desktop/assets/alphafold/AF-P47871-F1-model_v6.cif +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_desktop/assets/alphafold/gcgr_3D.png +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_desktop/assets/alphafold/glucagon_3D.png +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_desktop/assets/alphafold/glut4_3D.png +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_desktop/assets/alphafold/insr_3D.png +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_desktop/assets/alphafold/insulin_3D.png +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_desktop/engine.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_desktop/fetcher.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_desktop/launcher.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_desktop/mdmp.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_desktop/molecule_viewer.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_desktop/molecules.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_desktop/render_3dmol.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_desktop/results.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_sdk_python35.egg-info/dependency_links.txt +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_sdk_python35.egg-info/entry_points.txt +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_sdk_python35.egg-info/requires.txt +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints_sdk_python35.egg-info/top_level.txt +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_ai/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_ai/lineage.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/audit.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/bias_hooks.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/bundle.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/certification.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/cli.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/compare.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/conformance.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/contracts.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/crypto.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/data/conformance/vectors/delegation.json +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/data/conformance/vectors/fingerprint.json +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/data/conformance/vectors/grading.json +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/data/conformance/vectors/signing.json +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/delegate.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/diffing.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/drift.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/exceptions.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/fingerprint.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/fingerprint_store.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/hf.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/keys/mdmp_pub_v1.pem +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/llm_provenance.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/migrate.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/policy.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/prov.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/registry.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/runner.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/schema_export.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/synthetic.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/trust.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_core/visualizer.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_flavors/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_integrations/__init__.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_integrations/dvc.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_integrations/mlflow.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/mdmp_integrations/wandb.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/tests/test_ci_governance.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/tests/test_cli_algorithm_loading.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/tests/test_cli_booth_demo.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/tests/test_cli_carelink_workbench.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/tests/test_cli_cloud_import_security.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/tests/test_cli_demo_export.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/tests/test_cli_demo_live.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/tests/test_cli_edge_runtime.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/tests/test_cli_expo_tools.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/tests/test_cli_fpga.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/tests/test_cli_onboarding.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/tests/test_cli_patient_runtime.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/tests/test_cli_poster.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/tests/test_cli_research_workflows.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/tests/test_cli_run_summary.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/tests/test_cli_theory_stress_lab.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/tests/test_install_doctor.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/tests/test_jetson_endurance.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/tests/test_physiology_variation.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/tests/test_plugin_system.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/tests/test_population.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/tests/test_presets_realism.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/tests/test_research_realism_tools.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/tests/test_scientific_fidelity.py +0 -0
- {iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/tests/test_simulator_calibration.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "iints-sdk-python35"
|
|
7
|
-
version = "1.5.
|
|
7
|
+
version = "1.5.24"
|
|
8
8
|
authors = [
|
|
9
9
|
{ name="Rune Bobbaers", email="rune.bobbaers@gmail.com" },
|
|
10
10
|
]
|
|
@@ -127,6 +127,9 @@ where = ["src"]
|
|
|
127
127
|
|
|
128
128
|
[tool.setuptools.package-data]
|
|
129
129
|
iints_desktop = [
|
|
130
|
+
"assets/*.icns",
|
|
131
|
+
"assets/*.ico",
|
|
132
|
+
"assets/*.png",
|
|
130
133
|
"assets/alphafold/*.png",
|
|
131
134
|
"assets/alphafold/*.cif",
|
|
132
135
|
]
|
|
@@ -11,7 +11,7 @@ except ImportError: # pragma: no cover - Python < 3.8 fallback
|
|
|
11
11
|
try:
|
|
12
12
|
__version__ = version("iints-sdk-python35")
|
|
13
13
|
except PackageNotFoundError: # pragma: no cover - source tree fallback
|
|
14
|
-
__version__ = "1.5.
|
|
14
|
+
__version__ = "1.5.24"
|
|
15
15
|
|
|
16
16
|
# Note to developers: this SDK is currently maintained by a single author.
|
|
17
17
|
# Please report bugs via GitHub issues and feel free to contribute fixes via PRs.
|
{iints_sdk_python35-1.5.23 → iints_sdk_python35-1.5.24}/src/iints/core/patient/bergman_model.py
RENAMED
|
@@ -63,6 +63,11 @@ class BergmanParameters:
|
|
|
63
63
|
k_a_glucagon: float = 0.05 # 1/min
|
|
64
64
|
S_glucagon: float = 0.02 # sensitivity
|
|
65
65
|
|
|
66
|
+
# --- Stem Cell Graft (Research) ---
|
|
67
|
+
stem_cell_engraftment_percent: float = 0.0 # 0 for T1D, 100 for cure
|
|
68
|
+
stem_cell_subq_fraction: float = 0.0 # 0.0 = PV (immediate), 1.0 = subQ (delayed via S1)
|
|
69
|
+
immune_rejection_rate: float = 0.0 # 1/min decay of graft mass
|
|
70
|
+
|
|
66
71
|
# --- Gut absorption ---
|
|
67
72
|
tau_meal: float = 40.0 # min — gastric emptying time constant
|
|
68
73
|
k_abs: float = 0.05 # 1/min — intestinal absorption rate constant
|
|
@@ -96,6 +101,7 @@ class BergmanPatientModel:
|
|
|
96
101
|
carb_absorption_duration_minutes: float = 240.0,
|
|
97
102
|
max_glucose_rate_mgdl_per_min: float = 3.0,
|
|
98
103
|
bergman_params: Optional[BergmanParameters] = None,
|
|
104
|
+
**kwargs
|
|
99
105
|
) -> None:
|
|
100
106
|
# Store clinical knobs (for ratio queries and compatibility)
|
|
101
107
|
self.basal_insulin_rate = basal_insulin_rate
|
|
@@ -121,6 +127,10 @@ class BergmanPatientModel:
|
|
|
121
127
|
Gb=gb_default,
|
|
122
128
|
tau_meal=max(45.0, min(float(carb_absorption_duration_minutes) / 3.0, 100.0)),
|
|
123
129
|
k_abs=max(0.015, min(float(glucose_absorption_rate), 0.035)),
|
|
130
|
+
stem_cell_engraftment_percent=kwargs.get('stem_cell_engraftment_percent', 0.0),
|
|
131
|
+
stem_cell_subq_fraction=kwargs.get('stem_cell_subq_fraction', 0.0),
|
|
132
|
+
immune_rejection_rate=kwargs.get('immune_rejection_rate', 0.0),
|
|
133
|
+
gamma=0.005 if kwargs.get('stem_cell_engraftment_percent', 0.0) > 0 else 0.0
|
|
124
134
|
)
|
|
125
135
|
|
|
126
136
|
# Exercise book-keeping
|
|
@@ -159,6 +169,7 @@ class BergmanPatientModel:
|
|
|
159
169
|
0.0, # 10: Gamma (pg/mL) - Plasma Glucagon
|
|
160
170
|
0.0, # 11: x_gluc (1) - Glucagon action on EGP
|
|
161
171
|
0.0, # 12: HAAF (1) - Memory
|
|
172
|
+
(self.params.stem_cell_engraftment_percent / 100.0), # 13: M_graft (1) - Graft Mass
|
|
162
173
|
], dtype=np.float64)
|
|
163
174
|
|
|
164
175
|
self.reset()
|
|
@@ -183,7 +194,7 @@ class BergmanPatientModel:
|
|
|
183
194
|
"""Reset to initial conditions."""
|
|
184
195
|
self._state = np.array([
|
|
185
196
|
self.initial_glucose, 0.0, self.params.Ib, 0.0, 0.0, 0.0, 0.0, 0.0,
|
|
186
|
-
0.0, 0.0, 0.0, 0.0, 0.0
|
|
197
|
+
0.0, 0.0, 0.0, 0.0, 0.0, (self.params.stem_cell_engraftment_percent / 100.0)
|
|
187
198
|
], dtype=np.float64)
|
|
188
199
|
self.current_glucose = self.initial_glucose
|
|
189
200
|
self.insulin_on_board = 0.0
|
|
@@ -369,22 +380,27 @@ class BergmanPatientModel:
|
|
|
369
380
|
# Handle legacy snapshot coercions to 13-state vector
|
|
370
381
|
if ode_state.size == 4:
|
|
371
382
|
ode_state = np.array(
|
|
372
|
-
[ode_state[0], ode_state[1], ode_state[2], 0.0, 0.0, ode_state[3], 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
|
|
383
|
+
[ode_state[0], ode_state[1], ode_state[2], 0.0, 0.0, ode_state[3], 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, (self.params.stem_cell_engraftment_percent / 100.0)],
|
|
373
384
|
dtype=np.float64,
|
|
374
385
|
)
|
|
375
386
|
elif ode_state.size == 5:
|
|
376
387
|
ode_state = np.array(
|
|
377
|
-
[ode_state[0], ode_state[1], ode_state[2], ode_state[3], 0.0, ode_state[4], 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
|
|
388
|
+
[ode_state[0], ode_state[1], ode_state[2], ode_state[3], 0.0, ode_state[4], 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, (self.params.stem_cell_engraftment_percent / 100.0)],
|
|
378
389
|
dtype=np.float64,
|
|
379
390
|
)
|
|
380
391
|
elif ode_state.size == 7:
|
|
381
392
|
ode_state = np.array(
|
|
382
|
-
[ode_state[0], ode_state[1], ode_state[2], ode_state[3], 0.0, ode_state[4], ode_state[5], ode_state[6], 0.0, 0.0, 0.0, 0.0, 0.0],
|
|
393
|
+
[ode_state[0], ode_state[1], ode_state[2], ode_state[3], 0.0, ode_state[4], ode_state[5], ode_state[6], 0.0, 0.0, 0.0, 0.0, 0.0, (self.params.stem_cell_engraftment_percent / 100.0)],
|
|
383
394
|
dtype=np.float64,
|
|
384
395
|
)
|
|
385
396
|
elif ode_state.size == 8:
|
|
386
397
|
ode_state = np.array(
|
|
387
|
-
[ode_state[0], ode_state[1], ode_state[2], ode_state[3], ode_state[4], ode_state[5], ode_state[6], ode_state[7], 0.0, 0.0, 0.0, 0.0, 0.0],
|
|
398
|
+
[ode_state[0], ode_state[1], ode_state[2], ode_state[3], ode_state[4], ode_state[5], ode_state[6], ode_state[7], 0.0, 0.0, 0.0, 0.0, 0.0, (self.params.stem_cell_engraftment_percent / 100.0)],
|
|
399
|
+
dtype=np.float64,
|
|
400
|
+
)
|
|
401
|
+
elif ode_state.size == 13:
|
|
402
|
+
ode_state = np.array(
|
|
403
|
+
list(ode_state) + [(self.params.stem_cell_engraftment_percent / 100.0)],
|
|
388
404
|
dtype=np.float64,
|
|
389
405
|
)
|
|
390
406
|
self._state = ode_state
|
|
@@ -415,7 +431,7 @@ class BergmanPatientModel:
|
|
|
415
431
|
u_glucagon_pg_per_min: float,
|
|
416
432
|
current_time: float,
|
|
417
433
|
) -> np.ndarray:
|
|
418
|
-
G, X, I, Q_sto1, Q_sto2, Q_gut, S1, S2, Y1, Y2, Gamma, x_gluc, HAAF = y
|
|
434
|
+
G, X, I, Q_sto1, Q_sto2, Q_gut, S1, S2, Y1, Y2, Gamma, x_gluc, HAAF, M_graft = y
|
|
419
435
|
p = self.params
|
|
420
436
|
|
|
421
437
|
Vg_abs = p.Vg * p.body_weight_kg # dL
|
|
@@ -484,16 +500,28 @@ class BergmanPatientModel:
|
|
|
484
500
|
# --- dX/dt ---
|
|
485
501
|
dXdt = -p.p2 * X + p3_eff * max(I - p.Ib, 0.0)
|
|
486
502
|
|
|
503
|
+
# --- Stem Cell / Islet Secretion ---
|
|
504
|
+
# Gamma acts as base secretion rate for a 100% functional pancreas
|
|
505
|
+
# M_graft acts as the survival fraction multiplier.
|
|
506
|
+
total_secretion = p.gamma * M_graft * max(G - p.h, 0.0)
|
|
507
|
+
|
|
508
|
+
secretion_subq = total_secretion * p.stem_cell_subq_fraction
|
|
509
|
+
secretion_plasma = total_secretion * (1.0 - p.stem_cell_subq_fraction)
|
|
510
|
+
|
|
487
511
|
# --- dS1/dt, dS2/dt (Subcutaneous Insulin Absorption) ---
|
|
488
|
-
|
|
512
|
+
# Any SubQ implanted islet cells release into S1
|
|
513
|
+
dS1dt = u_insulin_mu_per_min + secretion_subq - p.k_a * S1
|
|
489
514
|
dS2dt = p.k_a * S1 - p.k_a * S2
|
|
490
515
|
|
|
491
516
|
# Rate of appearance of insulin into plasma (mU/min)
|
|
492
517
|
Ra_I = p.k_a * S2
|
|
493
518
|
|
|
494
519
|
# --- dI/dt ---
|
|
495
|
-
|
|
496
|
-
dIdt = -p.n * (I - p.Ib) +
|
|
520
|
+
# Any PV/Hepatic implanted islet cells release directly into plasma
|
|
521
|
+
dIdt = -p.n * (I - p.Ib) + secretion_plasma + Ra_I / Vi_abs
|
|
522
|
+
|
|
523
|
+
# --- dM_graft/dt ---
|
|
524
|
+
dM_graft_dt = -p.immune_rejection_rate * M_graft
|
|
497
525
|
|
|
498
526
|
# --- Dalla Man Multi-compartment Meal Kinetcs ---
|
|
499
527
|
gastric_emptying_rate = 1.0 / max(float(p.tau_meal), 1.0)
|
|
@@ -502,4 +530,4 @@ class BergmanPatientModel:
|
|
|
502
530
|
dQ_sto2_dt = solid_to_liquid_rate * Q_sto1 - gastric_emptying_rate * Q_sto2
|
|
503
531
|
dQ_gut_dt = gastric_emptying_rate * Q_sto2 - p.k_abs * Q_gut
|
|
504
532
|
|
|
505
|
-
return np.array([dGdt, dXdt, dIdt, dQ_sto1_dt, dQ_sto2_dt, dQ_gut_dt, dS1dt, dS2dt, dY1_dt, dY2_dt, dGamma_dt, dx_gluc_dt, dHAAF_dt])
|
|
533
|
+
return np.array([dGdt, dXdt, dIdt, dQ_sto1_dt, dQ_sto2_dt, dQ_gut_dt, dS1dt, dS2dt, dY1_dt, dY2_dt, dGamma_dt, dx_gluc_dt, dHAAF_dt, dM_graft_dt])
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import numpy as np
|
|
2
|
+
import pandas as pd
|
|
3
|
+
from typing import Dict, Any, List, Optional
|
|
4
|
+
from iints.core.simulator import Simulator
|
|
5
|
+
from iints.core.patient.bergman_model import BergmanPatientModel, BergmanParameters
|
|
6
|
+
from iints.core.algorithms.pid_controller import PIDController
|
|
7
|
+
from iints.core.devices.models import SensorModel, PumpModel
|
|
8
|
+
|
|
9
|
+
class StemCellOptimizer:
|
|
10
|
+
"""
|
|
11
|
+
Research optimization module for stem cell / islet cell graft simulations.
|
|
12
|
+
Runs batch simulations to evaluate graft survival and kinetics for T1D cures.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
def __init__(self, duration_minutes: int = 1440, time_step: int = 5):
|
|
16
|
+
self.duration_minutes = duration_minutes
|
|
17
|
+
self.time_step = time_step
|
|
18
|
+
|
|
19
|
+
def evaluate_graft_configuration(
|
|
20
|
+
self,
|
|
21
|
+
engraftment_percent: float,
|
|
22
|
+
subq_fraction: float,
|
|
23
|
+
immune_decay: float,
|
|
24
|
+
meal_schedule: List[Dict[str, float]],
|
|
25
|
+
seed: int = 42
|
|
26
|
+
) -> Dict[str, Any]:
|
|
27
|
+
"""
|
|
28
|
+
Runs a simulation for a specific stem cell graft configuration.
|
|
29
|
+
"""
|
|
30
|
+
# Create bergman parameters with stem cell settings
|
|
31
|
+
params = BergmanParameters(
|
|
32
|
+
stem_cell_engraftment_percent=engraftment_percent,
|
|
33
|
+
stem_cell_subq_fraction=subq_fraction,
|
|
34
|
+
immune_rejection_rate=immune_decay,
|
|
35
|
+
gamma=0.005 # Baseline healthy beta cell secretion rate
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
patient = BergmanPatientModel(
|
|
39
|
+
initial_glucose=100.0,
|
|
40
|
+
bergman_params=params
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
# We use a dummy controller since the patient is autonomously producing insulin
|
|
44
|
+
controller = PIDController()
|
|
45
|
+
sensor = SensorModel(noise_std=1.0, seed=seed)
|
|
46
|
+
pump = PumpModel()
|
|
47
|
+
|
|
48
|
+
from iints.validation import build_stress_events
|
|
49
|
+
|
|
50
|
+
simulator = Simulator(
|
|
51
|
+
patient_model=patient, # type: ignore
|
|
52
|
+
algorithm=controller,
|
|
53
|
+
sensor_model=sensor,
|
|
54
|
+
pump_model=pump,
|
|
55
|
+
)
|
|
56
|
+
for event in build_stress_events(meal_schedule):
|
|
57
|
+
simulator.add_stress_event(event)
|
|
58
|
+
|
|
59
|
+
df, stats = simulator.run_batch(duration_minutes=self.duration_minutes)
|
|
60
|
+
|
|
61
|
+
# Calculate TIR
|
|
62
|
+
if not df.empty:
|
|
63
|
+
bg_col = "bg" if "bg" in df.columns else "CGM" if "CGM" in df.columns else "glucose" if "glucose" in df.columns else df.columns[1]
|
|
64
|
+
tir_mask = (df[bg_col] >= 70) & (df[bg_col] <= 180)
|
|
65
|
+
tir = tir_mask.mean() * 100.0
|
|
66
|
+
|
|
67
|
+
hypo_mask = df[bg_col] < 70
|
|
68
|
+
hypo = hypo_mask.mean() * 100.0
|
|
69
|
+
|
|
70
|
+
hyper_mask = df[bg_col] > 180
|
|
71
|
+
hyper = hyper_mask.mean() * 100.0
|
|
72
|
+
else:
|
|
73
|
+
tir, hypo, hyper = 0.0, 0.0, 0.0
|
|
74
|
+
|
|
75
|
+
return {
|
|
76
|
+
"tir_percent": tir,
|
|
77
|
+
"hypo_percent": hypo,
|
|
78
|
+
"hyper_percent": hyper,
|
|
79
|
+
"max_glucose": df[bg_col].max() if not df.empty else 0.0,
|
|
80
|
+
"min_glucose": df[bg_col].min() if not df.empty else 0.0,
|
|
81
|
+
"engraftment_percent": engraftment_percent,
|
|
82
|
+
"subq_fraction": subq_fraction,
|
|
83
|
+
"immune_decay": immune_decay,
|
|
84
|
+
"df": df
|
|
85
|
+
}
|
|
@@ -5,6 +5,7 @@ import sys
|
|
|
5
5
|
import threading
|
|
6
6
|
import tkinter as tk
|
|
7
7
|
import webbrowser
|
|
8
|
+
from importlib import resources
|
|
8
9
|
from pathlib import Path
|
|
9
10
|
from tkinter import filedialog, messagebox, ttk
|
|
10
11
|
|
|
@@ -26,6 +27,7 @@ class IINTSDesktopApp:
|
|
|
26
27
|
self.root.title("IINTS-AF Desktop")
|
|
27
28
|
self.root.geometry("980x720")
|
|
28
29
|
self.root.minsize(860, 620)
|
|
30
|
+
self._apply_app_icon()
|
|
29
31
|
|
|
30
32
|
self.presets = list_desktop_presets()
|
|
31
33
|
self.preset_by_title = {preset.title: preset for preset in self.presets}
|
|
@@ -42,6 +44,15 @@ class IINTSDesktopApp:
|
|
|
42
44
|
self._build_ui()
|
|
43
45
|
self.root.after(200, self._poll_messages)
|
|
44
46
|
|
|
47
|
+
def _apply_app_icon(self) -> None:
|
|
48
|
+
try:
|
|
49
|
+
icon_ref = resources.files("iints_desktop").joinpath("assets", "app_icon.png")
|
|
50
|
+
if icon_ref.is_file():
|
|
51
|
+
self._window_icon = tk.PhotoImage(file=str(icon_ref))
|
|
52
|
+
self.root.iconphoto(True, self._window_icon)
|
|
53
|
+
except Exception:
|
|
54
|
+
pass
|
|
55
|
+
|
|
45
56
|
def _build_ui(self) -> None:
|
|
46
57
|
self._configure_style()
|
|
47
58
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -3,6 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
import queue
|
|
4
4
|
import sys
|
|
5
5
|
import threading
|
|
6
|
+
from importlib import resources
|
|
6
7
|
from pathlib import Path
|
|
7
8
|
from typing import Any
|
|
8
9
|
|
|
@@ -40,6 +41,7 @@ def main() -> int:
|
|
|
40
41
|
NSMakeRect,
|
|
41
42
|
NSMiniaturizableWindowMask,
|
|
42
43
|
NSModalResponseOK,
|
|
44
|
+
NSImage,
|
|
43
45
|
NSOpenPanel,
|
|
44
46
|
NSPopUpButton,
|
|
45
47
|
NSResizableWindowMask,
|
|
@@ -67,6 +69,7 @@ def main() -> int:
|
|
|
67
69
|
last_result: DesktopRunResult | None
|
|
68
70
|
|
|
69
71
|
def applicationDidFinishLaunching_(self, _notification: Any) -> None:
|
|
72
|
+
self._apply_app_icon()
|
|
70
73
|
self.presets = list_desktop_presets()
|
|
71
74
|
self.messages = queue.Queue()
|
|
72
75
|
self.last_result = None
|
|
@@ -80,6 +83,17 @@ def main() -> int:
|
|
|
80
83
|
def applicationShouldTerminateAfterLastWindowClosed_(self, _sender: Any) -> bool:
|
|
81
84
|
return True
|
|
82
85
|
|
|
86
|
+
@objc.python_method
|
|
87
|
+
def _apply_app_icon(self) -> None:
|
|
88
|
+
try:
|
|
89
|
+
icon_ref = resources.files("iints_desktop").joinpath("assets", "app_icon.png")
|
|
90
|
+
if icon_ref.is_file():
|
|
91
|
+
image = NSImage.alloc().initWithContentsOfFile_(str(icon_ref))
|
|
92
|
+
if image is not None:
|
|
93
|
+
NSApplication.sharedApplication().setApplicationIconImage_(image)
|
|
94
|
+
except Exception:
|
|
95
|
+
pass
|
|
96
|
+
|
|
83
97
|
@objc.python_method
|
|
84
98
|
def _label(self, parent: Any, text: str, frame: tuple[float, float, float, float], *, size: float = 13.0, bold: bool = False) -> Any:
|
|
85
99
|
field = NSTextField.alloc().initWithFrame_(NSMakeRect(*frame))
|
|
@@ -49,16 +49,17 @@ class LocalAIStartResult:
|
|
|
49
49
|
SYSTEM_PROMPT = """You are a highly advanced Medical Data Scientist and Computational Biologist analyzing output from the IINTS-AF closed-loop insulin simulator.
|
|
50
50
|
|
|
51
51
|
CRITICAL INSTRUCTIONS:
|
|
52
|
-
1. Speak with absolute professional authority and scientific rigor. Do NOT sound like an AI assistant.
|
|
53
|
-
2.
|
|
54
|
-
3.
|
|
55
|
-
4. Structure your response explicitly using these exact headers:
|
|
52
|
+
1. Speak with absolute professional authority and scientific rigor. Do NOT sound like an AI assistant.
|
|
53
|
+
2. PROHIBITED PHRASES: "Here is an analysis", "As an AI", "In conclusion", "I can help with that". Start immediately with the facts.
|
|
54
|
+
3. Analyze the provided clinical simulation data. Extract meaningful physiological insights, glycemic control patterns (Time in Range, Coefficient of Variation), and algorithmic behaviors.
|
|
55
|
+
4. Structure your response explicitly using these exact headers (do not use other headers):
|
|
56
56
|
Clinical Overview
|
|
57
57
|
Biomathematical Observations
|
|
58
58
|
Algorithmic Behavior
|
|
59
59
|
Conclusions
|
|
60
|
-
5. Use highly specific scientific terminology (e.g., exogenous insulin kinetics, hepatic glucose production
|
|
61
|
-
6.
|
|
60
|
+
5. Use highly specific scientific terminology (e.g., exogenous insulin kinetics, hepatic glucose production).
|
|
61
|
+
6. Present findings in dense, hard-hitting bullet points. Do not write fluffy paragraphs.
|
|
62
|
+
7. Acknowledge that the IINTS-AF simulator is for research and education only. It is Not a medical device. Do not provide diagnosis, insulin dosing, or treatment advice.
|
|
62
63
|
"""
|
|
63
64
|
|
|
64
65
|
|
|
@@ -284,7 +285,7 @@ def format_ai_answer(text: str) -> str:
|
|
|
284
285
|
"algorithmic behavior",
|
|
285
286
|
"conclusions"
|
|
286
287
|
}:
|
|
287
|
-
line = line.rstrip(
|
|
288
|
+
line = f"\n=== {line.rstrip(':').upper()} ==="
|
|
288
289
|
lines.append(line)
|
|
289
290
|
return "\n".join(lines).strip()
|
|
290
291
|
|
|
@@ -302,7 +303,7 @@ def ask_local_ai(
|
|
|
302
303
|
backend = OllamaBackend(
|
|
303
304
|
model_name=model,
|
|
304
305
|
base_url=host,
|
|
305
|
-
timeout_seconds=
|
|
306
|
+
timeout_seconds=900.0,
|
|
306
307
|
temperature=0.1,
|
|
307
308
|
top_p=0.8,
|
|
308
309
|
num_predict=1000,
|