sardana-nxsrecorder 3.25.0__py3-none-any.whl → 3.26.1__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.
- {sardana_nxsrecorder-3.25.0.dist-info → sardana_nxsrecorder-3.26.1.dist-info}/METADATA +2 -2
- sardana_nxsrecorder-3.26.1.dist-info/RECORD +6 -0
- sardananxsrecorder/__init__.py +1 -1
- sardananxsrecorder/nxsrecorder.py +41 -27
- sardana_nxsrecorder-3.25.0.dist-info/RECORD +0 -6
- {sardana_nxsrecorder-3.25.0.dist-info → sardana_nxsrecorder-3.26.1.dist-info}/WHEEL +0 -0
- {sardana_nxsrecorder-3.25.0.dist-info → sardana_nxsrecorder-3.26.1.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: sardana-nxsrecorder
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.26.1
|
|
4
4
|
Summary: NeXus Sardana Scan Recorder
|
|
5
5
|
Home-page: https://github.com/nexdatas/sardana-nxs-filerecorder/
|
|
6
6
|
Author: Jan Kotanski
|
|
@@ -251,7 +251,7 @@ The NeXus file recorder uses the following sardana environment variables
|
|
|
251
251
|
* **MetadataScript** *(str)* - a python module file name containing ``main()`` which provides a dictionary with user metadata stored in the INIT mode, default: ``""``
|
|
252
252
|
* **ScicatMeasurements** *(dict)* - a dictionary of measurement names indexed by ``ScanDir`` and used by ``scingestor``, default: ``{}``
|
|
253
253
|
* **CreateMeasurementFile** *(bool)* - create a measurement file with its filename releated to ``ScicatMeasurements`` or ``ScanFile``, default: ``False``
|
|
254
|
-
* **NeXusSkipAcquisitionModes** *(list)* - a list of strategy modes for which acquisition is skip
|
|
255
254
|
* **NeXusWriterProperties** *(dict)* - a dictionary of TangoDataWriter (NXSDataWriter) properties (starting with a small letter)
|
|
256
255
|
* **NeXusMeshScanID** *(int)* - ScanID used for composed scans e.g. mesh scan combined from many linear scans
|
|
256
|
+
* **NeXusWriterModes** *(list)* - a list of strategy modes e.g. ``NOINIT``, ``NOSTEP``, ``NOFINAL``, ``MESH``, ``VDS`` separated by commas
|
|
257
257
|
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
sardananxsrecorder/__init__.py,sha256=D9XnMblVPsgwwr6BjPz877oQCWyEj1GqmL7nb3JAb70,896
|
|
2
|
+
sardananxsrecorder/nxsrecorder.py,sha256=bS7vevRyLtPgz7zoK2XJid9XCTgdKAeJRZb-QK2Nl5g,58343
|
|
3
|
+
sardana_nxsrecorder-3.26.1.dist-info/METADATA,sha256=Y56-3gdsv1UknXfjr8uyMUPVinvmbEYF_Ev-CqHlzCk,8035
|
|
4
|
+
sardana_nxsrecorder-3.26.1.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
|
|
5
|
+
sardana_nxsrecorder-3.26.1.dist-info/top_level.txt,sha256=YdD3m417i-jlYyQWgiizgZ8lQQcOjM8y-bmUHrGkfY4,19
|
|
6
|
+
sardana_nxsrecorder-3.26.1.dist-info/RECORD,,
|
sardananxsrecorder/__init__.py
CHANGED
|
@@ -26,7 +26,6 @@ import sys
|
|
|
26
26
|
|
|
27
27
|
import numpy
|
|
28
28
|
import json
|
|
29
|
-
import pytz
|
|
30
29
|
import time
|
|
31
30
|
import weakref
|
|
32
31
|
import socket
|
|
@@ -158,8 +157,9 @@ class NXS_FileRecorder(BaseFileRecorder):
|
|
|
158
157
|
#: (:obj:`dict` <:obj:`str` , :obj:`str`>) NeXus configuration
|
|
159
158
|
self.__conf = {}
|
|
160
159
|
|
|
161
|
-
#: (:obj:`list` <:obj:`str`>)
|
|
162
|
-
self.
|
|
160
|
+
#: (:obj:`list` <:obj:`str`>) acquisition Modes
|
|
161
|
+
self.writerModes = self.__variableList(
|
|
162
|
+
"NeXusWriterModes")
|
|
163
163
|
|
|
164
164
|
#: (:obj:`dict` <:obj:`str` , `any`>) User data
|
|
165
165
|
self.__udata = None
|
|
@@ -177,7 +177,8 @@ class NXS_FileRecorder(BaseFileRecorder):
|
|
|
177
177
|
|
|
178
178
|
def _serial(self, scanID):
|
|
179
179
|
serial = None
|
|
180
|
-
if "
|
|
180
|
+
if "NOINIT" in self.writerModes and \
|
|
181
|
+
"MESH" in self.writerModes:
|
|
181
182
|
if self.__macro:
|
|
182
183
|
serial = self.__macro().getEnv('NeXusMeshScanID', None)
|
|
183
184
|
if serial is None:
|
|
@@ -188,8 +189,8 @@ class NXS_FileRecorder(BaseFileRecorder):
|
|
|
188
189
|
serial = scanID
|
|
189
190
|
else:
|
|
190
191
|
serial = scanID + 1
|
|
191
|
-
if self.
|
|
192
|
-
"
|
|
192
|
+
if "MESH" in self.writerModes and \
|
|
193
|
+
"NOINIT" not in self.writerModes:
|
|
193
194
|
if self.__macro:
|
|
194
195
|
self.__macro().setEnv('NeXusMeshScanID', serial)
|
|
195
196
|
return serial
|
|
@@ -1012,6 +1013,8 @@ class NXS_FileRecorder(BaseFileRecorder):
|
|
|
1012
1013
|
self.__vars["vars"]["serialno"] = ("_%05i" % self.__serial) \
|
|
1013
1014
|
if appendscanid else ""
|
|
1014
1015
|
self.__vars["vars"]["scan_id"] = envRec["serialno"]
|
|
1016
|
+
self.__vars["vars"]["acq_modes"] = \
|
|
1017
|
+
",".join(self.writerModes or [])
|
|
1015
1018
|
self.__vars["vars"]["scan_title"] = envRec["title"]
|
|
1016
1019
|
if self.__macro:
|
|
1017
1020
|
if hasattr(self.__macro(), "integ_time"):
|
|
@@ -1054,8 +1057,9 @@ class NXS_FileRecorder(BaseFileRecorder):
|
|
|
1054
1057
|
# self.debug('START_DATA: %s' % str(envRec))
|
|
1055
1058
|
|
|
1056
1059
|
self.__nexuswriter_device.jsonrecord = rec
|
|
1057
|
-
self.
|
|
1058
|
-
|
|
1060
|
+
self.writerModes = self.__variableList(
|
|
1061
|
+
"NeXusWriterModes")
|
|
1062
|
+
if "NOINIT" in self.writerModes:
|
|
1059
1063
|
self.__nexuswriter_device.skipAcquisition = True
|
|
1060
1064
|
|
|
1061
1065
|
self.__command(self.__nexuswriter_device, "openEntry")
|
|
@@ -1144,7 +1148,7 @@ class NXS_FileRecorder(BaseFileRecorder):
|
|
|
1144
1148
|
rec = json.dumps(
|
|
1145
1149
|
envrecord, cls=NXS_FileRecorder.numpyEncoder)
|
|
1146
1150
|
self.__nexuswriter_device.jsonrecord = rec
|
|
1147
|
-
if "
|
|
1151
|
+
if "NOSTEP" in self.writerModes:
|
|
1148
1152
|
self.__nexuswriter_device.skipAcquisition = True
|
|
1149
1153
|
|
|
1150
1154
|
# self.debug('DATA: {"data":%s}' % json.dumps(
|
|
@@ -1170,8 +1174,16 @@ class NXS_FileRecorder(BaseFileRecorder):
|
|
|
1170
1174
|
:returns: formatted time string
|
|
1171
1175
|
:rtype: :obj:`str`
|
|
1172
1176
|
"""
|
|
1177
|
+
fmt = '%Y-%m-%dT%H:%M:%S.%f%z'
|
|
1173
1178
|
try:
|
|
1174
|
-
|
|
1179
|
+
if sys.version_info >= (3, 9):
|
|
1180
|
+
import zoneinfo
|
|
1181
|
+
tz = zoneinfo.ZoneInfo(tzone)
|
|
1182
|
+
starttime = mtime.replace(tzinfo=tz)
|
|
1183
|
+
else:
|
|
1184
|
+
import pytz
|
|
1185
|
+
tz = pytz.timezone(tzone)
|
|
1186
|
+
starttime = tz.localize(mtime)
|
|
1175
1187
|
except Exception:
|
|
1176
1188
|
self.warning(
|
|
1177
1189
|
"Wrong TimeZone. "
|
|
@@ -1180,13 +1192,15 @@ class NXS_FileRecorder(BaseFileRecorder):
|
|
|
1180
1192
|
self.__macro().warning(
|
|
1181
1193
|
"Wrong TimeZone. "
|
|
1182
1194
|
"The time zone set to `%s`" % self.__timezone)
|
|
1183
|
-
|
|
1195
|
+
if sys.version_info >= (3, 9):
|
|
1196
|
+
import zoneinfo
|
|
1197
|
+
tz = zoneinfo.ZoneInfo(self.__timezone)
|
|
1198
|
+
starttime = mtime.replace(tzinfo=tz)
|
|
1199
|
+
else:
|
|
1200
|
+
import pytz
|
|
1201
|
+
tz = pytz.timezone(self.__timezone)
|
|
1202
|
+
starttime = tz.localize(mtime)
|
|
1184
1203
|
|
|
1185
|
-
fmt = '%Y-%m-%dT%H:%M:%S.%f%z'
|
|
1186
|
-
if sys.version_info > (3, 6):
|
|
1187
|
-
starttime = mtime.replace(tzinfo=tz)
|
|
1188
|
-
else:
|
|
1189
|
-
starttime = tz.localize(mtime)
|
|
1190
1204
|
return str(starttime.strftime(fmt))
|
|
1191
1205
|
|
|
1192
1206
|
def _endRecordList(self, recordlist):
|
|
@@ -1214,7 +1228,7 @@ class NXS_FileRecorder(BaseFileRecorder):
|
|
|
1214
1228
|
rec = json.dumps(
|
|
1215
1229
|
envrecord, cls=NXS_FileRecorder.numpyEncoder)
|
|
1216
1230
|
self.__nexuswriter_device.jsonrecord = rec
|
|
1217
|
-
if "
|
|
1231
|
+
if "NOFINAL" in self.writerModes:
|
|
1218
1232
|
self.__nexuswriter_device.skipAcquisition = True
|
|
1219
1233
|
self.__command(self.__nexuswriter_device, "closeEntry")
|
|
1220
1234
|
self.__command(self.__nexuswriter_device, "closeFile")
|
|
@@ -1262,18 +1276,18 @@ class NXS_FileRecorder(BaseFileRecorder):
|
|
|
1262
1276
|
beamtimeid = self.beamtime_id(bmtfpath, bmtfprefix, bmtfext)
|
|
1263
1277
|
return beamtimeid or "00000000"
|
|
1264
1278
|
|
|
1265
|
-
def
|
|
1266
|
-
"""
|
|
1279
|
+
def __variableList(self, variable='NeXusWriterModes'):
|
|
1280
|
+
""" read variable list
|
|
1267
1281
|
"""
|
|
1268
1282
|
try:
|
|
1269
|
-
|
|
1283
|
+
msvar = self.__macro().getEnv(variable)
|
|
1270
1284
|
except Exception:
|
|
1271
|
-
|
|
1272
|
-
if isinstance(
|
|
1273
|
-
|
|
1274
|
-
if
|
|
1275
|
-
self.debug('
|
|
1276
|
-
return
|
|
1285
|
+
msvar = []
|
|
1286
|
+
if isinstance(msvar, str):
|
|
1287
|
+
msvar = re.split(r"[-;,.\s]\s*", msvar)
|
|
1288
|
+
if msvar:
|
|
1289
|
+
self.debug('%s: %s' % (variable, str(msvar)))
|
|
1290
|
+
return msvar
|
|
1277
1291
|
|
|
1278
1292
|
def __rawfilename(self, serial):
|
|
1279
1293
|
""" find scan name
|
|
@@ -1364,7 +1378,7 @@ class NXS_FileRecorder(BaseFileRecorder):
|
|
|
1364
1378
|
sid = self.__serial
|
|
1365
1379
|
sname = "%s::/%s_%05i;%s_%05i" % (
|
|
1366
1380
|
scanname, entryname, sid, scanname, sid)
|
|
1367
|
-
if "
|
|
1381
|
+
if "NOINIT" in self.writerModes:
|
|
1368
1382
|
sname = "%s:%s" % (sname, time.time())
|
|
1369
1383
|
|
|
1370
1384
|
# auto grouping
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
sardananxsrecorder/__init__.py,sha256=67kuI-TJbdi73SVAYYXMypOs3c_Ha1M4xCgUJ9fORYU,896
|
|
2
|
-
sardananxsrecorder/nxsrecorder.py,sha256=8JX1iQdtAytFaeFQ9YsUKWdWOJdEIoCM_QR-kmTxpts,57858
|
|
3
|
-
sardana_nxsrecorder-3.25.0.dist-info/METADATA,sha256=N2EG57BsCdnNnHQgBqMBMpph-ZUI0nTXwkujqrhr05M,7993
|
|
4
|
-
sardana_nxsrecorder-3.25.0.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
|
|
5
|
-
sardana_nxsrecorder-3.25.0.dist-info/top_level.txt,sha256=YdD3m417i-jlYyQWgiizgZ8lQQcOjM8y-bmUHrGkfY4,19
|
|
6
|
-
sardana_nxsrecorder-3.25.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|