nxswriter 3.17.1__py3-none-any.whl → 3.18.1__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.
nxswriter/ClientSource.py CHANGED
@@ -25,6 +25,18 @@ from lxml.etree import XMLParser
25
25
  from .DataSources import DataSource
26
26
  from .Errors import DataSourceSetupError
27
27
 
28
+ try:
29
+ try:
30
+ import tango
31
+ except Exception:
32
+ import PyTango as tango
33
+ #: (:obj:`str`) global variable if tango module installed
34
+ PYTANGO_AVAILABLE = True
35
+ except ImportError as e:
36
+ PYTANGO_AVAILABLE = False
37
+ sys.stdout.write("PYTANGO not available: %s" % e)
38
+ sys.stdout.flush()
39
+
28
40
 
29
41
  class ClientSource(DataSource):
30
42
 
@@ -106,4 +118,13 @@ class ClientSource(DataSource):
106
118
  names = [self.name]
107
119
  if self.name:
108
120
  names.append(self.name.lower())
121
+ if PYTANGO_AVAILABLE and "/" in self.name and \
122
+ not self.name.startswith("tango://"):
123
+ if ":" in self.name:
124
+ names.append("tango://%s" % (self.name.lower()))
125
+ else:
126
+ db = tango.Database()
127
+ names.append("tango://%s:%s/%s" %
128
+ (db.get_db_host().split(".")[0],
129
+ db.get_db_port(), self.name.lower()))
109
130
  return self._getJSONData(names, self.__globalJSON, self.__localJSON)
@@ -525,7 +525,7 @@ class EVirtualField(FElementWithAttr):
525
525
  # shape
526
526
  self.__shape = self.__getShape()
527
527
  self.__vfl = FileWriter.virtual_field_layout(
528
- self.__shape, self.__dtype)
528
+ self.__shape, self.__dtype, parent=self._lastObject())
529
529
  for vmap in self.__vmaps:
530
530
  self.__vfl.append_vmap(vmap)
531
531
  self.__vmaps = []
@@ -581,7 +581,7 @@ class EVirtualField(FElementWithAttr):
581
581
  def __createVDS(self):
582
582
  """ create the virtual field object
583
583
  """
584
- self.__vfl.process_target_field_views(self._lastObject())
584
+ self.__vfl.process_target_field_views()
585
585
  self.h5Object = self._lastObject().create_virtual_field(
586
586
  self.__name, self.__vfl)
587
587
 
nxswriter/Release.py CHANGED
@@ -21,4 +21,4 @@
21
21
 
22
22
 
23
23
  #: package version
24
- __version__ = "3.17.1"
24
+ __version__ = "3.18.1"
@@ -491,12 +491,17 @@ class TangoDataWriter(object):
491
491
  :brief: It parse the XML settings, creates thread pools
492
492
  and runs the INIT pool.
493
493
  """
494
+ tt0 = time.time()
495
+ if self._streams:
496
+ self._streams.debug("openEntry: INIT")
494
497
  if self.xmlsettings:
495
498
  # flag for INIT mode
496
499
  self.__datasources.counter = -1
497
500
  self.__datasources.nxroot = self.__nxRoot
498
501
  errorHandler = sax.ErrorHandler()
499
502
  parser = sax.make_parser()
503
+ if self._streams:
504
+ self._streams.debug("openEntry: Create NexusXMLHnadler")
500
505
  handler = NexusXMLHandler(
501
506
  self.__nxPath[-1] if self.__nxPath else self.__eFile,
502
507
  self.__datasources,
@@ -517,6 +522,8 @@ class TangoDataWriter(object):
517
522
  else:
518
523
  inpsrc.setByteStream(StringIO(self.xmlsettings))
519
524
 
525
+ if self._streams:
526
+ self._streams.debug("openEntry: Parse NexusXMLHnadler")
520
527
  parser.parse(inpsrc)
521
528
 
522
529
  self.__initPool = handler.initPool
@@ -540,10 +547,18 @@ class TangoDataWriter(object):
540
547
  self.__triggerPools[pool].maxRuntime = \
541
548
  self.maxElementRuntime
542
549
 
550
+ if self._streams:
551
+ self._streams.debug("openEntry: SET JSON")
543
552
  self.__initPool.setJSON(json.loads(self.jsonrecord))
553
+ if self._streams:
554
+ self._streams.debug("openEntry: RUN INIT")
555
+ tt1 = time.time()
544
556
  if not self.skipacquisition:
545
557
  self.__initPool.runAndWait()
546
558
  self.__initPool.checkErrors()
559
+ tt2 = time.time()
560
+ if self._streams:
561
+ self._streams.debug("openEntry: ADD LOGS")
547
562
  self.skipacquisition = False
548
563
  if self.addingLogs:
549
564
  self.__entryCounter += 1
@@ -554,6 +569,9 @@ class TangoDataWriter(object):
554
569
  "string")
555
570
  lfield.write(self.xmlsettings)
556
571
  lfield.close()
572
+ tt3 = time.time()
573
+ if self._streams:
574
+ self._streams.debug("openEntry: FLUSH")
557
575
  if self.__nxFile and hasattr(self.__nxFile, "flush"):
558
576
  self.__nxFile.flush()
559
577
  if self.stepsperfile > 0:
@@ -562,9 +580,34 @@ class TangoDataWriter(object):
562
580
  self.__nextfile()
563
581
  elif "swmr" in self.__pars.keys() and self.__pars["swmr"]:
564
582
  self.__nxFile.reopen(readonly=False, **self.__pars)
583
+ tt4 = time.time()
584
+ else:
585
+ tt4 = time.time()
586
+ tt1 = tt4
587
+ tt2 = tt4
588
+ tt3 = tt4
589
+ if self._streams:
590
+ self._streams.debug("openEntry: PREPARE")
565
591
  if self.__nxFile and hasattr(self.__nxFile, "prepare"):
566
592
  # print("START")
567
593
  self.__nxFile.prepare()
594
+ tt5 = time.time()
595
+ if self._streams:
596
+ dt = tt5 - tt0
597
+ dt1 = tt1 - tt0
598
+ dt2 = tt2 - tt1
599
+ dt3 = tt3 - tt2
600
+ dt4 = tt4 - tt3
601
+ dt5 = tt5 - tt4
602
+ message = "openEntry: END TotalTime = %ss, " \
603
+ "ParseXMLTime=%ss, INITRunTime=%ss, " \
604
+ "AddLogsTime=%ss, FlushTime=%ss, " \
605
+ "PrepateTime=%ss" % (dt, dt1, dt2, dt3, dt4, dt5)
606
+ if dt and self.maxRecordRuntime and \
607
+ dt > self.maxRecordRuntime:
608
+ self._streams.warn(message)
609
+ else:
610
+ self._streams.debug(message)
568
611
 
569
612
  def __nextfile(self):
570
613
  self.__nxFile.close()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nxswriter
3
- Version: 3.17.1
3
+ Version: 3.18.1
4
4
  Summary: Nexus Data writer implemented as a Tango Server
5
5
  Home-page: https://github.com/nexdatas/nxsdatawriter
6
6
  Author: Jan Kotanski, Eugen Wintersberger , Halil Pasic
@@ -95,7 +95,7 @@ Extract sources and run
95
95
  Debian packages
96
96
  """""""""""""""
97
97
 
98
- Debian `trixie`, `bookworm`, `bullseye` or Ubuntu `plucky`, `noble`, `jammy` packages can be found in the HDRI repository.
98
+ Debian `trixie`, `bookworm`, `bullseye` or Ubuntu `questing`, `noble`, `jammy` packages can be found in the HDRI repository.
99
99
 
100
100
  To install the debian packages, add the PGP repository key
101
101
 
@@ -110,7 +110,7 @@ and then download the corresponding source list
110
110
  .. code-block:: console
111
111
 
112
112
  $ cd /etc/apt/sources.list.d
113
- $ wget http://repos.pni-hdri.de/trixie-pni-hdri.list
113
+ $ wget http://repos.pni-hdri.de/trixie-pni-hdri.sources
114
114
 
115
115
  To install tango server
116
116
 
@@ -1,4 +1,4 @@
1
- nxswriter/ClientSource.py,sha256=t231lmoc1t3k15ej2KssSfuIdq83X_gYFSFWiMuB1r0,3893
1
+ nxswriter/ClientSource.py,sha256=QLrnnOOmBm9V0M4rgwAneNmKtqifrLn6GNJLRNI6Kzg,4681
2
2
  nxswriter/DBaseSource.py,sha256=_w1PCBcoIFoSCOLz9vxRastPPqTGJOla2ObLxNrcrx4,9072
3
3
  nxswriter/DataHolder.py,sha256=DL08NyY0FG6snsmW0-nQ7JmWJwDc5-Hy2bC4E3Uz1fk,6164
4
4
  nxswriter/DataSourceFactory.py,sha256=W0IirDjsu38KKvBxFbkvv-ghvqil2JJStQ3WMxo8Kh4,4687
@@ -10,7 +10,7 @@ nxswriter/EField.py,sha256=YLbdaykGccZ4cjqheS9te50FG6HQq5kfp7gg_OBkJ9k,28034
10
10
  nxswriter/EGroup.py,sha256=Y_PuTERckQXfUXGISbnpzHj7I4y2iFxM5CGByjVD6KA,4900
11
11
  nxswriter/ELink.py,sha256=FO7SRF1bpJhqRzK2FBSkRHhFwH1Mw5BRCgt8X8qJbr0,8820
12
12
  nxswriter/EStrategy.py,sha256=3RX8E6Ee-Klv9DGlMPvXJacdNDmuKWLQrcnuerR0IQI,3992
13
- nxswriter/EVirtualField.py,sha256=n7hAqAGT0Z7t3gekCtShGQdyDxBxLbb2SrED8rXGGVI,21584
13
+ nxswriter/EVirtualField.py,sha256=EXqzmMxP4Fstt_yj6MaCQYaac3MNo487xrNG4QguacI,21593
14
14
  nxswriter/Element.py,sha256=dnIUS_U0fqJK3FxV_raQBx6qTGPT7sUFkWVzxI5YuEY,3019
15
15
  nxswriter/ElementThread.py,sha256=gCZRpzjji8TRfWLkwFRXG_K55d0yUkv9Gzi2DZ22EyQ,2099
16
16
  nxswriter/Errors.py,sha256=dYXtJ7rVWv59kAalNMMZO4X3SxSplhoWICeCb3_rFGc,1660
@@ -23,16 +23,16 @@ nxswriter/NXSFromXML.py,sha256=932BivWZnf-3tnIkbpSRFwfGV0PTwcT9pYb2FMmVd_4,9077
23
23
  nxswriter/NXSWriter.py,sha256=raHykC9mpUXU8pPtsqePuz3CI-24qYjIUSoyux2zCgo,31345
24
24
  nxswriter/NexusXMLHandler.py,sha256=IrZ2mWLuovdBIHcWTqKmr4HZxpMEWLun8A94O6pavr8,14131
25
25
  nxswriter/PyEvalSource.py,sha256=7-7Gc2_3CGd3XMHD3LBPCBOZx4Q6b1guzt1xgrSLxMs,11234
26
- nxswriter/Release.py,sha256=yjkS8yYPt_cwXO9xtoZA-RUM39La_mMqkJoRWPKhRIQ,900
26
+ nxswriter/Release.py,sha256=9w2Bhfe7fB4nlm07lhbkezYrXohSKVDtNRru13zf5Go,900
27
27
  nxswriter/StreamSet.py,sha256=sSvXJxoDufmt9_Xu5rFaQsp_4x9gww_zMv0NTiiyLlg,5799
28
- nxswriter/TangoDataWriter.py,sha256=yP6B3TVUhpHp8OBHKYQRNNtFer9xARoakNXuro4eVv8,28725
28
+ nxswriter/TangoDataWriter.py,sha256=9Y1EaGXC2gCFtUsmV2Ncp4I-LnTW_kWqG3XhD71JiDs,30354
29
29
  nxswriter/TangoSource.py,sha256=jiFGUsoX2N5-i2gpBqkHi2KjmTBd46TI22Cjkt_2btw,29410
30
30
  nxswriter/ThreadPool.py,sha256=TKvOStVUUyuyHowk0MRaBM4GmRKtl0VPVVPdFHu332M,6039
31
31
  nxswriter/Types.py,sha256=haH578_GqBwWWUhPC6x9KQOubhhEOsxHdI63j0_AkdE,7906
32
32
  nxswriter/__init__.py,sha256=M0w3HGjZgfdqjMdQNaLcq5jazqQeRekx84YSbQCA8-0,1760
33
- nxswriter-3.17.1.data/scripts/NXSDataWriter,sha256=wO3opCCjYttfrY7CITNXHvirXv5W6rIQTY7vX5PmioI,905
34
- nxswriter-3.17.1.data/scripts/nxsfromxml,sha256=qxnJUtV_ueA3lGnne8ltaOF6yF5YtmzeFLIl3NWkAq8,61
35
- nxswriter-3.17.1.dist-info/METADATA,sha256=GBoIxJobnaPPZDWSOLW7T9HczptmA2uIxL8xl6fsqkM,9011
36
- nxswriter-3.17.1.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
37
- nxswriter-3.17.1.dist-info/top_level.txt,sha256=29dYcOYN2MVz1NKpwobc4Zl4yjhd4VB62LDSuSy7x0Y,10
38
- nxswriter-3.17.1.dist-info/RECORD,,
33
+ nxswriter-3.18.1.data/scripts/NXSDataWriter,sha256=wO3opCCjYttfrY7CITNXHvirXv5W6rIQTY7vX5PmioI,905
34
+ nxswriter-3.18.1.data/scripts/nxsfromxml,sha256=qxnJUtV_ueA3lGnne8ltaOF6yF5YtmzeFLIl3NWkAq8,61
35
+ nxswriter-3.18.1.dist-info/METADATA,sha256=cr1A54HiRC7eFmXuBxpbO2CBSJ1ruV-K10qJK5wuyC0,9016
36
+ nxswriter-3.18.1.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
37
+ nxswriter-3.18.1.dist-info/top_level.txt,sha256=29dYcOYN2MVz1NKpwobc4Zl4yjhd4VB62LDSuSy7x0Y,10
38
+ nxswriter-3.18.1.dist-info/RECORD,,