4 Commits

Author SHA1 Message Date
bba3ecf4c1 hdf tuneup 2024-07-03 16:19:24 +02:00
0d763f267c self.appversion for hdf 2024-07-03 11:27:26 +02:00
e785db369f Merge remote-tracking branch 'origin/master' 2024-07-03 09:49:34 +02:00
4783ec5a32 base, elog destination and file naming change 2024-07-03 09:02:11 +02:00
4 changed files with 51 additions and 43 deletions

65
base.py
View File

@@ -75,6 +75,7 @@ class BaseWindow(QMainWindow):
QThread.__init__(self)
self.parent = parent
self.settings = self.parent.settings
self.folder_name = folder_name
self.time_in_seconds = time_in_seconds
self.reanalysis_time = reanalysis_time
@@ -109,17 +110,28 @@ class BaseWindow(QMainWindow):
name = name_base + "_{0}".format(
idx) if idx > 0 else name_base
save_dest = (folder_name + date_str + '_' + name +
'.png')
'.png')
_dirname = os.path.dirname(save_dest)
if not os.path.exists(save_dest):
if all_fig_data[canvas][idx] is not None:
_dirname = os.path.dirname(save_dest)
#print("DIRECTORY NAME IS ", _dirname)
#print("exists?", os.path.exists(_dirname),
#os.path.exists(save_dest))
if not os.path.isfile(save_dest):
if all_fig_data[canvas][idx] is not None:
if not os.path.exists(_dirname):
os.makedirs(_dirname)
if os.access(_dirname, os.W_OK):
all_fig_data[canvas][idx].savefig(save_dest)
elif not write_message_fired:
_mess = ("Do not have write permission " +
@@ -229,8 +241,8 @@ class BaseWindow(QMainWindow):
self.parent.from_hdf = from_hdf
print("t=========================>", ts_in_seconds, " // ", now_in_seconds)
print("from hdf5=========================>", from_hdf)
print("t", ts_in_seconds, now_in_seconds)
print("from hdf5, dialog=====>", from_hdf, self.from_dialog)
if self.parent.hdf_filename is None or not self.from_dialog:
self.parent.set_new_hdf_filename(ts_in_seconds,
@@ -395,7 +407,6 @@ class BaseWindow(QMainWindow):
self.appversion = appversion if appversion else _appversion
self.source_file = None
self.author = _author
self.appversion = _appversion
self.title = title
self.facility = facility
self.user_mode = user_mode
@@ -427,6 +438,7 @@ class BaseWindow(QMainWindow):
self.filename = None
self.hdf_filename_loaded = "NONE" #For loading into hdf dockwidget
self.hdf_filename = None #For saving
self.hdf_user_dict = {}
self.hdf_dialog = None
self.from_hdf = False
@@ -441,9 +453,13 @@ class BaseWindow(QMainWindow):
self.menu = self.menuBar()
self.elog_dest = self.settings.data["Elog"]["destination"]
try:
self.elog_add_date_to_dir = self.settings.data["Elog"]["addDateToDir"]
except KeyError:
self.elog_add_date_to_dir = True
self.screenshot_dest = self.settings.data["screenshot"]["destination"]
self.stdlog_dest = (self.settings.data["stdlog"]["destination"] +
self.appname + "-" + os.getlogin() + ".log")
@@ -1069,8 +1085,11 @@ class BaseWindow(QMainWindow):
_month = when.strftime("%m")
_day = when.strftime("%d")
return str(_year + "/" + _month + "/" + _day + "/" + self.appname +
"_" + _date_label)
if self.elog_add_date_to_dir:
return str(_year + "/" + _month + "/" + _day + "/" + self.appname +
"_" + _date_label)
else:
return str(self.appname + "_" + _date_label)
def verify_save_to_hdf(self):
@@ -1203,11 +1222,16 @@ class BaseWindow(QMainWindow):
def add_general_to_hdf(self, dataH5):
isOK = True
user_dict = {}
user_dict['Comment'] = self.hdf_dialog.user_dict[
'Comment'] if self.hdf_dialog is not None else str(
"HDF file generated via Save All button")
#user_dict['Comment'] is prefilled in get_data in savehdf.py
#user_dict['Comment'] = self.hdf_dialog.user_dict[
# 'Comment'] if self.hdf_dialog is not None else str(
# "HDF file generated via Save All button")
#user_dict['Comment'] = self.hdf_dialog.comment.document().toPlainText()
if self.hdf_user_dict:
user_dict['Comment'] = self.hdf_user_dict['Comment']
else:
user_dict['Comment'] = "HDF file generated via Save All button"
user_dict['Author'] = self.author
user_dict['Application'] = self.pymodule
user_dict['Version'] = self.appversion
@@ -1251,7 +1275,7 @@ class BaseWindow(QMainWindow):
""" This uses the widget interface to allow the user to enter
additional meta-data
"""
print("save_to_hdf_dialog==>", flush=True)
if not self.verify_save_to_hdf():
return False
@@ -1267,6 +1291,7 @@ class BaseWindow(QMainWindow):
'Reanalysis time in seconds']
self.set_new_hdf_filename(ts_in_seconds, now_in_seconds)
input_options['Destination'] = self.hdf_filename
input_options['Time in seconds'] = self.all_data['Ambient data'][
'Time in seconds']
@@ -1274,7 +1299,7 @@ class BaseWindow(QMainWindow):
self.hdf_dialog = QSaveHDF(self, input_options=input_options,
from_dialog=True)
def verify_send_to_elog(self):
if self.analysis_thread is not None:

View File

@@ -38,7 +38,6 @@ class QSaveHDF(QDialog):
self.user_dict = {}
self.user_dict['Comment'] = None
#self.file_name = None
#self.excluded_input = ['Year', 'Month', 'Date']
if 'Time in seconds' in input_options.keys():
@@ -244,6 +243,7 @@ class QSaveHDF(QDialog):
def save(self):
self.get_data()
self.parent.hdf_user_dict = self.user_dict
self.parent.hdf_filename = self.user_dict['Destination']
self.parent.save_to_hdf(from_dialog=self.from_dialog)
self.close()

View File

@@ -9,22 +9,13 @@ from qtpy.QtWidgets import (QComboBox, QDialog, QFileDialog, QHBoxLayout,
QVBoxLayout)
import elog # https://github.com/paulscherrerinstitute/py_elog
from pyqtacc.bdbase.enumkind import MsgSeverity
from apps4ops.bdbase.enumkind import MsgSeverity
from apps4ops.bdbase.utils import _line
_version = "1.0.0"
_pymodule = os.path.basename(__file__)
_appname, _appext = _pymodule.split(".")
def _line():
"""Macro to return the current line number.
The current line number within the file is used when
reporting messages to the message logging window.
Returns:
int: Current line number.
"""
return inspect.currentframe().f_back.f_lineno
class QSendToELOG(QDialog):
""" Graphical interface to elog

View File

@@ -9,22 +9,14 @@ from qtpy.QtWidgets import (
QLineEdit, QPushButton, QTextEdit, QVBoxLayout)
import elog # https://github.com/paulscherrerinstitute/py_elog
from pyqtacc.bdbase.enumkind import MsgSeverity
from apps4ops.bdbase.enumkind import MsgSeverity
from apps4ops.bdbase.utils import _line
_version = "1.0.0"
_pymodule = os.path.basename(__file__)
_appname, _appext = _pymodule.split(".")
def _line():
"""Macro to return the current line number.
The current line number within the file is used when
reporting messages to the message logging window.
Returns:
int: Current line number.
"""
return inspect.currentframe().f_back.f_lineno
class QSendToELOGFrame(QDialog):
""" Graphical interface to elog