iints-sdk-python35 0.1.21__tar.gz → 0.1.22__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-0.1.21/src/iints_sdk_python35.egg-info → iints_sdk_python35-0.1.22}/PKG-INFO +57 -1
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/README.md +56 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/pyproject.toml +1 -1
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/__init__.py +7 -1
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/cli/cli.py +551 -36
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/data/__init__.py +46 -0
- iints_sdk_python35-0.1.22/src/iints/data/contracts.py +213 -0
- iints_sdk_python35-0.1.22/src/iints/data/guardians.py +119 -0
- iints_sdk_python35-0.1.22/src/iints/data/mdmp_visualizer.py +441 -0
- iints_sdk_python35-0.1.22/src/iints/data/runner.py +380 -0
- iints_sdk_python35-0.1.22/src/iints/data/synthetic_mirror.py +266 -0
- iints_sdk_python35-0.1.22/src/iints/mdmp/__init__.py +57 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/visualization/cockpit.py +1 -1
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22/src/iints_sdk_python35.egg-info}/PKG-INFO +57 -1
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints_sdk_python35.egg-info/SOURCES.txt +6 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/LICENSE +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/setup.cfg +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/analysis/__init__.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/analysis/algorithm_xray.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/analysis/baseline.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/analysis/clinical_benchmark.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/analysis/clinical_metrics.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/analysis/clinical_tir_analyzer.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/analysis/diabetes_metrics.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/analysis/edge_efficiency.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/analysis/edge_performance_monitor.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/analysis/explainability.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/analysis/explainable_ai.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/analysis/hardware_benchmark.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/analysis/metrics.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/analysis/population_report.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/analysis/reporting.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/analysis/safety_index.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/analysis/sensor_filtering.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/analysis/validator.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/api/__init__.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/api/base_algorithm.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/api/registry.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/api/template_algorithm.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/assets/iints_logo.png +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/cli/__init__.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/__init__.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/algorithms/__init__.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/algorithms/battle_runner.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/algorithms/correction_bolus.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/algorithms/discovery.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/algorithms/fixed_basal_bolus.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/algorithms/hybrid_algorithm.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/algorithms/lstm_algorithm.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/algorithms/mock_algorithms.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/algorithms/pid_controller.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/algorithms/standard_pump_algo.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/device.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/device_manager.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/devices/__init__.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/devices/models.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/patient/__init__.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/patient/bergman_model.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/patient/models.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/patient/patient_factory.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/patient/profile.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/safety/__init__.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/safety/config.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/safety/input_validator.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/safety/supervisor.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/simulation/__init__.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/simulation/scenario_parser.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/simulator.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/core/supervisor.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/data/adapter.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/data/column_mapper.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/data/datasets.json +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/data/demo/__init__.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/data/demo/demo_cgm.csv +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/data/importer.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/data/ingestor.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/data/nightscout.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/data/quality_checker.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/data/registry.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/data/tidepool.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/data/universal_parser.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/data/virtual_patients/clinic_safe_baseline.yaml +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/data/virtual_patients/clinic_safe_hyper_challenge.yaml +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/data/virtual_patients/clinic_safe_hypo_prone.yaml +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/data/virtual_patients/clinic_safe_midnight.yaml +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/data/virtual_patients/clinic_safe_pizza.yaml +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/data/virtual_patients/clinic_safe_stress_meal.yaml +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/data/virtual_patients/default_patient.yaml +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/data/virtual_patients/patient_559_config.yaml +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/emulation/__init__.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/emulation/legacy_base.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/emulation/medtronic_780g.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/emulation/omnipod_5.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/emulation/tandem_controliq.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/highlevel.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/learning/__init__.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/learning/autonomous_optimizer.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/learning/learning_system.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/metrics.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/population/__init__.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/population/generator.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/population/runner.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/presets/__init__.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/presets/evidence_sources.yaml +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/presets/forecast_calibration_profiles.yaml +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/presets/golden_benchmark.yaml +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/presets/presets.json +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/presets/safety_contract_default.yaml +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/presets/validation_profiles.yaml +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/research/__init__.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/research/audit.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/research/calibration_gate.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/research/config.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/research/dataset.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/research/evaluation.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/research/losses.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/research/metrics.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/research/model_registry.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/research/predictor.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/scenarios/__init__.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/scenarios/generator.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/templates/__init__.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/templates/default_algorithm.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/templates/scenarios/__init__.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/templates/scenarios/chaos_insulin_stacking.json +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/templates/scenarios/chaos_runaway_ai.json +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/templates/scenarios/example_scenario.json +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/templates/scenarios/exercise_stress.json +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/utils/__init__.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/utils/plotting.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/utils/run_io.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/validation/__init__.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/validation/golden.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/validation/replay.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/validation/run_validation.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/validation/safety_contract.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/validation/schemas.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/visualization/__init__.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints/visualization/uncertainty_cloud.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints_sdk_python35.egg-info/dependency_links.txt +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints_sdk_python35.egg-info/entry_points.txt +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints_sdk_python35.egg-info/requires.txt +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/src/iints_sdk_python35.egg-info/top_level.txt +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/tests/test_bergman.py +0 -0
- {iints_sdk_python35-0.1.21 → iints_sdk_python35-0.1.22}/tests/test_population.py +0 -0
{iints_sdk_python35-0.1.21/src/iints_sdk_python35.egg-info → iints_sdk_python35-0.1.22}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: iints-sdk-python35
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.22
|
|
4
4
|
Summary: A pre-clinical Edge-AI SDK for diabetes management validation.
|
|
5
5
|
Author-email: Rune Bobbaers <rune.bobbaers@gmail.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/python35/IINTS-SDK
|
|
@@ -50,6 +50,7 @@ Dynamic: license-file
|
|
|
50
50
|
# IINTS-AF SDK
|
|
51
51
|
[](https://badge.fury.io/py/iints-sdk-python35)
|
|
52
52
|
[](https://github.com/python35/IINTS-SDK/actions/workflows/python-package.yml)
|
|
53
|
+
[](https://github.com/python35/IINTS-SDK/actions/workflows/docs-site.yml)
|
|
53
54
|
[](https://python35.github.io/IINTS-Site/index.html)
|
|
54
55
|
|
|
55
56
|
IINTS-AF is a safety-first simulation SDK for insulin algorithm research.
|
|
@@ -92,6 +93,16 @@ cd iints_quickstart
|
|
|
92
93
|
iints presets run --name baseline_t1d --algo algorithms/example_algorithm.py
|
|
93
94
|
```
|
|
94
95
|
|
|
96
|
+
Clinical-trial scaffold (MDMP-ready):
|
|
97
|
+
```bash
|
|
98
|
+
iints init --project-name iints_trial --template clinical-trial
|
|
99
|
+
cd iints_trial
|
|
100
|
+
iints data contract-run contracts/clinical_mdmp_contract.yaml data/demo/diabetes_cgm.csv \
|
|
101
|
+
--output-json audit/contract_data_report.json \
|
|
102
|
+
--min-mdmp-grade research_grade --fail-on-noncompliant
|
|
103
|
+
iints data mdmp-visualizer audit/contract_data_report.json --output-html audit/mdmp_dashboard.html
|
|
104
|
+
```
|
|
105
|
+
|
|
95
106
|
One full run with artifacts:
|
|
96
107
|
```bash
|
|
97
108
|
iints run-full \
|
|
@@ -128,9 +139,19 @@ outputs = iints.run_simulation(
|
|
|
128
139
|
```bash
|
|
129
140
|
# Environment and validation checks
|
|
130
141
|
iints doctor --smoke-run
|
|
142
|
+
iints study-ready --algo algorithms/example_algorithm.py --output-dir results/study_ready
|
|
131
143
|
iints validation-profiles
|
|
132
144
|
iints validate-run --results-csv results/run_full/results.csv --profile research_default
|
|
133
145
|
iints contract-verify --output-json results/contract_report.json
|
|
146
|
+
iints data contract-template --output-path data_contract.yaml
|
|
147
|
+
iints data contract-run data_contract.yaml data/my_cgm.csv --output-json results/contract_data_report.json
|
|
148
|
+
iints data contract-run data_contract.yaml data/my_cgm.csv --min-mdmp-grade research_grade --fail-on-noncompliant
|
|
149
|
+
iints data synthetic-mirror data/my_cgm.csv data_contract.yaml --output-csv data/synthetic_mirror.csv --output-json results/synthetic_mirror_report.json
|
|
150
|
+
iints data mdmp-visualizer results/contract_data_report.json --output-html results/mdmp_dashboard.html
|
|
151
|
+
iints mdmp template --output-path mdmp_contract.yaml
|
|
152
|
+
iints mdmp validate mdmp_contract.yaml data/my_cgm.csv --output-json results/mdmp_report.json
|
|
153
|
+
iints mdmp synthetic-mirror data/my_cgm.csv mdmp_contract.yaml --output-csv data/synthetic_mirror.csv --output-json results/synthetic_mirror_report.json
|
|
154
|
+
iints mdmp visualizer results/mdmp_report.json --output-html results/mdmp_dashboard.html
|
|
134
155
|
iints replay-check --algo algorithms/example_algorithm.py --output-json results/replay_check.json
|
|
135
156
|
iints golden-benchmark --algo algorithms/example_algorithm.py --output-json results/golden_benchmark.json
|
|
136
157
|
|
|
@@ -145,15 +166,50 @@ iints research registry-list --registry models/registry.json
|
|
|
145
166
|
iints research registry-promote --registry models/registry.json --run-id <run-id> --stage validated
|
|
146
167
|
```
|
|
147
168
|
|
|
169
|
+
`iints study-ready` produces a complete bundle by default:
|
|
170
|
+
- simulation outputs
|
|
171
|
+
- `validation_report.json`
|
|
172
|
+
- `sources_manifest.json`
|
|
173
|
+
- `SUMMARY.md` (human-readable quick review)
|
|
174
|
+
|
|
175
|
+
`iints data contract-run` writes deterministic fingerprints plus an MDMP grade:
|
|
176
|
+
- `draft`
|
|
177
|
+
- `research_grade`
|
|
178
|
+
- `clinical_grade`
|
|
179
|
+
|
|
180
|
+
`iints data mdmp-visualizer` turns a contract report JSON into a shareable single-file HTML dashboard for audit review.
|
|
181
|
+
|
|
182
|
+
`iints data synthetic-mirror` generates a privacy-safe synthetic dataset that keeps schema and broad statistical behavior, then validates it with the same MDMP gates.
|
|
183
|
+
|
|
184
|
+
## MDMP as Separate Protocol Surface
|
|
185
|
+
|
|
186
|
+
MDMP now has a dedicated namespace:
|
|
187
|
+
- Python imports: `iints.mdmp`
|
|
188
|
+
- CLI commands: `iints mdmp ...`
|
|
189
|
+
|
|
190
|
+
The older `iints data ...` MDMP commands remain supported for backward compatibility.
|
|
191
|
+
|
|
192
|
+
MDMP Auto-Guardians enforce quality gates directly in Python pipelines:
|
|
193
|
+
```python
|
|
194
|
+
import pandas as pd
|
|
195
|
+
from iints import mdmp_gate
|
|
196
|
+
|
|
197
|
+
@mdmp_gate("contracts/clinical_mdmp_contract.yaml", min_grade="clinical_grade")
|
|
198
|
+
def process(df: pd.DataFrame) -> int:
|
|
199
|
+
return len(df)
|
|
200
|
+
```
|
|
201
|
+
|
|
148
202
|
## Demos and Notebooks
|
|
149
203
|
- Demo scripts: [examples/demos](https://github.com/python35/IINTS-SDK/tree/main/examples/demos)
|
|
150
204
|
- Notebook tutorials: [examples/notebooks](https://github.com/python35/IINTS-SDK/tree/main/examples/notebooks)
|
|
151
205
|
|
|
152
206
|
## Documentation
|
|
207
|
+
- Docs site (GitHub Pages): [https://python35.github.io/IINTS-SDK/](https://python35.github.io/IINTS-SDK/)
|
|
153
208
|
- Manual (PDF): [docs/manuals/IINTS-AF_SDK_Manual.pdf](https://github.com/python35/IINTS-SDK/blob/main/docs/manuals/IINTS-AF_SDK_Manual.pdf)
|
|
154
209
|
- Comprehensive guide: [docs/COMPREHENSIVE_GUIDE.md](https://github.com/python35/IINTS-SDK/blob/main/docs/COMPREHENSIVE_GUIDE.md)
|
|
155
210
|
- Technical README: [docs/TECHNICAL_README.md](https://github.com/python35/IINTS-SDK/blob/main/docs/TECHNICAL_README.md)
|
|
156
211
|
- Plain-language guide: [docs/PLAIN_LANGUAGE_GUIDE.md](https://github.com/python35/IINTS-SDK/blob/main/docs/PLAIN_LANGUAGE_GUIDE.md)
|
|
212
|
+
- MDMP (draft): [docs/MDMP.md](https://github.com/python35/IINTS-SDK/blob/main/docs/MDMP.md)
|
|
157
213
|
- Evidence base (peer-reviewed sources): [docs/EVIDENCE_BASE.md](https://github.com/python35/IINTS-SDK/blob/main/docs/EVIDENCE_BASE.md)
|
|
158
214
|
- Research track: [research/README.md](https://github.com/python35/IINTS-SDK/blob/main/research/README.md)
|
|
159
215
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# IINTS-AF SDK
|
|
2
2
|
[](https://badge.fury.io/py/iints-sdk-python35)
|
|
3
3
|
[](https://github.com/python35/IINTS-SDK/actions/workflows/python-package.yml)
|
|
4
|
+
[](https://github.com/python35/IINTS-SDK/actions/workflows/docs-site.yml)
|
|
4
5
|
[](https://python35.github.io/IINTS-Site/index.html)
|
|
5
6
|
|
|
6
7
|
IINTS-AF is a safety-first simulation SDK for insulin algorithm research.
|
|
@@ -43,6 +44,16 @@ cd iints_quickstart
|
|
|
43
44
|
iints presets run --name baseline_t1d --algo algorithms/example_algorithm.py
|
|
44
45
|
```
|
|
45
46
|
|
|
47
|
+
Clinical-trial scaffold (MDMP-ready):
|
|
48
|
+
```bash
|
|
49
|
+
iints init --project-name iints_trial --template clinical-trial
|
|
50
|
+
cd iints_trial
|
|
51
|
+
iints data contract-run contracts/clinical_mdmp_contract.yaml data/demo/diabetes_cgm.csv \
|
|
52
|
+
--output-json audit/contract_data_report.json \
|
|
53
|
+
--min-mdmp-grade research_grade --fail-on-noncompliant
|
|
54
|
+
iints data mdmp-visualizer audit/contract_data_report.json --output-html audit/mdmp_dashboard.html
|
|
55
|
+
```
|
|
56
|
+
|
|
46
57
|
One full run with artifacts:
|
|
47
58
|
```bash
|
|
48
59
|
iints run-full \
|
|
@@ -79,9 +90,19 @@ outputs = iints.run_simulation(
|
|
|
79
90
|
```bash
|
|
80
91
|
# Environment and validation checks
|
|
81
92
|
iints doctor --smoke-run
|
|
93
|
+
iints study-ready --algo algorithms/example_algorithm.py --output-dir results/study_ready
|
|
82
94
|
iints validation-profiles
|
|
83
95
|
iints validate-run --results-csv results/run_full/results.csv --profile research_default
|
|
84
96
|
iints contract-verify --output-json results/contract_report.json
|
|
97
|
+
iints data contract-template --output-path data_contract.yaml
|
|
98
|
+
iints data contract-run data_contract.yaml data/my_cgm.csv --output-json results/contract_data_report.json
|
|
99
|
+
iints data contract-run data_contract.yaml data/my_cgm.csv --min-mdmp-grade research_grade --fail-on-noncompliant
|
|
100
|
+
iints data synthetic-mirror data/my_cgm.csv data_contract.yaml --output-csv data/synthetic_mirror.csv --output-json results/synthetic_mirror_report.json
|
|
101
|
+
iints data mdmp-visualizer results/contract_data_report.json --output-html results/mdmp_dashboard.html
|
|
102
|
+
iints mdmp template --output-path mdmp_contract.yaml
|
|
103
|
+
iints mdmp validate mdmp_contract.yaml data/my_cgm.csv --output-json results/mdmp_report.json
|
|
104
|
+
iints mdmp synthetic-mirror data/my_cgm.csv mdmp_contract.yaml --output-csv data/synthetic_mirror.csv --output-json results/synthetic_mirror_report.json
|
|
105
|
+
iints mdmp visualizer results/mdmp_report.json --output-html results/mdmp_dashboard.html
|
|
85
106
|
iints replay-check --algo algorithms/example_algorithm.py --output-json results/replay_check.json
|
|
86
107
|
iints golden-benchmark --algo algorithms/example_algorithm.py --output-json results/golden_benchmark.json
|
|
87
108
|
|
|
@@ -96,15 +117,50 @@ iints research registry-list --registry models/registry.json
|
|
|
96
117
|
iints research registry-promote --registry models/registry.json --run-id <run-id> --stage validated
|
|
97
118
|
```
|
|
98
119
|
|
|
120
|
+
`iints study-ready` produces a complete bundle by default:
|
|
121
|
+
- simulation outputs
|
|
122
|
+
- `validation_report.json`
|
|
123
|
+
- `sources_manifest.json`
|
|
124
|
+
- `SUMMARY.md` (human-readable quick review)
|
|
125
|
+
|
|
126
|
+
`iints data contract-run` writes deterministic fingerprints plus an MDMP grade:
|
|
127
|
+
- `draft`
|
|
128
|
+
- `research_grade`
|
|
129
|
+
- `clinical_grade`
|
|
130
|
+
|
|
131
|
+
`iints data mdmp-visualizer` turns a contract report JSON into a shareable single-file HTML dashboard for audit review.
|
|
132
|
+
|
|
133
|
+
`iints data synthetic-mirror` generates a privacy-safe synthetic dataset that keeps schema and broad statistical behavior, then validates it with the same MDMP gates.
|
|
134
|
+
|
|
135
|
+
## MDMP as Separate Protocol Surface
|
|
136
|
+
|
|
137
|
+
MDMP now has a dedicated namespace:
|
|
138
|
+
- Python imports: `iints.mdmp`
|
|
139
|
+
- CLI commands: `iints mdmp ...`
|
|
140
|
+
|
|
141
|
+
The older `iints data ...` MDMP commands remain supported for backward compatibility.
|
|
142
|
+
|
|
143
|
+
MDMP Auto-Guardians enforce quality gates directly in Python pipelines:
|
|
144
|
+
```python
|
|
145
|
+
import pandas as pd
|
|
146
|
+
from iints import mdmp_gate
|
|
147
|
+
|
|
148
|
+
@mdmp_gate("contracts/clinical_mdmp_contract.yaml", min_grade="clinical_grade")
|
|
149
|
+
def process(df: pd.DataFrame) -> int:
|
|
150
|
+
return len(df)
|
|
151
|
+
```
|
|
152
|
+
|
|
99
153
|
## Demos and Notebooks
|
|
100
154
|
- Demo scripts: [examples/demos](https://github.com/python35/IINTS-SDK/tree/main/examples/demos)
|
|
101
155
|
- Notebook tutorials: [examples/notebooks](https://github.com/python35/IINTS-SDK/tree/main/examples/notebooks)
|
|
102
156
|
|
|
103
157
|
## Documentation
|
|
158
|
+
- Docs site (GitHub Pages): [https://python35.github.io/IINTS-SDK/](https://python35.github.io/IINTS-SDK/)
|
|
104
159
|
- Manual (PDF): [docs/manuals/IINTS-AF_SDK_Manual.pdf](https://github.com/python35/IINTS-SDK/blob/main/docs/manuals/IINTS-AF_SDK_Manual.pdf)
|
|
105
160
|
- Comprehensive guide: [docs/COMPREHENSIVE_GUIDE.md](https://github.com/python35/IINTS-SDK/blob/main/docs/COMPREHENSIVE_GUIDE.md)
|
|
106
161
|
- Technical README: [docs/TECHNICAL_README.md](https://github.com/python35/IINTS-SDK/blob/main/docs/TECHNICAL_README.md)
|
|
107
162
|
- Plain-language guide: [docs/PLAIN_LANGUAGE_GUIDE.md](https://github.com/python35/IINTS-SDK/blob/main/docs/PLAIN_LANGUAGE_GUIDE.md)
|
|
163
|
+
- MDMP (draft): [docs/MDMP.md](https://github.com/python35/IINTS-SDK/blob/main/docs/MDMP.md)
|
|
108
164
|
- Evidence base (peer-reviewed sources): [docs/EVIDENCE_BASE.md](https://github.com/python35/IINTS-SDK/blob/main/docs/EVIDENCE_BASE.md)
|
|
109
165
|
- Research track: [research/README.md](https://github.com/python35/IINTS-SDK/blob/main/research/README.md)
|
|
110
166
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import pandas as pd # Required for type hints like pd.DataFrame
|
|
4
4
|
from typing import Optional
|
|
5
5
|
|
|
6
|
-
__version__ = "0.1.
|
|
6
|
+
__version__ = "0.1.22"
|
|
7
7
|
|
|
8
8
|
# Note to developers: this SDK is currently maintained by a single author.
|
|
9
9
|
# Please report bugs via GitHub issues and feel free to contribute fixes via PRs.
|
|
@@ -56,6 +56,8 @@ from .data.importer import (
|
|
|
56
56
|
)
|
|
57
57
|
from .data.nightscout import NightscoutConfig, import_nightscout
|
|
58
58
|
from .data.tidepool import TidepoolClient, load_openapi_spec
|
|
59
|
+
from .data.guardians import mdmp_gate, MDMPGateError
|
|
60
|
+
from .data.synthetic_mirror import generate_synthetic_mirror, SyntheticMirrorArtifact
|
|
59
61
|
from .analysis.metrics import generate_benchmark_metrics # Added for benchmark
|
|
60
62
|
from .analysis.reporting import ClinicalReportGenerator
|
|
61
63
|
from .analysis.edge_efficiency import EnergyEstimate, estimate_energy_per_decision
|
|
@@ -158,6 +160,10 @@ __all__ = [
|
|
|
158
160
|
"import_nightscout",
|
|
159
161
|
"TidepoolClient",
|
|
160
162
|
"load_openapi_spec",
|
|
163
|
+
"mdmp_gate",
|
|
164
|
+
"MDMPGateError",
|
|
165
|
+
"generate_synthetic_mirror",
|
|
166
|
+
"SyntheticMirrorArtifact",
|
|
161
167
|
# Analysis Metrics
|
|
162
168
|
"generate_benchmark_metrics",
|
|
163
169
|
"ClinicalReportGenerator",
|