iints-sdk-python35 1.4.0__py3-none-any.whl → 1.5.0__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/ai/assistant.py +3 -0
- iints/ai/cli.py +51 -0
- iints/ai/prepare.py +27 -0
- iints/ai/prompts.py +19 -1
- iints/analysis/booth_demo.py +3 -0
- iints/analysis/carelink_workbench.py +17 -0
- iints/templates/demos/live_stage_demo.py +2 -0
- {iints_sdk_python35-1.4.0.dist-info → iints_sdk_python35-1.5.0.dist-info}/METADATA +4 -2
- {iints_sdk_python35-1.4.0.dist-info → iints_sdk_python35-1.5.0.dist-info}/RECORD +17 -17
- mdmp_core/cli.py +2 -1
- {iints_sdk_python35-1.4.0.dist-info → iints_sdk_python35-1.5.0.dist-info}/WHEEL +0 -0
- {iints_sdk_python35-1.4.0.dist-info → iints_sdk_python35-1.5.0.dist-info}/entry_points.txt +0 -0
- {iints_sdk_python35-1.4.0.dist-info → iints_sdk_python35-1.5.0.dist-info}/licenses/LICENSE +0 -0
- {iints_sdk_python35-1.4.0.dist-info → iints_sdk_python35-1.5.0.dist-info}/licenses/LICENSE-MIT-IINTS-LEGACY +0 -0
- {iints_sdk_python35-1.4.0.dist-info → iints_sdk_python35-1.5.0.dist-info}/licenses/NOTICE +0 -0
- {iints_sdk_python35-1.4.0.dist-info → iints_sdk_python35-1.5.0.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.
|
|
14
|
+
__version__ = "1.5.0"
|
|
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/ai/assistant.py
CHANGED
iints/ai/cli.py
CHANGED
|
@@ -43,6 +43,7 @@ def _default_prepared_payload(task: str, ai_dir: Path) -> Path:
|
|
|
43
43
|
"trends": ["trends_payload.json"],
|
|
44
44
|
"anomalies": ["anomalies_payload.json"],
|
|
45
45
|
"report": ["report_payload.json"],
|
|
46
|
+
"review": ["review_payload.json", "report_payload.json"],
|
|
46
47
|
}.get(task, [])
|
|
47
48
|
for filename in candidates:
|
|
48
49
|
candidate = ai_dir / filename
|
|
@@ -95,6 +96,14 @@ def _write_output(path: Path | None, response: AIResponse) -> None:
|
|
|
95
96
|
path.write_text(response.text + "\n", encoding="utf-8")
|
|
96
97
|
|
|
97
98
|
|
|
99
|
+
def _default_output_for_review(input_path: Path, output: Path | None) -> Path | None:
|
|
100
|
+
if output is not None:
|
|
101
|
+
return output
|
|
102
|
+
if input_path.is_dir():
|
|
103
|
+
return input_path / "ai" / "realism_review.md"
|
|
104
|
+
return None
|
|
105
|
+
|
|
106
|
+
|
|
98
107
|
def _render_response(console: Console, title: str, response: AIResponse, output: Path | None) -> None:
|
|
99
108
|
console.print(Panel(response.text, title=title, border_style="cyan"))
|
|
100
109
|
console.print(
|
|
@@ -438,3 +447,45 @@ def report(
|
|
|
438
447
|
except Exception as exc:
|
|
439
448
|
console.print(f"[bold red]Error:[/bold red] {exc}")
|
|
440
449
|
raise typer.Exit(code=1)
|
|
450
|
+
|
|
451
|
+
|
|
452
|
+
@app.command("review")
|
|
453
|
+
def review(
|
|
454
|
+
input_json: Annotated[Path, typer.Argument(help="Prepared run directory or JSON file with run-level simulation outputs.")],
|
|
455
|
+
mdmp_cert: Annotated[Optional[Path], typer.Option(help="Signed MDMP artifact required before AI analysis can run.")] = None,
|
|
456
|
+
mode: Annotated[str, typer.Option(help="AI backend mode. Use 'local' for Ollama/Ministral.")] = "auto",
|
|
457
|
+
model: Annotated[str, typer.Option(help="Ollama model name to use.")] = DEFAULT_MINISTRAL_MODEL,
|
|
458
|
+
minimum_grade: Annotated[str, typer.Option(help="Minimum MDMP grade required to allow analysis.")] = "research_grade",
|
|
459
|
+
public_key: Annotated[Optional[Path], typer.Option(help="Explicit MDMP public key for verification.")] = None,
|
|
460
|
+
trust_store: Annotated[Optional[Path], typer.Option(help="MDMP trust store for verification.")] = None,
|
|
461
|
+
ollama_host: Annotated[Optional[str], typer.Option(help="Override the Ollama base URL.")] = None,
|
|
462
|
+
timeout_seconds: Annotated[float, typer.Option(help="HTTP timeout for Ollama generation requests.")] = 120.0,
|
|
463
|
+
output: Annotated[Optional[Path], typer.Option(help="Optional file path to save the realism review.")] = None,
|
|
464
|
+
) -> None:
|
|
465
|
+
console = Console()
|
|
466
|
+
try:
|
|
467
|
+
resolved_input, resolved_cert, resolved_public_key = _resolve_cli_inputs(
|
|
468
|
+
task="review",
|
|
469
|
+
input_path=input_json,
|
|
470
|
+
mdmp_cert=mdmp_cert,
|
|
471
|
+
public_key=public_key,
|
|
472
|
+
trust_store=trust_store,
|
|
473
|
+
)
|
|
474
|
+
payload = _load_json_payload(resolved_input, "Input JSON")
|
|
475
|
+
assistant = _build_assistant(
|
|
476
|
+
mdmp_cert=resolved_cert,
|
|
477
|
+
mode=mode,
|
|
478
|
+
model=model,
|
|
479
|
+
minimum_grade=minimum_grade,
|
|
480
|
+
public_key=resolved_public_key,
|
|
481
|
+
trust_store=trust_store,
|
|
482
|
+
ollama_host=ollama_host,
|
|
483
|
+
timeout_seconds=timeout_seconds,
|
|
484
|
+
)
|
|
485
|
+
resolved_output = _default_output_for_review(input_json, output)
|
|
486
|
+
response = assistant.review_realism(payload)
|
|
487
|
+
_write_output(resolved_output, response)
|
|
488
|
+
_render_response(console, "IINTS AI Realism Review", response, resolved_output)
|
|
489
|
+
except Exception as exc:
|
|
490
|
+
console.print(f"[bold red]Error:[/bold red] {exc}")
|
|
491
|
+
raise typer.Exit(code=1)
|
iints/ai/prepare.py
CHANGED
|
@@ -97,6 +97,13 @@ def _sample_trace(df: pd.DataFrame, *, max_rows: int = 48) -> list[dict[str, Any
|
|
|
97
97
|
return [_normalize_series_record(record) for record in sampled.to_dict(orient="records")]
|
|
98
98
|
|
|
99
99
|
|
|
100
|
+
def _max_glucose_delta_per_step(df: pd.DataFrame, glucose_column: str) -> float:
|
|
101
|
+
clean = pd.to_numeric(df[glucose_column], errors="coerce").dropna()
|
|
102
|
+
if clean.empty or len(clean) < 2:
|
|
103
|
+
return 0.0
|
|
104
|
+
return float(clean.diff().abs().dropna().max())
|
|
105
|
+
|
|
106
|
+
|
|
100
107
|
def _position_for_label(df: pd.DataFrame, label: Any) -> int:
|
|
101
108
|
location = df.index.get_loc(label)
|
|
102
109
|
if isinstance(location, int):
|
|
@@ -166,9 +173,12 @@ def _build_summary(df: pd.DataFrame, run_metadata: dict[str, Any], audit_summary
|
|
|
166
173
|
"mean_glucose_mgdl": _normalize_value(float(glucose.mean())),
|
|
167
174
|
"min_glucose_mgdl": _normalize_value(float(glucose.min())),
|
|
168
175
|
"max_glucose_mgdl": _normalize_value(float(glucose.max())),
|
|
176
|
+
"max_glucose_delta_per_step_mgdl": _normalize_value(_max_glucose_delta_per_step(df, glucose_column)),
|
|
169
177
|
"time_in_range_70_180_pct": _normalize_value(_time_in_band_pct(glucose, 70.0, 180.0)),
|
|
170
178
|
"time_below_70_pct": _normalize_value(float((glucose < 70.0).mean() * 100.0)),
|
|
179
|
+
"time_below_54_pct": _normalize_value(float((glucose < 54.0).mean() * 100.0)),
|
|
171
180
|
"time_above_180_pct": _normalize_value(float((glucose > 180.0).mean() * 100.0)),
|
|
181
|
+
"time_above_250_pct": _normalize_value(float((glucose > 250.0).mean() * 100.0)),
|
|
172
182
|
"delivered_insulin_total_units": _normalize_value(_safe_sum(df, "delivered_insulin_units")),
|
|
173
183
|
"recommended_insulin_total_units": _normalize_value(_safe_sum(df, "algo_recommended_insulin_units")),
|
|
174
184
|
"safety_trigger_count": _bool_sum(df, "safety_triggered"),
|
|
@@ -228,6 +238,23 @@ def _build_payloads(
|
|
|
228
238
|
"trace_sample": trace_sample,
|
|
229
239
|
"baseline_comparison": baseline_comparison,
|
|
230
240
|
},
|
|
241
|
+
"review_payload.json": {
|
|
242
|
+
**common,
|
|
243
|
+
"audit_summary": audit_summary,
|
|
244
|
+
"baseline_comparison": baseline_comparison,
|
|
245
|
+
"trace_sample": trace_sample,
|
|
246
|
+
"review_focus": {
|
|
247
|
+
"goal": "Judge whether the simulation or imported dataset looks physiologically plausible and internally coherent.",
|
|
248
|
+
"checks": [
|
|
249
|
+
"glucose range plausibility",
|
|
250
|
+
"excursion size and recovery behavior",
|
|
251
|
+
"time in range and severe hypo/hyper exposure",
|
|
252
|
+
"insulin delivery realism relative to observed glucose behavior",
|
|
253
|
+
"safety trigger and override consistency",
|
|
254
|
+
],
|
|
255
|
+
},
|
|
256
|
+
"run_manifest": run_manifest,
|
|
257
|
+
},
|
|
231
258
|
"step_riskiest.json": {
|
|
232
259
|
**common,
|
|
233
260
|
**risk_payload,
|
iints/ai/prompts.py
CHANGED
|
@@ -4,7 +4,13 @@ import json
|
|
|
4
4
|
from typing import Any, Literal
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
TaskName = Literal[
|
|
7
|
+
TaskName = Literal[
|
|
8
|
+
"explain_decision",
|
|
9
|
+
"analyze_trends",
|
|
10
|
+
"detect_anomalies",
|
|
11
|
+
"generate_report",
|
|
12
|
+
"review_realism",
|
|
13
|
+
]
|
|
8
14
|
MAX_PROMPT_PAYLOAD_CHARS = 12000
|
|
9
15
|
|
|
10
16
|
SYSTEM_PROMPT = (
|
|
@@ -52,6 +58,18 @@ TASK_TEMPLATES: dict[TaskName, str] = {
|
|
|
52
58
|
"5. Research-only conclusion\n\n"
|
|
53
59
|
"Input JSON:\n{data}"
|
|
54
60
|
),
|
|
61
|
+
"review_realism": (
|
|
62
|
+
"Review this simulation or imported-data payload and judge whether the results look physiologically plausible for research use.\n"
|
|
63
|
+
"Be conservative and do not overclaim. If the payload is incomplete, say so clearly.\n"
|
|
64
|
+
"Respond in markdown with these sections:\n"
|
|
65
|
+
"1. Overall realism verdict (Likely realistic / Needs review / Likely unrealistic)\n"
|
|
66
|
+
"2. Strong realism signals\n"
|
|
67
|
+
"3. Questionable or unrealistic patterns\n"
|
|
68
|
+
"4. Concrete feedback points the SDK developer can improve\n"
|
|
69
|
+
"5. Suggested follow-up validation checks\n\n"
|
|
70
|
+
"Focus on glycemic ranges, excursion patterns, insulin behavior, safety overrides, and whether the data looks internally coherent.\n\n"
|
|
71
|
+
"Input JSON:\n{data}"
|
|
72
|
+
),
|
|
55
73
|
}
|
|
56
74
|
|
|
57
75
|
|
iints/analysis/booth_demo.py
CHANGED
|
@@ -196,6 +196,7 @@ def _build_jury_brief(
|
|
|
196
196
|
"```bash",
|
|
197
197
|
"iints ai local-check --model ministral-3:3b",
|
|
198
198
|
f"iints ai report {run_outputs['03_supervisor_override']['output_dir']} --model ministral-3:3b",
|
|
199
|
+
f"iints ai review {run_outputs['03_supervisor_override']['output_dir']} --model ministral-3:3b",
|
|
199
200
|
f"iints ai explain {run_outputs['03_supervisor_override']['output_dir']} --model ministral-3:3b",
|
|
200
201
|
"```",
|
|
201
202
|
"",
|
|
@@ -247,6 +248,7 @@ def _build_commands_markdown(
|
|
|
247
248
|
"```bash\n"
|
|
248
249
|
"iints ai local-check --model ministral-3:3b\n"
|
|
249
250
|
f"iints ai report {supervisor_dir} --model ministral-3:3b\n"
|
|
251
|
+
f"iints ai review {supervisor_dir} --model ministral-3:3b\n"
|
|
250
252
|
f"iints ai explain {supervisor_dir} --model ministral-3:3b\n"
|
|
251
253
|
"```\n"
|
|
252
254
|
)
|
|
@@ -296,6 +298,7 @@ def _build_live_demo_script_text(
|
|
|
296
298
|
"- If Ollama is ready, run:\n"
|
|
297
299
|
" iints ai local-check --model ministral-3:3b\n"
|
|
298
300
|
f" iints ai report {run_outputs['03_supervisor_override']['output_dir']} --model ministral-3:3b\n"
|
|
301
|
+
f" iints ai review {run_outputs['03_supervisor_override']['output_dir']} --model ministral-3:3b\n"
|
|
299
302
|
f" iints ai explain {run_outputs['03_supervisor_override']['output_dir']} --model ministral-3:3b\n"
|
|
300
303
|
"- Say: the local model explains the result, but only after the SDK has prepared the run artifacts.\n\n"
|
|
301
304
|
"7. IF THE JURY ASKS WHY THIS MATTERS\n"
|
|
@@ -202,6 +202,23 @@ def _prepare_ai_payloads(
|
|
|
202
202
|
"profile_24h": profile_records,
|
|
203
203
|
"trace_sample": trace_sample,
|
|
204
204
|
},
|
|
205
|
+
"review_payload.json": {
|
|
206
|
+
**common,
|
|
207
|
+
"daily_summary": daily_records,
|
|
208
|
+
"profile_24h": profile_records,
|
|
209
|
+
"trace_sample": trace_sample,
|
|
210
|
+
"top_alerts": alert_counts,
|
|
211
|
+
"top_sensor_exceptions": sensor_exception_counts,
|
|
212
|
+
"review_focus": {
|
|
213
|
+
"goal": "Judge whether the imported glucose history looks internally coherent and physiologically plausible.",
|
|
214
|
+
"checks": [
|
|
215
|
+
"time in range versus extreme exposure",
|
|
216
|
+
"daily variability and day-to-day stability",
|
|
217
|
+
"consistency between glucose, carbs, and insulin logs",
|
|
218
|
+
"frequency of alerts and sensor exceptions",
|
|
219
|
+
],
|
|
220
|
+
},
|
|
221
|
+
},
|
|
205
222
|
"anomalies_payload.json": {
|
|
206
223
|
**common,
|
|
207
224
|
"lowest_readings": [
|
|
@@ -254,6 +254,7 @@ def _build_jury_talk_track(summary: dict[str, Any]) -> str:
|
|
|
254
254
|
"```bash",
|
|
255
255
|
"iints ai local-check --model ministral-3:3b",
|
|
256
256
|
f"iints ai report {summary['scenarios'][2]['output_dir']} --model ministral-3:3b",
|
|
257
|
+
f"iints ai review {summary['scenarios'][2]['output_dir']} --model ministral-3:3b",
|
|
257
258
|
f"iints ai explain {summary['scenarios'][2]['output_dir']} --model ministral-3:3b",
|
|
258
259
|
"```",
|
|
259
260
|
"",
|
|
@@ -304,6 +305,7 @@ def _build_run_commands(summary: dict[str, Any]) -> str:
|
|
|
304
305
|
"```bash\n"
|
|
305
306
|
"iints ai local-check --model ministral-3:3b\n"
|
|
306
307
|
f"iints ai report {supervisor_dir} --model ministral-3:3b\n"
|
|
308
|
+
f"iints ai review {supervisor_dir} --model ministral-3:3b\n"
|
|
307
309
|
f"iints ai explain {supervisor_dir} --model ministral-3:3b\n"
|
|
308
310
|
"```\n"
|
|
309
311
|
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: iints-sdk-python35
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.5.0
|
|
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
|
|
@@ -187,6 +187,7 @@ cd iints_quickstart
|
|
|
187
187
|
iints presets run --name baseline_t1d --algo algorithms/example_algorithm.py
|
|
188
188
|
iints ai prepare results/<run_id>
|
|
189
189
|
iints ai report results/<run_id>
|
|
190
|
+
iints ai review results/<run_id>
|
|
190
191
|
```
|
|
191
192
|
|
|
192
193
|
For imported CareLink data, the matching flow is:
|
|
@@ -197,6 +198,7 @@ iints carelink-workbench \
|
|
|
197
198
|
--output-dir results/personal_carelink
|
|
198
199
|
|
|
199
200
|
iints ai report results/personal_carelink --model ministral-3:3b
|
|
201
|
+
iints ai review results/personal_carelink --model ministral-3:3b
|
|
200
202
|
iints ai trends results/personal_carelink --model ministral-3:3b
|
|
201
203
|
iints ai explain results/personal_carelink --model ministral-3:3b
|
|
202
204
|
```
|
|
@@ -217,7 +219,7 @@ Notes:
|
|
|
217
219
|
- `iints ai prepare <run_dir>` now creates AI-ready JSON payloads and, when MDMP is installed, a local development certificate plus keypair in `<run_dir>/ai/`.
|
|
218
220
|
- `iints carelink-workbench` now does the same kind of AI preparation for imported personal CareLink data and also generates a dashboard PNG/HTML pair.
|
|
219
221
|
- If Ollama closes the connection during generation, the SDK now surfaces an explicit recovery hint and points users toward `ministral-3:3b` for lower-memory systems.
|
|
220
|
-
- After `iints ai prepare`, you can point `iints ai explain|trends|anomalies|report` directly at the run directory.
|
|
222
|
+
- After `iints ai prepare`, you can point `iints ai explain|trends|anomalies|report|review` directly at the run directory.
|
|
221
223
|
- After `iints carelink-workbench`, you can point those same AI commands directly at the generated CareLink workspace directory.
|
|
222
224
|
- Output is research-only and not medical advice.
|
|
223
225
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
iints/__init__.py,sha256=
|
|
1
|
+
iints/__init__.py,sha256=z1vghb7fXV-f_SfNMaLazT6wXOcRBKvoqTSAlrZYHOg,6879
|
|
2
2
|
iints/demo_assets.py,sha256=h9bXB6aBptwtvd2drAjg4wp3XE7zXuESxVG8vJgSUJU,2071
|
|
3
3
|
iints/highlevel.py,sha256=R_h8mJ8Wjnvt65QraYLfmaNl0-nZ2W59DDvH585l5No,20490
|
|
4
4
|
iints/metrics.py,sha256=O9hqOqJpUhUJDqsbfuqRMS9dkV97gzcgh3Y2jYUqHzg,907
|
|
5
5
|
iints/ai/__init__.py,sha256=nyRDcFfSHI4a3NbTvySipFc3_inqRMEsr6xIEipWuyo,575
|
|
6
|
-
iints/ai/assistant.py,sha256=
|
|
7
|
-
iints/ai/cli.py,sha256=
|
|
6
|
+
iints/ai/assistant.py,sha256=yCUnltxBcBzXSSv8g-W4kCAFOL22Dc4CuDVItMXBnNw,4465
|
|
7
|
+
iints/ai/cli.py,sha256=UE1n1emtbqsitxXwzUXI840Y2dkupdiGuZYe6X2x_FA,21583
|
|
8
8
|
iints/ai/mdmp_guard.py,sha256=ClMIOJwOs2JGYL2nostj2LfypXDwZVqwF3AifJISmPc,4194
|
|
9
9
|
iints/ai/model_catalog.py,sha256=gRW-i4eaXkrjX3mIKJlGzHqzU75lpIulEFKQsCX11CI,1804
|
|
10
|
-
iints/ai/prepare.py,sha256
|
|
11
|
-
iints/ai/prompts.py,sha256=
|
|
10
|
+
iints/ai/prepare.py,sha256=-MS8zI4INwO2pcNRcpLUXECdfXnQNC5_YfoRgoNefLM,14314
|
|
11
|
+
iints/ai/prompts.py,sha256=CK6YUhUUzkYeHxKBBu646mRit1CUm2XU5t2ZF8jNkpk,3782
|
|
12
12
|
iints/ai/backends/__init__.py,sha256=EAJRZS8G0DK7fffw_LHio9DkyYHwtzvz2Jo7AXk7pk4,303
|
|
13
13
|
iints/ai/backends/base.py,sha256=BLgP03X-jebYkF9D5n5crawoPBmy3RSh4q3jaT8a9XM,274
|
|
14
14
|
iints/ai/backends/mistral_api.py,sha256=dousHnzgzuik49822H8nCclYv5NoxHpTMLwtZPVj_TM,507
|
|
@@ -16,8 +16,8 @@ iints/ai/backends/ollama.py,sha256=FN8_rlppdxficuK7-i_uoDtvFoo3W0yetSo_-IxVqbs,1
|
|
|
16
16
|
iints/analysis/__init__.py,sha256=qz0Su0PtICIBLlUgfq37YW4IkK6BuyfOWaqC6t4NKQM,640
|
|
17
17
|
iints/analysis/algorithm_xray.py,sha256=-AtXkZsgnsiFQ_K-IozjIDWkq-dDn0i0zmqWVMhINP4,15952
|
|
18
18
|
iints/analysis/baseline.py,sha256=PCFVb5vX0lYKChZvVk-8I_B5NLQQwGyx7Y6M3XjpIEY,3458
|
|
19
|
-
iints/analysis/booth_demo.py,sha256=
|
|
20
|
-
iints/analysis/carelink_workbench.py,sha256=
|
|
19
|
+
iints/analysis/booth_demo.py,sha256=MwDoAWQQwSo3CBc4O08HV7cxm5TSyCqAv7ZxF-kQZPU,18186
|
|
20
|
+
iints/analysis/carelink_workbench.py,sha256=N94z8Hf7fmipqh7mJbatih2mad5_eaEqoninYQhglC0,29026
|
|
21
21
|
iints/analysis/clinical_benchmark.py,sha256=FP3L2Ntub6vpWxCwI91BSQ-Y9pTuFqkt2SYjb91Q7DE,7766
|
|
22
22
|
iints/analysis/clinical_metrics.py,sha256=TUfAkLMMXx8s2hzjK-kq_939leXlAeOeueuAs9jV1KY,18645
|
|
23
23
|
iints/analysis/clinical_tir_analyzer.py,sha256=FZMnsrkzaq6bbXrlAE3nCRlpybMeU7lPEPfYDWs1F5o,5562
|
|
@@ -130,7 +130,7 @@ iints/scenarios/generator.py,sha256=OJgsBFqByX5wbvaf_Qr1a9Vz8mY7CPvjFJLPBJNfA4Y,
|
|
|
130
130
|
iints/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
131
131
|
iints/templates/default_algorithm.py,sha256=Wmo2qByEfH84XZYnMZkSjYPAlTaob71mbUtXGRfxi8s,3486
|
|
132
132
|
iints/templates/demos/__init__.py,sha256=M84ipt4rGkG6Xx8Tb1E4P3fbeTKIvNmz5b_KXNFRNNY,63
|
|
133
|
-
iints/templates/demos/live_stage_demo.py,sha256=
|
|
133
|
+
iints/templates/demos/live_stage_demo.py,sha256=hO9ijTIF4-Fd2ZrbCZbwCo2dKkd6SuM0DD716XhEBKU,15138
|
|
134
134
|
iints/templates/scenarios/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
135
135
|
iints/templates/scenarios/chaos_insulin_stacking.json,sha256=SyQsBsXOFvkoOjCgz3mjP3sYVZwoVzRAr9ix9N5pBKY,648
|
|
136
136
|
iints/templates/scenarios/chaos_runaway_ai.json,sha256=x39fkG_kDIknW7J-_WtbIi9Cg-gxrgfDOpWVb5d9Scw,544
|
|
@@ -148,9 +148,9 @@ iints/validation/schemas.py,sha256=uXhiPxyfyvOgCA83ZPBIzlITOu663fWctYxOMXUyf1I,4
|
|
|
148
148
|
iints/visualization/__init__.py,sha256=OdxVHDpY-9bDt8DTWWd-dspn1p0O9T908Cck-IGFaiM,640
|
|
149
149
|
iints/visualization/cockpit.py,sha256=Y7hoJXcTEWQ8yLiU5X5abT58uqGGsQllftXJwqerG1E,25057
|
|
150
150
|
iints/visualization/uncertainty_cloud.py,sha256=I5nNzSitgai21rkul31YNtJriSEmCeTsW0GWW2HUskY,19848
|
|
151
|
-
iints_sdk_python35-1.
|
|
152
|
-
iints_sdk_python35-1.
|
|
153
|
-
iints_sdk_python35-1.
|
|
151
|
+
iints_sdk_python35-1.5.0.dist-info/licenses/LICENSE,sha256=zRi7JhRYmheo_8WR0mEJHztDRefcQKo2tS2JLXf9rlw,8978
|
|
152
|
+
iints_sdk_python35-1.5.0.dist-info/licenses/LICENSE-MIT-IINTS-LEGACY,sha256=HzvJLhuEHRUlY9Sl1PZ3-jG0ZBOuMXtbrMF1la02M3E,1078
|
|
153
|
+
iints_sdk_python35-1.5.0.dist-info/licenses/NOTICE,sha256=4sQjo6BqDGi1abL9Gp9W2F6851cpzE3jvIl1cpHuO0I,678
|
|
154
154
|
mdmp_ai/__init__.py,sha256=chKE8_Wo7oxj5CFqZ9NcyLjAHM5npvaKkLvTdBPtjo8,160
|
|
155
155
|
mdmp_ai/lineage.py,sha256=LY_sshoVTLPQfhP3ZDLv0drdBoxGW_YXbdAb_XMAllQ,7065
|
|
156
156
|
mdmp_core/__init__.py,sha256=5kvhQwYy-puaztBzzohBex_wiv2YB4Ui9MWk1hTiVDA,3768
|
|
@@ -158,7 +158,7 @@ mdmp_core/audit.py,sha256=tR-YBlpDNpa5GnldcE9vWIwYq9H1JaCaNVo7SvmWXyQ,6664
|
|
|
158
158
|
mdmp_core/bias_hooks.py,sha256=9HOoBGQhnVIWym-L58-x1UQ071c1IJ_8E-_PmhcaeVI,1187
|
|
159
159
|
mdmp_core/bundle.py,sha256=8z3sDwCGVXm11sW7f3QOXq4FtQ7Gll8HM0EhPKobt5I,4349
|
|
160
160
|
mdmp_core/certification.py,sha256=AV7rXFK--4ykUCzeyXAq_oxv55mkIn_EwNenqeXdRL8,1333
|
|
161
|
-
mdmp_core/cli.py,sha256=
|
|
161
|
+
mdmp_core/cli.py,sha256=HPvT6XlG90Flopwz659AH2pYcKa6Vo3bOY3fFQiS-lU,57115
|
|
162
162
|
mdmp_core/compare.py,sha256=rHHQC2GZtsTXnttPG7QNfXJh-buMsWiVrrpESQjrAxo,1955
|
|
163
163
|
mdmp_core/conformance.py,sha256=oZ39zBGZuaxaDNUDxqf3IwEE93SPpL4VmL98Agk-yGw,17313
|
|
164
164
|
mdmp_core/contracts.py,sha256=hQ9bKJz-1pGGYBH2TqqE262mx3oXpGm2tj5SFn3HXnY,5687
|
|
@@ -190,8 +190,8 @@ mdmp_integrations/__init__.py,sha256=r5z2RODMmZCFHkvAOahcL576S1Dp0AuyQXQAvefzVQQ
|
|
|
190
190
|
mdmp_integrations/dvc.py,sha256=1UVL_It-Xp6ad8G66ubm9YaF0O9n31EMiJ466zPK9vY,740
|
|
191
191
|
mdmp_integrations/mlflow.py,sha256=YiT6LKu_sN2k1Gzz4U4kqby_JNhQUiOi38AO6sCPvPg,367
|
|
192
192
|
mdmp_integrations/wandb.py,sha256=r1-gXYkIKN396K0VU6uuqk1SWTNGqto1Q9HZ-RKBEss,496
|
|
193
|
-
iints_sdk_python35-1.
|
|
194
|
-
iints_sdk_python35-1.
|
|
195
|
-
iints_sdk_python35-1.
|
|
196
|
-
iints_sdk_python35-1.
|
|
197
|
-
iints_sdk_python35-1.
|
|
193
|
+
iints_sdk_python35-1.5.0.dist-info/METADATA,sha256=AXWr_MPHfZZnQrIy44KH26Hia0O2KKNeAEuC9TtL06Q,14794
|
|
194
|
+
iints_sdk_python35-1.5.0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
|
|
195
|
+
iints_sdk_python35-1.5.0.dist-info/entry_points.txt,sha256=Pt1MIezvbtgsfJr25i4CDPMMFzJei8thPPcVy4aCpe8,603
|
|
196
|
+
iints_sdk_python35-1.5.0.dist-info/top_level.txt,sha256=yCCM5o2LCIQj9aEAZ-xa_EVxiiEhPNPDEgaABFNZGvs,55
|
|
197
|
+
iints_sdk_python35-1.5.0.dist-info/RECORD,,
|
mdmp_core/cli.py
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|