pytecplot 1.7.3__py3-none-any.whl → 1.7.5__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.
- {pytecplot-1.7.3.dist-info → pytecplot-1.7.5.dist-info}/METADATA +15 -1
- {pytecplot-1.7.3.dist-info → pytecplot-1.7.5.dist-info}/RECORD +18 -18
- {pytecplot-1.7.3.dist-info → pytecplot-1.7.5.dist-info}/WHEEL +1 -1
- tecplot/constant.py +3 -1
- tecplot/data/__init__.py +2 -1
- tecplot/data/dataset.py +24 -34
- tecplot/data/load.py +98 -9
- tecplot/data/operate.py +2 -1
- tecplot/data/save.py +26 -29
- tecplot/layout/frame.py +3 -0
- tecplot/tecutil/constant.py +121 -5
- tecplot/tecutil/sv.py +2 -1
- tecplot/tecutil/tecutil.py +18 -4
- tecplot/tecutil/tecutil_client.py +1 -1
- tecplot/tecutil/tecutil_rpc.py +13 -0
- tecplot/version.py +2 -2
- {pytecplot-1.7.3.dist-info → pytecplot-1.7.5.dist-info}/licenses/LICENSE.html +0 -0
- {pytecplot-1.7.3.dist-info → pytecplot-1.7.5.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pytecplot
|
|
3
|
-
Version: 1.7.
|
|
3
|
+
Version: 1.7.5
|
|
4
4
|
Summary: A Python interface to Tecplot 360
|
|
5
5
|
Author-email: "Tecplot, Inc." <support@tecplot.com>
|
|
6
6
|
License-Expression: LicenseRef-Tecplot-Software-License
|
|
@@ -107,6 +107,20 @@ For more information, see |Tecplot 360s release notes|.
|
|
|
107
107
|
|
|
108
108
|
.. |Tecplot 360s release notes| replace:: `Tecplot 360's release notes <https://tecplot.com/products/tecplot-360/new-in-tecplot-360>`__
|
|
109
109
|
|
|
110
|
+
PyTecplot 1.7.5
|
|
111
|
+
^^^^^^^^^^^^^^^
|
|
112
|
+
|
|
113
|
+
* Fixed: type handling of `ignore_divide_by_zero` argument in `execute_equation()`.
|
|
114
|
+
|
|
115
|
+
PyTecplot 1.7.4
|
|
116
|
+
^^^^^^^^^^^^^^^
|
|
117
|
+
|
|
118
|
+
* Fixed a bug where loading data files failed with the error:
|
|
119
|
+
`TypeError: Field tecrpc.Argument.int64: Expected an int, got a boolean.`
|
|
120
|
+
which was due to changes in the underlying RPC message system.
|
|
121
|
+
* Added `include_custom_labels` parameter to `save_tecplot_plt()` and
|
|
122
|
+
`save_tecplot_ascii()` to allow for writing out data files without custom labels.
|
|
123
|
+
|
|
110
124
|
PyTecplot 1.7.3
|
|
111
125
|
^^^^^^^^^^^^^^^
|
|
112
126
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
pytecplot-1.7.
|
|
1
|
+
pytecplot-1.7.5.dist-info/licenses/LICENSE.html,sha256=I240fAHgxqlSQn_eSmb9ktcS4hgugObDnHYQnlEPzt8,28492
|
|
2
2
|
tecplot/__init__.py,sha256=iHAPbGDgIh7HtLWaWcDYfVS4TOsNrRSHyQa-H_6Li3g,3550
|
|
3
|
-
tecplot/constant.py,sha256=
|
|
3
|
+
tecplot/constant.py,sha256=KoqTkjfi6xjxolWeYNSUXwh27iBR8DnemNnwdZ2s4GM,8740
|
|
4
4
|
tecplot/exception.py,sha256=YB4zeL0-07yCy4pyUqeFdNQ98nK11h2n3ZHHe58Od6s,6493
|
|
5
5
|
tecplot/macro.py,sha256=uE29ftjdr2HdlFVa9SS-1uBU8Di4W3PwquhI75LnvhM,13307
|
|
6
|
-
tecplot/version.py,sha256=
|
|
6
|
+
tecplot/version.py,sha256=A5b3c-YNmQwFJ739MW1oGYkIXgvzE856yW9Ov1RgClQ,1544
|
|
7
7
|
tecplot/annotation/__init__.py,sha256=FfL8JhlO6T9NTajVRtgXHp6A6PhjpO51gnVKlHMkzWA,333
|
|
8
8
|
tecplot/annotation/annotation.py,sha256=B7G-BkrQ4lYBpak9RR3u7Pvdci5MGLUvNo_MnJidyY4,8481
|
|
9
9
|
tecplot/annotation/geometry.py,sha256=3jnp_Ut1AQdhSUCMAJ1yFuL_epoGUoTny03cv0kl09k,12516
|
|
@@ -12,19 +12,19 @@ tecplot/annotation/image.py,sha256=6v_EUYQ1gUoHIqMlJXO68S8nSuvwSnPHePwRKmtmYM4,5
|
|
|
12
12
|
tecplot/annotation/iter.py,sha256=s9rFJLhKgJKApxxTghRFBjT6Pmu6BAEfvB5QgBI4mNI,3709
|
|
13
13
|
tecplot/annotation/polyline.py,sha256=bw-1LfpjfcHK7VZGTf7xrvHtzjlFJAegIYrU5GVdse0,12390
|
|
14
14
|
tecplot/annotation/text.py,sha256=JFaaOJR1h6LyLt9vUVanQmakXtGZOguVdA-3oT8tWhQ,26471
|
|
15
|
-
tecplot/data/__init__.py,sha256=
|
|
15
|
+
tecplot/data/__init__.py,sha256=_fc25c9cRzTROoxSg0t6OqwKH9fwePVed-dvX8mXU4E,1968
|
|
16
16
|
tecplot/data/array.py,sha256=wcGIaoVbSjSdwQP3DpXAOECHAmjTBurbmZvTodF5h1E,24246
|
|
17
17
|
tecplot/data/create.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
18
|
-
tecplot/data/dataset.py,sha256=
|
|
18
|
+
tecplot/data/dataset.py,sha256=MvM1vVf5NlHaDc3rI6mQV_mjNxOaGVuBsGGRtLXSG3I,81909
|
|
19
19
|
tecplot/data/extract.py,sha256=VqDqe_-VcQSKD-rRo4DSqohZElUan2dxuNlLRM_qE54,21891
|
|
20
20
|
tecplot/data/face_neighbors.py,sha256=Bm77F87qtDcw2u1BWFNE9cRTc8FI9MS3Cw8YlaJsdkc,19440
|
|
21
21
|
tecplot/data/facemap.py,sha256=Xhn77cZndfgUA9U014I4M_ecwj8bI98_A7DZC24-Jwk,31287
|
|
22
22
|
tecplot/data/fe_cell_type.py,sha256=G2U0c1RBHvUP03_YjHGHaMk1JOkF-g9SlBlLkWXH2Yg,3911
|
|
23
|
-
tecplot/data/load.py,sha256=
|
|
23
|
+
tecplot/data/load.py,sha256=eKbscSG3HxPxz_N0EbR2lz5ScbZSrkGQx3Ppd5lGFrI,114141
|
|
24
24
|
tecplot/data/nodemap.py,sha256=AhSGO_Bmw3OB01UYKmjldTOci5rlUMGK_eiDrDHWrxk,36209
|
|
25
|
-
tecplot/data/operate.py,sha256=
|
|
25
|
+
tecplot/data/operate.py,sha256=pRmFVFgUbxp07mtG_mLo8LKeQwuYYg6IUl8tWkg0PPU,42659
|
|
26
26
|
tecplot/data/query.py,sha256=Ocr9h1I2bFuJFLVOFEqiCUnuxTzD4wnToNzYk996GhY,14807
|
|
27
|
-
tecplot/data/save.py,sha256=
|
|
27
|
+
tecplot/data/save.py,sha256=iTmR7DJL3iUDgHOikFRPkMRejmZrNaeX7BHpZqhI4aY,16991
|
|
28
28
|
tecplot/data/variable.py,sha256=xJCOO5ZeXCAFWKJYnC_mMxWKoy-oe3pE0EnHytZOwro,9437
|
|
29
29
|
tecplot/data/zone.py,sha256=LxtlinZ2ejq9UnOvapQ2wZfkMdjjRTR6wCi-lzXVa6M,35207
|
|
30
30
|
tecplot/export/__init__.py,sha256=eX3hx-FX9zEE-D3Nnfm_5rEG-jq6XufUDZmmRaLnKFw,781
|
|
@@ -36,7 +36,7 @@ tecplot/export/time_animation.py,sha256=lpy7mq4zQG0Wj5Q3pezHSqGbdaiX2fTOdqf3-s9t
|
|
|
36
36
|
tecplot/extension/__init__.py,sha256=3bDQNm1kqkiWsU7MkbturRl7YuRGSv4fjvGIN_XW5no,425
|
|
37
37
|
tecplot/extension/ipython.py,sha256=glcANfhj8pG5Pv_kF4NSfuyQXwgBKowQ1-nJbJGepgc,2229
|
|
38
38
|
tecplot/layout/__init__.py,sha256=HvlOnhPIsFHSRDACEPN3rlOUmk9tpLNPttReGq3P3_8,1218
|
|
39
|
-
tecplot/layout/frame.py,sha256=
|
|
39
|
+
tecplot/layout/frame.py,sha256=m6Z1JQ96k4CloN_qmvPJwOIfhPrIwnJ_1NzQK8kTv-4,51917
|
|
40
40
|
tecplot/layout/layout.py,sha256=vcrqWgOkcEW90VCbLG2-7xSWajPhP3cRsLnRIrcuO4c,16025
|
|
41
41
|
tecplot/layout/page.py,sha256=MqX3jJAd3o2xkfaSGXU7TD4gnXv-9CQcDj5WJnlIisU,18264
|
|
42
42
|
tecplot/legend/__init__.py,sha256=zj94bHuUKvgWxn5dddEuahKCXVDMOFonQNgKxtuNSTQ,185
|
|
@@ -77,23 +77,23 @@ tecplot/session/style.py,sha256=djEwXG3H8_izU1Zsk5b7FlJo-WsxgLzb3N78YHCC7Us,1761
|
|
|
77
77
|
tecplot/tecutil/__init__.py,sha256=tvHnjGACyMsVN7WbYrtp8Lo9qRBQymYZlQ5BuyiBMQg,748
|
|
78
78
|
tecplot/tecutil/arglist.py,sha256=Ls2PIplqW2mpjPEyUryeiGcKJrrAZNFHRupBHF3mOp4,9071
|
|
79
79
|
tecplot/tecutil/captured_output.py,sha256=_q4pFzQvQ736AO_PAVNxlEhzIaxgZV19sBrMuLkiCB4,6373
|
|
80
|
-
tecplot/tecutil/constant.py,sha256=
|
|
80
|
+
tecplot/tecutil/constant.py,sha256=XlGh9KOxk1FCsknu8yTuETfGrNuq4E9efEY-U8Pve9U,21784
|
|
81
81
|
tecplot/tecutil/index_set.py,sha256=oF4nLpeNOu0-F7RIQUO33WWKGIvK9O6T7lQBIALxRg0,3984
|
|
82
82
|
tecplot/tecutil/lock.py,sha256=rVa7hekZ7ZFZnvYgRGsWxZUty9JUbC2EZ-eO4vHzqlU,967
|
|
83
83
|
tecplot/tecutil/message_pb2.py,sha256=5LLHkC4o1hiXYx7FGPLFkPvN2YzVhPT7gfVNVJg_sEU,3668
|
|
84
84
|
tecplot/tecutil/preamble.py,sha256=wzpTPY3xyv8-cnWpp5q1ay0jlXRNmMEmC0UXN-xu0aU,2142
|
|
85
85
|
tecplot/tecutil/stringlist.py,sha256=GMuwiP0scuyLxEUbcJFIz4DU9TLAhNdjGHDWawGGT-o,3533
|
|
86
|
-
tecplot/tecutil/sv.py,sha256=
|
|
87
|
-
tecplot/tecutil/tecutil.py,sha256=
|
|
88
|
-
tecplot/tecutil/tecutil_client.py,sha256=
|
|
86
|
+
tecplot/tecutil/sv.py,sha256=d6zufyJhfo6UHwCJV6t9yu_yFvKS2JD9Io6GkOJ40lQ,54648
|
|
87
|
+
tecplot/tecutil/tecutil.py,sha256=HxPsG94wu2kZjtsY2YfaFlko4GBUP6X12pcLR89jAkw,697201
|
|
88
|
+
tecplot/tecutil/tecutil_client.py,sha256=2ELrTJG2hlPoOMp6ud0bb6ciTSQTEhFpkA50QrMVB6c,23754
|
|
89
89
|
tecplot/tecutil/tecutil_connector.py,sha256=HW05xfxIbSrnnpXic3DNUkXmMmo0e9Z-HhT3EoC_Mzg,37059
|
|
90
|
-
tecplot/tecutil/tecutil_rpc.py,sha256=
|
|
90
|
+
tecplot/tecutil/tecutil_rpc.py,sha256=bei8gcQPHRS1OgBZQdLSYdX6SF_M1WzAqhSp3kQK_sk,288068
|
|
91
91
|
tecplot/tecutil/util.py,sha256=JgNpjE3J7Uz_QHqPrOxmHCwNnIojkZVfdKftVw_WUdo,12055
|
|
92
92
|
tecplot/text/__init__.py,sha256=hXk-XwewRyS-yxif3Wx5FS1wO5Uh6WQpRgtUiUfjNo0,112
|
|
93
93
|
tecplot/text/font.py,sha256=tHMT2NGJC8rLCVCUdmxK0YN_f4hZpTevWIofwjAp7cs,6722
|
|
94
94
|
tecplot/text/label_format.py,sha256=24MOvWtVZ_SKdcU16i5yEfxC-hBipmNOLQwJ_kzDr3k,12328
|
|
95
95
|
tecplot/text/textbox.py,sha256=nwr0ReRC56MY5gB7Ie6UdDxrd_Os_ZI1_3n4bmOzalU,2882
|
|
96
|
-
pytecplot-1.7.
|
|
97
|
-
pytecplot-1.7.
|
|
98
|
-
pytecplot-1.7.
|
|
99
|
-
pytecplot-1.7.
|
|
96
|
+
pytecplot-1.7.5.dist-info/METADATA,sha256=hZc-cnh3PQaZEUiKeKmmFH9Gdmi8VZVM6DSxmrLk86c,23561
|
|
97
|
+
pytecplot-1.7.5.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
|
|
98
|
+
pytecplot-1.7.5.dist-info/top_level.txt,sha256=gU7HYnAb3AVBIKRUOASdYO0QRI6hg1raLt8aN5E4o7s,8
|
|
99
|
+
pytecplot-1.7.5.dist-info/RECORD,,
|
tecplot/constant.py
CHANGED
tecplot/data/__init__.py
CHANGED
|
@@ -28,7 +28,8 @@ from .fe_cell_type import FECellType
|
|
|
28
28
|
from .load import (load_cfx, load_tecplot, load_tecplot_szl, load_cgns,
|
|
29
29
|
load_converge_cgns, load_converge_hdf5, load_converge_output,
|
|
30
30
|
load_ensight, load_fluent, load_fluent_cff, load_fvcom,
|
|
31
|
-
load_openfoam, load_plot3d, load_stl, load_telemac,
|
|
31
|
+
load_openfoam, load_plot3d, load_stl, load_telemac,
|
|
32
|
+
load_ugrid, load_vtk)
|
|
32
33
|
from .nodemap import (ClassicNodemap, ClassicNodemapArray, Nodemap,
|
|
33
34
|
NodemapSection, NodemapSectionArray)
|
|
34
35
|
from .save import save_tecplot_ascii, save_tecplot_plt, save_tecplot_szl
|
tecplot/data/dataset.py
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import collections
|
|
2
2
|
import ctypes
|
|
3
3
|
import fnmatch
|
|
4
|
-
|
|
4
|
+
|
|
5
5
|
import logging
|
|
6
6
|
import re
|
|
7
7
|
import warnings
|
|
8
8
|
|
|
9
9
|
from collections.abc import Iterable
|
|
10
|
-
from functools import reduce
|
|
11
10
|
from keyword import iskeyword
|
|
12
|
-
from textwrap import dedent
|
|
11
|
+
from textwrap import dedent
|
|
13
12
|
|
|
14
13
|
from ..tecutil import _tecutil, _tecutil_connector
|
|
15
14
|
from ..constant import *
|
|
@@ -386,8 +385,7 @@ class Dataset(object):
|
|
|
386
385
|
ZoneType.FEPolygon: PolyFEZone,
|
|
387
386
|
ZoneType.FEPolyhedron: PolyFEZone,
|
|
388
387
|
ZoneType.FEMixed: MixedFEZone}
|
|
389
|
-
|
|
390
|
-
if isinstance(pattern, (str, pattern_type)):
|
|
388
|
+
if isinstance(pattern, (str, re.Pattern)):
|
|
391
389
|
try:
|
|
392
390
|
return next(self.zones(pattern))
|
|
393
391
|
except StopIteration:
|
|
@@ -412,7 +410,7 @@ class Dataset(object):
|
|
|
412
410
|
def _zone_indices(self):
|
|
413
411
|
"""Zero-based indices of all enabled zones in the dataset."""
|
|
414
412
|
success, ptr = _tecutil.ZoneGetEnabledByDataSetID(self.uid)
|
|
415
|
-
if not success:
|
|
413
|
+
if not success or not ptr:
|
|
416
414
|
raise TecplotSystemError()
|
|
417
415
|
indices = ctypes.cast(ptr, IndexSet)
|
|
418
416
|
try:
|
|
@@ -436,7 +434,7 @@ class Dataset(object):
|
|
|
436
434
|
try:
|
|
437
435
|
return [_tecutil.ZoneGetUniqueIDByDataSetID(self.uid, zone_index + 1)
|
|
438
436
|
for zone_index in self._zone_indices]
|
|
439
|
-
except:
|
|
437
|
+
except Exception as _:
|
|
440
438
|
raise err
|
|
441
439
|
|
|
442
440
|
@property
|
|
@@ -455,12 +453,12 @@ class Dataset(object):
|
|
|
455
453
|
try:
|
|
456
454
|
return [_tecutil.ZoneGetTypeByDataSetID(self.uid, zone_index + 1)
|
|
457
455
|
for zone_index in self._zone_indices]
|
|
458
|
-
except:
|
|
456
|
+
except Exception as _:
|
|
459
457
|
try:
|
|
460
458
|
with self.frame.activated():
|
|
461
459
|
return [_tecutil.ZoneGetType(zone_index + 1)
|
|
462
460
|
for zone_index in self._zone_indices]
|
|
463
|
-
except:
|
|
461
|
+
except Exception as _:
|
|
464
462
|
raise err
|
|
465
463
|
|
|
466
464
|
@property
|
|
@@ -484,7 +482,7 @@ class Dataset(object):
|
|
|
484
482
|
"""
|
|
485
483
|
try:
|
|
486
484
|
success, ptr = _tecutil.ZoneGetNamesByDataSetID(self.uid)
|
|
487
|
-
if not success:
|
|
485
|
+
if not success or not ptr:
|
|
488
486
|
raise TecplotSystemError()
|
|
489
487
|
names = ctypes.cast(ptr, StringList)
|
|
490
488
|
try:
|
|
@@ -494,17 +492,17 @@ class Dataset(object):
|
|
|
494
492
|
except (AttributeError, TecplotSystemError) as err:
|
|
495
493
|
try:
|
|
496
494
|
success, ptr = _tecutil.ZoneGetEnabledNamesByDataSetID(self.uid)
|
|
497
|
-
if not success:
|
|
495
|
+
if not success or not ptr:
|
|
498
496
|
raise TecplotSystemError()
|
|
499
497
|
names = ctypes.cast(ptr, StringList)
|
|
500
498
|
try:
|
|
501
499
|
return list(names)
|
|
502
500
|
finally:
|
|
503
501
|
names.dealloc()
|
|
504
|
-
except:
|
|
502
|
+
except Exception as _:
|
|
505
503
|
try:
|
|
506
504
|
return [z.name for z in self.zones()]
|
|
507
|
-
except:
|
|
505
|
+
except Exception as _:
|
|
508
506
|
raise err
|
|
509
507
|
|
|
510
508
|
def zones(self, pattern=None):
|
|
@@ -563,18 +561,15 @@ class Dataset(object):
|
|
|
563
561
|
ZoneType.FEMixed: MixedFEZone}
|
|
564
562
|
|
|
565
563
|
if pattern:
|
|
566
|
-
|
|
567
|
-
if not isinstance(pattern, pattern_type):
|
|
564
|
+
if not isinstance(pattern, re.Pattern):
|
|
568
565
|
regex = re.compile(fnmatch.translate(pattern), re.IGNORECASE)
|
|
569
566
|
else:
|
|
570
567
|
regex = pattern
|
|
571
568
|
|
|
572
|
-
|
|
573
|
-
found = False
|
|
569
|
+
found = False
|
|
574
570
|
for uid, typ, name in zip(self._zone_uids, self._zone_types, self.zone_names):
|
|
575
571
|
if regex.match(name):
|
|
576
|
-
|
|
577
|
-
found = True
|
|
572
|
+
found = True
|
|
578
573
|
yield _dispatch[typ](uid, self)
|
|
579
574
|
|
|
580
575
|
if __debug__:
|
|
@@ -647,8 +642,7 @@ class Dataset(object):
|
|
|
647
642
|
"""
|
|
648
643
|
if isinstance(pattern, Variable):
|
|
649
644
|
return pattern
|
|
650
|
-
|
|
651
|
-
if isinstance(pattern, (str, pattern_type)):
|
|
645
|
+
if isinstance(pattern, (str, re.Pattern)):
|
|
652
646
|
try:
|
|
653
647
|
return next(self.variables(pattern))
|
|
654
648
|
except StopIteration:
|
|
@@ -669,7 +663,7 @@ class Dataset(object):
|
|
|
669
663
|
def _variable_indices(self):
|
|
670
664
|
"""Yields zero-based indices for all enabled variables in the dataset."""
|
|
671
665
|
success, ptr = _tecutil.VarGetEnabledByDataSetID(self.uid)
|
|
672
|
-
if not success:
|
|
666
|
+
if not success or not ptr:
|
|
673
667
|
raise TecplotSystemError()
|
|
674
668
|
indices = ctypes.cast(ptr, IndexSet)
|
|
675
669
|
try:
|
|
@@ -694,7 +688,7 @@ class Dataset(object):
|
|
|
694
688
|
try:
|
|
695
689
|
return [_tecutil.VarGetUniqueIDByDataSetID(self.uid, variable_index + 1)
|
|
696
690
|
for variable_index in self._variable_indices]
|
|
697
|
-
except:
|
|
691
|
+
except Exception as _:
|
|
698
692
|
raise err
|
|
699
693
|
|
|
700
694
|
@property
|
|
@@ -718,7 +712,7 @@ class Dataset(object):
|
|
|
718
712
|
"""
|
|
719
713
|
try:
|
|
720
714
|
success, ptr = _tecutil.VarGetNamesByDataSetID(self.uid)
|
|
721
|
-
if not success:
|
|
715
|
+
if not success or not ptr:
|
|
722
716
|
raise TecplotSystemError()
|
|
723
717
|
names = ctypes.cast(ptr, StringList)
|
|
724
718
|
try:
|
|
@@ -735,10 +729,10 @@ class Dataset(object):
|
|
|
735
729
|
return list(names)
|
|
736
730
|
finally:
|
|
737
731
|
names.dealloc()
|
|
738
|
-
except:
|
|
732
|
+
except Exception as _:
|
|
739
733
|
try:
|
|
740
734
|
return [z.name for z in self.variables()]
|
|
741
|
-
except:
|
|
735
|
+
except Exception as _:
|
|
742
736
|
raise err
|
|
743
737
|
|
|
744
738
|
def variables(self, pattern=None):
|
|
@@ -773,18 +767,15 @@ class Dataset(object):
|
|
|
773
767
|
reference zones and variables **by name** instead of by index.
|
|
774
768
|
"""
|
|
775
769
|
if pattern:
|
|
776
|
-
|
|
777
|
-
if not isinstance(pattern, pattern_type):
|
|
770
|
+
if not isinstance(pattern, re.Pattern):
|
|
778
771
|
regex = re.compile(fnmatch.translate(pattern), re.IGNORECASE)
|
|
779
772
|
else:
|
|
780
773
|
regex = pattern
|
|
781
774
|
|
|
782
|
-
|
|
783
|
-
found = False
|
|
775
|
+
found = False
|
|
784
776
|
for uid, name in zip(self._variable_uids, self.variable_names):
|
|
785
777
|
if regex.match(name):
|
|
786
|
-
|
|
787
|
-
found = True
|
|
778
|
+
found = True
|
|
788
779
|
yield Variable(uid, self)
|
|
789
780
|
|
|
790
781
|
if __debug__:
|
|
@@ -1011,8 +1002,7 @@ class Dataset(object):
|
|
|
1011
1002
|
):
|
|
1012
1003
|
mirror_variables = [mirror_variables]
|
|
1013
1004
|
|
|
1014
|
-
mvars = (
|
|
1015
|
-
for v in mirror_variables)
|
|
1005
|
+
mvars = map(self.variable, mirror_variables)
|
|
1016
1006
|
mvars = ','.join([str(v.index + 1) for v in mvars])
|
|
1017
1007
|
|
|
1018
1008
|
if not zones:
|
tecplot/data/load.py
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import getpass
|
|
2
2
|
import logging
|
|
3
|
-
import os
|
|
4
3
|
import pathlib
|
|
5
4
|
import platform
|
|
6
5
|
import textwrap
|
|
7
|
-
import warnings
|
|
8
6
|
|
|
9
7
|
from ..tecutil import _tecutil, _tecutil_connector
|
|
10
8
|
from ..constant import *
|
|
11
9
|
from ..exception import *
|
|
12
|
-
from .. import layout,
|
|
10
|
+
from .. import layout, tecutil
|
|
13
11
|
from ..tecutil import IndexSet, StringList, lock, sv
|
|
14
12
|
|
|
15
13
|
|
|
@@ -26,6 +24,7 @@ def _tecplot_loader_load_data(arglist,
|
|
|
26
24
|
assign_strand_ids=None,
|
|
27
25
|
add_zones_to_existing_strands=None):
|
|
28
26
|
frame = frame or layout.active_frame()
|
|
27
|
+
assert frame, 'Invalid Frame'
|
|
29
28
|
|
|
30
29
|
# If read_data_option is append and there is no data, we
|
|
31
30
|
# need to silently change it to "Replace in Active Frame"
|
|
@@ -997,6 +996,96 @@ def load_telemac(filenames=None,
|
|
|
997
996
|
assign_strand_ids=True)
|
|
998
997
|
|
|
999
998
|
|
|
999
|
+
@lock()
|
|
1000
|
+
def load_ugrid(filename,
|
|
1001
|
+
frame=None,
|
|
1002
|
+
read_data_option=ReadDataOption.Append,
|
|
1003
|
+
mapbc_filename=None,
|
|
1004
|
+
initial_plot_type=None):
|
|
1005
|
+
"""Read a UGRID data file.
|
|
1006
|
+
|
|
1007
|
+
Parameters:
|
|
1008
|
+
filename (`pathlib.Path` or `str`): Path to exactly one UGRID file to be
|
|
1009
|
+
read. The filename must end with ``.b8.ugrid`` or ``.lb8.ugrid``.
|
|
1010
|
+
(See note below concerning absolute and relative paths.)
|
|
1011
|
+
frame (`Frame <tecplot.layout.Frame>`, optional): The `Frame
|
|
1012
|
+
<tecplot.layout.Frame>` to attach the resulting `Dataset`. If
|
|
1013
|
+
`None`, the currently active `Frame <tecplot.layout.Frame>` is used
|
|
1014
|
+
and the zones are appended by default.
|
|
1015
|
+
read_data_option (`ReadDataOption`, optional): Specify how the data
|
|
1016
|
+
is loaded into Tecplot. (default: `ReadDataOption.Append`)
|
|
1017
|
+
|
|
1018
|
+
Possible values are:
|
|
1019
|
+
* `ReadDataOption.ReplaceInActiveFrame`
|
|
1020
|
+
Remove the dataset from the active frame prior to reading in the
|
|
1021
|
+
new dataset. If other frames use the same `Dataset
|
|
1022
|
+
<tecplot.data.Dataset>` in the active frame, they will continue to
|
|
1023
|
+
use the old one.
|
|
1024
|
+
* `ReadDataOption.Append`
|
|
1025
|
+
Append to the existing `Dataset <tecplot.data.Dataset>`.
|
|
1026
|
+
* `ReadDataOption.Replace`
|
|
1027
|
+
Replace the `Dataset <tecplot.data.Dataset>` attached to the active
|
|
1028
|
+
frame and to all other frames that use the same `Dataset
|
|
1029
|
+
<tecplot.data.Dataset>`.
|
|
1030
|
+
mapbc_filename (`pathlib.Path` or `str`, optional): Optional MAPBC file
|
|
1031
|
+
used for boundary metadata. If provided, that file is used. If
|
|
1032
|
+
`None` (default), the loader looks for an exact companion
|
|
1033
|
+
``.mapbc`` file with the same base name in the same directory.
|
|
1034
|
+
If the selected or auto-detected ``.mapbc`` file is malformed or its
|
|
1035
|
+
boundary IDs do not match the UGRID file, the loader warns and
|
|
1036
|
+
continues loading UGRID data without applying MAPBC metadata.
|
|
1037
|
+
initial_plot_type (`PlotType`, optional): Forces a specific type of
|
|
1038
|
+
plot upon loading of the data. To have |Tecplot 360| determine the
|
|
1039
|
+
most appropriate plot type for the data, use
|
|
1040
|
+
`PlotType.Automatic`. Possible values are: `PlotType.Automatic`
|
|
1041
|
+
(default), `Cartesian3D`, `Cartesian2D`, `XYLine`,
|
|
1042
|
+
`PlotType.Sketch`, `PolarLine`.
|
|
1043
|
+
|
|
1044
|
+
Returns:
|
|
1045
|
+
`Dataset <tecplot.data.Dataset>`: The `Dataset <tecplot.data.Dataset>` holding
|
|
1046
|
+
the loaded data.
|
|
1047
|
+
|
|
1048
|
+
.. note:: **Absolute and relative paths with PyTecplot**
|
|
1049
|
+
|
|
1050
|
+
Relative paths, when used within the PyTecplot API are always from
|
|
1051
|
+
Python's current working directory which can be obtained by calling
|
|
1052
|
+
:func:`os.getcwd()`. This is true for batch and `connected
|
|
1053
|
+
<tecplot.session.connect()>` modes. One exception to this is paths
|
|
1054
|
+
within a macro command or file which will be relative to the |Tecplot
|
|
1055
|
+
Engine|'s home directory, which is typically the |Tecplot 360|
|
|
1056
|
+
installation directory. Finally, when connected to a remote (non-local)
|
|
1057
|
+
instance of Tecplot 360, only absolute paths are allowed.
|
|
1058
|
+
|
|
1059
|
+
Note that backslashes must be escaped which is especially important for
|
|
1060
|
+
windows paths such as ``"C:\\\\Users"`` or ``"\\\\\\\\server\\\\path"``
|
|
1061
|
+
which will resolve to ``"C:\\Users"`` and ``"\\\\server\\path"``
|
|
1062
|
+
respectively. Alternatively, one may use Python's raw strings:
|
|
1063
|
+
``r"C:\\Users"`` and ``r"\\\\server\\path"``
|
|
1064
|
+
|
|
1065
|
+
Load one UGRID file, or explicitly provide a MAPBC file::
|
|
1066
|
+
|
|
1067
|
+
>>> dataset = tecplot.data.load_ugrid('surface.b8.ugrid')
|
|
1068
|
+
>>> dataset = tecplot.data.load_ugrid(
|
|
1069
|
+
... 'surface.b8.ugrid',
|
|
1070
|
+
... mapbc_filename='surface.mapbc')
|
|
1071
|
+
|
|
1072
|
+
.. versionadded:: 2026.1
|
|
1073
|
+
Loading UGRID data requires Tecplot 360 2026 R1 or later.
|
|
1074
|
+
|
|
1075
|
+
.. versionadded:: 1.7.5
|
|
1076
|
+
"""
|
|
1077
|
+
with StringList('STANDARDSYNTAX', '1.0') as instr:
|
|
1078
|
+
with tecutil.ArgList() as arglist:
|
|
1079
|
+
arglist[sv.DATASETREADER] = 'UGRID Loader'
|
|
1080
|
+
instr += ['FILENAME_UGRID', tecutil.normalize_path(filename)]
|
|
1081
|
+
if mapbc_filename is not None:
|
|
1082
|
+
instr += ['FILENAME_MAPBC', tecutil.normalize_path(mapbc_filename)]
|
|
1083
|
+
arglist[sv.FILENAMESORINSTRUCTIONS] = instr
|
|
1084
|
+
return _tecplot_loader_load_data(
|
|
1085
|
+
arglist, frame=frame, read_data_option=read_data_option,
|
|
1086
|
+
initial_plot_type=initial_plot_type)
|
|
1087
|
+
|
|
1088
|
+
|
|
1000
1089
|
@lock()
|
|
1001
1090
|
def load_plot3d(grid_filenames=None,
|
|
1002
1091
|
solution_filenames=None,
|
|
@@ -1823,7 +1912,7 @@ def load_tecplot(filenames,
|
|
|
1823
1912
|
variables (`set` of `strings <str>` or `integers <int>`, optional):
|
|
1824
1913
|
Set of `Variables <Variable>` to load. If variable names are
|
|
1825
1914
|
specified as strings and appending then variables will be aligned
|
|
1826
|
-
with existing variables. If variable offsets are supplied then
|
|
1915
|
+
with existing variables. If variable offsets are supplied then
|
|
1827
1916
|
the variables at those offsets will be loaded and aligned based
|
|
1828
1917
|
on the value of the collapse parameter. Use `None` to load all
|
|
1829
1918
|
variables. (default: `None`)
|
|
@@ -1937,19 +2026,19 @@ def load_tecplot_szl(filenames,
|
|
|
1937
2026
|
szlserver_path=None):
|
|
1938
2027
|
|
|
1939
2028
|
#
|
|
1940
|
-
# Possible Future Enhancement.
|
|
2029
|
+
# Possible Future Enhancement.
|
|
1941
2030
|
# As it stands the szl loader is hardcoded to load variables by name when
|
|
1942
2031
|
# appending to an existing dataset. If we want the szl loader to behave
|
|
1943
2032
|
# similar to the internal tecplot loader then we need to add the ability
|
|
1944
|
-
# to specify a "variables" like paramter (but should not be named
|
|
2033
|
+
# to specify a "variables" like paramter (but should not be named
|
|
1945
2034
|
# "variables" because of conflicts with other V3 loaders that already use
|
|
1946
2035
|
# that for their primary load instructions.
|
|
1947
|
-
# This will apply ONLY to the VarNameList and VarPositionList for the
|
|
2036
|
+
# This will apply ONLY to the VarNameList and VarPositionList for the
|
|
1948
2037
|
# $!READDATASET command (i.e. only applied to appending for V3 Loaders)
|
|
1949
2038
|
#
|
|
1950
2039
|
# Proposed is to add:
|
|
1951
2040
|
#
|
|
1952
|
-
# appending_variables=None,
|
|
2041
|
+
# appending_variables=None,
|
|
1953
2042
|
#
|
|
1954
2043
|
# Documentation then will include:
|
|
1955
2044
|
#
|
|
@@ -1957,7 +2046,7 @@ def load_tecplot_szl(filenames,
|
|
|
1957
2046
|
# Set of `Variables <Variable>` to load. If variable names are
|
|
1958
2047
|
# specified as strings and **read_data_option** is set to
|
|
1959
2048
|
# `ReadDataOption.Append` then variables will be aligned with
|
|
1960
|
-
# existing variables. If variable offsets are supplied then
|
|
2049
|
+
# existing variables. If variable offsets are supplied then
|
|
1961
2050
|
# the variables at those offsets will be loaded.
|
|
1962
2051
|
# Use `None` to load all variables. (default: `None`)
|
|
1963
2052
|
|
tecplot/data/operate.py
CHANGED
|
@@ -151,7 +151,8 @@ def execute_equation(equation, zones=None, i_range=None, j_range=None,
|
|
|
151
151
|
|
|
152
152
|
arglist[sv.VALUELOCATION] = value_location
|
|
153
153
|
arglist[sv.VARDATATYPE] = variable_data_type
|
|
154
|
-
|
|
154
|
+
if ignore_divide_by_zero is not None:
|
|
155
|
+
arglist[sv.IGNOREDIVIDEBYZERO] = 1 if ignore_divide_by_zero else 0
|
|
155
156
|
|
|
156
157
|
if not _tecutil.DataAlterX(arglist):
|
|
157
158
|
raise TecplotSystemError()
|
tecplot/data/save.py
CHANGED
|
@@ -13,8 +13,9 @@ log = logging.getLogger(__name__)
|
|
|
13
13
|
@lock()
|
|
14
14
|
def _save_tecplot(binary, frame, dataset, filename, include_text, include_geom,
|
|
15
15
|
include_data, include_data_share_linkage,
|
|
16
|
-
include_autogen_face_neighbors,
|
|
17
|
-
associate_with_layout, zones, variables, precision,
|
|
16
|
+
include_autogen_face_neighbors, include_custom_labels,
|
|
17
|
+
use_point_format, associate_with_layout, zones, variables, precision,
|
|
18
|
+
version):
|
|
18
19
|
if dataset is None:
|
|
19
20
|
if frame is None:
|
|
20
21
|
frame = layout.active_frame()
|
|
@@ -47,6 +48,7 @@ def _save_tecplot(binary, frame, dataset, filename, include_text, include_geom,
|
|
|
47
48
|
arglist[sv.INCLUDEDATASHARELINKAGE] = include_data_share_linkage
|
|
48
49
|
arglist[sv.INCLUDEAUTOGENFACENEIGHBORS] = \
|
|
49
50
|
include_autogen_face_neighbors
|
|
51
|
+
arglist[sv.INCLUDECUSTOMLABELS] = include_custom_labels
|
|
50
52
|
arglist[sv.ASSOCIATELAYOUTWITHDATAFILE] = associate_with_layout
|
|
51
53
|
if version is not None:
|
|
52
54
|
arglist[sv.TECPLOTVERSIONTOWRITE] = BinaryFileVersion(version)
|
|
@@ -67,8 +69,8 @@ def save_tecplot_ascii(filename, frame=None, dataset=None, zones=None,
|
|
|
67
69
|
variables=None, include_text=None, precision=None,
|
|
68
70
|
include_geom=None, include_data=None,
|
|
69
71
|
include_data_share_linkage=None,
|
|
70
|
-
include_autogen_face_neighbors=None,
|
|
71
|
-
|
|
72
|
+
include_autogen_face_neighbors=None, use_point_format=None,
|
|
73
|
+
include_custom_labels=None):
|
|
72
74
|
"""Write Tecplot ASCII data file.
|
|
73
75
|
|
|
74
76
|
Parameters:
|
|
@@ -82,8 +84,7 @@ def save_tecplot_ascii(filename, frame=None, dataset=None, zones=None,
|
|
|
82
84
|
<tecplot.data.Dataset>` to write out. If this and *frame* are both `None`,
|
|
83
85
|
the `Dataset <tecplot.data.Dataset>` of the currently active `Frame
|
|
84
86
|
<layout.Frame>` is used. (default: `None`)
|
|
85
|
-
include_text (`bool`, optional): Write out all text
|
|
86
|
-
geometries and custom labels. (default: `True`)
|
|
87
|
+
include_text (`bool`, optional): Write out all text (default: `True`)
|
|
87
88
|
include_geom (`bool`, optional): Write out all geometries.
|
|
88
89
|
(default: `True`)
|
|
89
90
|
include_data (`bool`, optional): Write out the data. Set
|
|
@@ -97,6 +98,8 @@ def save_tecplot_ascii(filename, frame=None, dataset=None, zones=None,
|
|
|
97
98
|
include_autogen_face_neighbors (`bool`, optional): Save the
|
|
98
99
|
face neighbor connectivity. This may produce very large data
|
|
99
100
|
files. (default: `False`)
|
|
101
|
+
include_custom_labels (`bool`, optional): Write out any custom labels
|
|
102
|
+
in the dataset to the output data file. (default: `True`)
|
|
100
103
|
use_point_format (`bool`, optional): Write out point format,
|
|
101
104
|
otherwise use block format.
|
|
102
105
|
(default: `False`)
|
|
@@ -157,24 +160,20 @@ def save_tecplot_ascii(filename, frame=None, dataset=None, zones=None,
|
|
|
157
160
|
zones=[zone_to_save])
|
|
158
161
|
"""
|
|
159
162
|
return _save_tecplot(
|
|
160
|
-
binary=False, frame=frame, dataset=dataset,
|
|
161
|
-
|
|
162
|
-
include_geom=include_geom, include_data=include_data,
|
|
163
|
+
binary=False, frame=frame, dataset=dataset, filename=filename,
|
|
164
|
+
include_text=include_text, include_geom=include_geom, include_data=include_data,
|
|
163
165
|
include_data_share_linkage=include_data_share_linkage,
|
|
164
166
|
include_autogen_face_neighbors=include_autogen_face_neighbors,
|
|
165
|
-
use_point_format=use_point_format,
|
|
166
|
-
associate_with_layout=None,
|
|
167
|
-
|
|
168
|
-
zones=zones, variables=variables,
|
|
169
|
-
version=None)
|
|
167
|
+
include_custom_labels=include_custom_labels, use_point_format=use_point_format,
|
|
168
|
+
associate_with_layout=None, precision=precision, zones=zones,
|
|
169
|
+
variables=variables, version=None)
|
|
170
170
|
|
|
171
171
|
|
|
172
172
|
def save_tecplot_plt(filename, frame=None, dataset=None, zones=None,
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
associate_with_layout=None):
|
|
173
|
+
variables=None, version=None, include_text=None, include_geom=None,
|
|
174
|
+
include_data=None, include_data_share_linkage=None,
|
|
175
|
+
include_autogen_face_neighbors=None, associate_with_layout=None,
|
|
176
|
+
include_custom_labels=None):
|
|
178
177
|
"""Write Tecplot binary PLT data file.
|
|
179
178
|
|
|
180
179
|
Parameters:
|
|
@@ -194,8 +193,7 @@ def save_tecplot_plt(filename, frame=None, dataset=None, zones=None,
|
|
|
194
193
|
variables (`list` of `Variables <Variable>`, optional):
|
|
195
194
|
`Variables <Variable>` to write out. If `None`, all `Variables
|
|
196
195
|
<Variable>` will be saved.
|
|
197
|
-
include_text (`bool`, optional): Write out all text
|
|
198
|
-
geometries and custom labels. (default: `True`)
|
|
196
|
+
include_text (`bool`, optional): Write out all text. (default: `True`)
|
|
199
197
|
include_geom (`bool`, optional): Write out all geometries.
|
|
200
198
|
(default: `True`)
|
|
201
199
|
include_data (`bool`, optional): Write out the data. Set
|
|
@@ -209,6 +207,8 @@ def save_tecplot_plt(filename, frame=None, dataset=None, zones=None,
|
|
|
209
207
|
include_autogen_face_neighbors (`bool`, optional): Save the
|
|
210
208
|
face neighbor connectivity. This may produce very large data
|
|
211
209
|
files. (default: `False`)
|
|
210
|
+
include_custom_labels (`bool`, optional): Write out any custom labels
|
|
211
|
+
in the dataset to the output data file. (default: `True`)
|
|
212
212
|
associate_with_layout (`bool`, optional): Associate this
|
|
213
213
|
data file with the current layout. Set to `False` to write the
|
|
214
214
|
datafile without modifying Tecplot's current data file to layout
|
|
@@ -271,16 +271,13 @@ def save_tecplot_plt(filename, frame=None, dataset=None, zones=None,
|
|
|
271
271
|
zones=[zone_to_save])
|
|
272
272
|
"""
|
|
273
273
|
return _save_tecplot(
|
|
274
|
-
binary=True, frame=frame, dataset=dataset,
|
|
275
|
-
|
|
276
|
-
include_geom=include_geom, include_data=include_data,
|
|
274
|
+
binary=True, frame=frame, dataset=dataset, filename=filename,
|
|
275
|
+
include_text=include_text, include_geom=include_geom, include_data=include_data,
|
|
277
276
|
include_data_share_linkage=include_data_share_linkage,
|
|
278
277
|
include_autogen_face_neighbors=include_autogen_face_neighbors,
|
|
279
|
-
use_point_format=None,
|
|
280
|
-
associate_with_layout=associate_with_layout,
|
|
281
|
-
|
|
282
|
-
zones=zones, variables=variables,
|
|
283
|
-
version=version)
|
|
278
|
+
include_custom_labels=include_custom_labels, use_point_format=None,
|
|
279
|
+
associate_with_layout=associate_with_layout, precision=None, zones=zones,
|
|
280
|
+
variables=variables, version=version)
|
|
284
281
|
|
|
285
282
|
|
|
286
283
|
def save_tecplot_szl(filename, frame=None, dataset=None):
|
tecplot/layout/frame.py
CHANGED
|
@@ -68,6 +68,9 @@ class Frame(session.Style):
|
|
|
68
68
|
dataset: Dataset = None
|
|
69
69
|
"""The `Dataset <tecplot.data.Dataset>` belonging to this Frame."""
|
|
70
70
|
|
|
71
|
+
has_dataset = None
|
|
72
|
+
"""Property indicating the Frame has a `Dataset <tecplot.data.Dataset>`."""
|
|
73
|
+
|
|
71
74
|
def __init__(self, uid, page):
|
|
72
75
|
self.page = page
|
|
73
76
|
self.uid = uid
|
tecplot/tecutil/constant.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# This file was auto-generated on
|
|
2
|
+
# This file was auto-generated on 2026-07-24 by tecgen.
|
|
3
3
|
# IMPORTANT: DO NOT edit this file!
|
|
4
4
|
#
|
|
5
5
|
from enum import Enum as _Enum
|
|
@@ -349,6 +349,111 @@ class DerivPos(_Enum):
|
|
|
349
349
|
jphalf = 3
|
|
350
350
|
iphalf = 4
|
|
351
351
|
|
|
352
|
+
class Dialog(_Enum):
|
|
353
|
+
ColorMap = 0
|
|
354
|
+
Equation = 1
|
|
355
|
+
MacroViewer = 2
|
|
356
|
+
ZoneMapStyle = 3
|
|
357
|
+
QuickEdit = 4
|
|
358
|
+
QuickMacroPanel = 5
|
|
359
|
+
ValueBlanking = 6
|
|
360
|
+
Probe = 7
|
|
361
|
+
ProbeAt = 8
|
|
362
|
+
NewLayout = 9
|
|
363
|
+
OpenLayout = 10
|
|
364
|
+
Save = 11
|
|
365
|
+
SaveAs = 12
|
|
366
|
+
LoadData = 13
|
|
367
|
+
WriteData = 14
|
|
368
|
+
Print = 15
|
|
369
|
+
Import = 16
|
|
370
|
+
Export = 17
|
|
371
|
+
MacroPlay = 18
|
|
372
|
+
MacroRecord = 19
|
|
373
|
+
AxisEdit = 20
|
|
374
|
+
SpatialVars = 21
|
|
375
|
+
Reset3DAxes = 22
|
|
376
|
+
ThreeDAxisLimits = 23
|
|
377
|
+
ThreeDOrientationAxis = 24
|
|
378
|
+
Streamtraces = 25
|
|
379
|
+
IsoSurfaces = 26
|
|
380
|
+
Slices = 27
|
|
381
|
+
Contour = 28
|
|
382
|
+
VectorLength = 29
|
|
383
|
+
VectorVars = 30
|
|
384
|
+
VectorArrowheads = 31
|
|
385
|
+
VectorReferenceVector = 32
|
|
386
|
+
ScatterSizeAndFont = 33
|
|
387
|
+
ScatterLegend = 34
|
|
388
|
+
ScatterReferenceSymbol = 35
|
|
389
|
+
RGBColorVarsAndRange = 36
|
|
390
|
+
RGBColorLegend = 37
|
|
391
|
+
LineMapLegend = 38
|
|
392
|
+
IJKBlanking = 39
|
|
393
|
+
DepthBlanking = 40
|
|
394
|
+
LightSource = 41
|
|
395
|
+
Advanced3DControl = 42
|
|
396
|
+
TwoDDrawOrder = 43
|
|
397
|
+
PolarDrawingOptions = 44
|
|
398
|
+
DataLabels = 45
|
|
399
|
+
StyleLinking = 46
|
|
400
|
+
Smooth = 47
|
|
401
|
+
TransformCoordinates = 48
|
|
402
|
+
Rotate2DData = 49
|
|
403
|
+
Create1DLine = 50
|
|
404
|
+
CreateRectangularZone = 51
|
|
405
|
+
CreateCircularZone = 52
|
|
406
|
+
DuplicateZone = 53
|
|
407
|
+
MirrorZone = 54
|
|
408
|
+
CreateZoneFromPolylines = 55
|
|
409
|
+
CreateZoneFromValues = 56
|
|
410
|
+
DeleteVariables = 57
|
|
411
|
+
DeleteZones = 58
|
|
412
|
+
ExtractContourLines = 59
|
|
413
|
+
ExtractFEBoundary = 60
|
|
414
|
+
ExtractIsoSurfaces = 61
|
|
415
|
+
ExtractSlices = 62
|
|
416
|
+
ExtractSliceFromPlane = 63
|
|
417
|
+
ExtractStreamtraces = 64
|
|
418
|
+
ExtractSubZone = 65
|
|
419
|
+
ExtractDiscretePoints = 66
|
|
420
|
+
ExtractPointsFromPolyline = 67
|
|
421
|
+
ExtractPointsFromGeometry = 68
|
|
422
|
+
LinearInterpolation = 69
|
|
423
|
+
InverseDistanceInterpolation = 70
|
|
424
|
+
KrigingInterpolation = 71
|
|
425
|
+
Triangulate = 72
|
|
426
|
+
DataInfo = 73
|
|
427
|
+
CurveInfo = 74
|
|
428
|
+
DataSpreadsheet = 75
|
|
429
|
+
PaperSetup = 76
|
|
430
|
+
OrderFrames = 77
|
|
431
|
+
RulerGrid = 78
|
|
432
|
+
ThreeDViewRotate = 79
|
|
433
|
+
ThreeDViewDetails = 80
|
|
434
|
+
TranslateMagnify = 81
|
|
435
|
+
PrintPreview = 82
|
|
436
|
+
ColorPreferences = 83
|
|
437
|
+
MiscPreferences = 84
|
|
438
|
+
SizePreferences = 85
|
|
439
|
+
SaveConfiguration = 86
|
|
440
|
+
SaveColorMap = 87
|
|
441
|
+
LoadColorMap = 88
|
|
442
|
+
HelpAboutTecplot = 89
|
|
443
|
+
HelpAboutAddOns = 90
|
|
444
|
+
Publish = 91
|
|
445
|
+
EditFrame = 92
|
|
446
|
+
CopyToClipboard = 93
|
|
447
|
+
ThreeDEdge = 94
|
|
448
|
+
TimeDetails = 95
|
|
449
|
+
Performance = 96
|
|
450
|
+
HelpTecplotLicensing = 97
|
|
451
|
+
GeomDetails = 98
|
|
452
|
+
BasicColorLegend = 99
|
|
453
|
+
FourierTransform = 100
|
|
454
|
+
RotateData = 101
|
|
455
|
+
AxialDuplicate = 102
|
|
456
|
+
|
|
352
457
|
class DistributionRegion(_Enum):
|
|
353
458
|
Point = 0
|
|
354
459
|
Rake = 1
|
|
@@ -644,6 +749,11 @@ class LegendShow(_Enum):
|
|
|
644
749
|
Never = 1
|
|
645
750
|
Auto = 2
|
|
646
751
|
|
|
752
|
+
class LibraryType(_Enum):
|
|
753
|
+
Foreign = 0
|
|
754
|
+
V7Standard = 1
|
|
755
|
+
V7ActiveX = 2
|
|
756
|
+
|
|
647
757
|
class LightingEffect(_Enum):
|
|
648
758
|
Paneled = 0
|
|
649
759
|
SmoothWithCreases = 1
|
|
@@ -838,10 +948,6 @@ class RelOp(_Enum):
|
|
|
838
948
|
EqualTo = 4
|
|
839
949
|
NotEqualTo = 5
|
|
840
950
|
|
|
841
|
-
class RenderAPI(_Enum):
|
|
842
|
-
OpenGL = 0
|
|
843
|
-
Vulkan = 1
|
|
844
|
-
|
|
845
951
|
class Resulting1DZoneType(_Enum):
|
|
846
952
|
IOrderedIfPossible = 0
|
|
847
953
|
FELineSegment = 1
|
|
@@ -903,6 +1009,16 @@ class SliceSource(_Enum):
|
|
|
903
1009
|
SurfacesOfVolumeZones = 2
|
|
904
1010
|
LinearZones = 3
|
|
905
1011
|
|
|
1012
|
+
class SliceSurface(_Enum):
|
|
1013
|
+
XPlanes = 0
|
|
1014
|
+
YPlanes = 1
|
|
1015
|
+
ZPlanes = 2
|
|
1016
|
+
IPlanes = 3
|
|
1017
|
+
JPlanes = 4
|
|
1018
|
+
KPlanes = 5
|
|
1019
|
+
CVar = 6
|
|
1020
|
+
Arbitrary = 7
|
|
1021
|
+
|
|
906
1022
|
class SphereScatterRenderQuality(_Enum):
|
|
907
1023
|
Low = 0
|
|
908
1024
|
Medium = 1
|
tecplot/tecutil/sv.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# This file was auto-generated on
|
|
2
|
+
# This file was auto-generated on 2026-07-24 by tecgen.
|
|
3
3
|
# IMPORTANT: DO NOT edit this file!
|
|
4
4
|
#
|
|
5
5
|
|
|
@@ -577,6 +577,7 @@ GRIDLINECOLOR = 'GRIDLINECOLOR'
|
|
|
577
577
|
GRIDLINES = 'GRIDLINES'
|
|
578
578
|
GRIDORDERPERSECTION = 'GRIDORDERPERSECTION'
|
|
579
579
|
GROUP = 'GROUP'
|
|
580
|
+
GROUPINGVARS = 'GROUPINGVARS'
|
|
580
581
|
GROUPS = 'GROUPS'
|
|
581
582
|
GRSPACING = 'GRSPACING'
|
|
582
583
|
HEADER = 'HEADER'
|
tecplot/tecutil/tecutil.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# This file was auto-generated on
|
|
2
|
+
# This file was auto-generated on 2026-07-24 by tecgen.
|
|
3
3
|
# IMPORTANT: DO NOT edit this file!
|
|
4
4
|
#
|
|
5
5
|
import sys
|
|
@@ -501,6 +501,12 @@ class TecUtil(object):
|
|
|
501
501
|
self.handle.tecUtilBlankingIsNonDepthActive.restype = c_bool
|
|
502
502
|
except AttributeError:
|
|
503
503
|
error_list.append('TecUtilBlankingIsNonDepthActive')
|
|
504
|
+
# Boolean_t TecUtilCleanGrid(UniqueID_t DataSetID, Set_pa Zones, Set_pa GroupingVars, double AbsoluteTolerance)
|
|
505
|
+
try:
|
|
506
|
+
self.handle.tecUtilCleanGrid.argtypes = [c_int64, c_void_p, c_void_p, c_double]
|
|
507
|
+
self.handle.tecUtilCleanGrid.restype = c_bool
|
|
508
|
+
except AttributeError:
|
|
509
|
+
error_list.append('TecUtilCleanGrid')
|
|
504
510
|
# Boolean_t TecUtilColorMapCopyStandard(ContourColorMap_e ColorMap)
|
|
505
511
|
try:
|
|
506
512
|
self.handle.tecUtilColorMapCopyStandard.restype = c_bool
|
|
@@ -1949,9 +1955,10 @@ class TecUtil(object):
|
|
|
1949
1955
|
self.handle.tecUtilDataValueSetMinMaxByZoneVar.argtypes = [c_int32, c_int32, c_double, c_double]
|
|
1950
1956
|
except AttributeError:
|
|
1951
1957
|
error_list.append('TecUtilDataValueSetMinMaxByZoneVar')
|
|
1952
|
-
#
|
|
1958
|
+
# Boolean_t TecUtilDataValueShare(EntIndex_t SourceZone, EntIndex_t DestZone, EntIndex_t Var)
|
|
1953
1959
|
try:
|
|
1954
1960
|
self.handle.tecUtilDataValueShare.argtypes = [c_int32, c_int32, c_int32]
|
|
1961
|
+
self.handle.tecUtilDataValueShare.restype = c_bool
|
|
1955
1962
|
except AttributeError:
|
|
1956
1963
|
error_list.append('TecUtilDataValueShare')
|
|
1957
1964
|
# Boolean_t TecUtilDataValueUnload(EntIndex_t Zone, EntIndex_t Var)
|
|
@@ -6210,6 +6217,12 @@ class TecUtil(object):
|
|
|
6210
6217
|
result = self.handle.tecUtilBlankingIsNonDepthActive()
|
|
6211
6218
|
return result
|
|
6212
6219
|
|
|
6220
|
+
# Boolean_t TecUtilCleanGrid(UniqueID_t DataSetID, Set_pa Zones, Set_pa GroupingVars, double AbsoluteTolerance)
|
|
6221
|
+
@tecutil_preamble
|
|
6222
|
+
def CleanGrid(self, data_set_id, zones, grouping_vars, absolute_tolerance):
|
|
6223
|
+
result = self.handle.tecUtilCleanGrid(data_set_id, zones, grouping_vars, absolute_tolerance)
|
|
6224
|
+
return result
|
|
6225
|
+
|
|
6213
6226
|
# Boolean_t TecUtilColorMapCopyStandard(ContourColorMap_e ColorMap)
|
|
6214
6227
|
@tecutil_preamble
|
|
6215
6228
|
def ColorMapCopyStandard(self, color_map):
|
|
@@ -7821,10 +7834,11 @@ class TecUtil(object):
|
|
|
7821
7834
|
def DataValueSetMinMaxByZoneVar(self, zone, var, min_value, max_value):
|
|
7822
7835
|
self.handle.tecUtilDataValueSetMinMaxByZoneVar(zone, var, min_value, max_value)
|
|
7823
7836
|
|
|
7824
|
-
#
|
|
7837
|
+
# Boolean_t TecUtilDataValueShare(EntIndex_t SourceZone, EntIndex_t DestZone, EntIndex_t Var)
|
|
7825
7838
|
@tecutil_preamble
|
|
7826
7839
|
def DataValueShare(self, source_zone, dest_zone, var):
|
|
7827
|
-
self.handle.tecUtilDataValueShare(source_zone, dest_zone, var)
|
|
7840
|
+
result = self.handle.tecUtilDataValueShare(source_zone, dest_zone, var)
|
|
7841
|
+
return result
|
|
7828
7842
|
|
|
7829
7843
|
# Boolean_t TecUtilDataValueUnload(EntIndex_t Zone, EntIndex_t Var)
|
|
7830
7844
|
@tecutil_preamble
|
|
@@ -46,7 +46,7 @@ def set_arglist_item(item, key, val):
|
|
|
46
46
|
item.value.float64 = val[0]
|
|
47
47
|
|
|
48
48
|
elif isinstance(val, (int, bool)):
|
|
49
|
-
set_scalar(item.value, c_int64, val)
|
|
49
|
+
set_scalar(item.value, c_int64, int(val))
|
|
50
50
|
elif isinstance(val, Enum):
|
|
51
51
|
set_scalar(item.value, c_int64, val.value)
|
|
52
52
|
|
tecplot/tecutil/tecutil_rpc.py
CHANGED
|
@@ -598,6 +598,14 @@ class TecUtilRPC(object):
|
|
|
598
598
|
rep=self.sndrcv("BlankingIsNonDepthActive")
|
|
599
599
|
self.chk(rep)
|
|
600
600
|
return rep.args[0].boolean
|
|
601
|
+
def CleanGrid(self,data_set_id,zones,grouping_vars,absolute_tolerance):
|
|
602
|
+
args=((ValueType.Scalar,c_int64,data_set_id),
|
|
603
|
+
(ValueType.Address,c_uint64,getattr(zones,'value',zones)),
|
|
604
|
+
(ValueType.Address,c_uint64,getattr(grouping_vars,'value',grouping_vars)),
|
|
605
|
+
(ValueType.Scalar,c_double,absolute_tolerance),)
|
|
606
|
+
rep=self.sndrcv("CleanGrid",*args)
|
|
607
|
+
self.chk(rep)
|
|
608
|
+
return (rep.status == tecrpc.Reply.Success)
|
|
601
609
|
def ColorMapCopyStandard(self,color_map):
|
|
602
610
|
args=((ValueType.Scalar,c_int32,ContourColorMap(color_map).value),)
|
|
603
611
|
rep=self.sndrcv("ColorMapCopyStandard",*args)
|
|
@@ -2155,6 +2163,7 @@ class TecUtilRPC(object):
|
|
|
2155
2163
|
(ValueType.Scalar,c_int32,var),)
|
|
2156
2164
|
rep=self.sndrcv("DataValueShare",*args)
|
|
2157
2165
|
self.chk(rep)
|
|
2166
|
+
return (rep.status == tecrpc.Reply.Success)
|
|
2158
2167
|
def DataValueUnload(self,zone,var):
|
|
2159
2168
|
args=((ValueType.Scalar,c_int32,zone),
|
|
2160
2169
|
(ValueType.Scalar,c_int32,var),)
|
|
@@ -5294,6 +5303,10 @@ class TecUtilRPC(object):
|
|
|
5294
5303
|
args=((ValueType.Text,None,percent_done_text),)
|
|
5295
5304
|
rep=self.sndrcv("StatusSetPercentDoneText",*args)
|
|
5296
5305
|
self.chk(rep)
|
|
5306
|
+
def StatusSetTextShownOnIdle(self,status_message):
|
|
5307
|
+
args=((ValueType.Text,None,status_message),)
|
|
5308
|
+
rep=self.sndrcv("StatusSetTextShownOnIdle",*args)
|
|
5309
|
+
self.chk(rep)
|
|
5297
5310
|
def StatusStartPercentDone(self,percent_done_text,show_stop_button,show_progress_bar):
|
|
5298
5311
|
args=((ValueType.Text,None,percent_done_text),
|
|
5299
5312
|
(ValueType.Scalar,c_bool,show_stop_button),
|
tecplot/version.py
CHANGED
|
@@ -33,8 +33,8 @@ from .tecutil import _tecutil_connector
|
|
|
33
33
|
|
|
34
34
|
Version = collections.namedtuple('V', ['major', 'minor', 'patch', 'build'])
|
|
35
35
|
|
|
36
|
-
version = '1.7.
|
|
37
|
-
build = '
|
|
36
|
+
version = '1.7.5'
|
|
37
|
+
build = '208029f'
|
|
38
38
|
version_info = Version(*[int(x) for x in version.split('.')], build=build or 0)
|
|
39
39
|
|
|
40
40
|
sdk_version_info = _tecutil_connector.sdk_version_info
|
|
File without changes
|
|
File without changes
|