feat: server about info

This commit is contained in:
2026-07-09 10:09:39 +02:00
parent 60126073eb
commit 52a9765182
4 changed files with 33 additions and 2 deletions
+11
View File
@@ -1,5 +1,6 @@
import asyncio
import hmac
import importlib
import io
import json
import os
@@ -722,6 +723,16 @@ def initialise_detector(self):
raise
@app.get("/about/running_version")
async def running_version() -> str:
return importlib.metadata.version("aare")
@app.get("/about/server_file_path")
async def server_file() -> str:
return __file__
@app.get("/local_contact/simulation_state")
async def local_contact_simulation_state(token: str = Depends(oauth2_scheme)) -> dict:
"""
+10 -1
View File
@@ -1,18 +1,27 @@
import importlib
import sys
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from aare.gui.threads.daq_worker import DAQWorker
def about_text():
def about_text(client: DAQWorker):
from aare.gui import gui
try:
version = importlib.metadata.version("aaredaq")
except Exception:
version = "Not found - package is not installed into the environment."
server_version, server_file_path = client.server_about_info()
return f"""Aare Macromolecular Crystallography GUI
Copyright: Paul Scherrer Institute 2023-2026
---
Version: {version}
GUI file: {gui.__file__}
Interpreter: {sys.executable}
Server version: {server_version}
Server file: {server_file_path}
"""
+1 -1
View File
@@ -1606,7 +1606,7 @@ class MainWindow(QMainWindow):
self.video_tab.setCurrentIndex(0)
def show_about_dialog(self):
QMessageBox.about(self, "About", about_text())
QMessageBox.about(self, "About", about_text(self.daq))
def show_controls_help(self) -> None:
if self._controls_help_dialog is None:
+11
View File
@@ -356,6 +356,17 @@ class DAQWorker(QObject):
reply = self.__net_manager.get(request)
reply.finished.connect(lambda: self.handle_status_response(reply))
def server_about_info(self) -> tuple[str, str]:
version_request = QNetworkRequest(QUrl(f"{self.__base_url}/about/version"))
version_reply = self.__net_manager.get(version_request)
file_request = QNetworkRequest(QUrl(f"{self.__base_url}/about/server_file_path"))
file_reply = self.__net_manager.get(file_request)
version = (
str(version_reply.readAll()) if version_reply.waitForReadyRead(500) else "Not connected"
)
file = str(file_reply.readAll()) if file_reply.waitForReadyRead(500) else "Not connected"
return version, file
_SELF_SIGNED_ERRORS = {
QSslError.SslError.SelfSignedCertificate,
QSslError.SslError.SelfSignedCertificateInChain,