iints-sdk-python35 0.0.18__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. iints/__init__.py +183 -0
  2. iints/analysis/__init__.py +12 -0
  3. iints/analysis/algorithm_xray.py +387 -0
  4. iints/analysis/baseline.py +92 -0
  5. iints/analysis/clinical_benchmark.py +198 -0
  6. iints/analysis/clinical_metrics.py +551 -0
  7. iints/analysis/clinical_tir_analyzer.py +136 -0
  8. iints/analysis/diabetes_metrics.py +43 -0
  9. iints/analysis/edge_efficiency.py +33 -0
  10. iints/analysis/edge_performance_monitor.py +315 -0
  11. iints/analysis/explainability.py +94 -0
  12. iints/analysis/explainable_ai.py +232 -0
  13. iints/analysis/hardware_benchmark.py +221 -0
  14. iints/analysis/metrics.py +117 -0
  15. iints/analysis/population_report.py +188 -0
  16. iints/analysis/reporting.py +345 -0
  17. iints/analysis/safety_index.py +311 -0
  18. iints/analysis/sensor_filtering.py +54 -0
  19. iints/analysis/validator.py +273 -0
  20. iints/api/__init__.py +0 -0
  21. iints/api/base_algorithm.py +307 -0
  22. iints/api/registry.py +103 -0
  23. iints/api/template_algorithm.py +195 -0
  24. iints/assets/iints_logo.png +0 -0
  25. iints/cli/__init__.py +0 -0
  26. iints/cli/cli.py +2598 -0
  27. iints/core/__init__.py +1 -0
  28. iints/core/algorithms/__init__.py +0 -0
  29. iints/core/algorithms/battle_runner.py +138 -0
  30. iints/core/algorithms/correction_bolus.py +95 -0
  31. iints/core/algorithms/discovery.py +92 -0
  32. iints/core/algorithms/fixed_basal_bolus.py +58 -0
  33. iints/core/algorithms/hybrid_algorithm.py +92 -0
  34. iints/core/algorithms/lstm_algorithm.py +138 -0
  35. iints/core/algorithms/mock_algorithms.py +162 -0
  36. iints/core/algorithms/pid_controller.py +88 -0
  37. iints/core/algorithms/standard_pump_algo.py +64 -0
  38. iints/core/device.py +0 -0
  39. iints/core/device_manager.py +64 -0
  40. iints/core/devices/__init__.py +3 -0
  41. iints/core/devices/models.py +160 -0
  42. iints/core/patient/__init__.py +9 -0
  43. iints/core/patient/bergman_model.py +341 -0
  44. iints/core/patient/models.py +285 -0
  45. iints/core/patient/patient_factory.py +117 -0
  46. iints/core/patient/profile.py +41 -0
  47. iints/core/safety/__init__.py +12 -0
  48. iints/core/safety/config.py +37 -0
  49. iints/core/safety/input_validator.py +95 -0
  50. iints/core/safety/supervisor.py +39 -0
  51. iints/core/simulation/__init__.py +0 -0
  52. iints/core/simulation/scenario_parser.py +61 -0
  53. iints/core/simulator.py +874 -0
  54. iints/core/supervisor.py +367 -0
  55. iints/data/__init__.py +53 -0
  56. iints/data/adapter.py +142 -0
  57. iints/data/column_mapper.py +398 -0
  58. iints/data/datasets.json +132 -0
  59. iints/data/demo/__init__.py +1 -0
  60. iints/data/demo/demo_cgm.csv +289 -0
  61. iints/data/importer.py +275 -0
  62. iints/data/ingestor.py +162 -0
  63. iints/data/nightscout.py +128 -0
  64. iints/data/quality_checker.py +550 -0
  65. iints/data/registry.py +166 -0
  66. iints/data/tidepool.py +38 -0
  67. iints/data/universal_parser.py +813 -0
  68. iints/data/virtual_patients/clinic_safe_baseline.yaml +9 -0
  69. iints/data/virtual_patients/clinic_safe_hyper_challenge.yaml +9 -0
  70. iints/data/virtual_patients/clinic_safe_hypo_prone.yaml +9 -0
  71. iints/data/virtual_patients/clinic_safe_midnight.yaml +9 -0
  72. iints/data/virtual_patients/clinic_safe_pizza.yaml +9 -0
  73. iints/data/virtual_patients/clinic_safe_stress_meal.yaml +9 -0
  74. iints/data/virtual_patients/default_patient.yaml +11 -0
  75. iints/data/virtual_patients/patient_559_config.yaml +11 -0
  76. iints/emulation/__init__.py +80 -0
  77. iints/emulation/legacy_base.py +414 -0
  78. iints/emulation/medtronic_780g.py +337 -0
  79. iints/emulation/omnipod_5.py +367 -0
  80. iints/emulation/tandem_controliq.py +393 -0
  81. iints/highlevel.py +451 -0
  82. iints/learning/__init__.py +3 -0
  83. iints/learning/autonomous_optimizer.py +194 -0
  84. iints/learning/learning_system.py +122 -0
  85. iints/metrics.py +34 -0
  86. iints/population/__init__.py +11 -0
  87. iints/population/generator.py +131 -0
  88. iints/population/runner.py +327 -0
  89. iints/presets/__init__.py +28 -0
  90. iints/presets/presets.json +114 -0
  91. iints/research/__init__.py +30 -0
  92. iints/research/config.py +68 -0
  93. iints/research/dataset.py +319 -0
  94. iints/research/losses.py +73 -0
  95. iints/research/predictor.py +329 -0
  96. iints/scenarios/__init__.py +3 -0
  97. iints/scenarios/generator.py +92 -0
  98. iints/templates/__init__.py +0 -0
  99. iints/templates/default_algorithm.py +91 -0
  100. iints/templates/scenarios/__init__.py +0 -0
  101. iints/templates/scenarios/chaos_insulin_stacking.json +29 -0
  102. iints/templates/scenarios/chaos_runaway_ai.json +25 -0
  103. iints/templates/scenarios/example_scenario.json +35 -0
  104. iints/templates/scenarios/exercise_stress.json +30 -0
  105. iints/utils/__init__.py +3 -0
  106. iints/utils/plotting.py +50 -0
  107. iints/utils/run_io.py +152 -0
  108. iints/validation/__init__.py +133 -0
  109. iints/validation/schemas.py +94 -0
  110. iints/visualization/__init__.py +34 -0
  111. iints/visualization/cockpit.py +691 -0
  112. iints/visualization/uncertainty_cloud.py +612 -0
  113. iints_sdk_python35-0.0.18.dist-info/METADATA +225 -0
  114. iints_sdk_python35-0.0.18.dist-info/RECORD +118 -0
  115. iints_sdk_python35-0.0.18.dist-info/WHEEL +5 -0
  116. iints_sdk_python35-0.0.18.dist-info/entry_points.txt +10 -0
  117. iints_sdk_python35-0.0.18.dist-info/licenses/LICENSE +28 -0
  118. iints_sdk_python35-0.0.18.dist-info/top_level.txt +1 -0
@@ -0,0 +1,225 @@
1
+ Metadata-Version: 2.4
2
+ Name: iints-sdk-python35
3
+ Version: 0.0.18
4
+ Summary: A pre-clinical Edge-AI SDK for diabetes management validation.
5
+ Author-email: Rune Bobbaers <rune.bobbaers@gmail.com>
6
+ Project-URL: Homepage, https://github.com/python35/IINTS-SDK
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: Programming Language :: Python :: 3.10
9
+ Classifier: Programming Language :: Python :: 3.11
10
+ Classifier: Programming Language :: Python :: 3.12
11
+ Classifier: Programming Language :: Python :: 3.13
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Development Status :: 3 - Alpha
15
+ Requires-Python: >=3.10
16
+ Description-Content-Type: text/markdown
17
+ License-File: LICENSE
18
+ Requires-Dist: fpdf2>=2.8.0
19
+ Requires-Dist: matplotlib>=3.5.0
20
+ Requires-Dist: numpy>=1.24.0
21
+ Requires-Dist: openpyxl>=3.0.0
22
+ Requires-Dist: pandas>=2.0.0
23
+ Requires-Dist: pillow>=12.1.1
24
+ Requires-Dist: pydantic>=2.0.0
25
+ Requires-Dist: PyYAML
26
+ Requires-Dist: rich>=12.0.0
27
+ Requires-Dist: scipy>=1.9.0
28
+ Requires-Dist: seaborn>=0.11.0
29
+ Requires-Dist: typer[all]
30
+ Provides-Extra: dev
31
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
32
+ Requires-Dist: flake8; extra == "dev"
33
+ Requires-Dist: mypy; extra == "dev"
34
+ Requires-Dist: pandas-stubs; extra == "dev"
35
+ Requires-Dist: types-PyYAML; extra == "dev"
36
+ Requires-Dist: types-psutil; extra == "dev"
37
+ Provides-Extra: torch
38
+ Requires-Dist: torch>=1.9.0; extra == "torch"
39
+ Provides-Extra: nightscout
40
+ Requires-Dist: py-nightscout; extra == "nightscout"
41
+ Provides-Extra: research
42
+ Requires-Dist: torch>=2.0.0; extra == "research"
43
+ Requires-Dist: pyarrow>=12.0.0; extra == "research"
44
+ Requires-Dist: h5py>=3.10.0; extra == "research"
45
+ Requires-Dist: onnx>=1.16.0; extra == "research"
46
+ Requires-Dist: onnxscript>=0.1.0; extra == "research"
47
+ Dynamic: license-file
48
+
49
+ # IINTS-AF SDK
50
+ [![PyPI version](https://badge.fury.io/py/iints-sdk-python35.svg)](https://badge.fury.io/py/iints-sdk-python35)
51
+ [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/python35/IINTS-SDK/blob/main/examples/notebooks/00_Quickstart.ipynb)
52
+ [![Python Package CI](https://github.com/python35/IINTS-SDK/actions/workflows/python-package.yml/badge.svg)](https://github.com/python35/IINTS-SDK/actions/workflows/python-package.yml)
53
+ [![Coverage](https://raw.githubusercontent.com/python35/IINTS-SDK/main/badges/coverage.svg)](https://github.com/python35/IINTS-SDK/actions/workflows/health-badges.yml)
54
+ [![Docs Coverage](https://raw.githubusercontent.com/python35/IINTS-SDK/main/badges/docs.svg)](https://github.com/python35/IINTS-SDK/actions/workflows/health-badges.yml)
55
+ [![Site](https://img.shields.io/badge/site-IINTS--AF-0a66c2?style=flat&logo=firefox-browser&logoColor=white)](https://python35.github.io/IINTS-Site/index.html)
56
+
57
+ <div style="text-align:center;">
58
+ <img src="Ontwerp zonder titel.png" alt="" style="display:block; margin:0 auto;">
59
+ </div>
60
+
61
+ ## Intelligent Insulin Titration System for Artificial Pancreas
62
+
63
+ IINTS-AF is a **safety-first simulation and validation platform** for insulin dosing algorithms. It lets you test AI or classical controllers on virtual patients, enforce deterministic safety constraints, and generate audit-ready clinical reports before anything touches a real patient.
64
+
65
+ **In one session you can**:
66
+ * Run a clinic-safe preset and compare against PID and standard pump baselines
67
+ * Import real-world CGM CSV into a standard schema + scenario JSON
68
+ * Use the bundled demo CGM data pack (zero setup)
69
+ * Export a clean PDF report plus full audit trail (JSONL/CSV)
70
+ * Stress-test sensor noise, pump limits, and human-in-the-loop interventions
71
+ * Generate patient profiles with ISF/ICR + dawn phenomenon
72
+
73
+ **Who it’s for**:
74
+ * Diabetes researchers and clinicians validating new control strategies
75
+ * ML engineers benchmarking AI controllers with medical safety rails
76
+ * Developers building decision-support systems for closed-loop insulin delivery
77
+
78
+ ## Installation
79
+
80
+ Install the SDK directly via PyPI:
81
+
82
+ ```bash
83
+ pip install iints-sdk-python35
84
+ ```
85
+
86
+ ### Quick Start (CLI)
87
+ ```bash
88
+ iints quickstart --project-name iints_quickstart
89
+ cd iints_quickstart
90
+ iints presets run --name baseline_t1d --algo algorithms/example_algorithm.py
91
+ ```
92
+
93
+ One-line full run (CSV + audit + PDF + baseline):
94
+ ```bash
95
+ iints run-full --algo algorithms/example_algorithm.py \
96
+ --scenario-path scenarios/clinic_safe_baseline.json \
97
+ --output-dir results/run_full
98
+ ```
99
+ By default, runs write to `results/<run_id>/` and include `config.json`, `run_metadata.json`, and `run_manifest.json`.
100
+
101
+ Import real-world CGM data:
102
+ ```bash
103
+ iints import-data --input-csv data/my_cgm.csv --output-dir results/imported
104
+ ```
105
+
106
+ Try the bundled demo data pack:
107
+ ```bash
108
+ iints import-demo --output-dir results/demo_import
109
+ ```
110
+
111
+ Official real-world datasets (download on demand):
112
+ ```bash
113
+ iints data list
114
+ iints data info aide_t1d
115
+ iints data fetch aide_t1d
116
+ iints data cite aide_t1d
117
+ ```
118
+ Some datasets require approval and are marked as `request` in the registry.
119
+ `iints data info` prints BibTeX + citation text for easy referencing.
120
+
121
+ Offline sample dataset (no download required):
122
+ ```bash
123
+ iints data fetch sample --output-dir data_packs/sample
124
+ ```
125
+
126
+ Nightscout import (optional dependency):
127
+ ```bash
128
+ pip install iints-sdk-python35[nightscout]
129
+ iints import-nightscout --url https://your-nightscout.example --output-dir results/nightscout_import
130
+ ```
131
+
132
+ Scenario generator:
133
+ ```bash
134
+ iints scenarios generate --name "Random Stress Test" --output-path scenarios/generated_scenario.json
135
+ iints scenarios migrate --input-path scenarios/legacy.json
136
+ ```
137
+
138
+ Parallel batch runs:
139
+ ```bash
140
+ iints run-parallel --algo algorithms/example_algorithm.py --scenarios-dir scenarios --output-dir results/batch
141
+ ```
142
+
143
+ Interactive run wizard:
144
+ ```bash
145
+ iints run-wizard
146
+ ```
147
+
148
+ Algorithm registry:
149
+ ```bash
150
+ iints algorithms list
151
+ iints algorithms info "PID Controller"
152
+ ```
153
+
154
+ Or run the full demo workflow (import + run + report) in one script:
155
+ ```bash
156
+ python3 examples/demo_quickstart_flow.py
157
+ ```
158
+
159
+ ### Quick Start (Python)
160
+ ```python
161
+ import iints
162
+ from iints.core.algorithms.pid_controller import PIDController
163
+
164
+ outputs = iints.run_simulation(
165
+ algorithm=PIDController(),
166
+ scenario="scenarios/example_scenario.json",
167
+ patient_config="default_patient",
168
+ duration_minutes=720,
169
+ seed=42,
170
+ output_dir="results/quick_run",
171
+ )
172
+ ```
173
+
174
+ ### Notebook Guide
175
+ Hands-on Jupyter notebooks live in [`examples/notebooks/`](examples/notebooks/)
176
+
177
+
178
+ * Quickstart end-to-end run
179
+ * Presets + scenario validation
180
+ * Safety supervisor behavior
181
+ * Audit trail + PDF report export
182
+ * Baseline comparison + clinical metrics
183
+ * Sensor/pump models + human-in-the-loop
184
+ * Optional Torch/LSTM usage
185
+ * Ablation study (with/without Supervisor)
186
+
187
+ ### AI Research Track (Predictor)
188
+ IINTS-AF includes an optional research pipeline to train a glucose **predictor** that feeds the Safety Supervisor with a 30-120 minute forecast. The predictor never doses insulin; it only provides a forecast signal.
189
+
190
+ Install research extras:
191
+ ```bash
192
+ pip install iints-sdk-python35[research]
193
+ ```
194
+
195
+ Train a starter predictor:
196
+ ```bash
197
+ python research/synthesize_dataset.py --runs 25 --output data/synthetic.parquet
198
+ python research/train_predictor.py --data data/synthetic.parquet --config research/configs/predictor.yaml --out models
199
+ ```
200
+
201
+ Integrate:
202
+ ```python
203
+ from iints.research import load_predictor_service
204
+ predictor = load_predictor_service("models/predictor.pt")
205
+ outputs = iints.run_simulation(..., predictor=predictor)
206
+ ```
207
+
208
+ ### Documentation
209
+ * Product manual: `docs/COMPREHENSIVE_GUIDE.md`
210
+ * Notebook index: `examples/notebooks/README.md`
211
+ * Technical README: `docs/TECHNICAL_README.md`
212
+ * API Stability: `API_STABILITY.md`
213
+ * Research track: `research/README.md`
214
+
215
+ ### Related Work & Inspiration
216
+ We borrow techniques from the broader CGM/APS ecosystem, while differentiating with a safety‑first, audit‑ready workflow:
217
+ * [simglucose (UVA/Padova)](https://github.com/jxx123/simglucose): gymnasium‑style interfaces and parallel batch execution concepts.
218
+ * [OpenAPS / oref0](https://github.com/openaps/oref0): gold‑standard IOB logic and safety‑oriented control patterns.
219
+ * [Nightscout](https://github.com/nightscout/cgm-remote-monitor) + [py-nightscout](https://pypi.org/project/py-nightscout/): reference for human‑in‑the‑loop CGM ingest (planned connector).
220
+ * [Tidepool OpenAPI](https://developer.tidepool.org/TidepoolApi/): basis for a future cloud import client skeleton.
221
+
222
+ ### Ethics & Safety
223
+ This SDK is for **research and validation**. It is not a medical device and does not provide clinical dosing advice.
224
+
225
+ > “Code shouldn’t be a secret when it’s managing a life.” — Bobbaers Rune
@@ -0,0 +1,118 @@
1
+ iints/__init__.py,sha256=UILxciyavru-BZoJQPuLRY5IPdjgpfy5Rx71o13eb_U,5616
2
+ iints/highlevel.py,sha256=XCuSHqJ1jYHo8ADCPBD0BaOA8Ib0WgcsLO03pkyvf2k,17664
3
+ iints/metrics.py,sha256=O9hqOqJpUhUJDqsbfuqRMS9dkV97gzcgh3Y2jYUqHzg,907
4
+ iints/analysis/__init__.py,sha256=Qx49KDy0deoxSnVORJB10_BsdezZXKsuoXTR0KZRcqg,411
5
+ iints/analysis/algorithm_xray.py,sha256=-AtXkZsgnsiFQ_K-IozjIDWkq-dDn0i0zmqWVMhINP4,15952
6
+ iints/analysis/baseline.py,sha256=PCFVb5vX0lYKChZvVk-8I_B5NLQQwGyx7Y6M3XjpIEY,3458
7
+ iints/analysis/clinical_benchmark.py,sha256=-bo7qKIYaSoJSd_GKj9DoPby0_UmH9wGXtzx6TmuONY,7760
8
+ iints/analysis/clinical_metrics.py,sha256=a9JNEV7Jzr_DZqS5o8UhHpB7TTkBZ9pp_OqSKN43OZc,18441
9
+ iints/analysis/clinical_tir_analyzer.py,sha256=FZMnsrkzaq6bbXrlAE3nCRlpybMeU7lPEPfYDWs1F5o,5562
10
+ iints/analysis/diabetes_metrics.py,sha256=GMcFPE3PYGR0vljdxlZySywZ4PGxOV1BOFJeXt_wwOw,1740
11
+ iints/analysis/edge_efficiency.py,sha256=D-zWT90W6efOhcgdjKDRbjof88Eq9Nsiu_RoubqiAHs,1021
12
+ iints/analysis/edge_performance_monitor.py,sha256=dUt9TDXVgL9FUFeskRiEVO386xQnGkDetGtr_oYAgIo,12123
13
+ iints/analysis/explainability.py,sha256=aj7F0OzETIkQe-eO0BQ_BgYNcIwPMADfCSytArrwV5k,4623
14
+ iints/analysis/explainable_ai.py,sha256=cyxkaQV4X3rYYoYw_JRuEcHMwtlYQeSwtvKNBfOI2eI,9238
15
+ iints/analysis/hardware_benchmark.py,sha256=Txfw2qbM4baEqBql-SRUs4ytjDFxDZvfJXxfTtnIABA,8130
16
+ iints/analysis/metrics.py,sha256=M6SLIp3DKRJTpZNCv5M0AjKC_OveOjGf0nsJ_wcF-mk,4325
17
+ iints/analysis/population_report.py,sha256=phw782O9BLvouE30J_oTYmSFLE9jsupwfGWSMaQuBe0,7519
18
+ iints/analysis/reporting.py,sha256=Kc9poqp_RQoN-28sx8DqXInNNDUpM8AbyhMzdIhn61Q,13354
19
+ iints/analysis/safety_index.py,sha256=jfYIELn9sSp9lLOH6t4fJ8jJi1mTOhGrFme9cX6Iric,10897
20
+ iints/analysis/sensor_filtering.py,sha256=DAqcZSPWaH4AKRRdChOKhX5yLQUEyiEy2ZvTyLO2MZc,1946
21
+ iints/analysis/validator.py,sha256=On4x6-rVNHm0NmQbQUBqPB3Nhy4Yro15ESgCm8GXQqE,11268
22
+ iints/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
+ iints/api/base_algorithm.py,sha256=FguFCPoDJhbqequy6ZlkJU0ZvcfLQ5w7Gc88YgVerRo,11400
24
+ iints/api/registry.py,sha256=h2syJwacFbgrtgnVK20JwlXivvVO31zeJ_Ez4KBkn1g,3240
25
+ iints/api/template_algorithm.py,sha256=AFs9AymL3ddWAjgpOkF1Oa3TeOSg56siyDt_BmsAND8,9195
26
+ iints/assets/iints_logo.png,sha256=rWzP8XqIYDrPCTp378w73zA1snKCUHrZ76vwslro-uk,700372
27
+ iints/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
+ iints/cli/cli.py,sha256=U4Fk9BJy88HhOXuhWFc2fqapqII1gSeuqUQJSocjEvQ,122820
29
+ iints/core/__init__.py,sha256=rRH2lTmikavR7BgeJCUla0ZmPbZxATR6rEcSSv_tet4,28
30
+ iints/core/device.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
+ iints/core/device_manager.py,sha256=479_CNn6YescDLWDE7w1BbwuLwRUmCUOColAVTEWQc8,2078
32
+ iints/core/simulator.py,sha256=01DCu969lpt0C-sqJrKR4BzBS47tHCXuJeeH1Y76QuM,44042
33
+ iints/core/supervisor.py,sha256=U3pPFYLk0qzTNOkb0UlMEkEGhyJsqG2ObggMF3ZMnK8,16389
34
+ iints/core/algorithms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
+ iints/core/algorithms/battle_runner.py,sha256=tDQXmtJisN8wRGBbMrFFz7TRVVdpevv0mG84T0jf48M,6697
36
+ iints/core/algorithms/correction_bolus.py,sha256=nmVkdrYnsQZNXWWpm6df8qqdMivojT1iQbCbLr_Zk8g,5267
37
+ iints/core/algorithms/discovery.py,sha256=dVIDlEUV1dKpg7ul_ZUZUoVlrNX69XEUahPDrBcTIy4,4473
38
+ iints/core/algorithms/fixed_basal_bolus.py,sha256=-j__jqvrkd8TLl4qZKot9Q9vSsfQx5m5vpl1SiRSHuc,2423
39
+ iints/core/algorithms/hybrid_algorithm.py,sha256=p2iocfrKSunTAaGDcN5UawwVd8_uv-j8r0mV1ojxlgY,4483
40
+ iints/core/algorithms/lstm_algorithm.py,sha256=4GD2OtGnK2zmb45dSiTZ3s-fA6ya848N6mJ1vztwn3s,6566
41
+ iints/core/algorithms/mock_algorithms.py,sha256=vfOEWz-LFEUJmwlyXGDI5u8Cml7aYP0jvJGM-K3gmtY,5546
42
+ iints/core/algorithms/pid_controller.py,sha256=R9VzO2F8ukKIRTZm84LTG_eXePm_kS4JwzHrNAG7L8I,3386
43
+ iints/core/algorithms/standard_pump_algo.py,sha256=Ejc1rPgu2Ep8AjNCQNZlge2IknM-o8uv-Gd3aW7jHPo,3172
44
+ iints/core/devices/__init__.py,sha256=JB42abzxMQtHhN6AwW2TquTQqvj8D1ASsZdePgxbf-Y,83
45
+ iints/core/devices/models.py,sha256=n7XJ44hn0jfFSbphsUw2UqZuQdC0D_M3W99VLHX32mw,5380
46
+ iints/core/patient/__init__.py,sha256=iWjdCgL8pr3EX3IkVcME_apO-rXwDmSN1jPeusgKtMU,328
47
+ iints/core/patient/bergman_model.py,sha256=ADp-FtBvW44CUuetmrjxGDf4vREKMX2vEaYisneH5_4,13295
48
+ iints/core/patient/models.py,sha256=uV08lHthFxmFj07cNYxLYX-fd2z4rLsLXzwfHnpkoHA,13981
49
+ iints/core/patient/patient_factory.py,sha256=sBRQMi8fO7PN72E28VrbMp8WPaZ-w1tIrwUCww5xI1g,5177
50
+ iints/core/patient/profile.py,sha256=bUrW0h6ZXoWN7rRx3jBuQrtq1hBIIbfDW5fmSkdHq_k,1543
51
+ iints/core/safety/__init__.py,sha256=DUXcRL6pyqEBxENPUDKdKlIDpZPmXC7wj1B-6qQmm8o,365
52
+ iints/core/safety/config.py,sha256=crNIp8kXQ-GI_p60_9-vO-1Yv6pwg83S4CXlKR5ydfQ,1174
53
+ iints/core/safety/input_validator.py,sha256=zCO6Bnw1jiphCJaUzgi2AsG0mAun94Hxcumr6mVlOQo,4076
54
+ iints/core/safety/supervisor.py,sha256=sduxMF8NmXUhNkJlgSaPJymOmFUGdE--z5_uQEaoMXc,1234
55
+ iints/core/simulation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
+ iints/core/simulation/scenario_parser.py,sha256=g_aQHeoiwRCQpj1uZe-xUNgmDCW6_KCynObEq-_tTd4,1956
57
+ iints/data/__init__.py,sha256=a-Q-mZoFlFb2jwjUUuq4yogEHJcOcuFzAG1xtTvzMLI,1416
58
+ iints/data/adapter.py,sha256=EDBrCW2T1iaO5C6m0RCdnTzwcle-tNUvcdM_PNAwhqc,5327
59
+ iints/data/column_mapper.py,sha256=K-2fwOvqhtsTjO0WoNda_E8T7g9dXdDVAXv0sHYzpRE,14179
60
+ iints/data/datasets.json,sha256=v-gGhZnXigQa1Xh0Nk9GYwWaXZzrUneejrE1nmL20xU,7161
61
+ iints/data/importer.py,sha256=Do_AdnRodB32jsR9I3xcaX4ks-hFjLPVsIiRXSjpA-o,8966
62
+ iints/data/ingestor.py,sha256=AE5-HeLjR8iFM6YzL21YHvfcC-3uZnn27MIZVYr5tTs,7326
63
+ iints/data/nightscout.py,sha256=spVjfn9aFh_EQP5VeRTmUMOQnk-XGsrXz70yfBQgCXQ,3988
64
+ iints/data/quality_checker.py,sha256=WvWppXYN3YieYQ21E-pvXVRych5ijU0jtq7igamYjuk,19613
65
+ iints/data/registry.py,sha256=8ncAOPaCKr0tuO9aePC7Nxg6RsFvnllxLaRnh8bX27w,5782
66
+ iints/data/tidepool.py,sha256=ncGUfdkjc3FJPKSpZupAsANzJKQVzBPGwDAunlrWuPI,1377
67
+ iints/data/universal_parser.py,sha256=P1o_NpCJYcejRi3s-2pQzZ6jkTJcx9V2ZiiuAxj67-A,27684
68
+ iints/data/demo/__init__.py,sha256=HazjVTJ_R5IuMDgE-MnmJ9bceKz3Ugcc7ch9U_Teq-0,34
69
+ iints/data/demo/demo_cgm.csv,sha256=6GngM4h-WVq0xByxTN5vIyjMnVXg-yx0Hn--Pgrjr5Y,5260
70
+ iints/data/virtual_patients/clinic_safe_baseline.yaml,sha256=Fho7HrJ9jbDtBRYZfXyNUnWeEih_GCTc7nFHbR_xYtQ,228
71
+ iints/data/virtual_patients/clinic_safe_hyper_challenge.yaml,sha256=hl9QL8b24al7iza5Ew-7Yv5aI1ztJdceXE71fE2MONc,228
72
+ iints/data/virtual_patients/clinic_safe_hypo_prone.yaml,sha256=LV30iyXTyxLOsFMSQF05iDHJbhd7wt82O4cIEw778u8,229
73
+ iints/data/virtual_patients/clinic_safe_midnight.yaml,sha256=b-Z8W8exc61KhZC0F6D8oBqjySn1OEXxzyUGNWiN018,229
74
+ iints/data/virtual_patients/clinic_safe_pizza.yaml,sha256=B-6Yt5L_6__sYMvpLz0bHZR7JMdVOjiDMLuqnya7-Vo,228
75
+ iints/data/virtual_patients/clinic_safe_stress_meal.yaml,sha256=7Akcad09SmufDbuk4iSWxbso0GRcex5YA0aE17RiRek,228
76
+ iints/data/virtual_patients/default_patient.yaml,sha256=1jHqrrmeJ9CSuxmePbmHshTUrD7gZT48sIk8KfOXhHs,527
77
+ iints/data/virtual_patients/patient_559_config.yaml,sha256=xXAwkJe7VAhVzeVcLlqnLwSg3VbZH8PZqJS-G09_RV8,581
78
+ iints/emulation/__init__.py,sha256=63ph-98ZFOa_9QFvd7fnhi29hl9oSavznpycyNHUhsU,2000
79
+ iints/emulation/legacy_base.py,sha256=_Wdy8Nc38bPOYlMdzr0wRfF_kBr-u64FSEE4-BmiD2g,15254
80
+ iints/emulation/medtronic_780g.py,sha256=KWMeMixta8QYAr6QgbMVOGW7DieFCOETR-HIt5T0mj4,13351
81
+ iints/emulation/omnipod_5.py,sha256=TxTGGCr4T3rhy1AIQEEot4tkZGC7StetpInvZwu2_kQ,13197
82
+ iints/emulation/tandem_controliq.py,sha256=K3_B7oSVOHQokfSp5aupkzNmSe8_XQAFYpf8SeQQpOA,15907
83
+ iints/learning/__init__.py,sha256=T2fjY3eSs_ddYwnZn5_Ebz7O70P71rFgT23EGv4ooEY,178
84
+ iints/learning/autonomous_optimizer.py,sha256=xRVZfkHnpRfkYIonYp0hh2-3FRvDrSjzRSWgKVyko04,7866
85
+ iints/learning/learning_system.py,sha256=LKVmMRBJrc8x7oz6Mww_GzKbzyd6Z9F5KK4BH78S9cc,4755
86
+ iints/population/__init__.py,sha256=VbbhkXWhB_jxnRwERhju3Y_d7Yzh-NPrnIilR0HFBQk,318
87
+ iints/population/generator.py,sha256=UsdFBaPbztv6YhkzrrYpNHq8GdEXg6gZ-tqcBblKYgg,5475
88
+ iints/population/runner.py,sha256=diztUKKp9O4rdYFqPiK7TpwhIHvF-k_dgB6u6JSPzpA,12922
89
+ iints/presets/__init__.py,sha256=uxf07XQycTwZsWhMU3kPfqybItGz7kAek5XNPdnXM4Q,724
90
+ iints/presets/presets.json,sha256=bGNGYrbit3gcCFA-jpprbImkOQJ1kHiX-X1NWBX0tJg,4161
91
+ iints/research/__init__.py,sha256=JKP0qr78dZUV_5WtcpRFiB2yLN8kSXhRUzJsTMi0RjU,702
92
+ iints/research/config.py,sha256=xDuffxzlOtzhRgqQ7liRA4q6-0Ua0xaP04Zp4lrT4y8,2232
93
+ iints/research/dataset.py,sha256=aahmheyFkjbfjMWJxFUb3hklkES_C3DFGa6qzm149VA,11567
94
+ iints/research/losses.py,sha256=q3BeFm5zIdKhCdBN9looEL6Aps1tbcZfpLEI2DDJfNA,3237
95
+ iints/research/predictor.py,sha256=oFoRLrmOVHuevl04C2i9aFVaqA2B264CuHnVPHuKtbE,11852
96
+ iints/scenarios/__init__.py,sha256=8rH1LQlxfp6h7vQwkSkOV_HAj1PO61rFZt1e0nAAOE8,140
97
+ iints/scenarios/generator.py,sha256=OJgsBFqByX5wbvaf_Qr1a9Vz8mY7CPvjFJLPBJNfA4Y,3027
98
+ iints/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
99
+ iints/templates/default_algorithm.py,sha256=Wmo2qByEfH84XZYnMZkSjYPAlTaob71mbUtXGRfxi8s,3486
100
+ iints/templates/scenarios/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
101
+ iints/templates/scenarios/chaos_insulin_stacking.json,sha256=SyQsBsXOFvkoOjCgz3mjP3sYVZwoVzRAr9ix9N5pBKY,648
102
+ iints/templates/scenarios/chaos_runaway_ai.json,sha256=x39fkG_kDIknW7J-_WtbIi9Cg-gxrgfDOpWVb5d9Scw,544
103
+ iints/templates/scenarios/example_scenario.json,sha256=C1WtdgD2zN69emGZ87GNxT5f5PBPrx5HdUC5rPr-Sgo,820
104
+ iints/templates/scenarios/exercise_stress.json,sha256=Cn4_tyaRpQvubCz9Cjge94MdTZpTcyHkrQ_ewKU1m1I,662
105
+ iints/utils/__init__.py,sha256=KGDuOUBT-G2_76sLWJqDhR_nhcgE17ZMGuQxObhy_mo,71
106
+ iints/utils/plotting.py,sha256=D-25txDZG00oPWcGRnzZUbsnxVzzJ-3sH0yp23RrpQ0,1334
107
+ iints/utils/run_io.py,sha256=Bdd8HlYp4cwANSkcoHbM-Ajb91OgpmEIneWzha1fQFQ,4777
108
+ iints/validation/__init__.py,sha256=b3pyHfw450gurv9t2Fyll7l7nrc5QMOOGuDSg3BRClg,5166
109
+ iints/validation/schemas.py,sha256=uXhiPxyfyvOgCA83ZPBIzlITOu663fWctYxOMXUyf1I,4076
110
+ iints/visualization/__init__.py,sha256=OdxVHDpY-9bDt8DTWWd-dspn1p0O9T908Cck-IGFaiM,640
111
+ iints/visualization/cockpit.py,sha256=yrfsUoeJAz0kY84HpKxDNMAfWaTKrfkRl-7dTmLT7N8,25061
112
+ iints/visualization/uncertainty_cloud.py,sha256=I5nNzSitgai21rkul31YNtJriSEmCeTsW0GWW2HUskY,19848
113
+ iints_sdk_python35-0.0.18.dist-info/licenses/LICENSE,sha256=b1luljj2mWWDW10t_qFIqd9Z6euXAcDBmIXowWuUlm4,1417
114
+ iints_sdk_python35-0.0.18.dist-info/METADATA,sha256=g0a4pnl2AK85S4v8lY1qCnpvlAqPIx1RghgC8qdDQs8,8644
115
+ iints_sdk_python35-0.0.18.dist-info/WHEEL,sha256=YCfwYGOYMi5Jhw2fU4yNgwErybb2IX5PEwBKV4ZbdBo,91
116
+ iints_sdk_python35-0.0.18.dist-info/entry_points.txt,sha256=ZlC9C1-rhefU6t-Wr7tT05LI5agdKnpsDJgXKxDO350,528
117
+ iints_sdk_python35-0.0.18.dist-info/top_level.txt,sha256=7Usr6NQKiC9SpNFyCis81MmgXy71lDCr5unR8BNXZ0E,6
118
+ iints_sdk_python35-0.0.18.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (82.0.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,10 @@
1
+ [console_scripts]
2
+ iints = iints.cli.cli:app
3
+
4
+ [iints.algorithms]
5
+ Correction Bolus = iints.core.algorithms.correction_bolus:CorrectionBolusAlgorithm
6
+ Fixed Basal Bolus = iints.core.algorithms.fixed_basal_bolus:FixedBasalBolus
7
+ Mock Constant Dose = iints.core.algorithms.mock_algorithms:ConstantDoseAlgorithm
8
+ Mock Random Dose = iints.core.algorithms.mock_algorithms:RandomDoseAlgorithm
9
+ PID Controller = iints.core.algorithms.pid_controller:PIDController
10
+ Standard Pump = iints.core.algorithms.standard_pump_algo:StandardPumpAlgorithm
@@ -0,0 +1,28 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 IINTS-AF Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
23
+ ACADEMIC USE DISCLAIMER:
24
+ This software is intended for academic research purposes only. It is not
25
+ intended for clinical use or as a medical device. Users must comply with
26
+ all applicable regulations and obtain proper approvals before any clinical
27
+ application. The authors disclaim any responsibility for clinical use of
28
+ this software.
@@ -0,0 +1 @@
1
+ iints