iints-sdk-python35 1.5.4__tar.gz → 1.5.6__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.4 → iints_sdk_python35-1.5.6}/LICENSE +2 -2
- iints_sdk_python35-1.5.6/PKG-INFO +131 -0
- iints_sdk_python35-1.5.6/README.md +64 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/pyproject.toml +40 -39
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/__init__.py +7 -3
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/analysis/baseline.py +34 -0
- iints_sdk_python35-1.5.6/src/iints/api/registry.py +383 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/cli/cli.py +2049 -96
- iints_sdk_python35-1.5.6/src/iints/core/algorithms/imitation_controller.py +78 -0
- iints_sdk_python35-1.5.6/src/iints/core/algorithms/neural_controller.py +89 -0
- iints_sdk_python35-1.5.6/src/iints/core/devices/__init__.py +3 -0
- iints_sdk_python35-1.5.6/src/iints/core/devices/models.py +333 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/core/patient/bergman_model.py +28 -13
- iints_sdk_python35-1.5.6/src/iints/core/patient/profile.py +102 -0
- iints_sdk_python35-1.5.6/src/iints/core/physiology_variation.py +119 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/core/simulator.py +43 -8
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/data/__init__.py +48 -1
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/data/datasets.json +62 -5
- iints_sdk_python35-1.5.6/src/iints/data/demo/demo_cgm.csv +289 -0
- iints_sdk_python35-1.5.6/src/iints/data/physiology_residual_profiles.json +13953 -0
- iints_sdk_python35-1.5.6/src/iints/data/realism_dashboard.py +390 -0
- iints_sdk_python35-1.5.6/src/iints/data/realism_reference.py +229 -0
- iints_sdk_python35-1.5.6/src/iints/data/realism_references.json +56 -0
- iints_sdk_python35-1.5.6/src/iints/data/realism_validator.py +813 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/data/synthetic_mirror.py +183 -10
- iints_sdk_python35-1.5.6/src/iints/data/tidepool.py +268 -0
- iints_sdk_python35-1.5.6/src/iints/data/virtual_patients/reference_azt1d_t1d.yaml +12 -0
- iints_sdk_python35-1.5.6/src/iints/data/virtual_patients/reference_free_living_t1d.yaml +12 -0
- iints_sdk_python35-1.5.6/src/iints/data/virtual_patients/reference_hupa_ucm_t1d.yaml +12 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/highlevel.py +38 -25
- iints_sdk_python35-1.5.6/src/iints/jetson/__init__.py +25 -0
- iints_sdk_python35-1.5.6/src/iints/jetson/endurance.py +1138 -0
- iints_sdk_python35-1.5.6/src/iints/jetson/research_pipeline.py +230 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/live_patient/api.py +6 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/live_patient/edge_ops.py +204 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/live_patient/runtime.py +15 -14
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/presets/evidence_sources.yaml +9 -1
- iints_sdk_python35-1.5.6/src/iints/presets/presets.json +476 -0
- iints_sdk_python35-1.5.6/src/iints/research/__init__.py +121 -0
- iints_sdk_python35-1.5.6/src/iints/research/control.py +151 -0
- iints_sdk_python35-1.5.6/src/iints/research/control_eval.py +258 -0
- iints_sdk_python35-1.5.6/src/iints/research/data_blend.py +98 -0
- iints_sdk_python35-1.5.6/src/iints/research/evaluation.py +285 -0
- iints_sdk_python35-1.5.6/src/iints/research/neural_control.py +185 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/scenarios/study_pack.py +31 -18
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/utils/run_io.py +11 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/validation/run_validation.py +11 -0
- iints_sdk_python35-1.5.6/src/iints_sdk_python35.egg-info/PKG-INFO +131 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints_sdk_python35.egg-info/SOURCES.txt +28 -1
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints_sdk_python35.egg-info/entry_points.txt +1 -1
- iints_sdk_python35-1.5.6/src/iints_sdk_python35.egg-info/requires.txt +53 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/tests/test_bergman.py +8 -0
- iints_sdk_python35-1.5.6/tests/test_ci_governance.py +28 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/tests/test_cli_cloud_import_security.py +22 -16
- iints_sdk_python35-1.5.6/tests/test_cli_demo_live.py +71 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/tests/test_cli_edge_runtime.py +37 -0
- iints_sdk_python35-1.5.6/tests/test_cli_onboarding.py +234 -0
- iints_sdk_python35-1.5.6/tests/test_cli_run_summary.py +36 -0
- iints_sdk_python35-1.5.6/tests/test_jetson_endurance.py +320 -0
- iints_sdk_python35-1.5.6/tests/test_physiology_variation.py +32 -0
- iints_sdk_python35-1.5.6/tests/test_plugin_system.py +89 -0
- iints_sdk_python35-1.5.6/tests/test_presets_realism.py +158 -0
- iints_sdk_python35-1.5.6/tests/test_research_realism_tools.py +53 -0
- iints_sdk_python35-1.5.6/tests/test_simulator_calibration.py +67 -0
- iints_sdk_python35-1.5.4/PKG-INFO +0 -200
- iints_sdk_python35-1.5.4/README.md +0 -134
- iints_sdk_python35-1.5.4/src/iints/api/registry.py +0 -103
- iints_sdk_python35-1.5.4/src/iints/core/devices/__init__.py +0 -3
- iints_sdk_python35-1.5.4/src/iints/core/devices/models.py +0 -160
- iints_sdk_python35-1.5.4/src/iints/core/patient/profile.py +0 -41
- iints_sdk_python35-1.5.4/src/iints/data/demo/demo_cgm.csv +0 -289
- iints_sdk_python35-1.5.4/src/iints/data/tidepool.py +0 -43
- iints_sdk_python35-1.5.4/src/iints/presets/presets.json +0 -114
- iints_sdk_python35-1.5.4/src/iints/research/__init__.py +0 -63
- iints_sdk_python35-1.5.4/src/iints/research/evaluation.py +0 -70
- iints_sdk_python35-1.5.4/src/iints_sdk_python35.egg-info/PKG-INFO +0 -200
- iints_sdk_python35-1.5.4/src/iints_sdk_python35.egg-info/requires.txt +0 -53
- iints_sdk_python35-1.5.4/tests/test_cli_onboarding.py +0 -92
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/LICENSE-MIT-IINTS-LEGACY +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/NOTICE +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/setup.cfg +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/ai/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/ai/assistant.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/ai/backends/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/ai/backends/base.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/ai/backends/mistral_api.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/ai/backends/ollama.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/ai/cli.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/ai/mdmp_guard.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/ai/model_catalog.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/ai/prepare.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/ai/prompts.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/analysis/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/analysis/algorithm_xray.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/analysis/booth_demo.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/analysis/carelink_workbench.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/analysis/clinical_benchmark.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/analysis/clinical_metrics.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/analysis/clinical_tir_analyzer.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/analysis/diabetes_metrics.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/analysis/edge_efficiency.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/analysis/edge_performance_monitor.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/analysis/eucys_results.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/analysis/explainability.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/analysis/explainable_ai.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/analysis/hardware_benchmark.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/analysis/metrics.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/analysis/population_report.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/analysis/poster.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/analysis/reporting.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/analysis/safety_index.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/analysis/sensor_filtering.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/analysis/study_analysis.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/analysis/study_engine.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/analysis/study_experiment.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/analysis/study_poster.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/analysis/study_protocol.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/analysis/validator.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/api/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/api/base_algorithm.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/api/template_algorithm.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/assets/iints_logo.png +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/cli/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/cli/patient_cli.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/core/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/core/algorithms/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/core/algorithms/battle_runner.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/core/algorithms/clinical_baseline.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/core/algorithms/correction_bolus.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/core/algorithms/discovery.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/core/algorithms/fixed_basal_bolus.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/core/algorithms/hybrid_algorithm.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/core/algorithms/lstm_algorithm.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/core/algorithms/mock_algorithms.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/core/algorithms/pid_controller.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/core/algorithms/standard_pump_algo.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/core/device.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/core/device_manager.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/core/patient/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/core/patient/models.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/core/patient/patient_factory.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/core/safety/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/core/safety/config.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/core/safety/input_validator.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/core/safety/supervisor.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/core/simulation/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/core/simulation/scenario_parser.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/core/supervisor.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/data/adapter.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/data/certify.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/data/column_mapper.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/data/contracts.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/data/demo/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/data/guardians.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/data/importer.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/data/ingestor.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/data/mdmp_visualizer.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/data/nightscout.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/data/quality_checker.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/data/registry.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/data/runner.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/data/study_corruption.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/data/universal_parser.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/data/virtual_patients/clinic_safe_baseline.yaml +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/data/virtual_patients/clinic_safe_hyper_challenge.yaml +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/data/virtual_patients/clinic_safe_hypo_prone.yaml +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/data/virtual_patients/clinic_safe_midnight.yaml +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/data/virtual_patients/clinic_safe_pizza.yaml +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/data/virtual_patients/clinic_safe_stress_meal.yaml +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/data/virtual_patients/default_patient.yaml +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/data/virtual_patients/patient_559_config.yaml +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/demo_assets.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/emulation/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/emulation/legacy_base.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/emulation/medtronic_780g.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/emulation/omnipod_5.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/emulation/tandem_controliq.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/learning/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/learning/autonomous_optimizer.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/learning/learning_system.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/live_patient/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/live_patient/daemon.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/live_patient/edge_benchmark.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/live_patient/long_study.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/live_patient/service_export.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/live_patient/uno_q.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/mdmp/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/mdmp/backend.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/metrics.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/population/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/population/generator.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/population/runner.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/presets/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/presets/forecast_calibration_profiles.yaml +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/presets/golden_benchmark.yaml +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/presets/safety_contract_default.yaml +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/presets/validation_profiles.yaml +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/research/audit.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/research/calibration_gate.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/research/config.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/research/dataset.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/research/losses.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/research/metrics.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/research/model_registry.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/research/predictor.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/scenarios/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/scenarios/generator.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/templates/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/templates/default_algorithm.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/templates/demos/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/templates/demos/live_stage_demo.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/templates/scenarios/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/templates/scenarios/chaos_insulin_stacking.json +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/templates/scenarios/chaos_runaway_ai.json +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/templates/scenarios/example_scenario.json +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/templates/scenarios/exercise_stress.json +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/templates/uno_q/README.md +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/templates/uno_q/iints_supervisor_bridge.ino +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/utils/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/utils/csv_safety.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/utils/plotting.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/utils/url_safety.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/validation/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/validation/golden.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/validation/replay.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/validation/safety_contract.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/validation/schemas.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/visualization/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/visualization/cockpit.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints/visualization/uncertainty_cloud.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints_sdk_python35.egg-info/dependency_links.txt +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/iints_sdk_python35.egg-info/top_level.txt +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_ai/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_ai/lineage.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/audit.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/bias_hooks.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/bundle.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/certification.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/cli.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/compare.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/conformance.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/contracts.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/crypto.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/data/conformance/vectors/delegation.json +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/data/conformance/vectors/fingerprint.json +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/data/conformance/vectors/grading.json +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/data/conformance/vectors/signing.json +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/delegate.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/diffing.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/drift.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/exceptions.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/fingerprint.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/fingerprint_store.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/hf.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/keys/mdmp_pub_v1.pem +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/llm_provenance.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/migrate.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/policy.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/prov.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/registry.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/runner.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/schema_export.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/synthetic.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/trust.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_core/visualizer.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_flavors/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_integrations/__init__.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_integrations/dvc.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_integrations/mlflow.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/src/mdmp_integrations/wandb.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/tests/test_cli_algorithm_loading.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/tests/test_cli_booth_demo.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/tests/test_cli_carelink_workbench.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/tests/test_cli_demo_export.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/tests/test_cli_expo_tools.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/tests/test_cli_patient_runtime.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/tests/test_cli_poster.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/tests/test_install_doctor.py +0 -0
- {iints_sdk_python35-1.5.4 → iints_sdk_python35-1.5.6}/tests/test_population.py +0 -0
|
@@ -164,8 +164,8 @@ the Work or Derivative Works thereof, You may choose to offer,
|
|
|
164
164
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
165
165
|
or other liability obligations and/or rights consistent with this
|
|
166
166
|
License. However, in accepting such obligations, You may act only
|
|
167
|
-
on Your own behalf and on Your sole responsibility, not on behalf
|
|
168
|
-
|
|
167
|
+
on Your own behalf and on Your sole responsibility, not on behalf of
|
|
168
|
+
any other Contributor, and only if You agree to indemnify,
|
|
169
169
|
defend, and hold each Contributor harmless for any liability
|
|
170
170
|
incurred by, or claims asserted against, such Contributor by reason
|
|
171
171
|
of your accepting any such warranty or additional liability.
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: iints-sdk-python35
|
|
3
|
+
Version: 1.5.6
|
|
4
|
+
Summary: A pre-clinical Edge-AI SDK for diabetes management validation.
|
|
5
|
+
Author-email: Rune Bobbaers <rune.bobbaers@gmail.com>
|
|
6
|
+
License-Expression: Apache-2.0
|
|
7
|
+
Project-URL: Homepage, https://github.com/python35/IINTS-SDK
|
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
16
|
+
Requires-Python: <3.15,>=3.10
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
License-File: LICENSE
|
|
19
|
+
License-File: NOTICE
|
|
20
|
+
License-File: LICENSE-MIT-IINTS-LEGACY
|
|
21
|
+
Requires-Dist: fastapi<1.0.0,>=0.115.0
|
|
22
|
+
Requires-Dist: numpy<3.0.0,>=1.24.0
|
|
23
|
+
Requires-Dist: pandas<3.0.0,>=2.0.0
|
|
24
|
+
Requires-Dist: pydantic<3.0.0,>=2.0.0
|
|
25
|
+
Requires-Dist: PyYAML<7.0.0,>=6.0.0
|
|
26
|
+
Requires-Dist: rich<16.0.0,>=12.0.0
|
|
27
|
+
Requires-Dist: scipy<2.0.0,>=1.9.0
|
|
28
|
+
Requires-Dist: typer[all]<1.0.0,>=0.9.0
|
|
29
|
+
Requires-Dist: uvicorn<1.0.0,>=0.30.0
|
|
30
|
+
Provides-Extra: edge
|
|
31
|
+
Requires-Dist: pyserial<4.0,>=3.5; extra == "edge"
|
|
32
|
+
Provides-Extra: reports
|
|
33
|
+
Requires-Dist: fpdf2<3.0.0,>=2.8.0; extra == "reports"
|
|
34
|
+
Requires-Dist: matplotlib<4.0.0,>=3.5.0; extra == "reports"
|
|
35
|
+
Requires-Dist: openpyxl<4.0.0,>=3.0.0; extra == "reports"
|
|
36
|
+
Requires-Dist: pillow<13.0.0,>=12.1.1; extra == "reports"
|
|
37
|
+
Requires-Dist: seaborn<1.0.0,>=0.11.0; extra == "reports"
|
|
38
|
+
Provides-Extra: full
|
|
39
|
+
Requires-Dist: fpdf2<3.0.0,>=2.8.0; extra == "full"
|
|
40
|
+
Requires-Dist: matplotlib<4.0.0,>=3.5.0; extra == "full"
|
|
41
|
+
Requires-Dist: openpyxl<4.0.0,>=3.0.0; extra == "full"
|
|
42
|
+
Requires-Dist: pyserial<4.0,>=3.5; extra == "full"
|
|
43
|
+
Requires-Dist: pillow<13.0.0,>=12.1.1; extra == "full"
|
|
44
|
+
Requires-Dist: seaborn<1.0.0,>=0.11.0; extra == "full"
|
|
45
|
+
Provides-Extra: dev
|
|
46
|
+
Requires-Dist: pytest<10.0.0,>=7.0.0; extra == "dev"
|
|
47
|
+
Requires-Dist: hypothesis<7.0.0,>=6.0.0; extra == "dev"
|
|
48
|
+
Requires-Dist: flake8<8.0.0,>=7.0.0; extra == "dev"
|
|
49
|
+
Requires-Dist: httpx<1.0.0,>=0.27.0; extra == "dev"
|
|
50
|
+
Requires-Dist: mypy<3.0.0,>=1.8.0; extra == "dev"
|
|
51
|
+
Requires-Dist: pandas-stubs<3.0.0,>=2.0.0; extra == "dev"
|
|
52
|
+
Requires-Dist: types-PyYAML<7.0.0,>=6.0.0; extra == "dev"
|
|
53
|
+
Requires-Dist: types-psutil<8.0.0,>=7.0.0; extra == "dev"
|
|
54
|
+
Provides-Extra: torch
|
|
55
|
+
Requires-Dist: torch<3.0.0,>=1.9.0; extra == "torch"
|
|
56
|
+
Provides-Extra: nightscout
|
|
57
|
+
Requires-Dist: py-nightscout; extra == "nightscout"
|
|
58
|
+
Provides-Extra: research
|
|
59
|
+
Requires-Dist: torch<3.0.0,>=2.0.0; extra == "research"
|
|
60
|
+
Requires-Dist: pyarrow<25.0.0,>=12.0.0; extra == "research"
|
|
61
|
+
Requires-Dist: h5py<4.0.0,>=3.10.0; extra == "research"
|
|
62
|
+
Requires-Dist: onnx<2.0.0,>=1.16.0; extra == "research"
|
|
63
|
+
Requires-Dist: onnxscript<1.0.0,>=0.1.0; extra == "research"
|
|
64
|
+
Provides-Extra: mdmp
|
|
65
|
+
Requires-Dist: cryptography<49.0.0,>=42.0.0; extra == "mdmp"
|
|
66
|
+
Dynamic: license-file
|
|
67
|
+
|
|
68
|
+
# IINTS-AF SDK
|
|
69
|
+
|
|
70
|
+
[](https://www.uni-kiel.de/en/eucys2026)
|
|
71
|
+
[](https://badge.fury.io/py/iints-sdk-python35)
|
|
72
|
+
[](https://github.com/python35/IINTS-SDK/actions/workflows/python-package.yml)
|
|
73
|
+
[](https://python35.github.io/IINTS-SDK/)
|
|
74
|
+
|
|
75
|
+
> "Code shouldn't be a secret when it's managing a life."
|
|
76
|
+
|
|
77
|
+
Open-source research platform for insulin delivery algorithm simulation and validation.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## What It Does
|
|
82
|
+
|
|
83
|
+
- **Simulate** virtual patients across thousands of scenarios before any algorithm reaches a real device
|
|
84
|
+
- **Certify** datasets cryptographically — traceable, consented, reproducible
|
|
85
|
+
- **Understand** results with audit-ready reports and local AI explanation via Ministral
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Install
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
pip install "iints-sdk-python35[full,mdmp]"
|
|
93
|
+
iints doctor --smoke-run
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**Raspberry Pi / Arduino UNO Q:**
|
|
97
|
+
```bash
|
|
98
|
+
pip install "iints-sdk-python35[edge,mdmp]"
|
|
99
|
+
iints edge quickstart --board raspberry_pi
|
|
100
|
+
iints edge quickstart --board uno_q
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Quick Start
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
iints quickstart --project-name my_study
|
|
109
|
+
cd my_study
|
|
110
|
+
iints presets run --name baseline_t1d --algo algorithms/example_algorithm.py
|
|
111
|
+
iints ai report results/<run_id>
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Full documentation: [python35.github.io/IINTS-SDK](https://python35.github.io/IINTS-SDK/)
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Live Demo
|
|
119
|
+
|
|
120
|
+
For a Zoom call, jury walkthrough, or sponsor demo where you want to show both the code and the generated outputs in one terminal flow:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
iints demo-live --output-dir results/live_demo
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
That exports the showable demo script, prints the key SDK calls, runs the demo, and lists the poster plus proof artifacts to open next.
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
> Research software. Not a medical device. MIT Licensed.
|
|
131
|
+
> *Built by a 17-year-old with type 1 diabetes.*
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# IINTS-AF SDK
|
|
2
|
+
|
|
3
|
+
[](https://www.uni-kiel.de/en/eucys2026)
|
|
4
|
+
[](https://badge.fury.io/py/iints-sdk-python35)
|
|
5
|
+
[](https://github.com/python35/IINTS-SDK/actions/workflows/python-package.yml)
|
|
6
|
+
[](https://python35.github.io/IINTS-SDK/)
|
|
7
|
+
|
|
8
|
+
> "Code shouldn't be a secret when it's managing a life."
|
|
9
|
+
|
|
10
|
+
Open-source research platform for insulin delivery algorithm simulation and validation.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## What It Does
|
|
15
|
+
|
|
16
|
+
- **Simulate** virtual patients across thousands of scenarios before any algorithm reaches a real device
|
|
17
|
+
- **Certify** datasets cryptographically — traceable, consented, reproducible
|
|
18
|
+
- **Understand** results with audit-ready reports and local AI explanation via Ministral
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Install
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
pip install "iints-sdk-python35[full,mdmp]"
|
|
26
|
+
iints doctor --smoke-run
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Raspberry Pi / Arduino UNO Q:**
|
|
30
|
+
```bash
|
|
31
|
+
pip install "iints-sdk-python35[edge,mdmp]"
|
|
32
|
+
iints edge quickstart --board raspberry_pi
|
|
33
|
+
iints edge quickstart --board uno_q
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Quick Start
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
iints quickstart --project-name my_study
|
|
42
|
+
cd my_study
|
|
43
|
+
iints presets run --name baseline_t1d --algo algorithms/example_algorithm.py
|
|
44
|
+
iints ai report results/<run_id>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Full documentation: [python35.github.io/IINTS-SDK](https://python35.github.io/IINTS-SDK/)
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Live Demo
|
|
52
|
+
|
|
53
|
+
For a Zoom call, jury walkthrough, or sponsor demo where you want to show both the code and the generated outputs in one terminal flow:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
iints demo-live --output-dir results/live_demo
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
That exports the showable demo script, prints the key SDK calls, runs the demo, and lists the poster plus proof artifacts to open next.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
> Research software. Not a medical device. MIT Licensed.
|
|
64
|
+
> *Built by a 17-year-old with type 1 diabetes.*
|
|
@@ -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.6"
|
|
8
8
|
authors = [
|
|
9
9
|
{ name="Rune Bobbaers", email="rune.bobbaers@gmail.com" },
|
|
10
10
|
]
|
|
@@ -12,72 +12,73 @@ description = "A pre-clinical Edge-AI SDK for diabetes management validation."
|
|
|
12
12
|
readme = "README.md"
|
|
13
13
|
license = "Apache-2.0"
|
|
14
14
|
license-files = ["LICENSE", "NOTICE", "LICENSE-MIT-IINTS-LEGACY"]
|
|
15
|
-
requires-python = ">=3.10"
|
|
15
|
+
requires-python = ">=3.10,<3.15"
|
|
16
16
|
classifiers = [
|
|
17
17
|
"Programming Language :: Python :: 3",
|
|
18
18
|
"Programming Language :: Python :: 3.10",
|
|
19
19
|
"Programming Language :: Python :: 3.11",
|
|
20
20
|
"Programming Language :: Python :: 3.12",
|
|
21
21
|
"Programming Language :: Python :: 3.13",
|
|
22
|
+
"Programming Language :: Python :: 3.14",
|
|
22
23
|
"Operating System :: OS Independent",
|
|
23
24
|
"Development Status :: 5 - Production/Stable",
|
|
24
25
|
]
|
|
25
26
|
dependencies = [
|
|
26
|
-
"fastapi>=0.115.0",
|
|
27
|
-
"numpy>=1.24.0",
|
|
28
|
-
"pandas>=2.0.0",
|
|
29
|
-
"pydantic>=2.0.0",
|
|
30
|
-
"PyYAML",
|
|
31
|
-
"rich>=12.0.0",
|
|
32
|
-
"scipy>=1.9.0",
|
|
33
|
-
"typer[all]",
|
|
34
|
-
"uvicorn>=0.30.0",
|
|
27
|
+
"fastapi>=0.115.0,<1.0.0",
|
|
28
|
+
"numpy>=1.24.0,<3.0.0",
|
|
29
|
+
"pandas>=2.0.0,<3.0.0",
|
|
30
|
+
"pydantic>=2.0.0,<3.0.0",
|
|
31
|
+
"PyYAML>=6.0.0,<7.0.0",
|
|
32
|
+
"rich>=12.0.0,<16.0.0",
|
|
33
|
+
"scipy>=1.9.0,<2.0.0",
|
|
34
|
+
"typer[all]>=0.9.0,<1.0.0",
|
|
35
|
+
"uvicorn>=0.30.0,<1.0.0",
|
|
35
36
|
]
|
|
36
37
|
|
|
37
38
|
[project.optional-dependencies]
|
|
38
39
|
edge = [
|
|
39
|
-
"pyserial>=3.5",
|
|
40
|
+
"pyserial>=3.5,<4.0",
|
|
40
41
|
]
|
|
41
42
|
reports = [
|
|
42
|
-
"fpdf2>=2.8.0",
|
|
43
|
-
"matplotlib>=3.5.0",
|
|
44
|
-
"openpyxl>=3.0.0",
|
|
45
|
-
"pillow>=12.1.1",
|
|
46
|
-
"seaborn>=0.11.0",
|
|
43
|
+
"fpdf2>=2.8.0,<3.0.0",
|
|
44
|
+
"matplotlib>=3.5.0,<4.0.0",
|
|
45
|
+
"openpyxl>=3.0.0,<4.0.0",
|
|
46
|
+
"pillow>=12.1.1,<13.0.0",
|
|
47
|
+
"seaborn>=0.11.0,<1.0.0",
|
|
47
48
|
]
|
|
48
49
|
full = [
|
|
49
|
-
"fpdf2>=2.8.0",
|
|
50
|
-
"matplotlib>=3.5.0",
|
|
51
|
-
"openpyxl>=3.0.0",
|
|
52
|
-
"pyserial>=3.5",
|
|
53
|
-
"pillow>=12.1.1",
|
|
54
|
-
"seaborn>=0.11.0",
|
|
50
|
+
"fpdf2>=2.8.0,<3.0.0",
|
|
51
|
+
"matplotlib>=3.5.0,<4.0.0",
|
|
52
|
+
"openpyxl>=3.0.0,<4.0.0",
|
|
53
|
+
"pyserial>=3.5,<4.0",
|
|
54
|
+
"pillow>=12.1.1,<13.0.0",
|
|
55
|
+
"seaborn>=0.11.0,<1.0.0",
|
|
55
56
|
]
|
|
56
57
|
dev = [
|
|
57
|
-
"pytest>=7.0.0",
|
|
58
|
-
"hypothesis>=6.0.0",
|
|
59
|
-
"flake8",
|
|
60
|
-
"httpx>=0.27.0",
|
|
61
|
-
"mypy",
|
|
62
|
-
"pandas-stubs",
|
|
63
|
-
"types-PyYAML",
|
|
64
|
-
"types-psutil",
|
|
58
|
+
"pytest>=7.0.0,<10.0.0",
|
|
59
|
+
"hypothesis>=6.0.0,<7.0.0",
|
|
60
|
+
"flake8>=7.0.0,<8.0.0",
|
|
61
|
+
"httpx>=0.27.0,<1.0.0",
|
|
62
|
+
"mypy>=1.8.0,<3.0.0",
|
|
63
|
+
"pandas-stubs>=2.0.0,<3.0.0",
|
|
64
|
+
"types-PyYAML>=6.0.0,<7.0.0",
|
|
65
|
+
"types-psutil>=7.0.0,<8.0.0",
|
|
65
66
|
]
|
|
66
67
|
torch = [
|
|
67
|
-
"torch>=1.9.0",
|
|
68
|
+
"torch>=1.9.0,<3.0.0",
|
|
68
69
|
]
|
|
69
70
|
nightscout = [
|
|
70
71
|
"py-nightscout",
|
|
71
72
|
]
|
|
72
73
|
research = [
|
|
73
|
-
"torch>=2.0.0",
|
|
74
|
-
"pyarrow>=12.0.0",
|
|
75
|
-
"h5py>=3.10.0",
|
|
76
|
-
"onnx>=1.16.0",
|
|
77
|
-
"onnxscript>=0.1.0",
|
|
74
|
+
"torch>=2.0.0,<3.0.0",
|
|
75
|
+
"pyarrow>=12.0.0,<25.0.0",
|
|
76
|
+
"h5py>=3.10.0,<4.0.0",
|
|
77
|
+
"onnx>=1.16.0,<2.0.0",
|
|
78
|
+
"onnxscript>=0.1.0,<1.0.0",
|
|
78
79
|
]
|
|
79
80
|
mdmp = [
|
|
80
|
-
"cryptography>=42.0.0",
|
|
81
|
+
"cryptography>=42.0.0,<49.0.0",
|
|
81
82
|
]
|
|
82
83
|
|
|
83
84
|
[project.scripts]
|
|
@@ -87,7 +88,7 @@ iints-sdk-doctor = "iints_sdk_python35_doctor:main"
|
|
|
87
88
|
[project.entry-points."iints.algorithms"]
|
|
88
89
|
"PID Controller" = "iints.core.algorithms.pid_controller:PIDController"
|
|
89
90
|
"Fixed Basal Bolus" = "iints.core.algorithms.fixed_basal_bolus:FixedBasalBolus"
|
|
90
|
-
"Correction Bolus" = "iints.core.algorithms.correction_bolus:
|
|
91
|
+
"Correction Bolus" = "iints.core.algorithms.correction_bolus:CorrectionBolus"
|
|
91
92
|
"Standard Pump" = "iints.core.algorithms.standard_pump_algo:StandardPumpAlgorithm"
|
|
92
93
|
"Mock Constant Dose" = "iints.core.algorithms.mock_algorithms:ConstantDoseAlgorithm"
|
|
93
94
|
"Mock Random Dose" = "iints.core.algorithms.mock_algorithms:RandomDoseAlgorithm"
|
|
@@ -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.6"
|
|
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.
|
|
@@ -47,7 +47,7 @@ except Exception: # pragma: no cover - fallback if torch/device manager import
|
|
|
47
47
|
def get_device(self):
|
|
48
48
|
return self._device
|
|
49
49
|
from .core.safety import SafetyConfig, SafetySupervisor
|
|
50
|
-
from .core.devices.models import SensorModel, PumpModel
|
|
50
|
+
from .core.devices.models import SENSOR_PROFILES, SensorModel, PumpModel, create_sensor_model
|
|
51
51
|
from .core.algorithms.standard_pump_algo import StandardPumpAlgorithm
|
|
52
52
|
from .core.algorithms.mock_algorithms import (
|
|
53
53
|
ConstantDoseAlgorithm,
|
|
@@ -74,7 +74,7 @@ from .data.importer import (
|
|
|
74
74
|
summarize_carelink_csv,
|
|
75
75
|
)
|
|
76
76
|
from .data.nightscout import NightscoutConfig, import_nightscout
|
|
77
|
-
from .data.tidepool import TidepoolClient, load_openapi_spec
|
|
77
|
+
from .data.tidepool import TidepoolClient, TidepoolConfig, import_tidepool, load_openapi_spec
|
|
78
78
|
from .data.guardians import mdmp_gate, MDMPGateError
|
|
79
79
|
from .data.synthetic_mirror import generate_synthetic_mirror, SyntheticMirrorArtifact
|
|
80
80
|
from .data.study_corruption import AVAILABLE_STUDY_CORRUPTIONS, apply_study_corruptions, write_corrupted_study_csv
|
|
@@ -224,6 +224,8 @@ __all__ = [
|
|
|
224
224
|
"SafetyConfig",
|
|
225
225
|
"SensorModel",
|
|
226
226
|
"PumpModel",
|
|
227
|
+
"SENSOR_PROFILES",
|
|
228
|
+
"create_sensor_model",
|
|
227
229
|
"StandardPumpAlgorithm",
|
|
228
230
|
"ConstantDoseAlgorithm",
|
|
229
231
|
"RandomDoseAlgorithm",
|
|
@@ -247,6 +249,8 @@ __all__ = [
|
|
|
247
249
|
"NightscoutConfig",
|
|
248
250
|
"import_nightscout",
|
|
249
251
|
"TidepoolClient",
|
|
252
|
+
"TidepoolConfig",
|
|
253
|
+
"import_tidepool",
|
|
250
254
|
"load_openapi_spec",
|
|
251
255
|
"mdmp_gate",
|
|
252
256
|
"MDMPGateError",
|
|
@@ -27,6 +27,32 @@ def compute_metrics(results_df: pd.DataFrame) -> Dict[str, float]:
|
|
|
27
27
|
return metrics.to_dict()
|
|
28
28
|
|
|
29
29
|
|
|
30
|
+
def _run_context(
|
|
31
|
+
*,
|
|
32
|
+
requested_duration_minutes: int,
|
|
33
|
+
safety_report: Dict[str, Any],
|
|
34
|
+
) -> Dict[str, Any]:
|
|
35
|
+
terminated_early = bool(safety_report.get("terminated_early", False))
|
|
36
|
+
termination = safety_report.get("termination_reason", {})
|
|
37
|
+
completed_duration_minutes = requested_duration_minutes
|
|
38
|
+
termination_reason = ""
|
|
39
|
+
if isinstance(termination, dict):
|
|
40
|
+
completed_duration_minutes = int(
|
|
41
|
+
termination.get("current_time_minutes", requested_duration_minutes)
|
|
42
|
+
)
|
|
43
|
+
termination_reason = str(termination.get("reason", ""))
|
|
44
|
+
return {
|
|
45
|
+
"requested_duration_minutes": int(requested_duration_minutes),
|
|
46
|
+
"completed_duration_minutes": int(completed_duration_minutes),
|
|
47
|
+
"completion_ratio_pct": round(
|
|
48
|
+
(completed_duration_minutes / max(requested_duration_minutes, 1)) * 100.0,
|
|
49
|
+
2,
|
|
50
|
+
),
|
|
51
|
+
"terminated_early": terminated_early,
|
|
52
|
+
"termination_reason": termination_reason,
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
|
|
30
56
|
def run_baseline_comparison(
|
|
31
57
|
patient_params: Dict[str, Any],
|
|
32
58
|
stress_event_payloads: List[Dict[str, Any]],
|
|
@@ -44,6 +70,10 @@ def run_baseline_comparison(
|
|
|
44
70
|
rows.append(
|
|
45
71
|
{
|
|
46
72
|
"algorithm": primary_label,
|
|
73
|
+
**_run_context(
|
|
74
|
+
requested_duration_minutes=duration,
|
|
75
|
+
safety_report=primary_safety,
|
|
76
|
+
),
|
|
47
77
|
"tir_70_180": primary_metrics.get("tir_70_180", 0.0),
|
|
48
78
|
"tir_below_70": primary_metrics.get("tir_below_70", 0.0),
|
|
49
79
|
"tir_above_180": primary_metrics.get("tir_above_180", 0.0),
|
|
@@ -74,6 +104,10 @@ def run_baseline_comparison(
|
|
|
74
104
|
rows.append(
|
|
75
105
|
{
|
|
76
106
|
"algorithm": label,
|
|
107
|
+
**_run_context(
|
|
108
|
+
requested_duration_minutes=duration,
|
|
109
|
+
safety_report=safety_report,
|
|
110
|
+
),
|
|
77
111
|
"tir_70_180": metrics.get("tir_70_180", 0.0),
|
|
78
112
|
"tir_below_70": metrics.get("tir_below_70", 0.0),
|
|
79
113
|
"tir_above_180": metrics.get("tir_above_180", 0.0),
|