nxstools 4.35.1__py3-none-any.whl → 4.37.0__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.
nxstools/h5cppwriter.py CHANGED
@@ -1196,7 +1196,7 @@ class H5CppField(filewriter.FTField):
1196
1196
  v = v[0, :, :]
1197
1197
  shape = v.shape
1198
1198
  if len(shape) == 2 and shape[1] == 1:
1199
- # v.reshape([shape[0]])
1199
+ # v.reshape([shape[0]]]
1200
1200
  v = v[0, :]
1201
1201
  shape = v.shape
1202
1202
  if len(shape) == 2 and shape[0] == 1:
@@ -1941,12 +1941,12 @@ class H5CppAttribute(filewriter.FTAttribute):
1941
1941
  (hasattr(o, "__len__") and t == slice(0, len(o), None)):
1942
1942
  if self.dtype in ['string', b'string']:
1943
1943
  if isinstance(o, str):
1944
- self._h5object.write(unicode(o))
1944
+ self.write(unicode(o))
1945
1945
  else:
1946
1946
  dtype = npunicode
1947
- self._h5object.write(np.array(o, dtype=dtype))
1947
+ self.write(np.array(o, dtype=dtype))
1948
1948
  else:
1949
- self._h5object.write(np.array(o, dtype=self.dtype))
1949
+ self.write(np.array(o, dtype=self.dtype))
1950
1950
  elif isinstance(t, slice):
1951
1951
  var = self._h5object.read()
1952
1952
  if self.dtype not in ['string', b'string']:
@@ -1956,11 +1956,11 @@ class H5CppAttribute(filewriter.FTAttribute):
1956
1956
  var[t] = np.array(o, dtype=dtype)
1957
1957
  var = var.astype(dtype)
1958
1958
  try:
1959
- self._h5object.write(var)
1959
+ self.write(var)
1960
1960
  except Exception:
1961
1961
  dtype = npunicode
1962
1962
  tvar = np.array(var, dtype=dtype)
1963
- self._h5object[0][self.name] = tvar
1963
+ self.write(tvar)
1964
1964
 
1965
1965
  elif isinstance(t, tuple):
1966
1966
  var = self._h5object.read()
@@ -1980,12 +1980,12 @@ class H5CppAttribute(filewriter.FTAttribute):
1980
1980
  else:
1981
1981
  var[t] = np.array(o, dtype=self.dtype).tolist()
1982
1982
  var = var.astype(dtype)
1983
- self._h5object.write(var)
1983
+ self.write(var)
1984
1984
  else:
1985
1985
  if isinstance(o, str) or isinstance(o, unicode):
1986
- self._h5object.write(unicode(o))
1986
+ self.write(unicode(o))
1987
1987
  else:
1988
- self._h5object.write(np.array(o, dtype=self.dtype))
1988
+ self.write(np.array(o, dtype=self.dtype))
1989
1989
 
1990
1990
  def __getitem__(self, t):
1991
1991
  """ read attribute value
nxstools/h5rediswriter.py CHANGED
@@ -1010,6 +1010,32 @@ class H5RedisGroup(H5Group):
1010
1010
  raise Exception("Undefined constructor parameters")
1011
1011
  H5Group.__init__(self, h5object, tparent)
1012
1012
  self.__nxclass = nxclass
1013
+ self.__avcache_lock = threading.Lock()
1014
+ self.__avcache = {}
1015
+
1016
+ def set_attr_value(self, name, value):
1017
+ """ set device parameters
1018
+
1019
+ :param name: attribute name
1020
+ :type name: :obj:`str`
1021
+ :param value: attribute value
1022
+ :type value: :obj:`any`
1023
+ """
1024
+ with self.__avcache_lock:
1025
+ self.__avcache[name] = value
1026
+
1027
+ def get_attr_value(self, name):
1028
+ """ get scan info parameters
1029
+
1030
+ :param name: attribute name
1031
+ :type name: :obj:`str`
1032
+ :returns value: attribute value
1033
+ :rtype value: :obj:`any`
1034
+ """
1035
+ with self.__avcache_lock:
1036
+ # print(self.__avcache)
1037
+ vl = self.__avcache.get(name, None)
1038
+ return vl
1013
1039
 
1014
1040
  def open(self, name):
1015
1041
  """ open a file tree element
@@ -1235,10 +1261,14 @@ class H5RedisGroup(H5Group):
1235
1261
  self.set_insname(n)
1236
1262
  if REDIS and nxclass in ["NXentry", u'NXentry']:
1237
1263
  self.reset_scaninfo(n)
1238
- return H5RedisGroup(
1264
+ gr = H5RedisGroup(
1239
1265
  h5imp=H5Group.create_group(self, n, nxclass),
1240
1266
  nxclass=nxclass)
1241
1267
 
1268
+ # print("CREATE", "NX_class", nxclass)
1269
+ self.set_attr_value("NX_class", nxclass)
1270
+ return gr
1271
+
1242
1272
  def create_virtual_field(self, name, layout, fillvalue=0):
1243
1273
  """ creates a virtual filed tres element
1244
1274
 
@@ -1354,6 +1384,43 @@ class H5RedisField(H5Field):
1354
1384
  self.__jstream = None
1355
1385
  self.__rstream = None
1356
1386
  self.__rcounter = 0
1387
+ self.__avcache_lock = threading.Lock()
1388
+ self.__avcache = {}
1389
+
1390
+ def set_attr_value(self, name, value):
1391
+ """ set device parameters
1392
+
1393
+ :param name: attribute name
1394
+ :type name: :obj:`str`
1395
+ :param value: attribute value
1396
+ :type value: :obj:`any`
1397
+ """
1398
+ with self.__avcache_lock:
1399
+ self.__avcache[name] = value
1400
+
1401
+ def get_attr_value(self, name):
1402
+ """ get scan info parameters
1403
+
1404
+ :param name: attribute name
1405
+ :type name: :obj:`str`
1406
+ :returns value: attribute value
1407
+ :rtype value: :obj:`any`
1408
+ """
1409
+ with self.__avcache_lock:
1410
+ vl = self.__avcache.get(name, None)
1411
+ return vl
1412
+
1413
+ def get_attrs(self):
1414
+ """ get scan info parameters
1415
+
1416
+ :param name: attribute name
1417
+ :type name: :obj:`str`
1418
+ :returns value: attribute value
1419
+ :rtype value: :obj:`any`
1420
+ """
1421
+ with self.__avcache_lock:
1422
+ vl = dict(self.__avcache)
1423
+ return vl
1357
1424
 
1358
1425
  def append_stream(self, name, stream):
1359
1426
  """ scan object
@@ -1511,7 +1578,7 @@ class H5RedisField(H5Field):
1511
1578
  h5imp=super(H5RedisField, self).attributes)
1512
1579
 
1513
1580
  def __set_step_channel_info(self, dsname, units, shape, strategy="STEP",
1514
- o=None):
1581
+ o=None, av=None):
1515
1582
  """ set step channel info
1516
1583
 
1517
1584
  :param dsname: datasource name
@@ -1525,6 +1592,7 @@ class H5RedisField(H5Field):
1525
1592
  :param o: object value to write
1526
1593
  :type o: :obj:`any`
1527
1594
  """
1595
+ av = av or {}
1528
1596
  attrs = self.attributes
1529
1597
  sds = {
1530
1598
  "name": dsname,
@@ -1541,8 +1609,8 @@ class H5RedisField(H5Field):
1541
1609
  anames = [at.name for at in attrs]
1542
1610
  for key, vl in attrdesc.items():
1543
1611
  if vl[0] in anames:
1544
- sds[key] = vl[1](
1545
- filewriter.first(attrs[vl[0]].read()))
1612
+ avl = av[vl[0]] if vl[0] in av.keys() else attrs[vl[0]].read()
1613
+ sds[key] = vl[1](filewriter.first(avl))
1546
1614
  sds["nexus_path"] = self.path
1547
1615
  self.append_scaninfo(sds, ["datadesc", dsname])
1548
1616
  try:
@@ -1665,7 +1733,7 @@ class H5RedisField(H5Field):
1665
1733
  else:
1666
1734
  raise
1667
1735
 
1668
- def __set_init_channel_info(self, dsname, units, shape, strategy, o):
1736
+ def __set_init_channel_info(self, dsname, units, shape, strategy, o, av):
1669
1737
  """ set init channel info
1670
1738
 
1671
1739
  :param dsname: datasource name
@@ -1691,8 +1759,8 @@ class H5RedisField(H5Field):
1691
1759
  anames = [at.name for at in attrs]
1692
1760
  for key, vl in attrdesc.items():
1693
1761
  if vl[0] in anames:
1694
- ids[key] = vl[1](
1695
- filewriter.first(attrs[vl[0]].read()))
1762
+ avl = av[vl[0]] if vl[0] in av.keys() else attrs[vl[0]].read()
1763
+ ids[key] = vl[1](filewriter.first(avl))
1696
1764
  ids["nexus_path"] = self.path
1697
1765
  pars = (self.get_scaninfo(["snapshot"]) or {}).keys()
1698
1766
  dsn = dsname
@@ -1710,11 +1778,12 @@ class H5RedisField(H5Field):
1710
1778
  np = str(filewriter.first(attrs[vl[0]].read()))
1711
1779
  if vl[2] or np:
1712
1780
  self.set_scaninfo(np, [key])
1713
- if isinstance(np, str):
1781
+ # print(key, np)
1782
+ if key == "title" and isinstance(np, str):
1714
1783
  macro_name = np.split(" ")[0]
1715
- for mn, plot in titleplots.items():
1716
- if mn in macro_name:
1717
- self.append_scaninfo(plot, ["plots"])
1784
+ for mn, plot in titleplots.items():
1785
+ if mn in macro_name:
1786
+ self.append_scaninfo(plot, ["plots"])
1718
1787
 
1719
1788
  except Exception as e:
1720
1789
  print(str(e))
@@ -1726,18 +1795,31 @@ class H5RedisField(H5Field):
1726
1795
  :param o: object value to write
1727
1796
  :type o: :obj:`any`
1728
1797
  """
1729
-
1730
1798
  attrs = self.attributes
1731
- strategy = filewriter.first(attrs["nexdatas_strategy"].read())
1799
+ av = self.get_attrs()
1800
+ strategy = av.get("nexdatas_strategy", None)
1801
+ if strategy is None:
1802
+ strategy = attrs["nexdatas_strategy"].read()
1803
+ strategy = filewriter.first(strategy)
1732
1804
  dsname = "%s_%s" % (self._tparent.name, self.name)
1733
1805
  dsnm = ""
1734
- if "nexdatas_source" in attrs.names():
1735
- dsnm = getdsname(
1736
- filewriter.first(attrs["nexdatas_source"].read()))
1806
+ dsnm = av.get("nexdatas_source", None)
1807
+ if dsnm is None and "nexdatas_source" in attrs.names():
1808
+ # dsnm = self.get_attr_value("nexdatas_source")
1809
+ # if dsnm is None:
1810
+ dsnm = attrs["nexdatas_source"].read()
1811
+ if dsnm is not None:
1812
+ dsnm = getdsname(filewriter.first(dsnm))
1737
1813
  dsname = dsnm
1738
- units = ""
1739
- if "units" in attrs.names():
1740
- units = filewriter.first(attrs["units"].read())
1814
+ units = av.get("units", None)
1815
+ if units is None:
1816
+ if "units" in attrs.names():
1817
+ units = attrs["units"].read()
1818
+ print("READ UNIT", units)
1819
+ if units is not None:
1820
+ units = filewriter.first(units)
1821
+ else:
1822
+ units = ""
1741
1823
  self.__dsname = dsname
1742
1824
  shape = []
1743
1825
  if hasattr(o, "shape"):
@@ -1749,9 +1831,10 @@ class H5RedisField(H5Field):
1749
1831
  if strategy in ["STEP"] and dsnm:
1750
1832
  # skip 2D images
1751
1833
  if not shape or len(shape) < 2 or FileStream is not None:
1752
- self.__set_step_channel_info(dsname, units, shape, strategy, o)
1834
+ self.__set_step_channel_info(
1835
+ dsname, units, shape, strategy, o, av)
1753
1836
  else:
1754
- self.__set_init_channel_info(dsname, units, shape, strategy, o)
1837
+ self.__set_init_channel_info(dsname, units, shape, strategy, o, av)
1755
1838
 
1756
1839
  def __setitem__(self, t, o):
1757
1840
  """ set value
@@ -1799,6 +1882,31 @@ class H5RedisLink(H5Link):
1799
1882
  if h5object is None:
1800
1883
  raise Exception("Undefined constructor parameters")
1801
1884
  H5Link.__init__(self, h5object, tparent)
1885
+ self.__avcache_lock = threading.Lock()
1886
+ self.__avcache = {}
1887
+
1888
+ def set_attr_value(self, name, value):
1889
+ """ set device parameters
1890
+
1891
+ :param name: attribute name
1892
+ :type name: :obj:`str`
1893
+ :param value: attribute value
1894
+ :type value: :obj:`any`
1895
+ """
1896
+ with self.__avcache_lock:
1897
+ self.__avcache[name] = value
1898
+
1899
+ def get_attr_value(self, name):
1900
+ """ get scan info parameters
1901
+
1902
+ :param name: attribute name
1903
+ :type name: :obj:`str`
1904
+ :returns value: attribute value
1905
+ :rtype value: :obj:`any`
1906
+ """
1907
+ with self.__avcache_lock:
1908
+ vl = self.__avcache.get(name, None)
1909
+ return vl
1802
1910
 
1803
1911
 
1804
1912
  class H5RedisDataFilter(H5DataFilter):
@@ -2096,6 +2204,8 @@ class H5RedisAttributeManager(H5AttributeManager):
2096
2204
  :returns: attribute object
2097
2205
  :rtype: :class:`H5RedisAttribute`
2098
2206
  """
2207
+ if overwrite:
2208
+ self.set_attr_value(name, None)
2099
2209
  return H5RedisAttribute(
2100
2210
  h5imp=H5AttributeManager.create(
2101
2211
  self, name, dtype, shape, overwrite))
@@ -2111,6 +2221,28 @@ class H5RedisAttributeManager(H5AttributeManager):
2111
2221
  return H5RedisAttribute(
2112
2222
  h5imp=H5AttributeManager.__getitem__(self, name))
2113
2223
 
2224
+ def set_attr_value(self, name, value):
2225
+ """ set device parameters
2226
+
2227
+ :param name: attribute name
2228
+ :type name: :obj:`str`
2229
+ :param value: attribute value
2230
+ :type value: :obj:`any`
2231
+ """
2232
+ if hasattr(self._tparent, "set_attr_value"):
2233
+ return self._tparent.set_attr_value(name, value)
2234
+
2235
+ def get_attr_value(self, name):
2236
+ """ get scan info parameters
2237
+
2238
+ :param name: attribute name
2239
+ :type name: :obj:`str`
2240
+ :returns value: attribute value
2241
+ :rtype value: :obj:`any`
2242
+ """
2243
+ if hasattr(self._tparent, "get_attr_value"):
2244
+ return self._tparent.get_attr_value(name)
2245
+
2114
2246
 
2115
2247
  class H5RedisAttribute(H5Attribute):
2116
2248
 
@@ -2133,3 +2265,65 @@ class H5RedisAttribute(H5Attribute):
2133
2265
  if h5object is None:
2134
2266
  raise Exception("Undefined constructor parameters")
2135
2267
  H5Attribute.__init__(self, h5object, tparent)
2268
+
2269
+ def read(self):
2270
+ """ read attribute value
2271
+
2272
+ :returns: python object
2273
+ :rtype: :obj:`any`
2274
+ """
2275
+ vl = None
2276
+ if H5CPP:
2277
+ vl = self.get_attr_value(self.name)
2278
+ # print("READ", self.name, vl)
2279
+ if vl is None:
2280
+ # print("READ", self.name, vl)
2281
+ vl = self._h5object.read()
2282
+ # print("READ2", self.name, vl)
2283
+ if vl is not None:
2284
+ self.set_attr_value(self.name, vl)
2285
+ if self.dtype in ['string', b'string']:
2286
+ try:
2287
+ vl = vl.decode('UTF-8')
2288
+ except Exception:
2289
+ pass
2290
+ return vl
2291
+
2292
+ def write(self, o):
2293
+ """ write attribute value
2294
+
2295
+ :param o: python object
2296
+ :type o: :obj:`any`
2297
+ """
2298
+ self._h5object.write(o)
2299
+ vl = o
2300
+ if vl is not None and H5CPP:
2301
+ if self.dtype in ['string', b'string']:
2302
+ try:
2303
+ vl = vl.decode('UTF-8')
2304
+ except Exception:
2305
+ pass
2306
+ # print("WRITE", self.name, vl)
2307
+ self.set_attr_value(self.name, vl)
2308
+
2309
+ def set_attr_value(self, name, value):
2310
+ """ set device parameters
2311
+
2312
+ :param name: attribute name
2313
+ :type name: :obj:`str`
2314
+ :param value: attribute value
2315
+ :type value: :obj:`any`
2316
+ """
2317
+ if hasattr(self._tparent, "set_attr_value"):
2318
+ return self._tparent.set_attr_value(name, value)
2319
+
2320
+ def get_attr_value(self, name):
2321
+ """ get scan info parameters
2322
+
2323
+ :param name: attribute name
2324
+ :type name: :obj:`str`
2325
+ :returns value: attribute value
2326
+ :rtype value: :obj:`any`
2327
+ """
2328
+ if hasattr(self._tparent, "get_attr_value"):
2329
+ return self._tparent.get_attr_value(name)
nxstools/release.py CHANGED
@@ -19,4 +19,4 @@
19
19
  """ NXS tools release version"""
20
20
 
21
21
  #: (:obj:`str`) package version
22
- __version__ = "4.35.1"
22
+ __version__ = "4.37.0"
@@ -46,7 +46,7 @@
46
46
  <field type="NX_CHAR" name="last_image_saved">
47
47
  <strategy mode="FINAL"/>$datasources.$(name)_last_image_saved</field>
48
48
  <field type="NX_UINT" name="signal">1</field>
49
- <field type="NX_CHAR" name="file_index_num">
49
+ <field type="NX_INT64" name="file_index_num">
50
50
  <strategy mode="STEP"/>$datasources.$(name)_filestartnum_cb</field>
51
51
  <field type="NX_CHAR" name="image_type">
52
52
  <strategy mode="FINAL"/>$datasources.$(name)_image_type</field>
@@ -3,7 +3,7 @@
3
3
  <datasource type="PYEVAL" name="$(name)_filestartnum_cb">
4
4
  <result name="result">
5
5
  from nxstools.pyeval import common
6
- ds.result = common.filestartnum_cb(commonblock, ds.$(name)_saving_next_number, ds.$(name)_acq_nb_frames, "$(name)_saving_next_number")
6
+ ds.result = common.filestartnum_cb(commonblock, int(ds.$(name)_saving_next_number or 0), ds.$(name)_acq_nb_frames, "$(name)_saving_next_number")
7
7
  </result>
8
8
  $datasources.$(name)_saving_next_number
9
9
  $datasources.$(name)_acq_nb_frames</datasource>
@@ -46,7 +46,7 @@
46
46
  <field type="NX_CHAR" name="last_image_saved">
47
47
  <strategy mode="FINAL"/>$datasources.$(name)_last_image_saved</field>
48
48
  <field type="NX_UINT" name="signal">1</field>
49
- <field type="NX_CHAR" name="next_file_index_num">
49
+ <field type="NX_INT64" name="next_file_index_num">
50
50
  <strategy mode="STEP"/>$datasources.$(name)_filestartnum_cb</field>
51
51
  <field type="NX_CHAR" name="image_type">
52
52
  <strategy mode="FINAL"/>$datasources.$(name)_image_type</field>
@@ -3,7 +3,7 @@
3
3
  <datasource type="PYEVAL" name="$(name)_filestartnum_cb">
4
4
  <result name="result">
5
5
  from nxstools.pyeval import common
6
- ds.result = common.filestartnum_cb(commonblock, ds.$(name)_saving_next_number, 0, "$(name)_saving_next_number")
6
+ ds.result = common.filestartnum_cb(commonblock, int(ds.$(name)_saving_next_number or 0), 0, "$(name)_saving_next_number")
7
7
  </result>
8
8
  $datasources.$(name)_saving_next_number</datasource>
9
9
  </definition>
@@ -50,7 +50,7 @@
50
50
  <strategy mode="FINAL"/>$datasources.$(name)_filepostfix</field>
51
51
  <field type="NX_CHAR" name="file_prefix">
52
52
  <strategy mode="FINAL"/>$datasources.$(name)_fileprefix</field>
53
- <field type="NX_CHAR" name="file_last_num">
53
+ <field type="NX_INT64" name="file_last_num">
54
54
  <strategy mode="STEP"/>$datasources.$(name)_filestartnum_cb</field>
55
55
  <field units="Celsius" type="NX_INT16" name="cooling_temp_set">
56
56
  <strategy mode="FINAL"/>$datasources.$(name)_coolingtempset</field>
@@ -3,7 +3,7 @@
3
3
  <datasource type="PYEVAL" name="$(name)_filestartnum_cb">
4
4
  <result name="result">
5
5
  from nxstools.pyeval import common
6
- ds.result = common.filestartnum_cb(commonblock, ds.$(name)_filestartnum, ds.$(name)_nbframes, "$(name)_filestartnum")
6
+ ds.result = common.filestartnum_cb(commonblock, int(ds.$(name)_filestartnum or 0), ds.$(name)_nbframes, "$(name)_filestartnum")
7
7
  </result>
8
8
  $datasources.$(name)_filestartnum
9
9
  $datasources.$(name)_nbframes</datasource>
@@ -30,7 +30,7 @@
30
30
  <field type="NX_CHAR" name="last_image_taken">
31
31
  <strategy mode="FINAL"/>$datasources.$(name)_lastimagetaken</field>
32
32
  <field type="NX_UINT" name="signal">1</field>
33
- <field type="NX_CHAR" name="file_start_index_num">
33
+ <field type="NX_INT64" name="file_start_index_num">
34
34
  <strategy mode="STEP"/>$datasources.$(name)_filestartnum_cb</field>
35
35
  <field type="NX_CHAR" name="mx_parameters">
36
36
  <strategy mode="FINAL"/>$datasources.$(name)_mxparameters_cb</field>
@@ -3,7 +3,7 @@
3
3
  <datasource type="PYEVAL" name="$(name)_filestartnum_cb">
4
4
  <result name="result">
5
5
  from nxstools.pyeval import common
6
- ds.result = common.filestartnum_cb(commonblock, ds.$(name)_filestartnum, ds.$(name)_nbframes, "$(name)_filestartnum")
6
+ ds.result = common.filestartnum_cb(commonblock, int(ds.$(name)_filestartnum or 0), ds.$(name)_nbframes, "$(name)_filestartnum")
7
7
  </result>
8
8
  $datasources.$(name)_filestartnum
9
9
  $datasources.$(name)_nbframes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nxstools
3
- Version: 4.35.1
3
+ Version: 4.37.0
4
4
  Summary: Configuration tools for NeXDaTaS Tango Servers
5
5
  Home-page: http://github.com/nexdatas/nxstools
6
6
  Author: Jan Kotanski, Eugen Wintersberger , Halil Pasic
@@ -1,9 +1,9 @@
1
1
  nxstools/__init__.py,sha256=FkLnQ-abF4YwyoLQWk9IJcSmvS1E0rVisgD3wAin9rM,899
2
2
  nxstools/filenamegenerator.py,sha256=82Zbrxk54OiDFi6MuXtKgSgPNti4CVciBCe9NgPY8HE,3401
3
3
  nxstools/filewriter.py,sha256=feSjyvCkUvoiD949-PB6bP6F30-MSuRPtboZehYbaVk,31899
4
- nxstools/h5cppwriter.py,sha256=OOdXQR2ptKAaTNIOFVd6hETqStM_Jb38jTR65rdBxlU,69060
4
+ nxstools/h5cppwriter.py,sha256=m7vnOwimaLK9qqFhvSypH5ZxLvM8v1sCup6ftZZLFls,68971
5
5
  nxstools/h5pywriter.py,sha256=PxV0ou_WBpKE2NTnmIfsw0xKwjOO6WIjkMmxvtYXbsk,57830
6
- nxstools/h5rediswriter.py,sha256=UHCUx7uIlVlzkmAAXTjmnkgohZ1EJl-AteH5FGf8ozg,70934
6
+ nxstools/h5rediswriter.py,sha256=BdiD79lSgIscuUdUnuvgNi-Rba7J4_eMUVXt8z1_q6c,76817
7
7
  nxstools/nxsargparser.py,sha256=j2ZEhBbs1TelCTEVSWMnVTvujusjKhFNSY6kQR3nIbQ,3241
8
8
  nxstools/nxscollect.py,sha256=1kYhO6Vpk5Hb-cF14EMFkljF_nr2UUcXvzuk46-uVcM,64898
9
9
  nxstools/nxsconfig.py,sha256=hyuLqLFC9nVHPaARut74_Oy-5_SBkuADGV6ilPM6dqI,61686
@@ -17,7 +17,7 @@ nxstools/nxsfileparser.py,sha256=hoNDweS_o9RjM7p89dVQdP13VRf-1SytCUwuVNMOWag,283
17
17
  nxstools/nxsparser.py,sha256=Z6xOHCd7W20ICIurOM6H3I0FbFLF4xa29iwkotk9b40,35902
18
18
  nxstools/nxsxml.py,sha256=EMh9ZctS6TsEA9cpJc5BRabd-a8CQClTm0_H4QqaLAk,25209
19
19
  nxstools/redisutils.py,sha256=3QSILdasxql4geSHxrWAfOQ5v0-KZ6lv-e8uhlbhNPk,2586
20
- nxstools/release.py,sha256=wKy3rQw-qPgb3LR7sSyDybiOg0N7mF1y6HtYa1D4Ea8,890
20
+ nxstools/release.py,sha256=IyOeGgdrc5sYkw2rnlU_O0GVZIFEXB3JgT_25F-7AAM,890
21
21
  nxstools/ontology/__init__.py,sha256=QoAaEawW9gN3-Oan4Nh4RcnIQ5xTUy_cyTTt_qH7MH0,5583
22
22
  nxstools/ontology/ontology.json,sha256=skBZzmbhLGtQ9ahizOKlolG5agHf0lfaK4Bao2e43Lk,191838
23
23
  nxstools/pyeval/__init__.py,sha256=PtASTU6yoxWfn8GWA17Y9jcLRQjkqCKy9bpCxhaeMSo,848
@@ -165,15 +165,15 @@ nxstools/xmltemplates/lambdavds_triggermode_cb.ds.xml,sha256=iLw0HptAWuYalZMU8EY
165
165
  nxstools/xmltemplates/lambdavdsnm.xml,sha256=Cvul5oGCGJkBaYvPoBIsSJ2NH_DmyXH5xo6bmGrwx5w,4325
166
166
  nxstools/xmltemplates/lambdavdsnm_nxdata.ds.xml,sha256=W5nhxFe8p1YVT5eWt0i3SVkHvMwUWYwMb6Nq12B2Hag,342
167
167
  nxstools/xmltemplates/lambdavdsnm_triggermode_cb.ds.xml,sha256=ZSao6ZhMkHKOaDxDA0JWb74fYJRowtzl6WEUaD5fLWU,877
168
- nxstools/xmltemplates/limaccd.xml,sha256=4izXaxJsrShlJ0AlnaZ2xYqAzU44znyViHr-A1xwDNI,4056
168
+ nxstools/xmltemplates/limaccd.xml,sha256=hJMMOzzzawWdzqhj88FMGhMvfkT_0fVGzkObae4YIao,4057
169
169
  nxstools/xmltemplates/limaccd_description.ds.xml,sha256=m07KCqYFxPry_LWIUPGlDLciLW-9x0c8gxK9c8mUfTI,413
170
- nxstools/xmltemplates/limaccd_filestartnum_cb.ds.xml,sha256=FL5X2piSn9m6rAbe6P1xybftg3sJ_WA4HlDQ5Pwsyb0,412
170
+ nxstools/xmltemplates/limaccd_filestartnum_cb.ds.xml,sha256=6mn8b0KkGo00gdL2u-AUagT7KbYgmtAs9xD7yC-A35c,422
171
171
  nxstools/xmltemplates/limaccd_postrun.ds.xml,sha256=1rVy1i1z5qKggeDsCpo6Yavm236EQ59H4S40JU15fnE,658
172
172
  nxstools/xmltemplates/limaccd_xpixelsize.ds.xml,sha256=G3aAoIajr-peFbjwNaWSfvxsgG2niT4iMhfY86kySPU,295
173
173
  nxstools/xmltemplates/limaccd_ypixelsize.ds.xml,sha256=P3w3O3R7eZzoRPsOduGXtQYk4x3cmYX7mrqyPiyQZhE,295
174
- nxstools/xmltemplates/limaccdvds.xml,sha256=xrQ0ZNjUK_OeYgUtWs2IFhJ66M4u0OplVY0pC5kCA6o,4061
174
+ nxstools/xmltemplates/limaccdvds.xml,sha256=4yfBOKzJgF3-rvKvJWsQMyWTfe7oemMvPyMgEa9_e38,4062
175
175
  nxstools/xmltemplates/limaccdvds_description.ds.xml,sha256=m07KCqYFxPry_LWIUPGlDLciLW-9x0c8gxK9c8mUfTI,413
176
- nxstools/xmltemplates/limaccdvds_filestartnum_cb.ds.xml,sha256=1lQYiBT8cX7GRa-FSbnWgABadBRjTtF_fCiljsxbQZY,352
176
+ nxstools/xmltemplates/limaccdvds_filestartnum_cb.ds.xml,sha256=OjrMPuY4LCoejcLHxxDkSMZfOPK_xSZh0gTJe21_vAI,362
177
177
  nxstools/xmltemplates/limaccdvds_postrun.ds.xml,sha256=JkDheSDpisQSO9Qsb2UWDBXElw2hjH3YnEuNFJqVNvs,1206
178
178
  nxstools/xmltemplates/limaccdvds_xpixelsize.ds.xml,sha256=G3aAoIajr-peFbjwNaWSfvxsgG2niT4iMhfY86kySPU,295
179
179
  nxstools/xmltemplates/limaccdvds_ypixelsize.ds.xml,sha256=P3w3O3R7eZzoRPsOduGXtQYk4x3cmYX7mrqyPiyQZhE,295
@@ -198,22 +198,22 @@ nxstools/xmltemplates/mythen_postrun.ds.xml,sha256=XvFyWYlInXCTBsRGxeDGisxBO7o9c
198
198
  nxstools/xmltemplates/nexdatas_configuration.ds.xml,sha256=TSvHOq_x9usRrQ44CXHyqsK0yITsKHilPH0LnwpmJkg,264
199
199
  nxstools/xmltemplates/nexdatas_version.ds.xml,sha256=6uCdAMhRorW_9EbQqABf_FV51VSYdmus2XLH4gTOj1g,236
200
200
  nxstools/xmltemplates/parametercopymap.xml,sha256=N_HV4y2nCc-FOx4DCnP3AX2Y9pQjoFXWrIdf3ZA4V3U,301
201
- nxstools/xmltemplates/pco.xml,sha256=5xG95jeNjIROq6mBz70MTeOy509F-6lfaUl7yAcx9oA,3755
201
+ nxstools/xmltemplates/pco.xml,sha256=x8T5PH8GSJfJf_VdvI33cxOZC1_6zsitIhwRh285Afs,3756
202
202
  nxstools/xmltemplates/pco_description.ds.xml,sha256=Z8AeuUmFdMFOfSiukDGA_Uj_h2Lmrop20CGGCv6GtuE,278
203
- nxstools/xmltemplates/pco_filestartnum_cb.ds.xml,sha256=1zWfeZQZCp778vfYDk67731csZ3nrBCpBUPBeLY8VqM,382
203
+ nxstools/xmltemplates/pco_filestartnum_cb.ds.xml,sha256=GMHBTuPaDJpH08KbpOq4_jYI4nIguKHt2j1tO6VRJZQ,392
204
204
  nxstools/xmltemplates/pco_postrun.ds.xml,sha256=Y9HgpKLliWQY4teNqvK7NiI6fRBxbgEQugLCEds4vFc,520
205
205
  nxstools/xmltemplates/perkinelmerdetector.xml,sha256=qeGBI3F4duxUYRpOPMpsGGE12sBPzb7yYK3BsXJ0gak,4332
206
206
  nxstools/xmltemplates/perkinelmerdetector_description.ds.xml,sha256=AfZglp0_PdivC_4E1A4E4Tw_wQSqTjoew2xrOPfKI84,271
207
207
  nxstools/xmltemplates/perkinelmerdetector_fileindex_cb.ds.xml,sha256=jghzhsGjYDEkPSJ0k10Fr5BEd5fbK9XBQM6oxRCmzZM,307
208
208
  nxstools/xmltemplates/perkinelmerdetector_postrun.ds.xml,sha256=izumMtr7E5jH1DvDVMSvbR7vVfRMAv31LscfGjNBxB0,469
209
- nxstools/xmltemplates/pilatus.xml,sha256=tjAUiI5FpeHG85SmTahaierkhVZHQP5B_bcr4ZvjFMw,2493
209
+ nxstools/xmltemplates/pilatus.xml,sha256=JHiSr_L4X_hRR3R79WO-Jz03QtKOOEGV9P7O60FpI-0,2494
210
210
  nxstools/xmltemplates/pilatus100k_description.ds.xml,sha256=BkAfbz3ZyOsC4QdOQByQ6Y2d-khxEL8yYC0NVOye65M,279
211
211
  nxstools/xmltemplates/pilatus1m_description.ds.xml,sha256=Kto--h_9O5MW2JATvKxdAagmvjftpUdMU0ZqcbgS6UM,277
212
212
  nxstools/xmltemplates/pilatus2m_description.ds.xml,sha256=rWMVlrKz2uetsV7BrHoel6KHIjUbLUhImj5Y0XkS8N0,277
213
213
  nxstools/xmltemplates/pilatus300k_description.ds.xml,sha256=LEtURby4-4MvD43TI2URiYA9AgGMSvIi2oREuzVwOwM,279
214
214
  nxstools/xmltemplates/pilatus6m_description.ds.xml,sha256=AS4g8662m8VXYnzvTFL0-tY0N-JMojf94OeHyPAwOkI,277
215
215
  nxstools/xmltemplates/pilatus_description.ds.xml,sha256=Z8AeuUmFdMFOfSiukDGA_Uj_h2Lmrop20CGGCv6GtuE,278
216
- nxstools/xmltemplates/pilatus_filestartnum_cb.ds.xml,sha256=GyYRsPNLY5KnQAxgyr8sKOCIz7i6V8GjcQWDOW-z1E4,391
216
+ nxstools/xmltemplates/pilatus_filestartnum_cb.ds.xml,sha256=etGzvx-NPYOPci-mTU4Ro-janQwg2rTesSeU19yiQ9A,401
217
217
  nxstools/xmltemplates/pilatus_mxparameters_cb.ds.xml,sha256=uMe9SHNKuLsVByyQeaoyoAX8OQJfR6NRLpFOU8lDqt8,383
218
218
  nxstools/xmltemplates/pilatus_postrun.ds.xml,sha256=nmrIH7jxmOYASXpz_QFKW99mz6vVVGT6uxtIh8buRmY,529
219
219
  nxstools/xmltemplates/pilc.xml,sha256=uh4RBpAxvpoB2bvE_K249Hfcx3H5Eg1lJKJZAU4BOKE,4202
@@ -273,13 +273,13 @@ nxstools/xmltemplates/title.ds.xml,sha256=cBN_WigqtvGK2vS3dCotwH7NNDAb2Z_z7CLw-t
273
273
  nxstools/xmltemplates/undulator.xml,sha256=Tnfkgftm6KOQyifc-BVyqUuEB9alHUru7z3_Qv9tJrY,2369
274
274
  nxstools/xmltemplates/xspress3.xml,sha256=uOsLW21SyXcsilZAZdIyQ37npTkzuIEqjat3QlNyndY,1873
275
275
  nxstools/xmltemplates/xspress3_triggermode_cb.ds.xml,sha256=xrXNLT6uuDofgXRqVhdIo25J7nUPPdSPJs4kE_u8_rw,871
276
- nxstools-4.35.1.data/scripts/nxscollect,sha256=ckAVuZnNdjepU9S6EKDACb-Zcojpt_UhiTKnHoMVEhk,60
277
- nxstools-4.35.1.data/scripts/nxsconfig,sha256=va2RtUWqZN_Nb4dSs_0d63XjzqYkbSLSnvkCB0dbwYw,58
278
- nxstools-4.35.1.data/scripts/nxscreate,sha256=kpc2eEoCpWNg3inzgm2if6bpT9i-9-GJJQ-8mSs6a7M,59
279
- nxstools-4.35.1.data/scripts/nxsdata,sha256=XvalTwXtrS2DOb8nKLp-7Mjom-L_WBLBqY5xtl-CPH4,54
280
- nxstools-4.35.1.data/scripts/nxsetup,sha256=pYXgv6vHpblrmURXikAZBAOOaPxDnqu3n6OSYuLXkWE,54
281
- nxstools-4.35.1.data/scripts/nxsfileinfo,sha256=Hhus49bHtva79IwY_7nxDhQF-ianVKMYo1uvNqeOqJ0,62
282
- nxstools-4.35.1.dist-info/METADATA,sha256=6eIBE_UVmMFePuz7byg6dUJuMKWcSwHpyFhRO2Yu_fM,5051
283
- nxstools-4.35.1.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
284
- nxstools-4.35.1.dist-info/top_level.txt,sha256=puE4GNPuhMbwc3ViVq7sru72pVPcvxWlx9lPezA-5RQ,9
285
- nxstools-4.35.1.dist-info/RECORD,,
276
+ nxstools-4.37.0.data/scripts/nxscollect,sha256=ckAVuZnNdjepU9S6EKDACb-Zcojpt_UhiTKnHoMVEhk,60
277
+ nxstools-4.37.0.data/scripts/nxsconfig,sha256=va2RtUWqZN_Nb4dSs_0d63XjzqYkbSLSnvkCB0dbwYw,58
278
+ nxstools-4.37.0.data/scripts/nxscreate,sha256=kpc2eEoCpWNg3inzgm2if6bpT9i-9-GJJQ-8mSs6a7M,59
279
+ nxstools-4.37.0.data/scripts/nxsdata,sha256=XvalTwXtrS2DOb8nKLp-7Mjom-L_WBLBqY5xtl-CPH4,54
280
+ nxstools-4.37.0.data/scripts/nxsetup,sha256=pYXgv6vHpblrmURXikAZBAOOaPxDnqu3n6OSYuLXkWE,54
281
+ nxstools-4.37.0.data/scripts/nxsfileinfo,sha256=Hhus49bHtva79IwY_7nxDhQF-ianVKMYo1uvNqeOqJ0,62
282
+ nxstools-4.37.0.dist-info/METADATA,sha256=0-dj9EdZWYg2jSGu1sYHJ8htrCawXUa-X4jswyQ010o,5051
283
+ nxstools-4.37.0.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
284
+ nxstools-4.37.0.dist-info/top_level.txt,sha256=puE4GNPuhMbwc3ViVq7sru72pVPcvxWlx9lPezA-5RQ,9
285
+ nxstools-4.37.0.dist-info/RECORD,,