iints-sdk-python35 1.5.20__py3-none-any.whl → 1.5.23__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 +9 -3
- iints/utils/plotting.py +5 -0
- iints_desktop/launcher.py +2 -1
- iints_desktop/qt_app.py +5 -4
- {iints_sdk_python35-1.5.20.dist-info → iints_sdk_python35-1.5.23.dist-info}/METADATA +8 -1
- {iints_sdk_python35-1.5.20.dist-info → iints_sdk_python35-1.5.23.dist-info}/RECORD +13 -13
- {iints_sdk_python35-1.5.20.dist-info → iints_sdk_python35-1.5.23.dist-info}/WHEEL +0 -0
- {iints_sdk_python35-1.5.20.dist-info → iints_sdk_python35-1.5.23.dist-info}/entry_points.txt +0 -0
- {iints_sdk_python35-1.5.20.dist-info → iints_sdk_python35-1.5.23.dist-info}/licenses/LICENSE +0 -0
- {iints_sdk_python35-1.5.20.dist-info → iints_sdk_python35-1.5.23.dist-info}/licenses/LICENSE-MIT-IINTS-LEGACY +0 -0
- {iints_sdk_python35-1.5.20.dist-info → iints_sdk_python35-1.5.23.dist-info}/licenses/NOTICE +0 -0
- {iints_sdk_python35-1.5.20.dist-info → iints_sdk_python35-1.5.23.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.23"
|
|
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
|
@@ -854,9 +854,15 @@ class ClinicalReportGenerator:
|
|
|
854
854
|
ax.set_ylabel("Sensor glucose (mg/dL)")
|
|
855
855
|
ax.grid(True, alpha=0.22)
|
|
856
856
|
ax.legend(loc="upper left", fontsize=7, frameon=True)
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
857
|
+
try:
|
|
858
|
+
fig.tight_layout()
|
|
859
|
+
fig.savefig(output_path, dpi=260, bbox_inches="tight")
|
|
860
|
+
except ValueError as exc:
|
|
861
|
+
logger.warning("Clinical validation plot layout failed; saving fallback layout: %s", exc)
|
|
862
|
+
fig.subplots_adjust(left=0.08, right=0.98, top=0.9, bottom=0.12)
|
|
863
|
+
fig.savefig(output_path, dpi=260)
|
|
864
|
+
finally:
|
|
865
|
+
plt.close(fig)
|
|
860
866
|
|
|
861
867
|
@staticmethod
|
|
862
868
|
def _metric_delta(current: float, target: float, higher_is_better: bool = True) -> str:
|
iints/utils/plotting.py
CHANGED
|
@@ -54,6 +54,11 @@ def apply_plot_style(
|
|
|
54
54
|
"ytick.labelsize": 10,
|
|
55
55
|
"axes.spines.top": False,
|
|
56
56
|
"axes.spines.right": False,
|
|
57
|
+
# Scientific styles can enable mathtext tick formatting. Some
|
|
58
|
+
# Matplotlib/macOS combinations then try to parse empty ticklabels
|
|
59
|
+
# during tight_layout(), which can abort report generation.
|
|
60
|
+
"axes.formatter.use_mathtext": False,
|
|
61
|
+
"text.usetex": False,
|
|
57
62
|
}
|
|
58
63
|
)
|
|
59
64
|
return colors
|
iints_desktop/launcher.py
CHANGED
|
@@ -29,7 +29,8 @@ def main() -> int | None:
|
|
|
29
29
|
return qt_main()
|
|
30
30
|
|
|
31
31
|
print(
|
|
32
|
-
"PySide6 is not installed; falling back to the Tkinter desktop app."
|
|
32
|
+
"PySide6 is not installed; falling back to the Tkinter desktop app. "
|
|
33
|
+
'Install the full desktop app with: python -m pip install -U "iints-sdk-python35[full,desktop,mdmp]"',
|
|
33
34
|
file=sys.stderr,
|
|
34
35
|
)
|
|
35
36
|
from iints_desktop.app import main as tk_main
|
iints_desktop/qt_app.py
CHANGED
|
@@ -43,7 +43,7 @@ from iints_desktop.render_3dmol import generate_3dmol_html
|
|
|
43
43
|
|
|
44
44
|
DESKTOP_RELEASE_URL = "https://github.com/python35/IINTS-SDK/releases/tag/desktop-beta-latest"
|
|
45
45
|
UPDATE_DOCS_URL = "https://python35.github.io/IINTS-SDK/APP_INSTALL/"
|
|
46
|
-
PYTHON_SDK_UPDATE_COMMAND = 'python -m pip install -U "iints-sdk-python35[full,desktop
|
|
46
|
+
PYTHON_SDK_UPDATE_COMMAND = 'python -m pip install -U "iints-sdk-python35[full,desktop,mdmp]"'
|
|
47
47
|
ENABLE_EMBEDDED_WEBENGINE = os.environ.get("QT_QPA_PLATFORM") != "offscreen"
|
|
48
48
|
_CRASH_LOG_HANDLE: Any | None = None
|
|
49
49
|
|
|
@@ -55,7 +55,7 @@ def _python_update_command() -> list[str]:
|
|
|
55
55
|
python_executable = "py" if sys.platform.startswith("win") else "python3"
|
|
56
56
|
else:
|
|
57
57
|
python_executable = sys.executable
|
|
58
|
-
return [python_executable, "-m", "pip", "install", "-U", "iints-sdk-python35[full,desktop
|
|
58
|
+
return [python_executable, "-m", "pip", "install", "-U", "iints-sdk-python35[full,desktop,mdmp]"]
|
|
59
59
|
|
|
60
60
|
|
|
61
61
|
def _display_command(command: list[str]) -> str:
|
|
@@ -598,7 +598,7 @@ if _PYSIDE_IMPORT_ERROR is None:
|
|
|
598
598
|
|
|
599
599
|
# Setup keyboard shortcuts
|
|
600
600
|
self.run_shortcut = QShortcut(QKeySequence("Ctrl+R"), self)
|
|
601
|
-
self.run_shortcut.activated.connect(self.
|
|
601
|
+
self.run_shortcut.activated.connect(self._run_selected_workflow)
|
|
602
602
|
self.open_update_docs_button = QPushButton("Open Update Docs")
|
|
603
603
|
self.copy_update_command_button = QPushButton("Copy Update Command")
|
|
604
604
|
self.open_update_terminal_button = QPushButton("Open Update Terminal")
|
|
@@ -3055,7 +3055,8 @@ def main() -> int:
|
|
|
3055
3055
|
if _PYSIDE_IMPORT_ERROR is not None:
|
|
3056
3056
|
message = (
|
|
3057
3057
|
"PySide6 is not installed. Install it with: "
|
|
3058
|
-
'python -m pip install -U -
|
|
3058
|
+
'python -m pip install -U "iints-sdk-python35[full,desktop,mdmp]" '
|
|
3059
|
+
'or, from a source checkout, python -m pip install -U -e ".[full,desktop,mdmp]"'
|
|
3059
3060
|
)
|
|
3060
3061
|
_write_startup_log(message)
|
|
3061
3062
|
raise RuntimeError(message) from _PYSIDE_IMPORT_ERROR
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: iints-sdk-python35
|
|
3
|
-
Version: 1.5.
|
|
3
|
+
Version: 1.5.23
|
|
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
|
|
@@ -71,6 +71,8 @@ Requires-Dist: cryptography<50.0.0,>=42.0.0; extra == "mdmp"
|
|
|
71
71
|
Provides-Extra: desktop
|
|
72
72
|
Requires-Dist: pyinstaller<7.0.0,>=6.11.0; extra == "desktop"
|
|
73
73
|
Requires-Dist: setuptools<81.0.0,>=77.0.0; extra == "desktop"
|
|
74
|
+
Requires-Dist: PySide6<7.0.0,>=6.7.0; extra == "desktop"
|
|
75
|
+
Requires-Dist: plotly<7.0.0,>=5.18.0; extra == "desktop"
|
|
74
76
|
Provides-Extra: desktop-qt
|
|
75
77
|
Requires-Dist: pyinstaller<7.0.0,>=6.11.0; extra == "desktop-qt"
|
|
76
78
|
Requires-Dist: setuptools<81.0.0,>=77.0.0; extra == "desktop-qt"
|
|
@@ -115,7 +117,12 @@ Current beta downloads:
|
|
|
115
117
|
| macOS | [`.dmg`](https://github.com/python35/IINTS-SDK/releases/download/desktop-beta-latest/IINTS-AF-Desktop-Beta-macos.dmg) |
|
|
116
118
|
| Linux | [executable](https://github.com/python35/IINTS-SDK/releases/download/desktop-beta-latest/IINTS-AF-Desktop-Beta-linux-x64) |
|
|
117
119
|
|
|
120
|
+
Python install, including the PySide6 desktop runtime:
|
|
118
121
|
|
|
122
|
+
```bash
|
|
123
|
+
python -m pip install -U "iints-sdk-python35[full,desktop,mdmp]"
|
|
124
|
+
iints-desktop
|
|
125
|
+
```
|
|
119
126
|
|
|
120
127
|
## License
|
|
121
128
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
iints/__init__.py,sha256=
|
|
1
|
+
iints/__init__.py,sha256=ZHLtn-Hrxk9hCJJa_3g9ed-K0CD-nriWAA4bPpNt8aU,11347
|
|
2
2
|
iints/demo_assets.py,sha256=h9bXB6aBptwtvd2drAjg4wp3XE7zXuESxVG8vJgSUJU,2071
|
|
3
3
|
iints/highlevel.py,sha256=ozZ3AOux7a4qhc_WSUhfNbwVb07Tc7XekBfCgBv5qas,23024
|
|
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=6M8ihJHcUwOktUR9gqJfsu7xCRIYNQ0AQN_E0kCsRgw,48842
|
|
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
|
|
@@ -222,7 +222,7 @@ iints/tools/theory_stress_lab.py,sha256=IcV05LmAj-oQCy0-FHHFCXFlH7h5qDLatGdyEXi3
|
|
|
222
222
|
iints/utils/__init__.py,sha256=KGDuOUBT-G2_76sLWJqDhR_nhcgE17ZMGuQxObhy_mo,71
|
|
223
223
|
iints/utils/academic_artifacts.py,sha256=ucMgAtz82Bc3sSn8tPsco4wS8BpZWAd05800DYlL4F8,9663
|
|
224
224
|
iints/utils/csv_safety.py,sha256=KdkBQja6hCVkLgxfqIoSqHa_6djLuxE3wYmjdIj4nuc,881
|
|
225
|
-
iints/utils/plotting.py,sha256=
|
|
225
|
+
iints/utils/plotting.py,sha256=YRP0JIpnyyzq_GidHfrz1CbeRT0jzz6tnj8zCtdZHgw,2097
|
|
226
226
|
iints/utils/run_io.py,sha256=Ipkwe1IgaNwDacJeVuR7jRqCzhbz4so2w-_JvHLN9fQ,5204
|
|
227
227
|
iints/utils/url_safety.py,sha256=X-rkhLYRZ80nZcpxfWgn2WmgD48IUxb2XLNoChrBoFU,1312
|
|
228
228
|
iints/validation/__init__.py,sha256=FQoVu8Dim6j_HubG6F_dOlwDj7k4Iw02YgpyELtGPjc,6852
|
|
@@ -240,12 +240,12 @@ iints_desktop/app.py,sha256=lGown5olPu3XmwpGPJLowd1BTqVSk3uvgOmNOxX9bFQ,12997
|
|
|
240
240
|
iints_desktop/cocoa_app.py,sha256=0GluDzgnvUXXZ6qCl5Y2awDtuspGq1Ihz0Aqw3AZDDM,13351
|
|
241
241
|
iints_desktop/engine.py,sha256=lp980q7VXGHSXAwVuTLdEcRRPNXDNFSO75TOZX7u8L4,14629
|
|
242
242
|
iints_desktop/fetcher.py,sha256=3j1t4Z40PWdx-GzqIJQbzEqwk4_Jt3Bd_1FJq36KGuo,2468
|
|
243
|
-
iints_desktop/launcher.py,sha256=
|
|
243
|
+
iints_desktop/launcher.py,sha256=WZBH9-6B2Q9jCw-F1n3hFahLuwvkjb_imuM-A6foKz4,1082
|
|
244
244
|
iints_desktop/local_ai.py,sha256=iLMfRVo9rMRojwSXAeML8FUQxgtqAQoe8Aud4AFwh8A,11360
|
|
245
245
|
iints_desktop/mdmp.py,sha256=23RVTD-dhnWyFhJDsm6rGkJ-3TzCra-LpGh3cCEpqa0,2882
|
|
246
246
|
iints_desktop/molecule_viewer.py,sha256=cyGphzyfWHzxMUJBerLSsJg-ieFwY3HVaiMX0cz-KnQ,8794
|
|
247
247
|
iints_desktop/molecules.py,sha256=pP2Aonqzb_AQe_JBRe4yScKdJ2aEG0y8Xso6QxtaVdE,9977
|
|
248
|
-
iints_desktop/qt_app.py,sha256=
|
|
248
|
+
iints_desktop/qt_app.py,sha256=nNxzsfQJOecKFkfz94DyZCBzGvrnsZYcTKDQiUYKLKU,142570
|
|
249
249
|
iints_desktop/render_3dmol.py,sha256=yUlLaxII4v6wmSVQY87ntkgE9koHvINyTpKhU0QDCG0,2238
|
|
250
250
|
iints_desktop/results.py,sha256=8RzweLw1QSgIQnnb_sor045RV6PgFcDPPCyZ4BpboqE,5640
|
|
251
251
|
iints_desktop/assets/alphafold/AF-P01275-F1-model_v4.cif,sha256=5ZRnfI-AhcuhuSHUk5A_8ASn8pAnSauz1l_RjpPIos4,181229
|
|
@@ -258,9 +258,9 @@ iints_desktop/assets/alphafold/glucagon_3D.png,sha256=MnFj0ALjH_k4i_OeIG1EuXyM8s
|
|
|
258
258
|
iints_desktop/assets/alphafold/glut4_3D.png,sha256=CvEJygGlQIXqWIipMoufS_NejWhl3-ISSA8UQK1vrJ4,806533
|
|
259
259
|
iints_desktop/assets/alphafold/insr_3D.png,sha256=aq6xWr00sX_PmslMyiM9wCRMRw0WhUIpW6LW6NB2mvw,872797
|
|
260
260
|
iints_desktop/assets/alphafold/insulin_3D.png,sha256=u1pJgCciaJYID7KghwJ3c3GK41kEkADf-am7-Ctm2LE,64492
|
|
261
|
-
iints_sdk_python35-1.5.
|
|
262
|
-
iints_sdk_python35-1.5.
|
|
263
|
-
iints_sdk_python35-1.5.
|
|
261
|
+
iints_sdk_python35-1.5.23.dist-info/licenses/LICENSE,sha256=pmk2DGE1Cj9zr5hfus2x_sILJBnIBR1KvJWp4OXYqc0,8978
|
|
262
|
+
iints_sdk_python35-1.5.23.dist-info/licenses/LICENSE-MIT-IINTS-LEGACY,sha256=HzvJLhuEHRUlY9Sl1PZ3-jG0ZBOuMXtbrMF1la02M3E,1078
|
|
263
|
+
iints_sdk_python35-1.5.23.dist-info/licenses/NOTICE,sha256=4sQjo6BqDGi1abL9Gp9W2F6851cpzE3jvIl1cpHuO0I,678
|
|
264
264
|
mdmp_ai/__init__.py,sha256=chKE8_Wo7oxj5CFqZ9NcyLjAHM5npvaKkLvTdBPtjo8,160
|
|
265
265
|
mdmp_ai/lineage.py,sha256=LY_sshoVTLPQfhP3ZDLv0drdBoxGW_YXbdAb_XMAllQ,7065
|
|
266
266
|
mdmp_core/__init__.py,sha256=5kvhQwYy-puaztBzzohBex_wiv2YB4Ui9MWk1hTiVDA,3768
|
|
@@ -300,8 +300,8 @@ mdmp_integrations/__init__.py,sha256=r5z2RODMmZCFHkvAOahcL576S1Dp0AuyQXQAvefzVQQ
|
|
|
300
300
|
mdmp_integrations/dvc.py,sha256=1UVL_It-Xp6ad8G66ubm9YaF0O9n31EMiJ466zPK9vY,740
|
|
301
301
|
mdmp_integrations/mlflow.py,sha256=YiT6LKu_sN2k1Gzz4U4kqby_JNhQUiOi38AO6sCPvPg,367
|
|
302
302
|
mdmp_integrations/wandb.py,sha256=r1-gXYkIKN396K0VU6uuqk1SWTNGqto1Q9HZ-RKBEss,496
|
|
303
|
-
iints_sdk_python35-1.5.
|
|
304
|
-
iints_sdk_python35-1.5.
|
|
305
|
-
iints_sdk_python35-1.5.
|
|
306
|
-
iints_sdk_python35-1.5.
|
|
307
|
-
iints_sdk_python35-1.5.
|
|
303
|
+
iints_sdk_python35-1.5.23.dist-info/METADATA,sha256=EVCR5pb5nuoMThHGyQjQ95yI5eZUdhDFPS1nAgkz_dE,6377
|
|
304
|
+
iints_sdk_python35-1.5.23.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
305
|
+
iints_sdk_python35-1.5.23.dist-info/entry_points.txt,sha256=E0M7J7Kham72tlGuT1vKDeFvFM7hpMSHFYKelgjFRnA,751
|
|
306
|
+
iints_sdk_python35-1.5.23.dist-info/top_level.txt,sha256=LSZPi8SHOphWaSuSm6ztHLroHQHEHeuEuDh7PgstC3k,69
|
|
307
|
+
iints_sdk_python35-1.5.23.dist-info/RECORD,,
|
|
File without changes
|
{iints_sdk_python35-1.5.20.dist-info → iints_sdk_python35-1.5.23.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{iints_sdk_python35-1.5.20.dist-info → iints_sdk_python35-1.5.23.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|