nxstools 4.30.0__py3-none-any.whl → 4.33.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/h5rediswriter.py CHANGED
@@ -34,7 +34,6 @@ from .nxsfileparser import (getdsname, getdssource,
34
34
  # getdstype
35
35
  )
36
36
 
37
-
38
37
  H5CPP = False
39
38
  try:
40
39
  from . import h5cppwriter as h5writer
@@ -130,6 +129,10 @@ progattrdesc = {
130
129
  "beamtime_id": ["beamtime_id", str, False],
131
130
  }
132
131
 
132
+ titleplots = {
133
+ "mesh": {"kind": "scatter-plot", "items": [{"kind": "scatter"}]},
134
+ }
135
+
133
136
 
134
137
  def nptype(dtype):
135
138
  """ converts to numpy types
@@ -406,6 +409,12 @@ class H5RedisFile(H5File):
406
409
  """ file tree file
407
410
  """
408
411
 
412
+ #: (:obj:`dict`) global data stores
413
+ global_data_stores = {}
414
+
415
+ #: (:class:`threading.Lock`) global data store lock
416
+ global_data_store_lock = threading.Lock()
417
+
409
418
  def __init__(self, h5object=None, filename=None, h5imp=None,
410
419
  redisurl=None, session=None, h5fileplugin=None):
411
420
  """ constructor
@@ -444,8 +453,13 @@ class H5RedisFile(H5File):
444
453
  self.__entryname = ''
445
454
  self.__insname = ''
446
455
  if REDIS and self.__redisurl:
447
- # print("FILENAME", self.name)
448
- self.__datastore = getDataStore(self.__redisurl)
456
+ with self.global_data_store_lock:
457
+ # print("FILENAME", self.name)
458
+ if self.__redisurl in self.global_data_stores:
459
+ self.__datastore = self.global_data_stores[self.__redisurl]
460
+ else:
461
+ self.__datastore = getDataStore(self.__redisurl)
462
+ self.global_data_stores[self.__redisurl] = self.__datastore
449
463
  # global FileStream
450
464
  # if h5fileplugin:
451
465
  # try:
@@ -1531,118 +1545,125 @@ class H5RedisField(H5Field):
1531
1545
  filewriter.first(attrs[vl[0]].read()))
1532
1546
  sds["nexus_path"] = self.path
1533
1547
  self.append_scaninfo(sds, ["datadesc", dsname])
1534
- if self.dtype not in ['string', b'string']:
1535
- mgchannels = self.get_scaninfo(
1536
- ["measurement_group_channels"])
1537
- device_type = "other_channels"
1538
- if shape and len(shape) == 1:
1539
- device_type = "mca"
1540
- elif shape and len(shape) == 2:
1541
- device_type = "image"
1542
- # if "timestamp" in dsname or \
1543
- # dsname.endswith("_time"):
1544
- if "timestamp" in dsname:
1545
- device_type = "time"
1546
- elif dsname in mgchannels:
1548
+ try:
1549
+ if self.dtype not in ['string', b'string']:
1550
+ mgchannels = self.get_scaninfo(
1551
+ ["measurement_group_channels"])
1552
+ device_type = "other_channels"
1547
1553
  if shape and len(shape) == 1:
1548
1554
  device_type = "mca"
1549
1555
  elif shape and len(shape) == 2:
1550
1556
  device_type = "image"
1557
+ # if "timestamp" in dsname or \
1558
+ # dsname.endswith("_time"):
1559
+ if "timestamp" in dsname:
1560
+ device_type = "time"
1561
+ elif dsname in mgchannels:
1562
+ if shape and len(shape) == 1:
1563
+ device_type = "mca"
1564
+ elif shape and len(shape) == 2:
1565
+ device_type = "image"
1566
+ else:
1567
+ device_type = "mg_channels"
1568
+
1569
+ self.append_devices(
1570
+ dsname, [device_type, 'channels'])
1571
+ if units:
1572
+ ch = ChannelDict(
1573
+ device=device_type, dim=len(shape),
1574
+ display_name=dsname, unit=units)
1551
1575
  else:
1552
- device_type = "mg_channels"
1553
-
1554
- self.append_devices(
1555
- dsname, [device_type, 'channels'])
1556
- if units:
1557
- ch = ChannelDict(
1558
- device=device_type, dim=len(shape),
1559
- display_name=dsname, unit=units)
1576
+ ch = ChannelDict(
1577
+ device=device_type, dim=len(shape),
1578
+ display_name=dsname)
1579
+ self.set_channels(ch, [dsname])
1580
+ if len(shape) < 2:
1581
+ encoder = NumericStreamEncoder(
1582
+ dtype=sds["dtype"],
1583
+ shape=shape)
1584
+ if Stream is not None:
1585
+ sdef = Stream.make_definition(dsname,
1586
+ encoder,
1587
+ shape=shape,
1588
+ info={"unit": units})
1589
+ self.__stream = self.scan_command(
1590
+ "create_stream", sdef)
1591
+ else:
1592
+ self.__stream = self.scan_command(
1593
+ "create_stream",
1594
+ dsname,
1595
+ encoder,
1596
+ info={"unit": units})
1597
+ self.append_stream(dsname, self.__stream)
1598
+ if not shape:
1599
+ # plot_type = 1
1600
+ # plot_axes = []
1601
+ # axes = []
1602
+ # self.append_scaninfo(
1603
+ # {"kind": "curve-plot",
1604
+ # "name": dsname,
1605
+ # "items": axes}, ["plots"])
1606
+ pass
1607
+ else:
1608
+ # self.append_scaninfo(
1609
+ # {"kind": "1d-plot",
1610
+ # # "name": "mg_channels",
1611
+ # "name": dsname,
1612
+ # "x": "index",
1613
+ # "items": [
1614
+ # {
1615
+ # # "kind": "curve",
1616
+ # "y": [dsname]
1617
+ # }
1618
+ # ]},
1619
+ # ["plots"])
1620
+ pass
1621
+ elif Stream is not None and FileStream is not None:
1622
+ filename = None
1623
+ obj = self
1624
+ while filename is None:
1625
+ par = obj.parent
1626
+ if par is None:
1627
+ break
1628
+ # print("PAR", par.name)
1629
+ if hasattr(par, "root") and hasattr(par, "name"):
1630
+ filename = par.name
1631
+ break
1632
+ else:
1633
+ obj = par
1634
+
1635
+ # print("FILENAME", filename)
1636
+ sdef = FileStream.make_definition(
1637
+ name=dsname,
1638
+ dtype=sds["dtype"],
1639
+ shape=shape,
1640
+ file_pattern=str(filename),
1641
+ frames_per_file=0,
1642
+ data_path=self.path,
1643
+ # data_path="/scan/data/%s" % dsname ,
1644
+ info={"unit": units},
1645
+ file_index_offset=1,
1646
+ file_mode="single")
1647
+ self.__rstream = self.scan_command(
1648
+ "create_stream", sdef)
1649
+ self.__rcounter = 0
1650
+ self.append_stream(dsname, self.__rstream)
1560
1651
  else:
1561
- ch = ChannelDict(
1562
- device=device_type, dim=len(shape),
1563
- display_name=dsname)
1564
- self.set_channels(ch, [dsname])
1565
- if len(shape) < 2:
1566
- encoder = NumericStreamEncoder(
1567
- dtype=sds["dtype"],
1568
- shape=shape)
1569
1652
  if Stream is not None:
1570
- sdef = Stream.make_definition(dsname,
1571
- encoder,
1572
- shape=shape,
1573
- info={"unit": units})
1574
- self.__stream = self.scan_command(
1653
+ sdef = Stream.make_definition(
1654
+ dsname, JsonStreamEncoder())
1655
+ self.__jstream = self.scan_command(
1575
1656
  "create_stream", sdef)
1576
1657
  else:
1577
- self.__stream = self.scan_command(
1658
+ self.__jstream = self.scan_command(
1578
1659
  "create_stream",
1579
- dsname,
1580
- encoder,
1581
- info={"unit": units})
1582
- if not shape:
1583
- # plot_type = 1
1584
- # plot_axes = []
1585
- # axes = []
1586
- # self.append_scaninfo(
1587
- # {"kind": "curve-plot",
1588
- # "name": dsname,
1589
- # "items": axes}, ["plots"])
1590
- pass
1591
- else:
1592
- # self.append_scaninfo(
1593
- # {"kind": "1d-plot",
1594
- # # "name": "mg_channels",
1595
- # "name": dsname,
1596
- # "x": "index",
1597
- # "items": [
1598
- # {
1599
- # # "kind": "curve",
1600
- # "y": [dsname]
1601
- # }
1602
- # ]},
1603
- # ["plots"])
1604
- pass
1605
- elif Stream is not None and FileStream is not None:
1606
- filename = None
1607
- obj = self
1608
- while filename is None:
1609
- par = obj.parent
1610
- if par is None:
1611
- break
1612
- # print("PAR", par.name)
1613
- if hasattr(par, "root") and hasattr(par, "name"):
1614
- filename = par.name
1615
- break
1616
- else:
1617
- obj = par
1618
-
1619
- # print("FILENAME", filename)
1620
- sdef = FileStream.make_definition(
1621
- name=dsname,
1622
- dtype=sds["dtype"],
1623
- shape=shape,
1624
- file_pattern=str(filename),
1625
- frames_per_file=0,
1626
- data_path=self.path,
1627
- # data_path="/scan/data/%s" % dsname ,
1628
- info={"unit": units},
1629
- file_index_offset=1,
1630
- file_mode="single")
1631
- self.__rstream = self.scan_command(
1632
- "create_stream", sdef)
1633
- self.__rcounter = 0
1634
- self.append_stream(dsname, self.__rstream)
1635
- else:
1636
- if Stream is not None:
1637
- sdef = Stream.make_definition(
1638
- dsname, JsonStreamEncoder())
1639
- self.__jstream = self.scan_command(
1640
- "create_stream", sdef)
1660
+ dsname, JsonStreamEncoder())
1661
+ self.append_stream(dsname, self.__jstream)
1662
+ except RuntimeError as e:
1663
+ if "already exists" in str(e):
1664
+ print(str(e))
1641
1665
  else:
1642
- self.__jstream = self.scan_command(
1643
- "create_stream",
1644
- dsname, JsonStreamEncoder())
1645
- self.append_stream(dsname, self.__jstream)
1666
+ raise
1646
1667
 
1647
1668
  def __set_init_channel_info(self, dsname, units, shape, strategy, o):
1648
1669
  """ set init channel info
@@ -1689,6 +1710,12 @@ class H5RedisField(H5Field):
1689
1710
  np = str(filewriter.first(attrs[vl[0]].read()))
1690
1711
  if vl[2] or np:
1691
1712
  self.set_scaninfo(np, [key])
1713
+ if isinstance(np, str):
1714
+ macro_name = np.split(" ")[0]
1715
+ for mn, plot in titleplots.items():
1716
+ if mn in macro_name:
1717
+ self.append_scaninfo(plot, ["plots"])
1718
+
1692
1719
  except Exception as e:
1693
1720
  print(str(e))
1694
1721
  pass
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.30.0"
22
+ __version__ = "4.33.0"
@@ -1131,6 +1131,8 @@ standardComponentVariables = {
1131
1131
  },
1132
1132
  'defaultsample': {
1133
1133
  },
1134
+ 'defaultsampleidentifier': {
1135
+ },
1134
1136
  'dcm': {
1135
1137
  'usage': {
1136
1138
  'default': 'Bragg',
@@ -1639,6 +1641,10 @@ standardComponentTemplateFiles = {
1639
1641
  'sample_name.ds.xml',
1640
1642
  'chemical_formula.ds.xml',
1641
1643
  ],
1644
+ 'defaultsampleidentifier': [
1645
+ 'defaultsampleidentifier.xml',
1646
+ 'sample_identifier.ds.xml',
1647
+ ],
1642
1648
  'defaultcollection': [
1643
1649
  'defaultcollection.xml',
1644
1650
  'collection_identifier.ds.xml',
@@ -0,0 +1,10 @@
1
+ <?xml version='1.0'?>
2
+ <definition>
3
+ <group type="NXentry" name="$var.entryname#'$(__entryname__)'$var.serialno">
4
+ <group type="NXsample" name="sample">
5
+ <field type="NX_CHAR" name="identifier">
6
+ <strategy mode="INIT"/>$datasources.sample_identifier
7
+ </field>
8
+ </group>
9
+ </group>
10
+ </definition>
@@ -53,12 +53,8 @@
53
53
  <strategy mode="FINAL"/>$datasources.$(name)_framesperfile</field>
54
54
  <field type="NX_CHAR" name="save_file_name">
55
55
  <strategy mode="FINAL"/>$datasources.$(name)_savefilename</field>
56
- <field type="NX_BOOLEAN" name="compressor_shuffle">
57
- <strategy mode="FINAL"/>$datasources.$(name)_compressorshuffle</field>
58
- <field type="NX_UINT16" name="compressor_rate">
56
+ <field type="NX_UINT16" name="compression_rate">
59
57
  <strategy mode="FINAL"/>$datasources.$(name)_compressionrate</field>
60
- <field type="NX_BOOLEAN" name="compressor_enabled">
61
- <strategy mode="FINAL"/>$datasources.$(name)_compressionenabled</field>
62
58
  <field type="NX_CHAR" name="layout">
63
59
  <strategy mode="FINAL"/>$datasources.$(name)_layout</field>
64
60
  <field units="ms" type="NX_FLOAT64" name="shutter_time_max">
@@ -51,12 +51,8 @@
51
51
  <strategy mode="FINAL"/>$datasources.$(name)_savefilepath</field>
52
52
  <field type="NX_CHAR" name="save_file_name">
53
53
  <strategy mode="FINAL"/>$datasources.$(name)_savefilename</field>
54
- <field type="NX_BOOLEAN" name="compressor_shuffle">
55
- <strategy mode="FINAL"/>$datasources.$(name)_compressorshuffle</field>
56
- <field type="NX_UINT16" name="compressor_rate">
54
+ <field type="NX_UINT16" name="compression_rate">
57
55
  <strategy mode="FINAL"/>$datasources.$(name)_compressionrate</field>
58
- <field type="NX_BOOLEAN" name="compressor_enabled">
59
- <strategy mode="FINAL"/>$datasources.$(name)_compressionenabled</field>
60
56
  <field type="NX_CHAR" name="layout">
61
57
  <strategy mode="FINAL"/>$datasources.$(name)_layout</field>
62
58
  <field units="ms" type="NX_FLOAT64" name="shutter_time_max">
@@ -56,12 +56,8 @@
56
56
  <strategy mode="FINAL"/>$datasources.$(name)_framesperfile</field>
57
57
  <field type="NX_CHAR" name="save_file_name">
58
58
  <strategy mode="STEP"/>$datasources.$(name)_savefilename_cb</field>
59
- <field type="NX_BOOLEAN" name="compressor_shuffle">
60
- <strategy mode="FINAL"/>$datasources.$(name)_compressorshuffle</field>
61
- <field type="NX_UINT16" name="compressor_rate">
59
+ <field type="NX_UINT16" name="compression_rate">
62
60
  <strategy mode="FINAL"/>$datasources.$(name)_compressionrate</field>
63
- <field type="NX_BOOLEAN" name="compressor_enabled">
64
- <strategy mode="FINAL"/>$datasources.$(name)_compressionenabled</field>
65
61
  <field type="NX_CHAR" name="layout">
66
62
  <strategy mode="FINAL"/>$datasources.$(name)_layout</field>
67
63
  <field units="ms" type="NX_FLOAT64" name="shutter_time_max">
@@ -56,12 +56,8 @@
56
56
  <strategy mode="FINAL"/>$datasources.$(name)_framesperfile</field>
57
57
  <field type="NX_CHAR" name="save_file_name">
58
58
  <strategy mode="STEP"/>$datasources.$(name)_savefilename</field>
59
- <field type="NX_BOOLEAN" name="compressor_shuffle">
60
- <strategy mode="FINAL"/>$datasources.$(name)_compressorshuffle</field>
61
- <field type="NX_UINT16" name="compressor_rate">
59
+ <field type="NX_UINT16" name="compression_rate">
62
60
  <strategy mode="FINAL"/>$datasources.$(name)_compressionrate</field>
63
- <field type="NX_BOOLEAN" name="compressor_enabled">
64
- <strategy mode="FINAL"/>$datasources.$(name)_compressionenabled</field>
65
61
  <field type="NX_CHAR" name="layout">
66
62
  <strategy mode="FINAL"/>$datasources.$(name)_layout</field>
67
63
  <field units="ms" type="NX_FLOAT64" name="shutter_time_max">
@@ -0,0 +1,7 @@
1
+ <?xml version='1.0'?>
2
+ <definition>
3
+ <datasource type="CLIENT" name="sample_identifier">
4
+ <record name="sample_identifier"/>
5
+ <doc>Data source providing the identifier of the sample.</doc>
6
+ </datasource>
7
+ </definition>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nxstools
3
- Version: 4.30.0
3
+ Version: 4.33.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
@@ -3,7 +3,7 @@ nxstools/filenamegenerator.py,sha256=82Zbrxk54OiDFi6MuXtKgSgPNti4CVciBCe9NgPY8HE
3
3
  nxstools/filewriter.py,sha256=feSjyvCkUvoiD949-PB6bP6F30-MSuRPtboZehYbaVk,31899
4
4
  nxstools/h5cppwriter.py,sha256=OOdXQR2ptKAaTNIOFVd6hETqStM_Jb38jTR65rdBxlU,69060
5
5
  nxstools/h5pywriter.py,sha256=PxV0ou_WBpKE2NTnmIfsw0xKwjOO6WIjkMmxvtYXbsk,57830
6
- nxstools/h5rediswriter.py,sha256=7hu56xz1sJ9UnDajHnmBLlbrGOMa63FxTjgVkDwryso,69404
6
+ nxstools/h5rediswriter.py,sha256=UHCUx7uIlVlzkmAAXTjmnkgohZ1EJl-AteH5FGf8ozg,70934
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=ptzFaoNJwt8wLvxwU78hZKkYiMIUCj2Aa7H7AbGE768,890
20
+ nxstools/release.py,sha256=QqJtpI0EqOlnrr15pw5uqFTdQ1qvrRU0ZzrX5edY4pM,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=pZCl_2oqvkrAeFmoKxlGeVzdjNiKbw8N_chYK_kBHEc,78573
51
+ nxstools/xmltemplates/__init__.py,sha256=fKwjRgcDHA99JqFFYw22iXdcH2IOA_2iODVNX6hf_ag,78728
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
@@ -95,6 +95,7 @@ nxstools/xmltemplates/defaultaxes.ds.xml,sha256=UgyoP9HG8l1-ZZEmRBiO0lgdjr6wxGs-
95
95
  nxstools/xmltemplates/defaultcollection.xml,sha256=VL0DkMlajR-w3aozlIY6TbLBpMX7pnouVlgZFQW178s,402
96
96
  nxstools/xmltemplates/defaultinstrument.xml,sha256=W28JQMBVjOth_HGtLqW1xvXlg4xXS_xGzD7Mb4iO2fg,2688
97
97
  nxstools/xmltemplates/defaultsample.xml,sha256=gY6XblZ5nh3x-yiuh1PtX5t1r2b3e_cZfdeLm1ByfMk,428
98
+ nxstools/xmltemplates/defaultsampleidentifier.xml,sha256=jVfxZ__bAPQGsBmoait8fB_QcZmJHG6sJOJ92OSjSvI,311
98
99
  nxstools/xmltemplates/defaultsignal.ds.xml,sha256=-S2GZSVZGrKVqAtYCJDLt6jJswuRaxnSoq9C9nxdS4Q,441
99
100
  nxstools/xmltemplates/description.xml,sha256=xr0py0v9JfaxFIRw-0NPTGnWb8tt2YKBv5hDn1uxswQ,274
100
101
  nxstools/xmltemplates/descriptiontext.xml,sha256=NW7q3gXrsCOMRwYav3wyHCjugZGs3LqSXKuw13EiIRg,246
@@ -145,8 +146,8 @@ nxstools/xmltemplates/experiment_description.ds.xml,sha256=1obvbtP_xq2KmQeER_0oR
145
146
  nxstools/xmltemplates/groupsecop.ds.xml,sha256=oXIa8grNX-i7Pq7L994--8cMlDIc1GW-iGSuwNBSc5s,304
146
147
  nxstools/xmltemplates/groupsecop_time.ds.xml,sha256=eyGD67cvl8jHjM_eg7LGCPpfk7GDQE722WlYzaIRWXE,403
147
148
  nxstools/xmltemplates/keithley.xml,sha256=fZGFX1x4LQj-4tvT50uQ894ZqED1LV3nRy_5n0Y94ms,909
148
- nxstools/xmltemplates/lambda.xml,sha256=Ltpcn5zhSrLAM22jf9pF4SMGShnikjx0cpSKWE79nmk,4545
149
- nxstools/xmltemplates/lambda2m.xml,sha256=ev0yKe6DHStHxV-ZoAviymx7WU-ty2GtZVrZonVULQM,4815
149
+ nxstools/xmltemplates/lambda.xml,sha256=yxoKEPLb6HsSDJEho5zDf_hQ5ZYkkkN-y2g5sEXoIFM,4255
150
+ nxstools/xmltemplates/lambda2m.xml,sha256=NMjFJMVzfuHSCJ4tH9_-GVw4wRaQ_PfRWoUBfHLd3X4,4525
150
151
  nxstools/xmltemplates/lambda2m_m1_external_data.ds.xml,sha256=Qp2krN5KueE4Yv3PotzXEV9jCO8NyC48AJYRC3RaTlM,456
151
152
  nxstools/xmltemplates/lambda2m_m1_nxdata.ds.xml,sha256=_xMtFGnZrMnedHj8WJ08c1P20A20velgz2jXp7gC5HI,348
152
153
  nxstools/xmltemplates/lambda2m_m2_external_data.ds.xml,sha256=ypl03tvy_S-GodnCrgCyQEBlJb5Pb5ebL78r5hKXKEE,456
@@ -155,13 +156,13 @@ nxstools/xmltemplates/lambda2m_m3_external_data.ds.xml,sha256=fcPfCg8xXyZkQvrg_I
155
156
  nxstools/xmltemplates/lambda2m_m3_nxdata.ds.xml,sha256=AsuhFUuzOSQyO8H3C-7zm_bW1eisLD2jebqX-XFxLBY,348
156
157
  nxstools/xmltemplates/lambda_external_data.ds.xml,sha256=Rlu8M1CZQZlnKw_8InoQ6_HxCMB1YfTj71bZlKhn1Ic,566
157
158
  nxstools/xmltemplates/lambda_nxdata.ds.xml,sha256=VulpDVkN78__czo-ltHDdcvCZjj2DR9Ot24TpTC-iRM,345
158
- nxstools/xmltemplates/lambdavds.xml,sha256=pTpJaf38LzcijD_hHHb7OjlHno8LILcXl1SXQK7EfBU,4646
159
+ nxstools/xmltemplates/lambdavds.xml,sha256=6KbNgHyJPZ29eBelfaoUiOkpl-bOyf5FQOTUUWPO1So,4356
159
160
  nxstools/xmltemplates/lambdavds_description.ds.xml,sha256=ysD970C-NNlNwj--L5tU50V3tlK6Ee0Dmlf8ZDBD4PA,307
160
161
  nxstools/xmltemplates/lambdavds_framenumbers_cb.ds.xml,sha256=65s5SoIiCNjmCtKk6VE5Q8kDEph5DaX39XUsurXoWXE,337
161
162
  nxstools/xmltemplates/lambdavds_nxdata.ds.xml,sha256=W5nhxFe8p1YVT5eWt0i3SVkHvMwUWYwMb6Nq12B2Hag,342
162
163
  nxstools/xmltemplates/lambdavds_savefilename_cb.ds.xml,sha256=VCBoEKoaszDaOofSb6kh3h5Px-STN5qX1SgEYZrbgBA,334
163
164
  nxstools/xmltemplates/lambdavds_triggermode_cb.ds.xml,sha256=iLw0HptAWuYalZMU8EYhaxHmvnUbPb5w0kVOoCSFZqg,858
164
- nxstools/xmltemplates/lambdavdsnm.xml,sha256=NQugjiIMHPisGMlFsbhYOXi3RFfhaHjsBZ3gx08kpJA,4615
165
+ nxstools/xmltemplates/lambdavdsnm.xml,sha256=Cvul5oGCGJkBaYvPoBIsSJ2NH_DmyXH5xo6bmGrwx5w,4325
165
166
  nxstools/xmltemplates/lambdavdsnm_nxdata.ds.xml,sha256=W5nhxFe8p1YVT5eWt0i3SVkHvMwUWYwMb6Nq12B2Hag,342
166
167
  nxstools/xmltemplates/lambdavdsnm_triggermode_cb.ds.xml,sha256=ZSao6ZhMkHKOaDxDA0JWb74fYJRowtzl6WEUaD5fLWU,877
167
168
  nxstools/xmltemplates/limaccd.xml,sha256=4izXaxJsrShlJ0AlnaZ2xYqAzU44znyViHr-A1xwDNI,4056
@@ -234,6 +235,7 @@ nxstools/xmltemplates/qbpm.xml,sha256=BcEktuSQ5rOQUR0lqzHWeEWi2q3SJ0FtlB4DevVjV7
234
235
  nxstools/xmltemplates/qbpm_foil.ds.xml,sha256=IPYdpP50zt0zsJc68b99F08BLOXZFdyAn-HWOxU26Gg,265
235
236
  nxstools/xmltemplates/sample_description.ds.xml,sha256=RCpUhPQJnNqlhn-lpIHhHQ9CEZG2mlPMyMlSLzJ2xkg,160
236
237
  nxstools/xmltemplates/sample_env_links.ds.xml,sha256=M5PegI1Ru8VRq_pogkE1VFn-QMK0bN1k9UW0P0lbNxU,327
238
+ nxstools/xmltemplates/sample_identifier.ds.xml,sha256=hgbHq1Y_wMi9a04elh-t1KiQ4sGJ3bUKcbqL05qTdcY,225
237
239
  nxstools/xmltemplates/sample_log_links.ds.xml,sha256=QCNiZj6932O3CqWnoBcTao7E_jPcMc7GQ6qYrcgAcvY,326
238
240
  nxstools/xmltemplates/sample_name.ds.xml,sha256=gLzhu-9E2whL72eZmlbM0jwMDuSu5M3dK-FVS8PCKgg,207
239
241
  nxstools/xmltemplates/sample_nxdata.ds.xml,sha256=5FR5RVB055SQckdkOrsDTGGeiUO7B3AvBQTUBKpKZCw,309
@@ -263,13 +265,13 @@ nxstools/xmltemplates/title.ds.xml,sha256=cBN_WigqtvGK2vS3dCotwH7NNDAb2Z_z7CLw-t
263
265
  nxstools/xmltemplates/undulator.xml,sha256=Tnfkgftm6KOQyifc-BVyqUuEB9alHUru7z3_Qv9tJrY,2369
264
266
  nxstools/xmltemplates/xspress3.xml,sha256=uOsLW21SyXcsilZAZdIyQ37npTkzuIEqjat3QlNyndY,1873
265
267
  nxstools/xmltemplates/xspress3_triggermode_cb.ds.xml,sha256=xrXNLT6uuDofgXRqVhdIo25J7nUPPdSPJs4kE_u8_rw,871
266
- nxstools-4.30.0.data/scripts/nxscollect,sha256=ckAVuZnNdjepU9S6EKDACb-Zcojpt_UhiTKnHoMVEhk,60
267
- nxstools-4.30.0.data/scripts/nxsconfig,sha256=va2RtUWqZN_Nb4dSs_0d63XjzqYkbSLSnvkCB0dbwYw,58
268
- nxstools-4.30.0.data/scripts/nxscreate,sha256=kpc2eEoCpWNg3inzgm2if6bpT9i-9-GJJQ-8mSs6a7M,59
269
- nxstools-4.30.0.data/scripts/nxsdata,sha256=XvalTwXtrS2DOb8nKLp-7Mjom-L_WBLBqY5xtl-CPH4,54
270
- nxstools-4.30.0.data/scripts/nxsetup,sha256=pYXgv6vHpblrmURXikAZBAOOaPxDnqu3n6OSYuLXkWE,54
271
- nxstools-4.30.0.data/scripts/nxsfileinfo,sha256=Hhus49bHtva79IwY_7nxDhQF-ianVKMYo1uvNqeOqJ0,62
272
- nxstools-4.30.0.dist-info/METADATA,sha256=YQDi3dhEM02pyxf7B1vIQsSYtDDPTp1wqFZq4A-P4dE,5051
273
- nxstools-4.30.0.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
274
- nxstools-4.30.0.dist-info/top_level.txt,sha256=puE4GNPuhMbwc3ViVq7sru72pVPcvxWlx9lPezA-5RQ,9
275
- nxstools-4.30.0.dist-info/RECORD,,
268
+ nxstools-4.33.0.data/scripts/nxscollect,sha256=ckAVuZnNdjepU9S6EKDACb-Zcojpt_UhiTKnHoMVEhk,60
269
+ nxstools-4.33.0.data/scripts/nxsconfig,sha256=va2RtUWqZN_Nb4dSs_0d63XjzqYkbSLSnvkCB0dbwYw,58
270
+ nxstools-4.33.0.data/scripts/nxscreate,sha256=kpc2eEoCpWNg3inzgm2if6bpT9i-9-GJJQ-8mSs6a7M,59
271
+ nxstools-4.33.0.data/scripts/nxsdata,sha256=XvalTwXtrS2DOb8nKLp-7Mjom-L_WBLBqY5xtl-CPH4,54
272
+ nxstools-4.33.0.data/scripts/nxsetup,sha256=pYXgv6vHpblrmURXikAZBAOOaPxDnqu3n6OSYuLXkWE,54
273
+ nxstools-4.33.0.data/scripts/nxsfileinfo,sha256=Hhus49bHtva79IwY_7nxDhQF-ianVKMYo1uvNqeOqJ0,62
274
+ nxstools-4.33.0.dist-info/METADATA,sha256=9WV46bYnWOCS3a_ucPAgRoUgUPLF-sZrBtCRQ41TLXo,5051
275
+ nxstools-4.33.0.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
276
+ nxstools-4.33.0.dist-info/top_level.txt,sha256=puE4GNPuhMbwc3ViVq7sru72pVPcvxWlx9lPezA-5RQ,9
277
+ nxstools-4.33.0.dist-info/RECORD,,