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 +21 -0
- nxswriter/EVirtualField.py +2 -2
- nxswriter/Release.py +1 -1
- nxswriter/TangoDataWriter.py +43 -0
- {nxswriter-3.17.1.dist-info → nxswriter-3.18.1.dist-info}/METADATA +3 -3
- {nxswriter-3.17.1.dist-info → nxswriter-3.18.1.dist-info}/RECORD +10 -10
- {nxswriter-3.17.1.data → nxswriter-3.18.1.data}/scripts/NXSDataWriter +0 -0
- {nxswriter-3.17.1.data → nxswriter-3.18.1.data}/scripts/nxsfromxml +0 -0
- {nxswriter-3.17.1.dist-info → nxswriter-3.18.1.dist-info}/WHEEL +0 -0
- {nxswriter-3.17.1.dist-info → nxswriter-3.18.1.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/EVirtualField.py
CHANGED
|
@@ -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(
|
|
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
nxswriter/TangoDataWriter.py
CHANGED
|
@@ -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.
|
|
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 `
|
|
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
|
|
@@ -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=
|
|
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=
|
|
26
|
+
nxswriter/Release.py,sha256=9w2Bhfe7fB4nlm07lhbkezYrXohSKVDtNRru13zf5Go,900
|
|
27
27
|
nxswriter/StreamSet.py,sha256=sSvXJxoDufmt9_Xu5rFaQsp_4x9gww_zMv0NTiiyLlg,5799
|
|
28
|
-
nxswriter/TangoDataWriter.py,sha256=
|
|
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.
|
|
34
|
-
nxswriter-3.
|
|
35
|
-
nxswriter-3.
|
|
36
|
-
nxswriter-3.
|
|
37
|
-
nxswriter-3.
|
|
38
|
-
nxswriter-3.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|