nxswriter 3.17.2__py3-none-any.whl → 3.19.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.
- nxswriter/ClientSource.py +21 -0
- nxswriter/Release.py +1 -1
- nxswriter/TangoDataWriter.py +52 -1
- {nxswriter-3.17.2.dist-info → nxswriter-3.19.0.dist-info}/METADATA +3 -3
- {nxswriter-3.17.2.dist-info → nxswriter-3.19.0.dist-info}/RECORD +9 -9
- {nxswriter-3.17.2.data → nxswriter-3.19.0.data}/scripts/NXSDataWriter +0 -0
- {nxswriter-3.17.2.data → nxswriter-3.19.0.data}/scripts/nxsfromxml +0 -0
- {nxswriter-3.17.2.dist-info → nxswriter-3.19.0.dist-info}/WHEEL +0 -0
- {nxswriter-3.17.2.dist-info → nxswriter-3.19.0.dist-info}/top_level.txt +0 -0
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)
|
nxswriter/Release.py
CHANGED
nxswriter/TangoDataWriter.py
CHANGED
|
@@ -65,7 +65,15 @@ try:
|
|
|
65
65
|
WRITERS["h5redis"] = H5RedisWriter
|
|
66
66
|
except Exception:
|
|
67
67
|
pass
|
|
68
|
-
|
|
68
|
+
|
|
69
|
+
try:
|
|
70
|
+
from nxstools import rediswriter as RedisWriter
|
|
71
|
+
WRITERS["redis"] = RedisWriter
|
|
72
|
+
except Exception:
|
|
73
|
+
pass
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
DEFAULTWRITERS = ["h5cpp", "h5py", "h5redis", "redis"]
|
|
69
77
|
|
|
70
78
|
|
|
71
79
|
#: (:obj:`bool`) tango bug #213 flag related to EncodedAttributes in python3
|
|
@@ -491,12 +499,17 @@ class TangoDataWriter(object):
|
|
|
491
499
|
:brief: It parse the XML settings, creates thread pools
|
|
492
500
|
and runs the INIT pool.
|
|
493
501
|
"""
|
|
502
|
+
tt0 = time.time()
|
|
503
|
+
if self._streams:
|
|
504
|
+
self._streams.debug("openEntry: INIT")
|
|
494
505
|
if self.xmlsettings:
|
|
495
506
|
# flag for INIT mode
|
|
496
507
|
self.__datasources.counter = -1
|
|
497
508
|
self.__datasources.nxroot = self.__nxRoot
|
|
498
509
|
errorHandler = sax.ErrorHandler()
|
|
499
510
|
parser = sax.make_parser()
|
|
511
|
+
if self._streams:
|
|
512
|
+
self._streams.debug("openEntry: Create NexusXMLHnadler")
|
|
500
513
|
handler = NexusXMLHandler(
|
|
501
514
|
self.__nxPath[-1] if self.__nxPath else self.__eFile,
|
|
502
515
|
self.__datasources,
|
|
@@ -517,6 +530,8 @@ class TangoDataWriter(object):
|
|
|
517
530
|
else:
|
|
518
531
|
inpsrc.setByteStream(StringIO(self.xmlsettings))
|
|
519
532
|
|
|
533
|
+
if self._streams:
|
|
534
|
+
self._streams.debug("openEntry: Parse NexusXMLHnadler")
|
|
520
535
|
parser.parse(inpsrc)
|
|
521
536
|
|
|
522
537
|
self.__initPool = handler.initPool
|
|
@@ -540,10 +555,18 @@ class TangoDataWriter(object):
|
|
|
540
555
|
self.__triggerPools[pool].maxRuntime = \
|
|
541
556
|
self.maxElementRuntime
|
|
542
557
|
|
|
558
|
+
if self._streams:
|
|
559
|
+
self._streams.debug("openEntry: SET JSON")
|
|
543
560
|
self.__initPool.setJSON(json.loads(self.jsonrecord))
|
|
561
|
+
if self._streams:
|
|
562
|
+
self._streams.debug("openEntry: RUN INIT")
|
|
563
|
+
tt1 = time.time()
|
|
544
564
|
if not self.skipacquisition:
|
|
545
565
|
self.__initPool.runAndWait()
|
|
546
566
|
self.__initPool.checkErrors()
|
|
567
|
+
tt2 = time.time()
|
|
568
|
+
if self._streams:
|
|
569
|
+
self._streams.debug("openEntry: ADD LOGS")
|
|
547
570
|
self.skipacquisition = False
|
|
548
571
|
if self.addingLogs:
|
|
549
572
|
self.__entryCounter += 1
|
|
@@ -554,6 +577,9 @@ class TangoDataWriter(object):
|
|
|
554
577
|
"string")
|
|
555
578
|
lfield.write(self.xmlsettings)
|
|
556
579
|
lfield.close()
|
|
580
|
+
tt3 = time.time()
|
|
581
|
+
if self._streams:
|
|
582
|
+
self._streams.debug("openEntry: FLUSH")
|
|
557
583
|
if self.__nxFile and hasattr(self.__nxFile, "flush"):
|
|
558
584
|
self.__nxFile.flush()
|
|
559
585
|
if self.stepsperfile > 0:
|
|
@@ -562,9 +588,34 @@ class TangoDataWriter(object):
|
|
|
562
588
|
self.__nextfile()
|
|
563
589
|
elif "swmr" in self.__pars.keys() and self.__pars["swmr"]:
|
|
564
590
|
self.__nxFile.reopen(readonly=False, **self.__pars)
|
|
591
|
+
tt4 = time.time()
|
|
592
|
+
else:
|
|
593
|
+
tt4 = time.time()
|
|
594
|
+
tt1 = tt4
|
|
595
|
+
tt2 = tt4
|
|
596
|
+
tt3 = tt4
|
|
597
|
+
if self._streams:
|
|
598
|
+
self._streams.debug("openEntry: PREPARE")
|
|
565
599
|
if self.__nxFile and hasattr(self.__nxFile, "prepare"):
|
|
566
600
|
# print("START")
|
|
567
601
|
self.__nxFile.prepare()
|
|
602
|
+
tt5 = time.time()
|
|
603
|
+
if self._streams:
|
|
604
|
+
dt = tt5 - tt0
|
|
605
|
+
dt1 = tt1 - tt0
|
|
606
|
+
dt2 = tt2 - tt1
|
|
607
|
+
dt3 = tt3 - tt2
|
|
608
|
+
dt4 = tt4 - tt3
|
|
609
|
+
dt5 = tt5 - tt4
|
|
610
|
+
message = "openEntry: END TotalTime = %ss, " \
|
|
611
|
+
"ParseXMLTime=%ss, INITRunTime=%ss, " \
|
|
612
|
+
"AddLogsTime=%ss, FlushTime=%ss, " \
|
|
613
|
+
"PrepateTime=%ss" % (dt, dt1, dt2, dt3, dt4, dt5)
|
|
614
|
+
if dt and self.maxRecordRuntime and \
|
|
615
|
+
dt > self.maxRecordRuntime:
|
|
616
|
+
self._streams.warn(message)
|
|
617
|
+
else:
|
|
618
|
+
self._streams.debug(message)
|
|
568
619
|
|
|
569
620
|
def __nextfile(self):
|
|
570
621
|
self.__nxFile.close()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: nxswriter
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.19.0
|
|
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 `
|
|
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.
|
|
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=
|
|
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
|
|
@@ -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
|
|
26
|
+
nxswriter/Release.py,sha256=-2w_xfW7CytYzQSzvJi1JZkUeLiv9fC94RT2rUp1tFI,900
|
|
27
27
|
nxswriter/StreamSet.py,sha256=sSvXJxoDufmt9_Xu5rFaQsp_4x9gww_zMv0NTiiyLlg,5799
|
|
28
|
-
nxswriter/TangoDataWriter.py,sha256=
|
|
28
|
+
nxswriter/TangoDataWriter.py,sha256=SGU0s5eGwfv5PDScujgSsAljDvtmX8GsBUA4No8PBp0,30485
|
|
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.
|
|
34
|
-
nxswriter-3.
|
|
35
|
-
nxswriter-3.
|
|
36
|
-
nxswriter-3.
|
|
37
|
-
nxswriter-3.
|
|
38
|
-
nxswriter-3.
|
|
33
|
+
nxswriter-3.19.0.data/scripts/NXSDataWriter,sha256=wO3opCCjYttfrY7CITNXHvirXv5W6rIQTY7vX5PmioI,905
|
|
34
|
+
nxswriter-3.19.0.data/scripts/nxsfromxml,sha256=qxnJUtV_ueA3lGnne8ltaOF6yF5YtmzeFLIl3NWkAq8,61
|
|
35
|
+
nxswriter-3.19.0.dist-info/METADATA,sha256=ThDI8_KMxd9uMRtoFF3Q3wET6QROyLVKK4w7XQmST8I,9016
|
|
36
|
+
nxswriter-3.19.0.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
|
|
37
|
+
nxswriter-3.19.0.dist-info/top_level.txt,sha256=29dYcOYN2MVz1NKpwobc4Zl4yjhd4VB62LDSuSy7x0Y,10
|
|
38
|
+
nxswriter-3.19.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|