nxstools 4.34.0__py3-none-any.whl → 4.36.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.34.0"
22
+ __version__ = "4.36.0"
@@ -1766,6 +1766,7 @@ standardComponentTemplateFiles = {
1766
1766
  #: xml template files of modules
1767
1767
  moduleTemplateFiles = {
1768
1768
  'mythen2': ['mythen2.xml'],
1769
+ 'prodigyremote': ['prodigyremote.xml'],
1769
1770
  'cobold': ['cobold.xml'],
1770
1771
  'mythen': ['mythen.xml',
1771
1772
  'mythen_postrun.ds.xml',
@@ -1987,6 +1988,17 @@ moduleMultiAttributes = {
1987
1988
  'mca_xia@pool': [
1988
1989
  'CountsRoI', 'RoIEnd', 'RoIStart',
1989
1990
  ],
1991
+ 'prodigyremote': [
1992
+ 'FullSpectrum', 'IntegratedSpectrum', 'EnergyPoints',
1993
+ 'LensMode', 'EntrySlit',
1994
+ 'StartEnergy', 'PassEnergy', 'StepWidth', 'StopEnergy',
1995
+ # 'ExitSlit',
1996
+ 'KinEnergy', 'KinEnergyBase',
1997
+ 'NumberOfAcquiredPoints', 'ExpectedNumberOfPoints',
1998
+ 'DwellTime', 'ScanRange',
1999
+ 'Samples', 'RetardingRatio', 'Mode',
2000
+ 'NonEnergyChannels', 'ScanVariable',
2001
+ ],
1990
2002
  'limaccd': [
1991
2003
  'camera_type', 'camera_pixelsize', 'camera_model',
1992
2004
  'acq_mode', 'acq_nb_frames', 'acq_trigger_mode',
@@ -0,0 +1,78 @@
1
+ <?xml version='1.0'?>
2
+ <definition>
3
+ <group type="NXentry" name="$var.entryname#'$(__entryname__)'$var.serialno">
4
+ <group type="NXinstrument" name="instrument">
5
+ <group type="NXelectronanalyzer" name="$(name)">
6
+ <group type="NXelectron_detector" name="electron_detector">
7
+ <group type="NXdata" name="raw_data">
8
+ <attribute type="NX_CHAR" name="signal">
9
+ <strategy mode="INIT"/>raw
10
+ </attribute>
11
+ <field type="NX_FLOAT64" name="raw">
12
+ <strategy mode="STEP"/>$datasources.$(name)_integratedspectrum<dimensions rank="1"/>
13
+ </field>
14
+ <field units="eV" type="NX_FLOAT64" name="energy">
15
+ <strategy mode="STEP"/>$datasources.$(name)_energypoints<dimensions rank="1"/>
16
+ </field>
17
+ </group>
18
+ <field units="eV" type="NX_FLOAT64" name="data">
19
+ <strategy mode="STEP"/>$datasources.$(name)_fullspectrum<dimensions rank="2"/>
20
+ </field>
21
+ </group>
22
+ <group type="NXcollectioncolumn" name="collectioncolumn">
23
+ <field type="NX_CHAR" name="lens_mode">
24
+ <strategy mode="FINAL"/>$datasources.$(name)_lensmode</field>
25
+ </group>
26
+ <group type="NXenergydispersion" name="energydispersion">
27
+ <group type="NXaperture" name="entrance_slit">
28
+ <field type="NX_CHAR" name="description">
29
+ <strategy mode="FINAL"/>$datasources.$(name)_entryslit</field>
30
+ </group>
31
+ <field units="eV" type="NX_FLOAT64" name="pass_energy">
32
+ <strategy mode="FINAL"/>$datasources.$(name)_passenergy</field>
33
+ </group>
34
+ <group type="NXresolution" name="energy_resolution">
35
+ <field units="eV" type="NX_CHAR" name="physical_quantity">
36
+ <strategy mode="FINAL"/>energy</field>
37
+ <field units="eV" type="NX_FLOAT64" name="resolution">
38
+ <strategy mode="FINAL"/>$datasources.$(name)_stepwidth</field>
39
+ <group type="NXcollection" name="collection">
40
+ <field units="eV" type="NX_FLOAT64" name="start_energy">
41
+ <strategy mode="FINAL"/>$datasources.$(name)_startenergy</field>
42
+ <field units="eV" type="NX_FLOAT64" name="stop_energy">
43
+ <strategy mode="FINAL"/>$datasources.$(name)_stopenergy</field>
44
+ <field units="eV" type="NX_FLOAT64" name="kin_energy">
45
+ <strategy mode="FINAL"/>$datasources.$(name)_kinenergy</field>
46
+ <field units="eV" type="NX_FLOAT64" name="kin_energybase">
47
+ <strategy mode="FINAL"/>$datasources.$(name)_kinenergybase</field>
48
+ </group>
49
+ </group>
50
+ <group type="NXcollection" name="collection">
51
+ <field units="s" type="NX_FLOAT64" name="dwell_time">
52
+ <strategy mode="FINAL"/>$datasources.$(name)_dwelltime</field>
53
+ <field type="NX_INT64" name="number_of_acquired_points">
54
+ <strategy mode="FINAL"/>$datasources.$(name)_numberofacquiredpoints</field>
55
+ <field type="NX_INT64" name="expected_number_of_points">
56
+ <strategy mode="FINAL"/>$datasources.$(name)_expectednumberofpoints</field>
57
+ <field type="NX_INT64" name="samples">
58
+ <strategy mode="FINAL"/>$datasources.$(name)_samples</field>
59
+ <field type="NX_FLOAT64" name="retarding_ratio">
60
+ <strategy mode="FINAL"/>$datasources.$(name)_retardingratio</field>
61
+ <field type="NX_CHAR" name="scan_range">
62
+ <strategy mode="FINAL"/>$datasources.$(name)_scanrange</field>
63
+ <field type="NX_INT64" name="mode">
64
+ <strategy mode="FINAL"/>$datasources.$(name)_mode</field>
65
+ <field type="NX_INT64" name="non_energy_channels">
66
+ <strategy mode="FINAL"/>$datasources.$(name)_nonenergychannels</field>
67
+ <field type="NX_CHAR" name="scan_variable">
68
+ <strategy mode="FINAL"/>$datasources.$(name)_scanvariable</field>
69
+ </group>
70
+ </group>
71
+ </group>
72
+ <group type="NXdata" name="data">
73
+ <link target="/scan$var.serialno/instrument/$(name)/electron_detector/raw_data/raw" name="$(name)_integratedspectrum"/>
74
+ <link target="/scan$var.serialno/instrument/$(name)/electron_detector/raw_data/energy" name="$(name)_energy"/>
75
+ <link target="/scan$var.serialno/instrument/$(name)/electron_detector/data" name="$(name)_fullspectrum"/>
76
+ </group>
77
+ </group>
78
+ </definition>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nxstools
3
- Version: 4.34.0
3
+ Version: 4.36.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=vQCXNMcWkhQqv7v2pmZ6ZT2tFxsUZRUvT2VfD6O-oU0,890
20
+ nxstools/release.py,sha256=O2ann4EL-rXYD_vdlw1oFRtQUKSKf_72oR1CY6vPxIs,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
@@ -48,7 +48,7 @@ nxstools/pyeval/secop.py,sha256=fjyNHoKyJbuuCdTIrq0kzoQOwApH-KpOR9y6DpLo2AE,1495
48
48
  nxstools/pyeval/tangovimba.py,sha256=cd2sOH4u6ZoJda2abiwaQuNdLncFcdkkftzE6eyldW4,2612
49
49
  nxstools/pyeval/timestamp.py,sha256=c8lpSVPMgQIr_keZic4qSxQtt0WdavNuWqwNuhHkGJI,2888
50
50
  nxstools/pyeval/xspress3.py,sha256=RGkM8H-ubY8EbOXkEJxMt1JT3N32f6xRcKNrEly7b_o,5898
51
- nxstools/xmltemplates/__init__.py,sha256=I8hXbrEWuILTTORo6M9M0cdYk84_-Z5kdOY5uq4VGvU,79811
51
+ nxstools/xmltemplates/__init__.py,sha256=j0cCxDetfvn-SsT0adB-SRBxbwk8PoCpX_rBwJSPeUY,80288
52
52
  nxstools/xmltemplates/absorber.xml,sha256=zCxlNyhd2vGYmOjlrspt3S3l5q4rDHbgZ4E6j1TRyMc,2183
53
53
  nxstools/xmltemplates/absorber_foil.ds.xml,sha256=--C8l-bF24lAKwoJr_N2ZkhGl9Q6ghrPSuqcx1aDl9Y,272
54
54
  nxstools/xmltemplates/absorber_thickness.ds.xml,sha256=qBS1PGEhLIB4UtYLpMeYaG_yXkjgMhCEzoW85TvJB4E,287
@@ -238,6 +238,7 @@ nxstools/xmltemplates/pilcvds_encoder4map.ds.xml,sha256=eaEuXW5odE4d7M2Wow-5clKY
238
238
  nxstools/xmltemplates/pilcvds_encoder5map.ds.xml,sha256=S8TRkQ2TeETr3-_L0a2txM3d6HO0TUaKf3YE5D7OwUY,674
239
239
  nxstools/xmltemplates/pinhole.xml,sha256=J945kv2nRkB104KV-qjJJ1sfvE4FN5Bx01RnVvHy9ME,2028
240
240
  nxstools/xmltemplates/pointdet.xml,sha256=z5LlXpFiQ207wed3elGCePiDA2XXCGLg33EhCCAEqi8,560
241
+ nxstools/xmltemplates/prodigyremote.xml,sha256=Ax4hMM8kGcNfZzZ5LA43G5H5yTC6VGVtouCAUp_x8DU,4314
241
242
  nxstools/xmltemplates/qbpm.xml,sha256=BcEktuSQ5rOQUR0lqzHWeEWi2q3SJ0FtlB4DevVjV7Y,2186
242
243
  nxstools/xmltemplates/qbpm_foil.ds.xml,sha256=IPYdpP50zt0zsJc68b99F08BLOXZFdyAn-HWOxU26Gg,265
243
244
  nxstools/xmltemplates/sample_description.ds.xml,sha256=RCpUhPQJnNqlhn-lpIHhHQ9CEZG2mlPMyMlSLzJ2xkg,160
@@ -272,13 +273,13 @@ nxstools/xmltemplates/title.ds.xml,sha256=cBN_WigqtvGK2vS3dCotwH7NNDAb2Z_z7CLw-t
272
273
  nxstools/xmltemplates/undulator.xml,sha256=Tnfkgftm6KOQyifc-BVyqUuEB9alHUru7z3_Qv9tJrY,2369
273
274
  nxstools/xmltemplates/xspress3.xml,sha256=uOsLW21SyXcsilZAZdIyQ37npTkzuIEqjat3QlNyndY,1873
274
275
  nxstools/xmltemplates/xspress3_triggermode_cb.ds.xml,sha256=xrXNLT6uuDofgXRqVhdIo25J7nUPPdSPJs4kE_u8_rw,871
275
- nxstools-4.34.0.data/scripts/nxscollect,sha256=ckAVuZnNdjepU9S6EKDACb-Zcojpt_UhiTKnHoMVEhk,60
276
- nxstools-4.34.0.data/scripts/nxsconfig,sha256=va2RtUWqZN_Nb4dSs_0d63XjzqYkbSLSnvkCB0dbwYw,58
277
- nxstools-4.34.0.data/scripts/nxscreate,sha256=kpc2eEoCpWNg3inzgm2if6bpT9i-9-GJJQ-8mSs6a7M,59
278
- nxstools-4.34.0.data/scripts/nxsdata,sha256=XvalTwXtrS2DOb8nKLp-7Mjom-L_WBLBqY5xtl-CPH4,54
279
- nxstools-4.34.0.data/scripts/nxsetup,sha256=pYXgv6vHpblrmURXikAZBAOOaPxDnqu3n6OSYuLXkWE,54
280
- nxstools-4.34.0.data/scripts/nxsfileinfo,sha256=Hhus49bHtva79IwY_7nxDhQF-ianVKMYo1uvNqeOqJ0,62
281
- nxstools-4.34.0.dist-info/METADATA,sha256=JoPO1hShaQv72Br4MLm7TavwczwewM0EMZj8obPGk4c,5051
282
- nxstools-4.34.0.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
283
- nxstools-4.34.0.dist-info/top_level.txt,sha256=puE4GNPuhMbwc3ViVq7sru72pVPcvxWlx9lPezA-5RQ,9
284
- nxstools-4.34.0.dist-info/RECORD,,
276
+ nxstools-4.36.0.data/scripts/nxscollect,sha256=ckAVuZnNdjepU9S6EKDACb-Zcojpt_UhiTKnHoMVEhk,60
277
+ nxstools-4.36.0.data/scripts/nxsconfig,sha256=va2RtUWqZN_Nb4dSs_0d63XjzqYkbSLSnvkCB0dbwYw,58
278
+ nxstools-4.36.0.data/scripts/nxscreate,sha256=kpc2eEoCpWNg3inzgm2if6bpT9i-9-GJJQ-8mSs6a7M,59
279
+ nxstools-4.36.0.data/scripts/nxsdata,sha256=XvalTwXtrS2DOb8nKLp-7Mjom-L_WBLBqY5xtl-CPH4,54
280
+ nxstools-4.36.0.data/scripts/nxsetup,sha256=pYXgv6vHpblrmURXikAZBAOOaPxDnqu3n6OSYuLXkWE,54
281
+ nxstools-4.36.0.data/scripts/nxsfileinfo,sha256=Hhus49bHtva79IwY_7nxDhQF-ianVKMYo1uvNqeOqJ0,62
282
+ nxstools-4.36.0.dist-info/METADATA,sha256=RqLnT1GwUHy_EIkPUMl5piyzVt9XQGG0V4JaSYyOcqA,5051
283
+ nxstools-4.36.0.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
284
+ nxstools-4.36.0.dist-info/top_level.txt,sha256=puE4GNPuhMbwc3ViVq7sru72pVPcvxWlx9lPezA-5RQ,9
285
+ nxstools-4.36.0.dist-info/RECORD,,