sardana-nxsrecorder 3.19.0__tar.gz → 3.20.0__tar.gz

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.
Files changed (40) hide show
  1. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/ChangeLog +4 -0
  2. {sardana-nxsrecorder-3.19.0/sardana_nxsrecorder.egg-info → sardana-nxsrecorder-3.20.0}/PKG-INFO +4 -1
  3. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/README.rst +3 -0
  4. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0/sardana_nxsrecorder.egg-info}/PKG-INFO +4 -1
  5. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/sardananxsrecorder/__init__.py +1 -1
  6. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/sardananxsrecorder/nxsrecorder.py +55 -0
  7. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/.ci/debian10_py2/Dockerfile +0 -0
  8. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/.ci/debian10_py3/Dockerfile +0 -0
  9. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/.ci/debian8_py2/Dockerfile +0 -0
  10. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/.ci/debian8_py3/Dockerfile +0 -0
  11. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/.ci/debian9_py2/Dockerfile +0 -0
  12. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/.ci/debian9_py3/Dockerfile +0 -0
  13. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/.ci/install.sh +0 -0
  14. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/.ci/run.sh +0 -0
  15. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/.ci/ubuntu16.04_py2/Dockerfile +0 -0
  16. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/.ci/ubuntu16.04_py3/Dockerfile +0 -0
  17. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/.ci/ubuntu18.04_py2/Dockerfile +0 -0
  18. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/.ci/ubuntu18.04_py3/Dockerfile +0 -0
  19. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/.ci/ubuntu20.04_py3/Dockerfile +0 -0
  20. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/.flake8 +0 -0
  21. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/.github/workflows/tests.yml +0 -0
  22. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/.gitignore +0 -0
  23. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/COPYRIGHT +0 -0
  24. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/MANIFEST.in +0 -0
  25. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/doc/Makefile +0 -0
  26. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/doc/conf.py +0 -0
  27. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/doc/index.rst +0 -0
  28. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/doc/make.bat +0 -0
  29. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/doc/sardananxsrecorder.rst +0 -0
  30. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/man/sardananxsrecorder.1 +0 -0
  31. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/sardana_nxsrecorder.egg-info/SOURCES.txt +0 -0
  32. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/sardana_nxsrecorder.egg-info/dependency_links.txt +0 -0
  33. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/sardana_nxsrecorder.egg-info/not-zip-safe +0 -0
  34. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/sardana_nxsrecorder.egg-info/requires.txt +0 -0
  35. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/sardana_nxsrecorder.egg-info/top_level.txt +0 -0
  36. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/setup.cfg +0 -0
  37. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/setup.py +0 -0
  38. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/test/__init__.py +0 -0
  39. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/test/__main__.py +0 -0
  40. {sardana-nxsrecorder-3.19.0 → sardana-nxsrecorder-3.20.0}/test/main.py +0 -0
@@ -1,3 +1,7 @@
1
+ 2024-05-22 Jan Kotanski <jankotan@gmail.com>
2
+ * add support for creating measurement files (#105)
3
+ * tagged as 3.20.0
4
+
1
5
  2024-05-13 Jan Kotanski <jankotan@gmail.com>
2
6
  * send count_time beamtime_id and npoints to writer (#103)
3
7
  * tagged as 3.19.0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sardana-nxsrecorder
3
- Version: 3.19.0
3
+ Version: 3.20.0
4
4
  Summary: NeXus Sardana Scan Recorder
5
5
  Home-page: https://github.com/nexdatas/sardana-nxs-filerecorder/
6
6
  Author: Jan Kotanski
@@ -245,3 +245,6 @@ The NeXus file recorder uses the following sardana environment variables
245
245
  * **SciCatDatasetListFileLocal** *(bool)* - add the hostname to the scicat dataset list file extension, default: ``False``
246
246
  * **SciCatAutoGrouping** *(bool)* - group all scans with the measurement name set to the base scan filename, default: ``False``
247
247
  * **MetadataScript** *(str)* - a python module file name containing ``main()`` which provides a dictionary with user metadata stored in the INIT mode, default: ``""``
248
+ * **ScicatMeasurements** *(dict)* - a dictionary of measurement names indexed by ``ScanDir`` and used by ``scingestor``, default: ``{}``
249
+ * **CreateMeasurementFile** *(bool)* - create a measurement file with its filename releated to ``ScicatMeasurements`` or ``ScanFile``, default: ``False``
250
+
@@ -220,3 +220,6 @@ The NeXus file recorder uses the following sardana environment variables
220
220
  * **SciCatDatasetListFileLocal** *(bool)* - add the hostname to the scicat dataset list file extension, default: ``False``
221
221
  * **SciCatAutoGrouping** *(bool)* - group all scans with the measurement name set to the base scan filename, default: ``False``
222
222
  * **MetadataScript** *(str)* - a python module file name containing ``main()`` which provides a dictionary with user metadata stored in the INIT mode, default: ``""``
223
+ * **ScicatMeasurements** *(dict)* - a dictionary of measurement names indexed by ``ScanDir`` and used by ``scingestor``, default: ``{}``
224
+ * **CreateMeasurementFile** *(bool)* - create a measurement file with its filename releated to ``ScicatMeasurements`` or ``ScanFile``, default: ``False``
225
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sardana-nxsrecorder
3
- Version: 3.19.0
3
+ Version: 3.20.0
4
4
  Summary: NeXus Sardana Scan Recorder
5
5
  Home-page: https://github.com/nexdatas/sardana-nxs-filerecorder/
6
6
  Author: Jan Kotanski
@@ -245,3 +245,6 @@ The NeXus file recorder uses the following sardana environment variables
245
245
  * **SciCatDatasetListFileLocal** *(bool)* - add the hostname to the scicat dataset list file extension, default: ``False``
246
246
  * **SciCatAutoGrouping** *(bool)* - group all scans with the measurement name set to the base scan filename, default: ``False``
247
247
  * **MetadataScript** *(str)* - a python module file name containing ``main()`` which provides a dictionary with user metadata stored in the INIT mode, default: ``""``
248
+ * **ScicatMeasurements** *(dict)* - a dictionary of measurement names indexed by ``ScanDir`` and used by ``scingestor``, default: ``{}``
249
+ * **CreateMeasurementFile** *(bool)* - create a measurement file with its filename releated to ``ScicatMeasurements`` or ``ScanFile``, default: ``False``
250
+
@@ -20,4 +20,4 @@
20
20
  """ Sardana Scan Recorders """
21
21
 
22
22
  #: package version
23
- __version__ = "3.19.0"
23
+ __version__ = "3.20.0"
@@ -35,6 +35,15 @@ try:
35
35
  except Exception:
36
36
  import PyTango as tango
37
37
 
38
+ try:
39
+ NXSWRITER = True
40
+ try:
41
+ from nxstools import h5cppwriter as h5writer
42
+ except Exception:
43
+ from nxstools import h5pywriter as h5writer
44
+ except Exception:
45
+ NXSWRITER = False
46
+
38
47
 
39
48
  from sardana.macroserver.scan.recorder.storage import BaseFileRecorder
40
49
 
@@ -1157,6 +1166,9 @@ class NXS_FileRecorder(BaseFileRecorder):
1157
1166
  vl = self.__getEnvVar("NXSAppendSciCatDataset", None)
1158
1167
  if vl:
1159
1168
  self.__appendSciCatDataset(vl)
1169
+ cmf = self.__getEnvVar("CreateMeasurementFile", False)
1170
+ if cmf and NXSWRITER:
1171
+ self.__createMeasurementFile()
1160
1172
 
1161
1173
  def beamtime_id(self, bmtfpath, bmtfprefix, bmtfext):
1162
1174
  """ code for beamtimeid datasource
@@ -1227,6 +1239,7 @@ class NXS_FileRecorder(BaseFileRecorder):
1227
1239
 
1228
1240
  # auto grouping
1229
1241
  grouping = bool(self.__getEnvVar('SciCatAutoGrouping', False))
1242
+
1230
1243
  if grouping:
1231
1244
  commands = []
1232
1245
  try:
@@ -1254,6 +1267,48 @@ class NXS_FileRecorder(BaseFileRecorder):
1254
1267
  with open(dslfile, "a+") as fl:
1255
1268
  fl.write("\n%s" % sname)
1256
1269
 
1270
+ def __createMeasurementFile(self):
1271
+ """ create measurement file """
1272
+
1273
+ fdir, fname = os.path.split(self.filename)
1274
+ _, bfname = os.path.split(self.__base_filename)
1275
+ sname, fext = os.path.splitext(fname)
1276
+ # beamtimeid = self.beamtimeid()
1277
+
1278
+ try:
1279
+ scanname, _ = os.path.splitext(bfname % "")
1280
+ except Exception:
1281
+ scanname, _ = os.path.splitext(bfname)
1282
+
1283
+ try:
1284
+ sm = dict(self.__getEnvVar('SciCatMeasurements', {}))
1285
+ except Exception:
1286
+ sm = {}
1287
+
1288
+ entryname = "scan"
1289
+ appendentry = self.__getConfVar("AppendEntry", False)
1290
+ variables = self.__getConfVar("ConfigVariables", None, True)
1291
+ if isinstance(variables, dict) and "entryname" in variables:
1292
+ entryname = variables["entryname"]
1293
+
1294
+ mntname = scanname
1295
+ if fdir in sm.keys() and sm[fdir]:
1296
+ mntname = sm[fdir]
1297
+ if not appendentry or mntname != scanname:
1298
+ mntfile = os.path.join(fdir, mntname + fext)
1299
+
1300
+ if not os.path.exists(mntfile):
1301
+ fl = h5writer.create_file(mntfile)
1302
+ self.info("Measurement file '%s' created " % mntname)
1303
+ else:
1304
+ fl = h5writer.open_file(mntfile, readonly=False)
1305
+ rt = fl.root()
1306
+ if sname not in rt.names():
1307
+ h5writer.link("%s:/%s" % (self.filename, entryname), rt, sname)
1308
+ self.debug("Link '%s' in '%s' created " % (sname, mntname))
1309
+ rt.close()
1310
+ fl.close()
1311
+
1257
1312
  def _addCustomData(self, value, name, group="data", remove=False,
1258
1313
  **kwargs):
1259
1314
  """ adds custom data to configuration variables, i.e. from macros