iints-sdk-python35 1.3.0__tar.gz → 1.3.2__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 (168) hide show
  1. {iints_sdk_python35-1.3.0/src/iints_sdk_python35.egg-info → iints_sdk_python35-1.3.2}/PKG-INFO +66 -8
  2. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/README.md +65 -7
  3. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/pyproject.toml +1 -1
  4. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/__init__.py +1 -1
  5. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/analysis/booth_demo.py +19 -8
  6. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/cli/cli.py +34 -0
  7. iints_sdk_python35-1.3.2/src/iints/demo_assets.py +50 -0
  8. iints_sdk_python35-1.3.2/src/iints/templates/demos/__init__.py +1 -0
  9. iints_sdk_python35-1.3.2/src/iints/templates/demos/live_stage_demo.py +410 -0
  10. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2/src/iints_sdk_python35.egg-info}/PKG-INFO +66 -8
  11. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints_sdk_python35.egg-info/SOURCES.txt +4 -0
  12. iints_sdk_python35-1.3.2/tests/test_cli_demo_export.py +29 -0
  13. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/LICENSE +0 -0
  14. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/setup.cfg +0 -0
  15. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/ai/__init__.py +0 -0
  16. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/ai/assistant.py +0 -0
  17. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/ai/backends/__init__.py +0 -0
  18. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/ai/backends/base.py +0 -0
  19. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/ai/backends/mistral_api.py +0 -0
  20. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/ai/backends/ollama.py +0 -0
  21. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/ai/cli.py +0 -0
  22. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/ai/mdmp_guard.py +0 -0
  23. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/ai/model_catalog.py +0 -0
  24. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/ai/prepare.py +0 -0
  25. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/ai/prompts.py +0 -0
  26. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/analysis/__init__.py +0 -0
  27. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/analysis/algorithm_xray.py +0 -0
  28. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/analysis/baseline.py +0 -0
  29. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/analysis/carelink_workbench.py +0 -0
  30. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/analysis/clinical_benchmark.py +0 -0
  31. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/analysis/clinical_metrics.py +0 -0
  32. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/analysis/clinical_tir_analyzer.py +0 -0
  33. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/analysis/diabetes_metrics.py +0 -0
  34. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/analysis/edge_efficiency.py +0 -0
  35. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/analysis/edge_performance_monitor.py +0 -0
  36. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/analysis/explainability.py +0 -0
  37. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/analysis/explainable_ai.py +0 -0
  38. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/analysis/hardware_benchmark.py +0 -0
  39. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/analysis/metrics.py +0 -0
  40. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/analysis/population_report.py +0 -0
  41. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/analysis/poster.py +0 -0
  42. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/analysis/reporting.py +0 -0
  43. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/analysis/safety_index.py +0 -0
  44. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/analysis/sensor_filtering.py +0 -0
  45. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/analysis/validator.py +0 -0
  46. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/api/__init__.py +0 -0
  47. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/api/base_algorithm.py +0 -0
  48. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/api/registry.py +0 -0
  49. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/api/template_algorithm.py +0 -0
  50. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/assets/iints_logo.png +0 -0
  51. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/cli/__init__.py +0 -0
  52. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/__init__.py +0 -0
  53. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/algorithms/__init__.py +0 -0
  54. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/algorithms/battle_runner.py +0 -0
  55. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/algorithms/correction_bolus.py +0 -0
  56. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/algorithms/discovery.py +0 -0
  57. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/algorithms/fixed_basal_bolus.py +0 -0
  58. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/algorithms/hybrid_algorithm.py +0 -0
  59. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/algorithms/lstm_algorithm.py +0 -0
  60. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/algorithms/mock_algorithms.py +0 -0
  61. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/algorithms/pid_controller.py +0 -0
  62. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/algorithms/standard_pump_algo.py +0 -0
  63. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/device.py +0 -0
  64. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/device_manager.py +0 -0
  65. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/devices/__init__.py +0 -0
  66. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/devices/models.py +0 -0
  67. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/patient/__init__.py +0 -0
  68. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/patient/bergman_model.py +0 -0
  69. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/patient/models.py +0 -0
  70. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/patient/patient_factory.py +0 -0
  71. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/patient/profile.py +0 -0
  72. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/safety/__init__.py +0 -0
  73. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/safety/config.py +0 -0
  74. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/safety/input_validator.py +0 -0
  75. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/safety/supervisor.py +0 -0
  76. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/simulation/__init__.py +0 -0
  77. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/simulation/scenario_parser.py +0 -0
  78. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/simulator.py +0 -0
  79. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/core/supervisor.py +0 -0
  80. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/data/__init__.py +0 -0
  81. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/data/adapter.py +0 -0
  82. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/data/column_mapper.py +0 -0
  83. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/data/contracts.py +0 -0
  84. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/data/datasets.json +0 -0
  85. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/data/demo/__init__.py +0 -0
  86. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/data/demo/demo_cgm.csv +0 -0
  87. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/data/guardians.py +0 -0
  88. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/data/importer.py +0 -0
  89. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/data/ingestor.py +0 -0
  90. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/data/mdmp_visualizer.py +0 -0
  91. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/data/nightscout.py +0 -0
  92. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/data/quality_checker.py +0 -0
  93. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/data/registry.py +0 -0
  94. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/data/runner.py +0 -0
  95. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/data/synthetic_mirror.py +0 -0
  96. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/data/tidepool.py +0 -0
  97. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/data/universal_parser.py +0 -0
  98. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/data/virtual_patients/clinic_safe_baseline.yaml +0 -0
  99. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/data/virtual_patients/clinic_safe_hyper_challenge.yaml +0 -0
  100. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/data/virtual_patients/clinic_safe_hypo_prone.yaml +0 -0
  101. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/data/virtual_patients/clinic_safe_midnight.yaml +0 -0
  102. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/data/virtual_patients/clinic_safe_pizza.yaml +0 -0
  103. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/data/virtual_patients/clinic_safe_stress_meal.yaml +0 -0
  104. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/data/virtual_patients/default_patient.yaml +0 -0
  105. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/data/virtual_patients/patient_559_config.yaml +0 -0
  106. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/emulation/__init__.py +0 -0
  107. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/emulation/legacy_base.py +0 -0
  108. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/emulation/medtronic_780g.py +0 -0
  109. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/emulation/omnipod_5.py +0 -0
  110. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/emulation/tandem_controliq.py +0 -0
  111. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/highlevel.py +0 -0
  112. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/learning/__init__.py +0 -0
  113. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/learning/autonomous_optimizer.py +0 -0
  114. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/learning/learning_system.py +0 -0
  115. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/mdmp/__init__.py +0 -0
  116. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/mdmp/backend.py +0 -0
  117. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/metrics.py +0 -0
  118. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/population/__init__.py +0 -0
  119. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/population/generator.py +0 -0
  120. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/population/runner.py +0 -0
  121. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/presets/__init__.py +0 -0
  122. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/presets/evidence_sources.yaml +0 -0
  123. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/presets/forecast_calibration_profiles.yaml +0 -0
  124. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/presets/golden_benchmark.yaml +0 -0
  125. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/presets/presets.json +0 -0
  126. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/presets/safety_contract_default.yaml +0 -0
  127. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/presets/validation_profiles.yaml +0 -0
  128. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/research/__init__.py +0 -0
  129. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/research/audit.py +0 -0
  130. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/research/calibration_gate.py +0 -0
  131. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/research/config.py +0 -0
  132. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/research/dataset.py +0 -0
  133. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/research/evaluation.py +0 -0
  134. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/research/losses.py +0 -0
  135. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/research/metrics.py +0 -0
  136. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/research/model_registry.py +0 -0
  137. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/research/predictor.py +0 -0
  138. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/scenarios/__init__.py +0 -0
  139. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/scenarios/generator.py +0 -0
  140. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/templates/__init__.py +0 -0
  141. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/templates/default_algorithm.py +0 -0
  142. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/templates/scenarios/__init__.py +0 -0
  143. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/templates/scenarios/chaos_insulin_stacking.json +0 -0
  144. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/templates/scenarios/chaos_runaway_ai.json +0 -0
  145. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/templates/scenarios/example_scenario.json +0 -0
  146. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/templates/scenarios/exercise_stress.json +0 -0
  147. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/utils/__init__.py +0 -0
  148. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/utils/plotting.py +0 -0
  149. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/utils/run_io.py +0 -0
  150. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/validation/__init__.py +0 -0
  151. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/validation/golden.py +0 -0
  152. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/validation/replay.py +0 -0
  153. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/validation/run_validation.py +0 -0
  154. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/validation/safety_contract.py +0 -0
  155. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/validation/schemas.py +0 -0
  156. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/visualization/__init__.py +0 -0
  157. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/visualization/cockpit.py +0 -0
  158. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints/visualization/uncertainty_cloud.py +0 -0
  159. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints_sdk_python35.egg-info/dependency_links.txt +0 -0
  160. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints_sdk_python35.egg-info/entry_points.txt +0 -0
  161. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints_sdk_python35.egg-info/requires.txt +0 -0
  162. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/src/iints_sdk_python35.egg-info/top_level.txt +0 -0
  163. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/tests/test_bergman.py +0 -0
  164. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/tests/test_cli_booth_demo.py +0 -0
  165. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/tests/test_cli_carelink_workbench.py +0 -0
  166. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/tests/test_cli_poster.py +0 -0
  167. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/tests/test_install_doctor.py +0 -0
  168. {iints_sdk_python35-1.3.0 → iints_sdk_python35-1.3.2}/tests/test_population.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iints-sdk-python35
3
- Version: 1.3.0
3
+ Version: 1.3.2
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
@@ -71,7 +71,7 @@ Docs (GitHub Pages): [python35.github.io/IINTS-SDK](https://python35.github.io/I
71
71
  python3 -m venv .venv
72
72
  source .venv/bin/activate
73
73
  python -m pip install -U pip
74
- pip install iints-sdk-python35
74
+ python -m pip install -U "iints-sdk-python35[mdmp]"
75
75
  ```
76
76
 
77
77
  ```bash
@@ -81,6 +81,14 @@ cd iints_quickstart
81
81
  iints presets run --name baseline_t1d --algo algorithms/example_algorithm.py
82
82
  ```
83
83
 
84
+ If you want the clearest install/path rules first, read:
85
+ - `docs/INSTALLATION.md`
86
+
87
+ Short rule:
88
+ - installed `iints ...` commands can run from any folder
89
+ - `python -m pip install -e ".[mdmp]"` only works from the SDK repo root
90
+ - after `iints quickstart`, switch into the generated project folder
91
+
84
92
  ## CareLink Import
85
93
 
86
94
  The SDK can now ingest Medtronic CareLink / MiniMed CSV exports and convert them into the standard IINTS schema:
@@ -127,19 +135,27 @@ That workbench is designed for three things:
127
135
  The SDK now includes a research-only AI assistant layer for explanations and run summaries.
128
136
  It is gated by MDMP verification before any LLM call is allowed.
129
137
 
130
- Use an active virtual environment for the full flow:
138
+ Use an active virtual environment for the full flow.
139
+
140
+ If you installed the released SDK from PyPI, run:
131
141
 
132
142
  ```bash
133
143
  python3 -m venv .venv
134
144
  source .venv/bin/activate
135
145
  python -m pip install -U pip
136
- python -m pip install -e ".[mdmp]"
146
+ python -m pip install -U "iints-sdk-python35[mdmp]"
147
+ ```
148
+
149
+ If you are developing from source instead, first move into the SDK repo root and then run:
150
+
151
+ ```bash
152
+ cd /path/to/IINTS-SDK
153
+ python -m pip install -U -e ".[mdmp]"
137
154
  ```
138
155
 
139
156
  Run the open local Mistral model locally with Ollama:
140
157
 
141
158
  ```bash
142
- python -m pip install -e ".[mdmp]"
143
159
  ollama pull ministral-3:8b
144
160
  iints ai models
145
161
  ```
@@ -239,14 +255,54 @@ You can also run it through the CLI:
239
255
  iints demo-booth --output-dir results/booth_demo
240
256
  ```
241
257
 
258
+ For a cleaner live explanation, show this source file first:
259
+
260
+ ```bash
261
+ examples/demos/07_live_stage_demo.py
262
+ ```
263
+
264
+ That file is deliberately small and readable, so you can point to:
265
+ - `PATIENT_CONFIG`
266
+ - `OUTPUT_DIR`
267
+ - `DURATION_MINUTES`
268
+ - `TIME_STEP_MINUTES`
269
+ - `SEED`
270
+
271
+ Then run:
272
+
273
+ ```bash
274
+ ./scripts/run_live_stage_demo.sh
275
+ ```
276
+
277
+ That shell wrapper resolves the SDK repo root automatically, so it still works if you launch it from another working directory via its full path.
278
+
279
+ And open:
280
+ - `results/booth_demo_live/booth_demo_poster.png`
281
+ - `results/booth_demo_live/JURY_TALK_TRACK.md`
282
+ - `results/booth_demo_live/BEURS_LIVE_DEMO_SCRIPT.txt`
283
+
284
+ What makes this script good for a booth:
285
+ - it visibly calls `run_full(...)`
286
+ - it visibly calls `generate_results_poster(...)`
287
+ - it visibly calls `prepare_ai_ready_artifacts(...)`
288
+ - you can point to one patient setting and explain how the same pipeline reruns for another patient
289
+
290
+ If you installed the SDK on another machine and do not have the repository checkout there, export the same demo code with:
291
+
292
+ ```bash
293
+ iints demo-export --output-dir iints_demo
294
+ cd iints_demo
295
+ python 07_live_stage_demo.py
296
+ ```
297
+
242
298
  ## Updating The SDK
243
299
 
244
- If another machine is missing newer commands like `iints ai ...` or `iints demo-booth`, upgrade inside the active virtual environment:
300
+ If another machine is missing newer commands like `iints ai ...` or `iints demo-booth`, upgrade inside the active virtual environment to the latest release:
245
301
 
246
302
  ```bash
247
303
  source .venv/bin/activate
248
304
  python -m pip install -U pip
249
- python -m pip install -U "iints-sdk-python35[mdmp]==1.3.0"
305
+ python -m pip install -U "iints-sdk-python35[mdmp]"
250
306
  hash -r
251
307
  python -c "import iints; print(iints.__version__)"
252
308
  ```
@@ -260,6 +316,8 @@ iints-sdk-doctor
260
316
  Full guide:
261
317
  - `docs/UPDATING.md`
262
318
 
319
+ If you specifically need to reproduce a known environment, you can pin an exact release number instead of using the unpinned upgrade command above.
320
+
263
321
  Troubleshooting:
264
322
  - If `iints ai ...` says `No such command 'ai'`, your environment usually still has a legacy `iints` package installed alongside `iints-sdk-python35`.
265
323
  - Run `iints-sdk-doctor` first.
@@ -267,7 +325,7 @@ Troubleshooting:
267
325
 
268
326
  ```bash
269
327
  python -m pip uninstall -y iints iints-sdk-python35
270
- python -m pip install -U "iints-sdk-python35[mdmp]==1.3.0"
328
+ python -m pip install -U "iints-sdk-python35[mdmp]"
271
329
  hash -r
272
330
  ```
273
331
 
@@ -20,7 +20,7 @@ Docs (GitHub Pages): [python35.github.io/IINTS-SDK](https://python35.github.io/I
20
20
  python3 -m venv .venv
21
21
  source .venv/bin/activate
22
22
  python -m pip install -U pip
23
- pip install iints-sdk-python35
23
+ python -m pip install -U "iints-sdk-python35[mdmp]"
24
24
  ```
25
25
 
26
26
  ```bash
@@ -30,6 +30,14 @@ cd iints_quickstart
30
30
  iints presets run --name baseline_t1d --algo algorithms/example_algorithm.py
31
31
  ```
32
32
 
33
+ If you want the clearest install/path rules first, read:
34
+ - `docs/INSTALLATION.md`
35
+
36
+ Short rule:
37
+ - installed `iints ...` commands can run from any folder
38
+ - `python -m pip install -e ".[mdmp]"` only works from the SDK repo root
39
+ - after `iints quickstart`, switch into the generated project folder
40
+
33
41
  ## CareLink Import
34
42
 
35
43
  The SDK can now ingest Medtronic CareLink / MiniMed CSV exports and convert them into the standard IINTS schema:
@@ -76,19 +84,27 @@ That workbench is designed for three things:
76
84
  The SDK now includes a research-only AI assistant layer for explanations and run summaries.
77
85
  It is gated by MDMP verification before any LLM call is allowed.
78
86
 
79
- Use an active virtual environment for the full flow:
87
+ Use an active virtual environment for the full flow.
88
+
89
+ If you installed the released SDK from PyPI, run:
80
90
 
81
91
  ```bash
82
92
  python3 -m venv .venv
83
93
  source .venv/bin/activate
84
94
  python -m pip install -U pip
85
- python -m pip install -e ".[mdmp]"
95
+ python -m pip install -U "iints-sdk-python35[mdmp]"
96
+ ```
97
+
98
+ If you are developing from source instead, first move into the SDK repo root and then run:
99
+
100
+ ```bash
101
+ cd /path/to/IINTS-SDK
102
+ python -m pip install -U -e ".[mdmp]"
86
103
  ```
87
104
 
88
105
  Run the open local Mistral model locally with Ollama:
89
106
 
90
107
  ```bash
91
- python -m pip install -e ".[mdmp]"
92
108
  ollama pull ministral-3:8b
93
109
  iints ai models
94
110
  ```
@@ -188,14 +204,54 @@ You can also run it through the CLI:
188
204
  iints demo-booth --output-dir results/booth_demo
189
205
  ```
190
206
 
207
+ For a cleaner live explanation, show this source file first:
208
+
209
+ ```bash
210
+ examples/demos/07_live_stage_demo.py
211
+ ```
212
+
213
+ That file is deliberately small and readable, so you can point to:
214
+ - `PATIENT_CONFIG`
215
+ - `OUTPUT_DIR`
216
+ - `DURATION_MINUTES`
217
+ - `TIME_STEP_MINUTES`
218
+ - `SEED`
219
+
220
+ Then run:
221
+
222
+ ```bash
223
+ ./scripts/run_live_stage_demo.sh
224
+ ```
225
+
226
+ That shell wrapper resolves the SDK repo root automatically, so it still works if you launch it from another working directory via its full path.
227
+
228
+ And open:
229
+ - `results/booth_demo_live/booth_demo_poster.png`
230
+ - `results/booth_demo_live/JURY_TALK_TRACK.md`
231
+ - `results/booth_demo_live/BEURS_LIVE_DEMO_SCRIPT.txt`
232
+
233
+ What makes this script good for a booth:
234
+ - it visibly calls `run_full(...)`
235
+ - it visibly calls `generate_results_poster(...)`
236
+ - it visibly calls `prepare_ai_ready_artifacts(...)`
237
+ - you can point to one patient setting and explain how the same pipeline reruns for another patient
238
+
239
+ If you installed the SDK on another machine and do not have the repository checkout there, export the same demo code with:
240
+
241
+ ```bash
242
+ iints demo-export --output-dir iints_demo
243
+ cd iints_demo
244
+ python 07_live_stage_demo.py
245
+ ```
246
+
191
247
  ## Updating The SDK
192
248
 
193
- If another machine is missing newer commands like `iints ai ...` or `iints demo-booth`, upgrade inside the active virtual environment:
249
+ If another machine is missing newer commands like `iints ai ...` or `iints demo-booth`, upgrade inside the active virtual environment to the latest release:
194
250
 
195
251
  ```bash
196
252
  source .venv/bin/activate
197
253
  python -m pip install -U pip
198
- python -m pip install -U "iints-sdk-python35[mdmp]==1.3.0"
254
+ python -m pip install -U "iints-sdk-python35[mdmp]"
199
255
  hash -r
200
256
  python -c "import iints; print(iints.__version__)"
201
257
  ```
@@ -209,6 +265,8 @@ iints-sdk-doctor
209
265
  Full guide:
210
266
  - `docs/UPDATING.md`
211
267
 
268
+ If you specifically need to reproduce a known environment, you can pin an exact release number instead of using the unpinned upgrade command above.
269
+
212
270
  Troubleshooting:
213
271
  - If `iints ai ...` says `No such command 'ai'`, your environment usually still has a legacy `iints` package installed alongside `iints-sdk-python35`.
214
272
  - Run `iints-sdk-doctor` first.
@@ -216,7 +274,7 @@ Troubleshooting:
216
274
 
217
275
  ```bash
218
276
  python -m pip uninstall -y iints iints-sdk-python35
219
- python -m pip install -U "iints-sdk-python35[mdmp]==1.3.0"
277
+ python -m pip install -U "iints-sdk-python35[mdmp]"
220
278
  hash -r
221
279
  ```
222
280
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "iints-sdk-python35"
7
- version = "1.3.0"
7
+ version = "1.3.2"
8
8
  authors = [
9
9
  { name="Rune Bobbaers", email="rune.bobbaers@gmail.com" },
10
10
  ]
@@ -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.3.0"
14
+ __version__ = "1.3.2"
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.
@@ -231,9 +231,13 @@ def _build_commands_markdown(
231
231
  supervisor_dir = run_outputs["03_supervisor_override"]["output_dir"]
232
232
  return (
233
233
  "# Booth Demo Commands\n\n"
234
+ "## Showable live demo script\n\n"
235
+ "```bash\n"
236
+ f"python3 {example_script} --output-dir {output_dir}\n"
237
+ "```\n\n"
234
238
  "## Run from source tree\n\n"
235
239
  "```bash\n"
236
- f"PYTHONPATH=src python3 {example_script} --output-dir {output_dir}\n"
240
+ f"PYTHONPATH=src python3 examples/demos/06_booth_demo.py --output-dir {output_dir}\n"
237
241
  "```\n\n"
238
242
  "## Run via installed CLI\n\n"
239
243
  "```bash\n"
@@ -258,12 +262,17 @@ def _build_live_demo_script_text(
258
262
  "IINTS-AF BOOTH LIVE DEMO SCRIPT\n"
259
263
  "===============================\n\n"
260
264
  "1. WHAT CODE TO SHOW FIRST\n"
261
- "- Show examples/demos/06_booth_demo.py first.\n"
262
- " Reason: it is the shortest, clearest orchestration file and shows the whole story in one screen.\n"
263
- "- If someone asks how it really works, open src/iints/analysis/booth_demo.py.\n"
264
- " Reason: that file defines the three scenarios and writes the poster, talk track, and run bundle outputs.\n\n"
265
+ "- Show examples/demos/07_live_stage_demo.py first.\n"
266
+ " Reason: the top of that file exposes the patient profile, output folder, duration, and seed on one screen.\n"
267
+ "- Point out the visible SDK feature calls in that script:\n"
268
+ " run_full(...), generate_results_poster(...), and prepare_ai_ready_artifacts(...).\n"
269
+ "- Point out that you can swap PATIENT_CONFIG to another packaged profile such as patient_559_config or clinic_safe_hypo_prone.\n"
270
+ "- If someone asks how the full bundle is generated, open examples/demos/06_booth_demo.py and then src/iints/analysis/booth_demo.py.\n"
271
+ " Reason: those files define the three scenarios and write the poster, talk track, and run bundle outputs.\n\n"
265
272
  "2. LIVE COMMAND TO RUN\n"
266
- "- From the repository root, run:\n"
273
+ "- From the repository root, run the live stage script:\n"
274
+ " ./scripts/run_live_stage_demo.sh\n"
275
+ "- Or run the booth bundle directly:\n"
267
276
  " ./scripts/run_booth_demo.sh\n"
268
277
  "- Or use the installed CLI:\n"
269
278
  " iints demo-booth --output-dir results/booth_demo\n\n"
@@ -304,6 +313,7 @@ def _build_live_demo_script_text(
304
313
  def build_booth_demo(
305
314
  output_dir: str | Path = "./results/booth_demo",
306
315
  *,
316
+ patient_config: str | Path | dict[str, Any] = "default_patient",
307
317
  duration_minutes: int = 360,
308
318
  time_step: int = 5,
309
319
  seed: int = 42,
@@ -326,7 +336,7 @@ def build_booth_demo(
326
336
  outputs = run_full(
327
337
  algorithm=spec.algorithm_factory(),
328
338
  scenario=spec.scenario,
329
- patient_config="default_patient",
339
+ patient_config=patient_config,
330
340
  duration_minutes=duration_minutes,
331
341
  time_step=time_step,
332
342
  seed=seed,
@@ -375,6 +385,7 @@ def build_booth_demo(
375
385
 
376
386
  summary_payload = {
377
387
  "output_dir": str(resolved_output),
388
+ "patient_config": str(patient_config),
378
389
  "duration_minutes": duration_minutes,
379
390
  "time_step_minutes": time_step,
380
391
  "seed": seed,
@@ -395,7 +406,7 @@ def build_booth_demo(
395
406
  }
396
407
  _write_json(resolved_output / "demo_summary.json", summary_payload)
397
408
 
398
- example_script = Path("examples/demos/06_booth_demo.py")
409
+ example_script = Path("examples/demos/07_live_stage_demo.py")
399
410
  commands_markdown = _build_commands_markdown(
400
411
  output_dir=resolved_output,
401
412
  example_script=example_script,
@@ -53,6 +53,7 @@ from iints.data.registry import (
53
53
  )
54
54
  from iints.data.contracts import load_contract_yaml
55
55
  from iints.data.synthetic_mirror import generate_synthetic_mirror
56
+ from iints.demo_assets import export_live_stage_demo
56
57
  from iints.mdmp.backend import (
57
58
  MDMP_GRADE_ORDER,
58
59
  active_mdmp_backend,
@@ -2740,6 +2741,39 @@ def demo_booth(
2740
2741
  )
2741
2742
 
2742
2743
 
2744
+ @app.command("demo-export")
2745
+ def demo_export(
2746
+ output_dir: Annotated[
2747
+ Path,
2748
+ typer.Option(help="Directory where the bundled live stage demo files should be written."),
2749
+ ] = Path("./iints_demo"),
2750
+ overwrite: Annotated[
2751
+ bool,
2752
+ typer.Option("--overwrite/--no-overwrite", help="Allow overwriting exported demo files."),
2753
+ ] = False,
2754
+ ) -> None:
2755
+ """Export the showable live demo code from the installed SDK."""
2756
+ console = Console()
2757
+ try:
2758
+ outputs = export_live_stage_demo(output_dir=output_dir, overwrite=overwrite)
2759
+ except FileExistsError as exc:
2760
+ console.print(f"[bold red]Demo export stopped:[/bold red] {exc}")
2761
+ raise typer.Exit(code=1)
2762
+ except Exception as exc:
2763
+ console.print(f"[bold red]Demo export failed:[/bold red] {exc}")
2764
+ raise typer.Exit(code=1)
2765
+
2766
+ table = Table(title="IINTS Demo Export")
2767
+ table.add_column("Artifact", style="cyan")
2768
+ table.add_column("Path", overflow="fold")
2769
+ table.add_row("script", outputs["script_path"])
2770
+ table.add_row("notes", outputs["notes_path"])
2771
+ console.print(table)
2772
+ console.print(
2773
+ "[green]Next:[/green] open `07_live_stage_demo.py`, explain the visible SDK calls, then run `python 07_live_stage_demo.py`."
2774
+ )
2775
+
2776
+
2743
2777
  @app.command()
2744
2778
  def report(
2745
2779
  results_csv: Annotated[Path, typer.Option(help="Path to a simulation results CSV")],
@@ -0,0 +1,50 @@
1
+ from __future__ import annotations
2
+
3
+ from importlib.resources import files
4
+ from pathlib import Path
5
+
6
+
7
+ def export_live_stage_demo(output_dir: str | Path = '.', *, overwrite: bool = False) -> dict[str, str]:
8
+ """Export the bundled live stage demo script for users running the installed SDK."""
9
+ resolved_output = Path(output_dir).expanduser().resolve()
10
+ resolved_output.mkdir(parents=True, exist_ok=True)
11
+
12
+ script_target = resolved_output / '07_live_stage_demo.py'
13
+ notes_target = resolved_output / 'RUN_ME_FIRST.txt'
14
+
15
+ if not overwrite and script_target.exists():
16
+ raise FileExistsError(f'Demo script already exists: {script_target}')
17
+ if not overwrite and notes_target.exists():
18
+ raise FileExistsError(f'Instruction file already exists: {notes_target}')
19
+
20
+ script_content = files('iints.templates.demos').joinpath('live_stage_demo.py').read_text(encoding='utf-8')
21
+ notes_content = (
22
+ 'IINTS LIVE DEMO EXPORT\n'
23
+ '======================\n\n'
24
+ 'This folder was exported from the installed IINTS SDK.\n\n'
25
+ '1. Activate the virtual environment that contains IINTS.\n'
26
+ '2. Open 07_live_stage_demo.py and point to:\n'
27
+ ' - PATIENT_CONFIG\n'
28
+ ' - OUTPUT_DIR\n'
29
+ ' - DURATION_MINUTES\n'
30
+ ' - TIME_STEP_MINUTES\n'
31
+ ' - SEED\n'
32
+ '3. Explain that the script visibly calls:\n'
33
+ ' - run_full(...)\n'
34
+ ' - generate_results_poster(...)\n'
35
+ ' - prepare_ai_ready_artifacts(...)\n'
36
+ '4. Run:\n'
37
+ ' python 07_live_stage_demo.py\n'
38
+ '5. Open the generated files under results/booth_demo_live/.\n\n'
39
+ 'Tip: if you also cloned the SDK repo, you can run the repo wrapper instead:\n'
40
+ ' ./scripts/run_live_stage_demo.sh\n'
41
+ )
42
+
43
+ script_target.write_text(script_content, encoding='utf-8')
44
+ notes_target.write_text(notes_content, encoding='utf-8')
45
+
46
+ return {
47
+ 'output_dir': str(resolved_output),
48
+ 'script_path': str(script_target),
49
+ 'notes_path': str(notes_target),
50
+ }
@@ -0,0 +1 @@
1
+ """Bundled demo script templates for installed IINTS users."""