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 +9 -9
- nxstools/h5rediswriter.py +215 -21
- nxstools/release.py +1 -1
- nxstools/xmltemplates/limaccd.xml +1 -1
- nxstools/xmltemplates/limaccd_filestartnum_cb.ds.xml +1 -1
- nxstools/xmltemplates/limaccdvds.xml +1 -1
- nxstools/xmltemplates/limaccdvds_filestartnum_cb.ds.xml +1 -1
- nxstools/xmltemplates/pco.xml +1 -1
- nxstools/xmltemplates/pco_filestartnum_cb.ds.xml +1 -1
- nxstools/xmltemplates/pilatus.xml +1 -1
- nxstools/xmltemplates/pilatus_filestartnum_cb.ds.xml +1 -1
- {nxstools-4.35.1.dist-info → nxstools-4.37.0.dist-info}/METADATA +1 -1
- {nxstools-4.35.1.dist-info → nxstools-4.37.0.dist-info}/RECORD +21 -21
- {nxstools-4.35.1.data → nxstools-4.37.0.data}/scripts/nxscollect +0 -0
- {nxstools-4.35.1.data → nxstools-4.37.0.data}/scripts/nxsconfig +0 -0
- {nxstools-4.35.1.data → nxstools-4.37.0.data}/scripts/nxscreate +0 -0
- {nxstools-4.35.1.data → nxstools-4.37.0.data}/scripts/nxsdata +0 -0
- {nxstools-4.35.1.data → nxstools-4.37.0.data}/scripts/nxsetup +0 -0
- {nxstools-4.35.1.data → nxstools-4.37.0.data}/scripts/nxsfileinfo +0 -0
- {nxstools-4.35.1.dist-info → nxstools-4.37.0.dist-info}/WHEEL +0 -0
- {nxstools-4.35.1.dist-info → nxstools-4.37.0.dist-info}/top_level.txt +0 -0
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.
|
|
1944
|
+
self.write(unicode(o))
|
|
1945
1945
|
else:
|
|
1946
1946
|
dtype = npunicode
|
|
1947
|
-
self.
|
|
1947
|
+
self.write(np.array(o, dtype=dtype))
|
|
1948
1948
|
else:
|
|
1949
|
-
self.
|
|
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.
|
|
1959
|
+
self.write(var)
|
|
1960
1960
|
except Exception:
|
|
1961
1961
|
dtype = npunicode
|
|
1962
1962
|
tvar = np.array(var, dtype=dtype)
|
|
1963
|
-
self.
|
|
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.
|
|
1983
|
+
self.write(var)
|
|
1984
1984
|
else:
|
|
1985
1985
|
if isinstance(o, str) or isinstance(o, unicode):
|
|
1986
|
-
self.
|
|
1986
|
+
self.write(unicode(o))
|
|
1987
1987
|
else:
|
|
1988
|
-
self.
|
|
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
|
-
|
|
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
|
-
|
|
1545
|
-
|
|
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
|
-
|
|
1695
|
-
|
|
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
|
-
|
|
1781
|
+
# print(key, np)
|
|
1782
|
+
if key == "title" and isinstance(np, str):
|
|
1714
1783
|
macro_name = np.split(" ")[0]
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
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
|
|
1740
|
-
units
|
|
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(
|
|
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
|
@@ -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="
|
|
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="
|
|
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>
|
nxstools/xmltemplates/pco.xml
CHANGED
|
@@ -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="
|
|
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="
|
|
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,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=
|
|
4
|
+
nxstools/h5cppwriter.py,sha256=m7vnOwimaLK9qqFhvSypH5ZxLvM8v1sCup6ftZZLFls,68971
|
|
5
5
|
nxstools/h5pywriter.py,sha256=PxV0ou_WBpKE2NTnmIfsw0xKwjOO6WIjkMmxvtYXbsk,57830
|
|
6
|
-
nxstools/h5rediswriter.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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.
|
|
277
|
-
nxstools-4.
|
|
278
|
-
nxstools-4.
|
|
279
|
-
nxstools-4.
|
|
280
|
-
nxstools-4.
|
|
281
|
-
nxstools-4.
|
|
282
|
-
nxstools-4.
|
|
283
|
-
nxstools-4.
|
|
284
|
-
nxstools-4.
|
|
285
|
-
nxstools-4.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|