iints-sdk-python35 0.1.12__tar.gz → 0.1.13__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.
Files changed (107) hide show
  1. {iints_sdk_python35-0.1.12/src/iints_sdk_python35.egg-info → iints_sdk_python35-0.1.13}/PKG-INFO +26 -1
  2. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/README.md +23 -0
  3. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/pyproject.toml +4 -1
  4. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/__init__.py +12 -2
  5. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/cli/cli.py +430 -5
  6. iints_sdk_python35-0.1.13/src/iints/core/safety/__init__.py +5 -0
  7. iints_sdk_python35-0.1.13/src/iints/core/safety/config.py +29 -0
  8. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/core/safety/input_validator.py +9 -1
  9. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/core/safety/supervisor.py +8 -4
  10. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/core/simulator.py +9 -3
  11. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/core/supervisor.py +15 -1
  12. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/data/__init__.py +6 -0
  13. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/data/datasets.json +1 -1
  14. iints_sdk_python35-0.1.13/src/iints/data/nightscout.py +128 -0
  15. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/data/registry.py +6 -1
  16. iints_sdk_python35-0.1.13/src/iints/data/tidepool.py +38 -0
  17. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/highlevel.py +5 -0
  18. iints_sdk_python35-0.1.13/src/iints/scenarios/__init__.py +3 -0
  19. iints_sdk_python35-0.1.13/src/iints/scenarios/generator.py +88 -0
  20. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13/src/iints_sdk_python35.egg-info}/PKG-INFO +26 -1
  21. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints_sdk_python35.egg-info/SOURCES.txt +5 -0
  22. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints_sdk_python35.egg-info/requires.txt +3 -0
  23. iints_sdk_python35-0.1.12/src/iints/core/safety/__init__.py +0 -4
  24. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/LICENSE +0 -0
  25. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/setup.cfg +0 -0
  26. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/analysis/__init__.py +0 -0
  27. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/analysis/algorithm_xray.py +0 -0
  28. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/analysis/baseline.py +0 -0
  29. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/analysis/clinical_benchmark.py +0 -0
  30. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/analysis/clinical_metrics.py +0 -0
  31. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/analysis/clinical_tir_analyzer.py +0 -0
  32. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/analysis/diabetes_metrics.py +0 -0
  33. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/analysis/edge_performance_monitor.py +0 -0
  34. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/analysis/explainability.py +0 -0
  35. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/analysis/explainable_ai.py +0 -0
  36. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/analysis/hardware_benchmark.py +0 -0
  37. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/analysis/metrics.py +0 -0
  38. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/analysis/reporting.py +0 -0
  39. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/analysis/sensor_filtering.py +0 -0
  40. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/analysis/validator.py +0 -0
  41. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/api/__init__.py +0 -0
  42. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/api/base_algorithm.py +0 -0
  43. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/api/template_algorithm.py +0 -0
  44. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/assets/iints_logo.png +0 -0
  45. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/cli/__init__.py +0 -0
  46. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/core/__init__.py +0 -0
  47. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/core/algorithms/__init__.py +0 -0
  48. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/core/algorithms/battle_runner.py +0 -0
  49. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/core/algorithms/correction_bolus.py +0 -0
  50. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/core/algorithms/discovery.py +0 -0
  51. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/core/algorithms/fixed_basal_bolus.py +0 -0
  52. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/core/algorithms/hybrid_algorithm.py +0 -0
  53. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/core/algorithms/lstm_algorithm.py +0 -0
  54. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/core/algorithms/mock_algorithms.py +0 -0
  55. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/core/algorithms/pid_controller.py +0 -0
  56. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/core/algorithms/standard_pump_algo.py +0 -0
  57. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/core/device.py +0 -0
  58. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/core/device_manager.py +0 -0
  59. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/core/devices/__init__.py +0 -0
  60. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/core/devices/models.py +0 -0
  61. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/core/patient/__init__.py +0 -0
  62. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/core/patient/models.py +0 -0
  63. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/core/patient/patient_factory.py +0 -0
  64. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/core/patient/profile.py +0 -0
  65. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/core/simulation/__init__.py +0 -0
  66. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/core/simulation/scenario_parser.py +0 -0
  67. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/data/adapter.py +0 -0
  68. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/data/column_mapper.py +0 -0
  69. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/data/demo/__init__.py +0 -0
  70. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/data/demo/demo_cgm.csv +0 -0
  71. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/data/importer.py +0 -0
  72. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/data/ingestor.py +0 -0
  73. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/data/quality_checker.py +0 -0
  74. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/data/universal_parser.py +0 -0
  75. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/data/virtual_patients/clinic_safe_baseline.yaml +0 -0
  76. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/data/virtual_patients/clinic_safe_hyper_challenge.yaml +0 -0
  77. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/data/virtual_patients/clinic_safe_hypo_prone.yaml +0 -0
  78. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/data/virtual_patients/clinic_safe_midnight.yaml +0 -0
  79. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/data/virtual_patients/clinic_safe_pizza.yaml +0 -0
  80. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/data/virtual_patients/clinic_safe_stress_meal.yaml +0 -0
  81. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/data/virtual_patients/default_patient.yaml +0 -0
  82. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/data/virtual_patients/patient_559_config.yaml +0 -0
  83. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/emulation/__init__.py +0 -0
  84. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/emulation/legacy_base.py +0 -0
  85. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/emulation/medtronic_780g.py +0 -0
  86. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/emulation/omnipod_5.py +0 -0
  87. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/emulation/tandem_controliq.py +0 -0
  88. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/learning/__init__.py +0 -0
  89. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/learning/autonomous_optimizer.py +0 -0
  90. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/learning/learning_system.py +0 -0
  91. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/metrics.py +0 -0
  92. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/presets/__init__.py +0 -0
  93. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/presets/presets.json +0 -0
  94. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/templates/__init__.py +0 -0
  95. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/templates/default_algorithm.py +0 -0
  96. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/templates/scenarios/__init__.py +0 -0
  97. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/templates/scenarios/example_scenario.json +0 -0
  98. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/utils/__init__.py +0 -0
  99. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/utils/plotting.py +0 -0
  100. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/validation/__init__.py +0 -0
  101. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/validation/schemas.py +0 -0
  102. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/visualization/__init__.py +0 -0
  103. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/visualization/cockpit.py +0 -0
  104. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints/visualization/uncertainty_cloud.py +0 -0
  105. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints_sdk_python35.egg-info/dependency_links.txt +0 -0
  106. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints_sdk_python35.egg-info/entry_points.txt +0 -0
  107. {iints_sdk_python35-0.1.12 → iints_sdk_python35-0.1.13}/src/iints_sdk_python35.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iints-sdk-python35
3
- Version: 0.1.12
3
+ Version: 0.1.13
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
@@ -31,6 +31,8 @@ Requires-Dist: types-PyYAML; extra == "dev"
31
31
  Requires-Dist: types-psutil; extra == "dev"
32
32
  Provides-Extra: torch
33
33
  Requires-Dist: torch>=1.9.0; extra == "torch"
34
+ Provides-Extra: nightscout
35
+ Requires-Dist: py-nightscout; extra == "nightscout"
34
36
  Dynamic: license-file
35
37
 
36
38
  # IINTS-AF SDK
@@ -105,6 +107,22 @@ Offline sample dataset (no download required):
105
107
  iints data fetch sample --output-dir data_packs/sample
106
108
  ```
107
109
 
110
+ Nightscout import (optional dependency):
111
+ ```bash
112
+ pip install iints-sdk-python35[nightscout]
113
+ iints import-nightscout --url https://your-nightscout.example --output-dir results/nightscout_import
114
+ ```
115
+
116
+ Scenario generator:
117
+ ```bash
118
+ iints scenarios generate --name "Random Stress Test" --output-path scenarios/generated_scenario.json
119
+ ```
120
+
121
+ Parallel batch runs:
122
+ ```bash
123
+ iints run-parallel --algo algorithms/example_algorithm.py --scenarios-dir scenarios --output-dir results/batch
124
+ ```
125
+
108
126
  Or run the full demo workflow (import + run + report) in one script:
109
127
  ```bash
110
128
  python3 examples/demo_quickstart_flow.py
@@ -144,6 +162,13 @@ Hands-on Jupyter notebooks live in [`examples/notebooks/`](examples/notebooks/)
144
162
  * Technical README: `TECHNICAL_README.md`
145
163
  * API Stability: `API_STABILITY.md`
146
164
 
165
+ ### Related Work & Inspiration
166
+ We borrow techniques from the broader CGM/APS ecosystem, while differentiating with a safety‑first, audit‑ready workflow:
167
+ * [simglucose (UVA/Padova)](https://github.com/jxx123/simglucose): gymnasium‑style interfaces and parallel batch execution concepts.
168
+ * [OpenAPS / oref0](https://github.com/openaps/oref0): gold‑standard IOB logic and safety‑oriented control patterns.
169
+ * [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).
170
+ * [Tidepool OpenAPI](https://developer.tidepool.org/TidepoolApi/): basis for a future cloud import client skeleton.
171
+
147
172
  ### Ethics & Safety
148
173
  This SDK is for **research and validation**. It is not a medical device and does not provide clinical dosing advice.
149
174
 
@@ -70,6 +70,22 @@ Offline sample dataset (no download required):
70
70
  iints data fetch sample --output-dir data_packs/sample
71
71
  ```
72
72
 
73
+ Nightscout import (optional dependency):
74
+ ```bash
75
+ pip install iints-sdk-python35[nightscout]
76
+ iints import-nightscout --url https://your-nightscout.example --output-dir results/nightscout_import
77
+ ```
78
+
79
+ Scenario generator:
80
+ ```bash
81
+ iints scenarios generate --name "Random Stress Test" --output-path scenarios/generated_scenario.json
82
+ ```
83
+
84
+ Parallel batch runs:
85
+ ```bash
86
+ iints run-parallel --algo algorithms/example_algorithm.py --scenarios-dir scenarios --output-dir results/batch
87
+ ```
88
+
73
89
  Or run the full demo workflow (import + run + report) in one script:
74
90
  ```bash
75
91
  python3 examples/demo_quickstart_flow.py
@@ -109,6 +125,13 @@ Hands-on Jupyter notebooks live in [`examples/notebooks/`](examples/notebooks/)
109
125
  * Technical README: `TECHNICAL_README.md`
110
126
  * API Stability: `API_STABILITY.md`
111
127
 
128
+ ### Related Work & Inspiration
129
+ We borrow techniques from the broader CGM/APS ecosystem, while differentiating with a safety‑first, audit‑ready workflow:
130
+ * [simglucose (UVA/Padova)](https://github.com/jxx123/simglucose): gymnasium‑style interfaces and parallel batch execution concepts.
131
+ * [OpenAPS / oref0](https://github.com/openaps/oref0): gold‑standard IOB logic and safety‑oriented control patterns.
132
+ * [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).
133
+ * [Tidepool OpenAPI](https://developer.tidepool.org/TidepoolApi/): basis for a future cloud import client skeleton.
134
+
112
135
  ### Ethics & Safety
113
136
  This SDK is for **research and validation**. It is not a medical device and does not provide clinical dosing advice.
114
137
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "iints-sdk-python35"
7
- version = "0.1.12"
7
+ version = "0.1.13"
8
8
  authors = [
9
9
  { name="Rune Bobbaers", email="rune.bobbaers@gmail.com" },
10
10
  ]
@@ -43,6 +43,9 @@ dev = [
43
43
  torch = [
44
44
  "torch>=1.9.0",
45
45
  ]
46
+ nightscout = [
47
+ "py-nightscout",
48
+ ]
46
49
 
47
50
  [project.scripts]
48
51
  iints = "iints.cli.cli:app"
@@ -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.12"
6
+ __version__ = "0.1.13"
7
7
 
8
8
  # API Components for Algorithm Development
9
9
  from .api.base_algorithm import (
@@ -27,7 +27,7 @@ except Exception: # pragma: no cover - fallback if torch/device manager import
27
27
 
28
28
  def get_device(self):
29
29
  return self._device
30
- from .core.safety import SafetySupervisor
30
+ from .core.safety import SafetyConfig, SafetySupervisor
31
31
  from .core.devices.models import SensorModel, PumpModel
32
32
  from .core.algorithms.standard_pump_algo import StandardPumpAlgorithm
33
33
  from .core.algorithms.mock_algorithms import ConstantDoseAlgorithm, RandomDoseAlgorithm
@@ -45,9 +45,12 @@ from .data.importer import (
45
45
  scenario_from_csv,
46
46
  scenario_from_dataframe,
47
47
  )
48
+ from .data.nightscout import NightscoutConfig, import_nightscout
49
+ from .data.tidepool import TidepoolClient, load_openapi_spec
48
50
  from .analysis.metrics import generate_benchmark_metrics # Added for benchmark
49
51
  from .analysis.reporting import ClinicalReportGenerator
50
52
  from .highlevel import run_simulation, run_full
53
+ from .scenarios import ScenarioGeneratorConfig, generate_random_scenario
51
54
 
52
55
  # Placeholder for Reporting/Analysis
53
56
  # This will be further developed in a dedicated module (e.g., iints.analysis.reporting)
@@ -105,6 +108,7 @@ __all__ = [
105
108
  "PatientProfile",
106
109
  "SimulationLimitError",
107
110
  "SafetySupervisor",
111
+ "SafetyConfig",
108
112
  "SensorModel",
109
113
  "PumpModel",
110
114
  "StandardPumpAlgorithm",
@@ -121,6 +125,10 @@ __all__ = [
121
125
  "load_demo_dataframe",
122
126
  "scenario_from_csv",
123
127
  "scenario_from_dataframe",
128
+ "NightscoutConfig",
129
+ "import_nightscout",
130
+ "TidepoolClient",
131
+ "load_openapi_spec",
124
132
  # Analysis Metrics
125
133
  "generate_benchmark_metrics",
126
134
  "ClinicalReportGenerator",
@@ -131,4 +139,6 @@ __all__ = [
131
139
  # High-level API
132
140
  "run_simulation",
133
141
  "run_full",
142
+ "ScenarioGeneratorConfig",
143
+ "generate_random_scenario",
134
144
  ]