iints-sdk-python35 1.5.1__tar.gz → 1.5.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.
- {iints_sdk_python35-1.5.1/src/iints_sdk_python35.egg-info → iints_sdk_python35-1.5.2}/PKG-INFO +28 -7
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/README.md +12 -1
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/pyproject.toml +20 -6
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/__init__.py +65 -5
- iints_sdk_python35-1.5.2/src/iints/analysis/__init__.py +95 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/cli/cli.py +346 -5
- iints_sdk_python35-1.5.2/src/iints/cli/patient_cli.py +450 -0
- iints_sdk_python35-1.5.2/src/iints/live_patient/__init__.py +30 -0
- iints_sdk_python35-1.5.2/src/iints/live_patient/api.py +331 -0
- iints_sdk_python35-1.5.2/src/iints/live_patient/daemon.py +62 -0
- iints_sdk_python35-1.5.2/src/iints/live_patient/edge_benchmark.py +160 -0
- iints_sdk_python35-1.5.2/src/iints/live_patient/edge_ops.py +391 -0
- iints_sdk_python35-1.5.2/src/iints/live_patient/runtime.py +964 -0
- iints_sdk_python35-1.5.2/src/iints/live_patient/service_export.py +71 -0
- iints_sdk_python35-1.5.2/src/iints/live_patient/uno_q.py +37 -0
- iints_sdk_python35-1.5.2/src/iints/templates/uno_q/README.md +21 -0
- iints_sdk_python35-1.5.2/src/iints/templates/uno_q/iints_supervisor_bridge.ino +66 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2/src/iints_sdk_python35.egg-info}/PKG-INFO +28 -7
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints_sdk_python35.egg-info/SOURCES.txt +13 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints_sdk_python35.egg-info/requires.txt +18 -5
- iints_sdk_python35-1.5.2/tests/test_cli_edge_runtime.py +43 -0
- iints_sdk_python35-1.5.2/tests/test_cli_patient_runtime.py +137 -0
- iints_sdk_python35-1.5.1/src/iints/analysis/__init__.py +0 -46
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/LICENSE +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/LICENSE-MIT-IINTS-LEGACY +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/NOTICE +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/setup.cfg +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/ai/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/ai/assistant.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/ai/backends/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/ai/backends/base.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/ai/backends/mistral_api.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/ai/backends/ollama.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/ai/cli.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/ai/mdmp_guard.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/ai/model_catalog.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/ai/prepare.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/ai/prompts.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/analysis/algorithm_xray.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/analysis/baseline.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/analysis/booth_demo.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/analysis/carelink_workbench.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/analysis/clinical_benchmark.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/analysis/clinical_metrics.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/analysis/clinical_tir_analyzer.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/analysis/diabetes_metrics.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/analysis/edge_efficiency.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/analysis/edge_performance_monitor.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/analysis/explainability.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/analysis/explainable_ai.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/analysis/hardware_benchmark.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/analysis/metrics.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/analysis/population_report.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/analysis/poster.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/analysis/reporting.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/analysis/safety_index.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/analysis/sensor_filtering.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/analysis/study_analysis.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/analysis/study_poster.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/analysis/study_protocol.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/analysis/validator.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/api/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/api/base_algorithm.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/api/registry.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/api/template_algorithm.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/assets/iints_logo.png +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/cli/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/algorithms/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/algorithms/battle_runner.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/algorithms/correction_bolus.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/algorithms/discovery.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/algorithms/fixed_basal_bolus.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/algorithms/hybrid_algorithm.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/algorithms/lstm_algorithm.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/algorithms/mock_algorithms.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/algorithms/pid_controller.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/algorithms/standard_pump_algo.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/device.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/device_manager.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/devices/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/devices/models.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/patient/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/patient/bergman_model.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/patient/models.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/patient/patient_factory.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/patient/profile.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/safety/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/safety/config.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/safety/input_validator.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/safety/supervisor.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/simulation/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/simulation/scenario_parser.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/simulator.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/core/supervisor.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/adapter.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/certify.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/column_mapper.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/contracts.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/datasets.json +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/demo/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/demo/demo_cgm.csv +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/guardians.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/importer.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/ingestor.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/mdmp_visualizer.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/nightscout.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/quality_checker.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/registry.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/runner.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/study_corruption.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/synthetic_mirror.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/tidepool.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/universal_parser.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/virtual_patients/clinic_safe_baseline.yaml +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/virtual_patients/clinic_safe_hyper_challenge.yaml +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/virtual_patients/clinic_safe_hypo_prone.yaml +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/virtual_patients/clinic_safe_midnight.yaml +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/virtual_patients/clinic_safe_pizza.yaml +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/virtual_patients/clinic_safe_stress_meal.yaml +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/virtual_patients/default_patient.yaml +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/data/virtual_patients/patient_559_config.yaml +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/demo_assets.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/emulation/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/emulation/legacy_base.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/emulation/medtronic_780g.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/emulation/omnipod_5.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/emulation/tandem_controliq.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/highlevel.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/learning/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/learning/autonomous_optimizer.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/learning/learning_system.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/mdmp/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/mdmp/backend.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/metrics.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/population/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/population/generator.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/population/runner.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/presets/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/presets/evidence_sources.yaml +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/presets/forecast_calibration_profiles.yaml +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/presets/golden_benchmark.yaml +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/presets/presets.json +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/presets/safety_contract_default.yaml +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/presets/validation_profiles.yaml +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/research/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/research/audit.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/research/calibration_gate.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/research/config.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/research/dataset.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/research/evaluation.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/research/losses.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/research/metrics.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/research/model_registry.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/research/predictor.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/scenarios/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/scenarios/generator.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/scenarios/study_pack.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/templates/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/templates/default_algorithm.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/templates/demos/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/templates/demos/live_stage_demo.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/templates/scenarios/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/templates/scenarios/chaos_insulin_stacking.json +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/templates/scenarios/chaos_runaway_ai.json +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/templates/scenarios/example_scenario.json +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/templates/scenarios/exercise_stress.json +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/utils/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/utils/plotting.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/utils/run_io.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/validation/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/validation/golden.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/validation/replay.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/validation/run_validation.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/validation/safety_contract.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/validation/schemas.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/visualization/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/visualization/cockpit.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints/visualization/uncertainty_cloud.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints_sdk_python35.egg-info/dependency_links.txt +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints_sdk_python35.egg-info/entry_points.txt +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/iints_sdk_python35.egg-info/top_level.txt +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_ai/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_ai/lineage.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/audit.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/bias_hooks.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/bundle.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/certification.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/cli.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/compare.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/conformance.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/contracts.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/crypto.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/data/conformance/vectors/delegation.json +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/data/conformance/vectors/fingerprint.json +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/data/conformance/vectors/grading.json +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/data/conformance/vectors/signing.json +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/delegate.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/diffing.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/drift.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/exceptions.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/fingerprint.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/fingerprint_store.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/hf.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/keys/mdmp_pub_v1.pem +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/llm_provenance.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/migrate.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/policy.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/prov.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/registry.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/runner.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/schema_export.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/synthetic.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/trust.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_core/visualizer.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_flavors/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_integrations/__init__.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_integrations/dvc.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_integrations/mlflow.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/src/mdmp_integrations/wandb.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/tests/test_bergman.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/tests/test_cli_booth_demo.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/tests/test_cli_carelink_workbench.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/tests/test_cli_demo_export.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/tests/test_cli_expo_tools.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/tests/test_cli_poster.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/tests/test_install_doctor.py +0 -0
- {iints_sdk_python35-1.5.1 → iints_sdk_python35-1.5.2}/tests/test_population.py +0 -0
{iints_sdk_python35-1.5.1/src/iints_sdk_python35.egg-info → iints_sdk_python35-1.5.2}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: iints-sdk-python35
|
|
3
|
-
Version: 1.5.
|
|
3
|
+
Version: 1.5.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
|
License-Expression: Apache-2.0
|
|
@@ -17,18 +17,28 @@ Description-Content-Type: text/markdown
|
|
|
17
17
|
License-File: LICENSE
|
|
18
18
|
License-File: NOTICE
|
|
19
19
|
License-File: LICENSE-MIT-IINTS-LEGACY
|
|
20
|
-
Requires-Dist:
|
|
21
|
-
Requires-Dist: matplotlib>=3.5.0
|
|
20
|
+
Requires-Dist: fastapi>=0.115.0
|
|
22
21
|
Requires-Dist: numpy>=1.24.0
|
|
23
|
-
Requires-Dist: openpyxl>=3.0.0
|
|
24
22
|
Requires-Dist: pandas>=2.0.0
|
|
25
|
-
Requires-Dist: pillow>=12.1.1
|
|
26
23
|
Requires-Dist: pydantic>=2.0.0
|
|
27
24
|
Requires-Dist: PyYAML
|
|
28
25
|
Requires-Dist: rich>=12.0.0
|
|
29
26
|
Requires-Dist: scipy>=1.9.0
|
|
30
|
-
Requires-Dist: seaborn>=0.11.0
|
|
31
27
|
Requires-Dist: typer[all]
|
|
28
|
+
Requires-Dist: uvicorn>=0.30.0
|
|
29
|
+
Provides-Extra: edge
|
|
30
|
+
Provides-Extra: reports
|
|
31
|
+
Requires-Dist: fpdf2>=2.8.0; extra == "reports"
|
|
32
|
+
Requires-Dist: matplotlib>=3.5.0; extra == "reports"
|
|
33
|
+
Requires-Dist: openpyxl>=3.0.0; extra == "reports"
|
|
34
|
+
Requires-Dist: pillow>=12.1.1; extra == "reports"
|
|
35
|
+
Requires-Dist: seaborn>=0.11.0; extra == "reports"
|
|
36
|
+
Provides-Extra: full
|
|
37
|
+
Requires-Dist: fpdf2>=2.8.0; extra == "full"
|
|
38
|
+
Requires-Dist: matplotlib>=3.5.0; extra == "full"
|
|
39
|
+
Requires-Dist: openpyxl>=3.0.0; extra == "full"
|
|
40
|
+
Requires-Dist: pillow>=12.1.1; extra == "full"
|
|
41
|
+
Requires-Dist: seaborn>=0.11.0; extra == "full"
|
|
32
42
|
Provides-Extra: dev
|
|
33
43
|
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
34
44
|
Requires-Dist: hypothesis>=6.0.0; extra == "dev"
|
|
@@ -70,7 +80,16 @@ Docs: [python35.github.io/IINTS-SDK](https://python35.github.io/IINTS-SDK/)
|
|
|
70
80
|
python3 -m venv .venv
|
|
71
81
|
source .venv/bin/activate
|
|
72
82
|
python -m pip install -U pip
|
|
73
|
-
python -m pip install -U "iints-sdk-python35[mdmp]"
|
|
83
|
+
python -m pip install -U "iints-sdk-python35[full,mdmp]"
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
For Raspberry Pi or UNO Q edge rigs, use `iints-sdk-python35[edge,mdmp]` and follow `docs/EDGE_HARDWARE.md`.
|
|
87
|
+
|
|
88
|
+
Edge workflow:
|
|
89
|
+
```bash
|
|
90
|
+
iints edge setup --output-dir iints_edge_demo --board raspberry_pi
|
|
91
|
+
iints edge status --workspace iints_edge_demo/patient_runtime
|
|
92
|
+
iints edge bundle --workspace iints_edge_demo/patient_runtime --output results/edge_runtime_bundle.zip
|
|
74
93
|
```
|
|
75
94
|
|
|
76
95
|
Sanity check:
|
|
@@ -90,6 +109,8 @@ iints ai report results/<run_id>
|
|
|
90
109
|
## Read Next
|
|
91
110
|
- Start here: `docs/GETTING_STARTED.md`
|
|
92
111
|
- Installation and paths: `docs/INSTALLATION.md`
|
|
112
|
+
- Edge hardware profiles: `docs/EDGE_HARDWARE.md`
|
|
113
|
+
- Raspberry Pi digital patient: `docs/DIGITAL_PATIENT_PI.md`
|
|
93
114
|
- Study analysis: `docs/STUDY_ANALYSIS.md`
|
|
94
115
|
- AI assistant: `docs/AI_ASSISTANT.md`
|
|
95
116
|
- Data certification: `docs/MDMP_QUICKSTART.md`
|
|
@@ -17,7 +17,16 @@ Docs: [python35.github.io/IINTS-SDK](https://python35.github.io/IINTS-SDK/)
|
|
|
17
17
|
python3 -m venv .venv
|
|
18
18
|
source .venv/bin/activate
|
|
19
19
|
python -m pip install -U pip
|
|
20
|
-
python -m pip install -U "iints-sdk-python35[mdmp]"
|
|
20
|
+
python -m pip install -U "iints-sdk-python35[full,mdmp]"
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
For Raspberry Pi or UNO Q edge rigs, use `iints-sdk-python35[edge,mdmp]` and follow `docs/EDGE_HARDWARE.md`.
|
|
24
|
+
|
|
25
|
+
Edge workflow:
|
|
26
|
+
```bash
|
|
27
|
+
iints edge setup --output-dir iints_edge_demo --board raspberry_pi
|
|
28
|
+
iints edge status --workspace iints_edge_demo/patient_runtime
|
|
29
|
+
iints edge bundle --workspace iints_edge_demo/patient_runtime --output results/edge_runtime_bundle.zip
|
|
21
30
|
```
|
|
22
31
|
|
|
23
32
|
Sanity check:
|
|
@@ -37,6 +46,8 @@ iints ai report results/<run_id>
|
|
|
37
46
|
## Read Next
|
|
38
47
|
- Start here: `docs/GETTING_STARTED.md`
|
|
39
48
|
- Installation and paths: `docs/INSTALLATION.md`
|
|
49
|
+
- Edge hardware profiles: `docs/EDGE_HARDWARE.md`
|
|
50
|
+
- Raspberry Pi digital patient: `docs/DIGITAL_PATIENT_PI.md`
|
|
40
51
|
- Study analysis: `docs/STUDY_ANALYSIS.md`
|
|
41
52
|
- AI assistant: `docs/AI_ASSISTANT.md`
|
|
42
53
|
- Data certification: `docs/MDMP_QUICKSTART.md`
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "iints-sdk-python35"
|
|
7
|
-
version = "1.5.
|
|
7
|
+
version = "1.5.2"
|
|
8
8
|
authors = [
|
|
9
9
|
{ name="Rune Bobbaers", email="rune.bobbaers@gmail.com" },
|
|
10
10
|
]
|
|
@@ -23,21 +23,33 @@ classifiers = [
|
|
|
23
23
|
"Development Status :: 5 - Production/Stable",
|
|
24
24
|
]
|
|
25
25
|
dependencies = [
|
|
26
|
-
"
|
|
27
|
-
"matplotlib>=3.5.0",
|
|
26
|
+
"fastapi>=0.115.0",
|
|
28
27
|
"numpy>=1.24.0",
|
|
29
|
-
"openpyxl>=3.0.0",
|
|
30
28
|
"pandas>=2.0.0",
|
|
31
|
-
"pillow>=12.1.1",
|
|
32
29
|
"pydantic>=2.0.0",
|
|
33
30
|
"PyYAML",
|
|
34
31
|
"rich>=12.0.0",
|
|
35
32
|
"scipy>=1.9.0",
|
|
36
|
-
"seaborn>=0.11.0",
|
|
37
33
|
"typer[all]",
|
|
34
|
+
"uvicorn>=0.30.0",
|
|
38
35
|
]
|
|
39
36
|
|
|
40
37
|
[project.optional-dependencies]
|
|
38
|
+
edge = []
|
|
39
|
+
reports = [
|
|
40
|
+
"fpdf2>=2.8.0",
|
|
41
|
+
"matplotlib>=3.5.0",
|
|
42
|
+
"openpyxl>=3.0.0",
|
|
43
|
+
"pillow>=12.1.1",
|
|
44
|
+
"seaborn>=0.11.0",
|
|
45
|
+
]
|
|
46
|
+
full = [
|
|
47
|
+
"fpdf2>=2.8.0",
|
|
48
|
+
"matplotlib>=3.5.0",
|
|
49
|
+
"openpyxl>=3.0.0",
|
|
50
|
+
"pillow>=12.1.1",
|
|
51
|
+
"seaborn>=0.11.0",
|
|
52
|
+
]
|
|
41
53
|
dev = [
|
|
42
54
|
"pytest>=7.0.0",
|
|
43
55
|
"hypothesis>=6.0.0",
|
|
@@ -86,6 +98,8 @@ where = ["src"]
|
|
|
86
98
|
iints = [
|
|
87
99
|
"templates/*.py",
|
|
88
100
|
"templates/scenarios/*.json",
|
|
101
|
+
"templates/uno_q/*.ino",
|
|
102
|
+
"templates/uno_q/*.md",
|
|
89
103
|
"assets/*.png",
|
|
90
104
|
"data/*.json",
|
|
91
105
|
"data/virtual_patients/*.yaml",
|
|
@@ -11,11 +11,18 @@ except ImportError: # pragma: no cover - Python < 3.8 fallback
|
|
|
11
11
|
try:
|
|
12
12
|
__version__ = version("iints-sdk-python35")
|
|
13
13
|
except PackageNotFoundError: # pragma: no cover - source tree fallback
|
|
14
|
-
__version__ = "1.5.
|
|
14
|
+
__version__ = "1.5.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.
|
|
18
18
|
|
|
19
|
+
|
|
20
|
+
def _missing_reports_dependency(feature: str, exc: Exception) -> None:
|
|
21
|
+
raise ImportError(
|
|
22
|
+
f"{feature} requires the optional reporting stack. Install "
|
|
23
|
+
f"'iints-sdk-python35[reports]' or 'iints-sdk-python35[full]'."
|
|
24
|
+
) from exc
|
|
25
|
+
|
|
19
26
|
# API Components for Algorithm Development
|
|
20
27
|
from .api.base_algorithm import (
|
|
21
28
|
InsulinAlgorithm,
|
|
@@ -72,16 +79,58 @@ from .data.guardians import mdmp_gate, MDMPGateError
|
|
|
72
79
|
from .data.synthetic_mirror import generate_synthetic_mirror, SyntheticMirrorArtifact
|
|
73
80
|
from .data.study_corruption import AVAILABLE_STUDY_CORRUPTIONS, apply_study_corruptions, write_corrupted_study_csv
|
|
74
81
|
from .analysis.metrics import generate_benchmark_metrics # Added for benchmark
|
|
75
|
-
from .analysis.booth_demo import build_booth_demo
|
|
76
|
-
from .analysis.carelink_workbench import build_carelink_workbench
|
|
77
|
-
from .analysis.poster import generate_results_poster
|
|
78
|
-
from .analysis.reporting import ClinicalReportGenerator
|
|
79
82
|
from .analysis.study_protocol import build_study_protocol_payload, render_study_protocol_markdown, write_study_protocol_bundle
|
|
80
83
|
from .analysis.edge_efficiency import EnergyEstimate, estimate_energy_per_decision
|
|
81
84
|
from .ai import AIResponse, IINTSAssistant, MDMPGuard
|
|
85
|
+
from .live_patient import (
|
|
86
|
+
create_edge_bundle,
|
|
87
|
+
export_edge_setup,
|
|
88
|
+
LivePatientDaemon,
|
|
89
|
+
PatientRuntimeConfig,
|
|
90
|
+
create_patient_app,
|
|
91
|
+
export_uno_q_bridge,
|
|
92
|
+
get_runtime_scenario_profile,
|
|
93
|
+
list_runtime_scenario_profiles,
|
|
94
|
+
run_edge_benchmark,
|
|
95
|
+
summarize_edge_workspace,
|
|
96
|
+
write_edge_update_script,
|
|
97
|
+
)
|
|
82
98
|
from .highlevel import run_simulation, run_full, run_population
|
|
83
99
|
from .scenarios import ScenarioGeneratorConfig, generate_random_scenario
|
|
84
100
|
|
|
101
|
+
try:
|
|
102
|
+
from .analysis.booth_demo import build_booth_demo
|
|
103
|
+
except Exception as exc: # pragma: no cover - optional reports stack
|
|
104
|
+
_build_booth_demo_exc = exc
|
|
105
|
+
|
|
106
|
+
def build_booth_demo(*args, **kwargs): # type: ignore[misc,no-redef]
|
|
107
|
+
_missing_reports_dependency("build_booth_demo()", _build_booth_demo_exc)
|
|
108
|
+
|
|
109
|
+
try:
|
|
110
|
+
from .analysis.carelink_workbench import build_carelink_workbench
|
|
111
|
+
except Exception as exc: # pragma: no cover - optional reports stack
|
|
112
|
+
_build_carelink_workbench_exc = exc
|
|
113
|
+
|
|
114
|
+
def build_carelink_workbench(*args, **kwargs): # type: ignore[misc,no-redef]
|
|
115
|
+
_missing_reports_dependency("build_carelink_workbench()", _build_carelink_workbench_exc)
|
|
116
|
+
|
|
117
|
+
try:
|
|
118
|
+
from .analysis.poster import generate_results_poster
|
|
119
|
+
except Exception as exc: # pragma: no cover - optional reports stack
|
|
120
|
+
_generate_results_poster_exc = exc
|
|
121
|
+
|
|
122
|
+
def generate_results_poster(*args, **kwargs): # type: ignore[misc,no-redef]
|
|
123
|
+
_missing_reports_dependency("generate_results_poster()", _generate_results_poster_exc)
|
|
124
|
+
|
|
125
|
+
try:
|
|
126
|
+
from .analysis.reporting import ClinicalReportGenerator
|
|
127
|
+
except Exception as exc: # pragma: no cover - optional reports stack
|
|
128
|
+
_clinical_report_generator_exc = exc
|
|
129
|
+
|
|
130
|
+
class ClinicalReportGenerator: # type: ignore[no-redef]
|
|
131
|
+
def __init__(self, *args, **kwargs):
|
|
132
|
+
_missing_reports_dependency("ClinicalReportGenerator", _clinical_report_generator_exc)
|
|
133
|
+
|
|
85
134
|
# Population testing
|
|
86
135
|
from .population import (
|
|
87
136
|
PopulationGenerator,
|
|
@@ -202,6 +251,17 @@ __all__ = [
|
|
|
202
251
|
"AIResponse",
|
|
203
252
|
"IINTSAssistant",
|
|
204
253
|
"MDMPGuard",
|
|
254
|
+
"create_edge_bundle",
|
|
255
|
+
"export_edge_setup",
|
|
256
|
+
"LivePatientDaemon",
|
|
257
|
+
"PatientRuntimeConfig",
|
|
258
|
+
"create_patient_app",
|
|
259
|
+
"export_uno_q_bridge",
|
|
260
|
+
"get_runtime_scenario_profile",
|
|
261
|
+
"list_runtime_scenario_profiles",
|
|
262
|
+
"run_edge_benchmark",
|
|
263
|
+
"summarize_edge_workspace",
|
|
264
|
+
"write_edge_update_script",
|
|
205
265
|
# Reporting
|
|
206
266
|
"generate_report",
|
|
207
267
|
"generate_quickstart_report",
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
from .clinical_metrics import ClinicalMetricsCalculator, ClinicalMetricsResult
|
|
2
|
+
from .baseline import compute_metrics, run_baseline_comparison, write_baseline_comparison
|
|
3
|
+
from .study_protocol import (
|
|
4
|
+
build_study_protocol_payload,
|
|
5
|
+
render_study_protocol_markdown,
|
|
6
|
+
write_study_protocol_bundle,
|
|
7
|
+
)
|
|
8
|
+
from .study_analysis import (
|
|
9
|
+
analyze_run_directory,
|
|
10
|
+
analyze_study_directory,
|
|
11
|
+
compare_studies,
|
|
12
|
+
load_study_summary,
|
|
13
|
+
quality_badges_for_metrics,
|
|
14
|
+
StudyComparison,
|
|
15
|
+
StudyRunSummary,
|
|
16
|
+
StudySummary,
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def _missing_reports_dependency(feature: str, exc: Exception) -> None:
|
|
21
|
+
raise ImportError(
|
|
22
|
+
f"{feature} requires the optional reporting stack. Install "
|
|
23
|
+
f"'iints-sdk-python35[reports]' or 'iints-sdk-python35[full]'."
|
|
24
|
+
) from exc
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
try:
|
|
28
|
+
from .booth_demo import build_booth_demo
|
|
29
|
+
except Exception as exc: # pragma: no cover - optional reports stack
|
|
30
|
+
_build_booth_demo_exc = exc
|
|
31
|
+
|
|
32
|
+
def build_booth_demo(*args, **kwargs): # type: ignore[misc,no-redef]
|
|
33
|
+
_missing_reports_dependency("build_booth_demo()", _build_booth_demo_exc)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
try:
|
|
37
|
+
from .carelink_workbench import build_carelink_workbench
|
|
38
|
+
except Exception as exc: # pragma: no cover - optional reports stack
|
|
39
|
+
_build_carelink_workbench_exc = exc
|
|
40
|
+
|
|
41
|
+
def build_carelink_workbench(*args, **kwargs): # type: ignore[misc,no-redef]
|
|
42
|
+
_missing_reports_dependency("build_carelink_workbench()", _build_carelink_workbench_exc)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
try:
|
|
46
|
+
from .poster import generate_results_poster
|
|
47
|
+
except Exception as exc: # pragma: no cover - optional reports stack
|
|
48
|
+
_generate_results_poster_exc = exc
|
|
49
|
+
|
|
50
|
+
def generate_results_poster(*args, **kwargs): # type: ignore[misc,no-redef]
|
|
51
|
+
_missing_reports_dependency("generate_results_poster()", _generate_results_poster_exc)
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
try:
|
|
55
|
+
from .reporting import ClinicalReportGenerator
|
|
56
|
+
except Exception as exc: # pragma: no cover - optional reports stack
|
|
57
|
+
_clinical_report_generator_exc = exc
|
|
58
|
+
|
|
59
|
+
class ClinicalReportGenerator: # type: ignore[no-redef]
|
|
60
|
+
def __init__(self, *args, **kwargs):
|
|
61
|
+
_missing_reports_dependency("ClinicalReportGenerator", _clinical_report_generator_exc)
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
try:
|
|
65
|
+
from .study_poster import generate_study_poster
|
|
66
|
+
except Exception as exc: # pragma: no cover - optional reports stack
|
|
67
|
+
_generate_study_poster_exc = exc
|
|
68
|
+
|
|
69
|
+
def generate_study_poster(*args, **kwargs): # type: ignore[misc,no-redef]
|
|
70
|
+
_missing_reports_dependency("generate_study_poster()", _generate_study_poster_exc)
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
__all__ = [
|
|
74
|
+
"analyze_run_directory",
|
|
75
|
+
"analyze_study_directory",
|
|
76
|
+
"build_booth_demo",
|
|
77
|
+
"build_carelink_workbench",
|
|
78
|
+
"ClinicalMetricsCalculator",
|
|
79
|
+
"ClinicalMetricsResult",
|
|
80
|
+
"ClinicalReportGenerator",
|
|
81
|
+
"compute_metrics",
|
|
82
|
+
"compare_studies",
|
|
83
|
+
"generate_results_poster",
|
|
84
|
+
"generate_study_poster",
|
|
85
|
+
"build_study_protocol_payload",
|
|
86
|
+
"render_study_protocol_markdown",
|
|
87
|
+
"write_study_protocol_bundle",
|
|
88
|
+
"load_study_summary",
|
|
89
|
+
"quality_badges_for_metrics",
|
|
90
|
+
"run_baseline_comparison",
|
|
91
|
+
"StudyComparison",
|
|
92
|
+
"StudyRunSummary",
|
|
93
|
+
"StudySummary",
|
|
94
|
+
"write_baseline_comparison",
|
|
95
|
+
]
|