iints-sdk-python35 1.5.16__py3-none-any.whl → 1.5.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.
- iints/__init__.py +1 -1
- iints/analysis/reporting.py +13 -5
- iints/tools/ai_realism_auditor.py +1 -0
- {iints_sdk_python35-1.5.16.dist-info → iints_sdk_python35-1.5.18.dist-info}/METADATA +2 -2
- {iints_sdk_python35-1.5.16.dist-info → iints_sdk_python35-1.5.18.dist-info}/RECORD +11 -11
- {iints_sdk_python35-1.5.16.dist-info → iints_sdk_python35-1.5.18.dist-info}/WHEEL +0 -0
- {iints_sdk_python35-1.5.16.dist-info → iints_sdk_python35-1.5.18.dist-info}/entry_points.txt +0 -0
- {iints_sdk_python35-1.5.16.dist-info → iints_sdk_python35-1.5.18.dist-info}/licenses/LICENSE +0 -0
- {iints_sdk_python35-1.5.16.dist-info → iints_sdk_python35-1.5.18.dist-info}/licenses/LICENSE-MIT-IINTS-LEGACY +0 -0
- {iints_sdk_python35-1.5.16.dist-info → iints_sdk_python35-1.5.18.dist-info}/licenses/NOTICE +0 -0
- {iints_sdk_python35-1.5.16.dist-info → iints_sdk_python35-1.5.18.dist-info}/top_level.txt +0 -0
iints/__init__.py
CHANGED
|
@@ -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.5.
|
|
14
|
+
__version__ = "1.5.18"
|
|
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.
|
iints/analysis/reporting.py
CHANGED
|
@@ -4,13 +4,14 @@ import logging
|
|
|
4
4
|
import json
|
|
5
5
|
from datetime import datetime
|
|
6
6
|
from pathlib import Path
|
|
7
|
-
from typing import Any, Dict, List, Optional
|
|
7
|
+
from typing import Any, Dict, List, Optional, cast
|
|
8
8
|
|
|
9
9
|
os.environ.setdefault("MPLBACKEND", "Agg")
|
|
10
10
|
os.environ.setdefault("MPLCONFIGDIR", str(Path(tempfile.gettempdir()) / "iints-matplotlib"))
|
|
11
11
|
|
|
12
12
|
import matplotlib.pyplot as plt
|
|
13
13
|
import numpy as np
|
|
14
|
+
from numpy.typing import NDArray
|
|
14
15
|
import pandas as pd
|
|
15
16
|
from fpdf import FPDF
|
|
16
17
|
from fpdf.enums import XPos, YPos
|
|
@@ -777,11 +778,18 @@ class ClinicalReportGenerator:
|
|
|
777
778
|
working = df.copy()
|
|
778
779
|
if "time_minutes" not in working.columns:
|
|
779
780
|
working["time_minutes"] = np.arange(len(working), dtype=float) * self._infer_step_minutes(working)
|
|
780
|
-
x_hours =
|
|
781
|
-
|
|
781
|
+
x_hours = cast(
|
|
782
|
+
NDArray[np.float64],
|
|
783
|
+
pd.to_numeric(working["time_minutes"], errors="coerce").fillna(0.0).to_numpy(dtype=np.float64)
|
|
784
|
+
/ 60.0,
|
|
785
|
+
)
|
|
786
|
+
glucose = cast(
|
|
787
|
+
NDArray[np.float64],
|
|
788
|
+
pd.to_numeric(working["glucose_actual_mgdl"], errors="coerce").to_numpy(dtype=np.float64),
|
|
789
|
+
)
|
|
782
790
|
if len(glucose) == 0:
|
|
783
|
-
glucose = np.
|
|
784
|
-
x_hours = np.
|
|
791
|
+
glucose = np.asarray([0.0], dtype=np.float64)
|
|
792
|
+
x_hours = np.asarray([0.0], dtype=np.float64)
|
|
785
793
|
|
|
786
794
|
fig, ax = plt.subplots(figsize=(10.8, 5.2))
|
|
787
795
|
x_min = float(np.nanmin(x_hours))
|
|
@@ -243,6 +243,7 @@ class AIRealismAuditor:
|
|
|
243
243
|
f"**Input CSV:** `{self.csv_path}`",
|
|
244
244
|
f"**Rows Scanned:** {len(self.df)}",
|
|
245
245
|
f"**Anomalies Detected by Filter:** {len(anomalies)}",
|
|
246
|
+
f"**Local AI Verdicts:** **{'enabled' if self.ai_ready else 'offline / disabled'}**",
|
|
246
247
|
f"**Optional AI Explanations:** **{'enabled' if self.ai_ready else 'offline / disabled'}**",
|
|
247
248
|
"",
|
|
248
249
|
]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: iints-sdk-python35
|
|
3
|
-
Version: 1.5.
|
|
3
|
+
Version: 1.5.18
|
|
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
|
|
@@ -64,7 +64,7 @@ Requires-Dist: h5py<4.0.0,>=3.10.0; extra == "research"
|
|
|
64
64
|
Requires-Dist: onnx<2.0.0,>=1.16.0; extra == "research"
|
|
65
65
|
Requires-Dist: onnxscript<1.0.0,>=0.1.0; extra == "research"
|
|
66
66
|
Provides-Extra: mdmp
|
|
67
|
-
Requires-Dist: cryptography<
|
|
67
|
+
Requires-Dist: cryptography<50.0.0,>=42.0.0; extra == "mdmp"
|
|
68
68
|
Dynamic: license-file
|
|
69
69
|
|
|
70
70
|
# IINTS-AF SDK
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
iints/__init__.py,sha256=
|
|
1
|
+
iints/__init__.py,sha256=OHfx05_rgqhvhCdAe8YGf1VQh-N4auSjMpPzNeoIDdk,11347
|
|
2
2
|
iints/demo_assets.py,sha256=h9bXB6aBptwtvd2drAjg4wp3XE7zXuESxVG8vJgSUJU,2071
|
|
3
3
|
iints/highlevel.py,sha256=LCAp8SUwA6dZkUs7JmIBBEasOkALA9Inf6RZtfUNKFQ,22914
|
|
4
4
|
iints/metrics.py,sha256=pFFGiGa081YYmRJ8rpV72zYRWmrLq-zA9NxFJw-7HEM,903
|
|
@@ -34,7 +34,7 @@ iints/analysis/hardware_benchmark.py,sha256=fzGTiHYG0VO9mhNc20oCB73ZE6roVb2cM0Lk
|
|
|
34
34
|
iints/analysis/metrics.py,sha256=M6SLIp3DKRJTpZNCv5M0AjKC_OveOjGf0nsJ_wcF-mk,4325
|
|
35
35
|
iints/analysis/population_report.py,sha256=x3pIJijNynLYM4M6n47_6juUGWde73C7AvC5pJpV2mY,7397
|
|
36
36
|
iints/analysis/poster.py,sha256=xR_KasvOLSFZspfw3rWl75RV_xLnzO-hObzzurG-NKQ,10071
|
|
37
|
-
iints/analysis/reporting.py,sha256=
|
|
37
|
+
iints/analysis/reporting.py,sha256=5rzgakMzSxpYhToSy0wZC9Kp0lkOdOJQto23QN7l4JE,48541
|
|
38
38
|
iints/analysis/run_quality.py,sha256=FyYg0ijD1aOKTjXVYv_neUPuNlFFgxNQL5s-ViAg_DE,7285
|
|
39
39
|
iints/analysis/safety_index.py,sha256=jfYIELn9sSp9lLOH6t4fJ8jJi1mTOhGrFme9cX6Iric,10897
|
|
40
40
|
iints/analysis/safety_visualizer.py,sha256=5bfJnoDoQF4HjSCf3XTZHI9mPuztXqeKpCIyuGcXZuU,14074
|
|
@@ -207,7 +207,7 @@ iints/templates/scenarios/example_scenario.json,sha256=C1WtdgD2zN69emGZ87GNxT5f5
|
|
|
207
207
|
iints/templates/scenarios/exercise_stress.json,sha256=Cn4_tyaRpQvubCz9Cjge94MdTZpTcyHkrQ_ewKU1m1I,662
|
|
208
208
|
iints/templates/uno_q/README.md,sha256=25UQW--PIGIt9anoLkvSWIuG-g5A3LdnLBKX9Gk_iEk,2487
|
|
209
209
|
iints/templates/uno_q/iints_supervisor_bridge.ino,sha256=mfLk4hGU3CZWvNfWpBmEM8c2Cue3zsZI-dVK17HvaKY,1567
|
|
210
|
-
iints/tools/ai_realism_auditor.py,sha256=
|
|
210
|
+
iints/tools/ai_realism_auditor.py,sha256=5LjxPB99nx26fiKTd2J1tLOaTBMApySdfCRu2TQdwDU,12774
|
|
211
211
|
iints/tools/digital_twin_calibrator.py,sha256=-Q4fmZUlYsg_gRt8EC2Qnt5tKRQ84s_vKBjXeUxuy6A,2952
|
|
212
212
|
iints/tools/theory_stress_lab.py,sha256=IcV05LmAj-oQCy0-FHHFCXFlH7h5qDLatGdyEXi3Ntk,25646
|
|
213
213
|
iints/utils/__init__.py,sha256=KGDuOUBT-G2_76sLWJqDhR_nhcgE17ZMGuQxObhy_mo,71
|
|
@@ -226,9 +226,9 @@ iints/validation/schemas.py,sha256=neds4gNI8NnuMj1fyHRFAsp12u01TBowGB6fZ2RVypw,4
|
|
|
226
226
|
iints/visualization/__init__.py,sha256=OdxVHDpY-9bDt8DTWWd-dspn1p0O9T908Cck-IGFaiM,640
|
|
227
227
|
iints/visualization/cockpit.py,sha256=5PdvAbNXzyTjKoqT65bgw6h01FnLNVjY4lXdKdYXCNc,26183
|
|
228
228
|
iints/visualization/uncertainty_cloud.py,sha256=I5nNzSitgai21rkul31YNtJriSEmCeTsW0GWW2HUskY,19848
|
|
229
|
-
iints_sdk_python35-1.5.
|
|
230
|
-
iints_sdk_python35-1.5.
|
|
231
|
-
iints_sdk_python35-1.5.
|
|
229
|
+
iints_sdk_python35-1.5.18.dist-info/licenses/LICENSE,sha256=pmk2DGE1Cj9zr5hfus2x_sILJBnIBR1KvJWp4OXYqc0,8978
|
|
230
|
+
iints_sdk_python35-1.5.18.dist-info/licenses/LICENSE-MIT-IINTS-LEGACY,sha256=HzvJLhuEHRUlY9Sl1PZ3-jG0ZBOuMXtbrMF1la02M3E,1078
|
|
231
|
+
iints_sdk_python35-1.5.18.dist-info/licenses/NOTICE,sha256=4sQjo6BqDGi1abL9Gp9W2F6851cpzE3jvIl1cpHuO0I,678
|
|
232
232
|
mdmp_ai/__init__.py,sha256=chKE8_Wo7oxj5CFqZ9NcyLjAHM5npvaKkLvTdBPtjo8,160
|
|
233
233
|
mdmp_ai/lineage.py,sha256=LY_sshoVTLPQfhP3ZDLv0drdBoxGW_YXbdAb_XMAllQ,7065
|
|
234
234
|
mdmp_core/__init__.py,sha256=5kvhQwYy-puaztBzzohBex_wiv2YB4Ui9MWk1hTiVDA,3768
|
|
@@ -268,8 +268,8 @@ mdmp_integrations/__init__.py,sha256=r5z2RODMmZCFHkvAOahcL576S1Dp0AuyQXQAvefzVQQ
|
|
|
268
268
|
mdmp_integrations/dvc.py,sha256=1UVL_It-Xp6ad8G66ubm9YaF0O9n31EMiJ466zPK9vY,740
|
|
269
269
|
mdmp_integrations/mlflow.py,sha256=YiT6LKu_sN2k1Gzz4U4kqby_JNhQUiOi38AO6sCPvPg,367
|
|
270
270
|
mdmp_integrations/wandb.py,sha256=r1-gXYkIKN396K0VU6uuqk1SWTNGqto1Q9HZ-RKBEss,496
|
|
271
|
-
iints_sdk_python35-1.5.
|
|
272
|
-
iints_sdk_python35-1.5.
|
|
273
|
-
iints_sdk_python35-1.5.
|
|
274
|
-
iints_sdk_python35-1.5.
|
|
275
|
-
iints_sdk_python35-1.5.
|
|
271
|
+
iints_sdk_python35-1.5.18.dist-info/METADATA,sha256=X0DVEryP6GUxJ78o8ksYgDgAfn6FRfuoem0AnmL69R8,5850
|
|
272
|
+
iints_sdk_python35-1.5.18.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
|
|
273
|
+
iints_sdk_python35-1.5.18.dist-info/entry_points.txt,sha256=QyVnqN-T-wsrL3ITYEFUSoiu57DuqnEQy8aYtirDr-8,569
|
|
274
|
+
iints_sdk_python35-1.5.18.dist-info/top_level.txt,sha256=yCCM5o2LCIQj9aEAZ-xa_EVxiiEhPNPDEgaABFNZGvs,55
|
|
275
|
+
iints_sdk_python35-1.5.18.dist-info/RECORD,,
|
|
File without changes
|
{iints_sdk_python35-1.5.16.dist-info → iints_sdk_python35-1.5.18.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{iints_sdk_python35-1.5.16.dist-info → iints_sdk_python35-1.5.18.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|