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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pytecplot
3
- Version: 1.7.3
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.3.dist-info/licenses/LICENSE.html,sha256=I240fAHgxqlSQn_eSmb9ktcS4hgugObDnHYQnlEPzt8,28492
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=DJ641ugRqAQNd8uQITFbhbyEK3JwR9QhfG_CteUn5s4,8686
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=dJQPI9B2wTzxrQjUGKCiAvoBwhA3Mz4v4bH5Hz31OSQ,1544
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=apkztrNGBSS5cfyYSIYkrwU1eeRiO0GP4sHvryPJfVA,1937
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=psNqhCXa6dfm05Rs7c8YvK6QwHOCDxQZjSphCkvOeAU,82337
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=Z7UsMWn0f1loXzxSOMXj4F2H7O9CxlLtZzXnPNvgotY,109490
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=oFBOzLPYnA8hUCaeiTdpPXdFlLZNLoQCb-EHcPE5iDA,42593
25
+ tecplot/data/operate.py,sha256=pRmFVFgUbxp07mtG_mLo8LKeQwuYYg6IUl8tWkg0PPU,42659
26
26
  tecplot/data/query.py,sha256=Ocr9h1I2bFuJFLVOFEqiCUnuxTzD4wnToNzYk996GhY,14807
27
- tecplot/data/save.py,sha256=_535HsEUopTgWl-9NzDkYOQH2FDfTUO2k4EypOnsfrU,16609
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=B7KGjc8JdpKeojGZyH6oBI4ZQQmpbaL0IJtlh7HkFRY,51813
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=XeUIJRNVhQ6yQHPkpztnkAJQu-GytGG90FMXjZepKgk,19402
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=v6vBV_dCtZ6E-J3K4l27NCLF-eAlQddCqY3dgJ16ztE,54618
87
- tecplot/tecutil/tecutil.py,sha256=RkVV3MLDd38sXHO9wqNkk-LPIW_qG8vZFST8455rKnM,696363
88
- tecplot/tecutil/tecutil_client.py,sha256=j3qzB9e4h07w8cO3d1Z4vDH5ZqxXcmld9reL73Wj9vg,23749
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=ypGDA5ktXNClT9trdK1ElGnhrsO-oTABncT2CdQkRDU,287428
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.3.dist-info/METADATA,sha256=M7oJFD5vf0qcKM9K2xNkMjtt3I8ibe3cHqgbFnd6Cqw,23052
97
- pytecplot-1.7.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
98
- pytecplot-1.7.3.dist-info/top_level.txt,sha256=gU7HYnAb3AVBIKRUOASdYO0QRI6hg1raLt8aN5E4o7s,8
99
- pytecplot-1.7.3.dist-info/RECORD,,
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,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (84.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
tecplot/constant.py CHANGED
@@ -354,7 +354,9 @@ class FEALoader:
354
354
  v461 = '461'
355
355
  v66051 = '66051'
356
356
  v131842 = '131842'
357
- Current = v131842
357
+ v134144 = '134144'
358
+ v196864 = '196864'
359
+ Current = v196864
358
360
 
359
361
 
360
362
  class FluentCFFLoader:
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, load_vtk)
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
- import itertools as it
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, TextWrapper
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
- pattern_type = getattr(re, 'Pattern', getattr(re, '_pattern_type', None))
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
- pattern_type = getattr(re, 'Pattern', getattr(re, '_pattern_type', None))
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
- if __debug__:
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
- if __debug__:
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
- pattern_type = getattr(re, 'Pattern', getattr(re, '_pattern_type', None))
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
- pattern_type = getattr(re, 'Pattern', getattr(re, '_pattern_type', None))
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
- if __debug__:
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
- if __debug__:
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 = (v if isinstance(v, Variable) else self.variable(v)
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, macro, tecutil, version
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
- arglist[sv.IGNOREDIVIDEBYZERO] = ignore_divide_by_zero
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, use_point_format,
17
- associate_with_layout, zones, variables, precision, version):
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
- use_point_format=None):
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
- filename=filename, include_text=include_text,
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
- precision=precision,
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
- variables=None, version=None, include_text=None,
174
- include_geom=None, include_data=None,
175
- include_data_share_linkage=None,
176
- include_autogen_face_neighbors=None,
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
- filename=filename, include_text=include_text,
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
- precision=None,
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
@@ -1,5 +1,5 @@
1
1
  #
2
- # This file was auto-generated on 2025-12-15 by tecgen.
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 2025-12-15 by tecgen.
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'
@@ -1,5 +1,5 @@
1
1
  #
2
- # This file was auto-generated on 2025-12-15 by tecgen.
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
- # void TecUtilDataValueShare(EntIndex_t SourceZone, EntIndex_t DestZone, EntIndex_t Var)
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
- # void TecUtilDataValueShare(EntIndex_t SourceZone, EntIndex_t DestZone, EntIndex_t Var)
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
 
@@ -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.3'
37
- build = '41d6c97'
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