feat: server about info
This commit is contained in:
@@ -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
@@ -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}
|
||||
"""
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user