pytecplot 1.7.2__py3-none-any.whl → 1.7.3__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.2
3
+ Version: 1.7.3
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,18 @@ 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.3
111
+ ^^^^^^^^^^^^^^^
112
+
113
+ * Updated enums to reflect new changes in Tecplot 360 2025 R2:
114
+ * `tecplot.constant.LightingEffect.Gouraud` has been deprecated. Scripts should now
115
+ use `LightingEffect.Smooth` or `LightingEffect.SmoothWithCreases`.
116
+ * `tecplot.constant.SphereScatterRenderQuality.Fast` is now default and should be
117
+ favored over all other options.
118
+ * Deprecated `LightSource.force_gouraud_for_contour_flood`. Use the `LightingEffect`
119
+ enum to set the lighting effects directly on the individual fieldmaps, slices,
120
+ isosurfaces, or streamtraces as desired.
121
+
110
122
  PyTecplot 1.7.2
111
123
  ^^^^^^^^^^^^^^^
112
124
 
@@ -1,9 +1,9 @@
1
- pytecplot-1.7.2.dist-info/licenses/LICENSE.html,sha256=I240fAHgxqlSQn_eSmb9ktcS4hgugObDnHYQnlEPzt8,28492
1
+ pytecplot-1.7.3.dist-info/licenses/LICENSE.html,sha256=I240fAHgxqlSQn_eSmb9ktcS4hgugObDnHYQnlEPzt8,28492
2
2
  tecplot/__init__.py,sha256=iHAPbGDgIh7HtLWaWcDYfVS4TOsNrRSHyQa-H_6Li3g,3550
3
- tecplot/constant.py,sha256=_Ws6ldiZAkkOJjGWM9PEAMR0mHZ49qcYjJVpK51E99o,8531
3
+ tecplot/constant.py,sha256=DJ641ugRqAQNd8uQITFbhbyEK3JwR9QhfG_CteUn5s4,8686
4
4
  tecplot/exception.py,sha256=YB4zeL0-07yCy4pyUqeFdNQ98nK11h2n3ZHHe58Od6s,6493
5
5
  tecplot/macro.py,sha256=uE29ftjdr2HdlFVa9SS-1uBU8Di4W3PwquhI75LnvhM,13307
6
- tecplot/version.py,sha256=COK9w92DuNTvr-nKW3kwRSetDsIWyvA9iJisXXYBVuQ,1544
6
+ tecplot/version.py,sha256=dJQPI9B2wTzxrQjUGKCiAvoBwhA3Mz4v4bH5Hz31OSQ,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
@@ -50,19 +50,19 @@ tecplot/plot/axes.py,sha256=ix_rANTSZdMXWfrBDeR5Zq4AWkJ1hXkog1ply6oSbPI,26962
50
50
  tecplot/plot/axis.py,sha256=3cgOPbgQdCAWueqfjOpZUbPdhYLsw3bqw4Apm7vEaRQ,43264
51
51
  tecplot/plot/blanking.py,sha256=j7iwZsiN78DiFzExR83iLk8m6LPFWTQx2ev7s_On3d8,20237
52
52
  tecplot/plot/contour.py,sha256=tw-7YW27uwr-V17Ip5zvQtZXsbbG4ca-oILB2bCPu1k,44240
53
- tecplot/plot/effects.py,sha256=Q9KytPL9dzanSG2Wbx09lNjf1OeKep5Aj3gyOv9s0JE,4983
54
- tecplot/plot/fieldmap.py,sha256=Ysih0sWQmeTTpREV2-4Wh5-XDPkTetOD_UG7XPle0Ws,75630
53
+ tecplot/plot/effects.py,sha256=wsj0EhnXEQePq7SRxLogcUClDWNVFaFyUSf20yuKTF4,5691
54
+ tecplot/plot/fieldmap.py,sha256=o5XjjUDcUK55dieSSWYv7NzzMN0kXArFV2UuP86AFzE,76312
55
55
  tecplot/plot/grid.py,sha256=p8h2Tmu93aVunOww6VXSuK8onjf1HkYZRQEyApTJr_c,22463
56
56
  tecplot/plot/hoe_settings.py,sha256=r_ZFwhWa0pes3bQwqcX6kpMWp7Q7_tLalCIHdIAUw8Y,1931
57
- tecplot/plot/isosurface.py,sha256=WQec-6hIur5Eyi9Z7m_Y4nuFmGGLUF2RQZDzZRXT1o4,40303
57
+ tecplot/plot/isosurface.py,sha256=1QUCakVNMD2diThLnRJW7xsFfsy-RMLYmncGdv-P4Co,41154
58
58
  tecplot/plot/labels.py,sha256=ac8Dl37lGbkY78cJJo_aCuN9zslYZthSZqriTHGkPOs,10578
59
59
  tecplot/plot/linemap.py,sha256=NHb83QTY1OzI2PO5D_HSlaAxuTrLJxH4fEpE-YQKPgY,63631
60
60
  tecplot/plot/linking.py,sha256=HyetVeDsnUsGJtmWLURg6ylyCom0zR-0UubrVynB_fs,16775
61
61
  tecplot/plot/plot.py,sha256=WB2S4cHc0JB2wQrZSoEISpjvuXuQRZ_QXLuFaBNJuhk,60658
62
62
  tecplot/plot/rgb_coloring.py,sha256=OfcIvhQ9Tm5TQylOUttX7QcNu3CHtETBpIz7gqa9GwY,9417
63
- tecplot/plot/scatter.py,sha256=SFjxZThZFbJwx0q-McjvSekQ8EdepMtLVurCFo_dKZk,12609
64
- tecplot/plot/slice.py,sha256=hebSpbQYdgjmIJkI-1mUzI4Ud6eahKPiaC3ooWke9SE,52285
65
- tecplot/plot/streamtrace.py,sha256=kL_3SFhYnmEIdLX2OmcP4tcxysdG41e2LZ4URZEshIA,64686
63
+ tecplot/plot/scatter.py,sha256=_Z7Kte2XSruGcDxEDETD3-4-ynYPvc85_W5jNSzG9lE,12610
64
+ tecplot/plot/slice.py,sha256=C2yUnta-ls0oN_7vM_qaXbZczFS4jWNsSypZX6CV3wk,53179
65
+ tecplot/plot/streamtrace.py,sha256=6x6yJgMgmtUAGUjqqaWWyMvIPjbRdvKjkqE6LKbDf_o,65581
66
66
  tecplot/plot/symbol.py,sha256=6p28udpGG-rOKCAb9bgsk6kWHqXYPfAQ7W-jBrtmPaA,18422
67
67
  tecplot/plot/ticks.py,sha256=Wx3myMFWJYqeE8uefTv3sZYBBAAcaK2Pg6v-0pBk56M,19252
68
68
  tecplot/plot/title.py,sha256=Eg4T5i_Z_thuISW8CJi0gh_tGwfQ84zD6J0VZcaUnP8,11162
@@ -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=EDZ2XQu0L_0wTVjiI6OxMVdX8SVh_nk_jklq58CmzeQ,19174
80
+ tecplot/tecutil/constant.py,sha256=XeUIJRNVhQ6yQHPkpztnkAJQu-GytGG90FMXjZepKgk,19402
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=8EUln_hn7c2FZ3QMiK9zWMSxAQdhbKmKlTLvU-9lZ-4,54100
87
- tecplot/tecutil/tecutil.py,sha256=Zmz8LvQ3l25QAbIZgMjZQQHgnA-r6lgYu5n-lYwNMeo,691565
86
+ tecplot/tecutil/sv.py,sha256=v6vBV_dCtZ6E-J3K4l27NCLF-eAlQddCqY3dgJ16ztE,54618
87
+ tecplot/tecutil/tecutil.py,sha256=RkVV3MLDd38sXHO9wqNkk-LPIW_qG8vZFST8455rKnM,696363
88
88
  tecplot/tecutil/tecutil_client.py,sha256=j3qzB9e4h07w8cO3d1Z4vDH5ZqxXcmld9reL73Wj9vg,23749
89
89
  tecplot/tecutil/tecutil_connector.py,sha256=HW05xfxIbSrnnpXic3DNUkXmMmo0e9Z-HhT3EoC_Mzg,37059
90
- tecplot/tecutil/tecutil_rpc.py,sha256=sHX6JjNXQcVjSNasH9auydbfyZoJMF56lJF0j6TxQMM,285726
91
- tecplot/tecutil/util.py,sha256=C8nNB3gFK6XY6l9Ue18zcPZXFrX5JJ9vO-kcA9R53U8,12038
90
+ tecplot/tecutil/tecutil_rpc.py,sha256=ypGDA5ktXNClT9trdK1ElGnhrsO-oTABncT2CdQkRDU,287428
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.2.dist-info/METADATA,sha256=hslYbIzWTy6Hp4Qdj06IgPBR7nwMEH_0xjfvV2aptuo,22461
97
- pytecplot-1.7.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
98
- pytecplot-1.7.2.dist-info/top_level.txt,sha256=gU7HYnAb3AVBIKRUOASdYO0QRI6hg1raLt8aN5E4o7s,8
99
- pytecplot-1.7.2.dist-info/RECORD,,
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,,
tecplot/constant.py CHANGED
@@ -193,6 +193,16 @@ class AuxDataObjectType(_Enum):
193
193
  Zone = 6
194
194
 
195
195
 
196
+ _LightingEffect = LightingEffect
197
+
198
+
199
+ class LightingEffect(_Enum):
200
+ Paneled = _LightingEffect.Paneled.value
201
+ SmoothWithCreases = _LightingEffect.SmoothWithCreases.value
202
+ Smooth = _LightingEffect.Smooth.value
203
+ Gouraud = SmoothWithCreases
204
+
205
+
196
206
  class SymbolType(_Enum):
197
207
  Text = 0
198
208
  Geometry = 1
@@ -231,7 +241,6 @@ assert len(StepMode) == len(SkipMode), 'tecplot/constant.py requires update'
231
241
 
232
242
  _FunctionDependency = FunctionDependency
233
243
 
234
-
235
244
  class FunctionDependency(_Enum):
236
245
  XIndependent = _FunctionDependency.XIndependent.value
237
246
  YIndependent = _FunctionDependency.YIndependent.value
@@ -293,13 +302,6 @@ class SliceSurface(_Enum):
293
302
  Arbitrary = 7
294
303
 
295
304
 
296
- class SphereScatterRenderQuality(_Enum):
297
- Low = 0
298
- Medium = 1
299
- High = 2
300
-
301
-
302
-
303
305
  class TecUtilServerProcessingMode(_Enum):
304
306
  Unspecified = 0
305
307
  Single = 1
tecplot/plot/effects.py CHANGED
@@ -1,7 +1,7 @@
1
1
  from builtins import super
2
2
 
3
3
  from ..tecutil import sv
4
- from .. import session
4
+ from .. import session, tecutil, version
5
5
 
6
6
 
7
7
  class LightSource(session.Style):
@@ -135,17 +135,25 @@ class LightSource(session.Style):
135
135
 
136
136
  @property
137
137
  def force_gouraud_for_contour_flood(self):
138
- """`bool`: Force gouraud effects for shaded continuous flooding.
139
-
140
- Example usage::
141
-
142
- >>> plot.light_source.force_gouraud_for_contour_flood = True
143
- """
144
- return self._get_style(bool, sv.FORCEGOURAUDFOR3DCONTFLOOD)
138
+ if version.sdk_version_info < (2025, 2):
139
+ return self._get_style(bool, sv.FORCEGOURAUDFOR3DCONTFLOOD)
140
+ else:
141
+ tecutil.api_changed('''\
142
+ LightSource.force_gouraud_for_contour_flood property has been removed.
143
+ Set the lighting_effect property to LightingEffect.SmoothWithCreases
144
+ on fieldmap.effects, isosurface.effects, slice.effects, or
145
+ streamtrace.effects as desired.''', '1.7.3', '2025 R2', warning=True)
145
146
 
146
147
  @force_gouraud_for_contour_flood.setter
147
148
  def force_gouraud_for_contour_flood(self, value):
148
- self._set_style(bool(value), sv.FORCEGOURAUDFOR3DCONTFLOOD)
149
+ if version.sdk_version_info < (2025, 2):
150
+ self._set_style(bool(value), sv.FORCEGOURAUDFOR3DCONTFLOOD)
151
+ else:
152
+ tecutil.api_changed('''\
153
+ LightSource.force_gouraud_for_contour_flood property has been removed.
154
+ Set the lighting_effect property to LightingEffect.SmoothWithCreases
155
+ on fieldmap.effects, isosurface.effects, slice.effects, or
156
+ streamtrace.effects as desired.''', '1.7.3', '2025 R2', warning=True)
149
157
 
150
158
  @property
151
159
  def force_paneled_for_cell_flood(self):
tecplot/plot/fieldmap.py CHANGED
@@ -1681,15 +1681,24 @@ class FieldmapEffects3D(FieldmapEffects):
1681
1681
  This shade is based on the orientation of the cell relative to your
1682
1682
  3D light source.
1683
1683
 
1684
- `Gouraud <LightingEffect.Gouraud>`
1685
- This plot type offers smoother, more continuous shading than
1686
- `Paneled <LightingEffect.Paneled>` shading, but it results in
1687
- slower plotting and larger vector images. `Gouraud
1688
- <LightingEffect.Gouraud>` shading is not continuous across zone
1689
- boundaries unless face neighbors are specified in the data and is
1690
- not available for finite element volume zones when blanking is
1691
- active in which case, the zone's lighting effect reverts to
1692
- `Paneled <LightingEffect.Paneled>` shading in this case.
1684
+ `Smooth <LightingEffect.Smooth>`
1685
+ Unlike `Paneled <LightingEffect.Paneled>` shading that colors the cell
1686
+ surface considering a constant angle to the light relative to the cell's
1687
+ surface normal, `Smooth <LightingEffect.Smooth>` computes the average normal
1688
+ around each cell node and interpolates the lighting influence smoothly
1689
+ across the cell face. `SmoothWithCreases <LightingEffect.SmoothWithCreases>`
1690
+ shading is not continuous across zone boundaries unless face neighbors are
1691
+ specified in the data.
1692
+
1693
+ `SmoothWithCreases <LightingEffect.SmoothWithCreases>`
1694
+ This option is similar to `Smooth <LightingEffect.Smooth>` but considers the
1695
+ crease angle between neighboring, connected cell faces. When the crease
1696
+ angle exceeds the specified amount the edge is considered creased and the
1697
+ lighting interpolation across the cell uses the cell's surface normal for
1698
+ the shared nodes along that edge instead of the average surface normal at
1699
+ those nodes. If the surface has many edges that exceed the crease angle,
1700
+ such as a very chaotic iso-surface, a significantly larger amount of data is
1701
+ required to render the surface.
1693
1702
 
1694
1703
  If ``IJK``-ordered data with `FieldmapSurfaces.surfaces_to_plot` is set
1695
1704
  to `SurfacesToPlot.ExposedCellFaces`, faces exposed by blanking will
@@ -414,20 +414,31 @@ class IsosurfaceEffects(IsosurfaceGroupStyle):
414
414
  Isosurface lighting effects must be enabled by setting
415
415
  `IsosurfaceShade.use_lighting_effect` to `True` when setting this value.
416
416
 
417
- There are two types of lighting effects: Paneled and Gouraud:
417
+ There are three types of lighting effects: Paneled, SmoothWithCreases and
418
+ Smooth:
418
419
 
419
420
  * `Paneled`: Within each cell, the color assigned to each area by
420
421
  shading or contour flooding is tinted by a shade constant
421
422
  across the cell. This shade is based on the orientation
422
423
  of the cell relative to your 3D light source.
423
- * `Gouraud`: This offers smoother, more continuous shading than
424
- Paneled shading, but it also results in slower plotting
425
- and larger print files. `Gouraud` shading is not continuous
426
- across zone boundaries unless face neighbors are specified
427
- in the data. `Gouraud` shading is not available for finite
428
- element volume `Zone <data_access>` when blanking is active.
429
- The zone's lighting effect reverts to `Paneled`
430
- shading in this case.
424
+ * `Smooth <LightingEffect.Smooth>`
425
+ Unlike `Paneled <LightingEffect.Paneled>` shading that colors the cell
426
+ surface considering a constant angle to the light relative to the cell's
427
+ surface normal, `Smooth <LightingEffect.Smooth>` computes the average
428
+ normal around each cell node and interpolates the lighting influence
429
+ smoothly across the cell face. `SmoothWithCreases
430
+ <LightingEffect.SmoothWithCreases>` shading is not continuous across
431
+ zone boundaries unless face neighbors are specified in the data.
432
+ * `SmoothWithCreases <LightingEffect.SmoothWithCreases>`
433
+ This option is similar to `Smooth <LightingEffect.Smooth>` but considers
434
+ the crease angle between neighboring, connected cell faces. When the
435
+ crease angle exceeds the specified amount the edge is considered creased
436
+ and the lighting interpolation across the cell uses the cell's surface
437
+ normal for the shared nodes along that edge instead of the average
438
+ surface normal at those nodes. If the surface has many edges that exceed
439
+ the crease angle, such as a very chaotic iso-surface, a significantly
440
+ larger amount of data is required to render the surface.
441
+
431
442
 
432
443
  Example usage::
433
444
 
@@ -447,7 +458,6 @@ class IsosurfaceEffects(IsosurfaceGroupStyle):
447
458
  Iso-surface surface translucency must be enabled by setting
448
459
  `IsosurfaceEffects.use_translucency` = `True` when setting this value.
449
460
 
450
-
451
461
  Valid translucency values range from one (opaque) to 99 (translucent).
452
462
 
453
463
  Example usage::
tecplot/plot/scatter.py CHANGED
@@ -346,7 +346,7 @@ class Scatter(session.Style):
346
346
  >>> from tecplot.constant import *
347
347
  >>> plot.fieldmap(0).scatter.symbol().shape = GeomShape.Sphere
348
348
  >>> scatter = plot.scatter
349
- >>> scatter.sphere_render_quality = SphereScatterRenderQuality.Low
349
+ >>> scatter.sphere_render_quality = SphereScatterRenderQuality.Fast
350
350
  """
351
351
  return self._get_style(SphereScatterRenderQuality,
352
352
  sv.SPHERESCATTERRENDERQUALITY)
tecplot/plot/slice.py CHANGED
@@ -226,20 +226,30 @@ class SliceEffects(session.SubStyle):
226
226
  `SliceContour.use_lighting_effect` or
227
227
  `SliceShade.use_lighting_effect` to `True` when setting this value.
228
228
 
229
- There are two types of lighting effects: Paneled and Gouraud:
229
+ There are three types of lighting effects: Paneled, SmoothWithCreases and
230
+ Smooth:
230
231
 
231
232
  * `Paneled`: Within each cell, the color assigned to each area by
232
233
  shading or contour flooding is tinted by a shade constant
233
234
  across the cell. This shade is based on the orientation
234
235
  of the cell relative to your 3D light source.
235
- * `Gouraud`: This offers smoother, more continuous shading than
236
- Paneled shading, but it also results in slower plotting and
237
- larger print files. `Gouraud` shading is not continuous across
238
- zone boundaries unless face neighbors are specified in the
239
- data. `Gouraud` shading is not available for finite element
240
- volume `Zones <data_access>` when blanking is active. The
241
- zone's lighting effect reverts to `Paneled` shading in this
242
- case.
236
+ * `Smooth <LightingEffect.Smooth>`
237
+ Unlike `Paneled <LightingEffect.Paneled>` shading that colors the cell
238
+ surface considering a constant angle to the light relative to the cell's
239
+ surface normal, `Smooth <LightingEffect.Smooth>` computes the average
240
+ normal around each cell node and interpolates the lighting influence
241
+ smoothly across the cell face. `SmoothWithCreases
242
+ <LightingEffect.SmoothWithCreases>` shading is not continuous across
243
+ zone boundaries unless face neighbors are specified in the data.
244
+ * `SmoothWithCreases <LightingEffect.SmoothWithCreases>`
245
+ This option is similar to `Smooth <LightingEffect.Smooth>` but considers
246
+ the crease angle between neighboring, connected cell faces. When the
247
+ crease angle exceeds the specified amount the edge is considered creased
248
+ and the lighting interpolation across the cell uses the cell's surface
249
+ normal for the shared nodes along that edge instead of the average
250
+ surface normal at those nodes. If the surface has many edges that exceed
251
+ the crease angle, such as a very chaotic iso-surface, a significantly
252
+ larger amount of data is required to render the surface.
243
253
 
244
254
  Example usage::
245
255
 
@@ -754,8 +764,9 @@ class SliceContour(session.SubStyle):
754
764
  the same value for `SliceShade.use_lighting_effect`,
755
765
  and vice-versa.
756
766
 
757
- The lighting effect is set with `SliceEffects.lighting_effect`, and may
758
- be one of `LightingEffect.Gouraud` or `LightingEffect.Paneled`.
767
+ The lighting effect is set with `SliceEffects.lighting_effect`, and may be one
768
+ of `LightingEffect.SmoothWithCreases`, `LightingEffect.Smooth`, or
769
+ `LightingEffect.Paneled`.
759
770
 
760
771
  Example usage::
761
772
 
@@ -571,8 +571,9 @@ class StreamtraceRodRibbonContour(StreamtraceStyle):
571
571
  the same value for `StreamtraceRodRibbonShade.use_lighting_effect`,
572
572
  and vice-versa.
573
573
 
574
- The lighting effect is set with `StreamtraceRodRibbonEffects.lighting_effect`, and may
575
- be one of `LightingEffect.Gouraud` or `LightingEffect.Paneled`.
574
+ The lighting effect is set with `StreamtraceRodRibbonEffects.lighting_effect`,
575
+ and may be one of `LightingEffect.SmoothWithCreases`, `LightingEffect.Smooth`,
576
+ or `LightingEffect.Paneled`.
576
577
 
577
578
  Example usage::
578
579
 
@@ -809,20 +810,30 @@ class StreamtraceRodRibbonEffects(StreamtraceStyle):
809
810
  Note that setting `StreamtraceRodRibbonShade.use_lighting_effect` will also set
810
811
  this value for `ribbon contours <StreamtraceRodRibbonContour>`.
811
812
 
812
- There are two types of lighting effects: Paneled and Gouraud:
813
+ There are three types of lighting effects: Paneled, SmoothWithCreases and
814
+ Smooth:
813
815
 
814
816
  * `Paneled`: Within each cell, the color assigned to each area by
815
817
  shading or contour flooding is tinted by a shade constant
816
818
  across the cell. This shade is based on the orientation
817
819
  of the cell relative to your 3D light source.
818
- * `Gouraud`: This offers smoother, more continuous shading than
819
- Paneled shading, but it also results in slower plotting
820
- and larger print files. `Gouraud` shading is not continuous
821
- across zone boundaries unless face neighbors are specified
822
- in the data. `Gouraud` shading is not available for finite
823
- element volume `Zone <data_access>` when blanking is active.
824
- The zone's lighting effect reverts to `Paneled`
825
- shading in this case.
820
+ * `Smooth <LightingEffect.Smooth>`
821
+ Unlike `Paneled <LightingEffect.Paneled>` shading that colors the cell
822
+ surface considering a constant angle to the light relative to the cell's
823
+ surface normal, `Smooth <LightingEffect.Smooth>` computes the average
824
+ normal around each cell node and interpolates the lighting influence
825
+ smoothly across the cell face. `SmoothWithCreases
826
+ <LightingEffect.SmoothWithCreases>` shading is not continuous across
827
+ zone boundaries unless face neighbors are specified in the data.
828
+ * `SmoothWithCreases <LightingEffect.SmoothWithCreases>`
829
+ This option is similar to `Smooth <LightingEffect.Smooth>` but considers
830
+ the crease angle between neighboring, connected cell faces. When the
831
+ crease angle exceeds the specified amount the edge is considered creased
832
+ and the lighting interpolation across the cell uses the cell's surface
833
+ normal for the shared nodes along that edge instead of the average
834
+ surface normal at those nodes. If the surface has many edges that exceed
835
+ the crease angle, such as a very chaotic iso-surface, a significantly
836
+ larger amount of data is required to render the surface.
826
837
 
827
838
  Example usage::
828
839
 
@@ -1,5 +1,5 @@
1
1
  #
2
- # This file was auto-generated on 2024-05-28 by tecgen.
2
+ # This file was auto-generated on 2025-12-15 by tecgen.
3
3
  # IMPORTANT: DO NOT edit this file!
4
4
  #
5
5
  from enum import Enum as _Enum
@@ -407,7 +407,6 @@ class ExportFormat(_Enum):
407
407
  Custom = 15
408
408
  JPEG = 16
409
409
  Flash = 17
410
- X3D = 18
411
410
  TecplotViewer = 19
412
411
  FLV = 20
413
412
  MPEG4 = 21
@@ -441,6 +440,10 @@ class FECellShape(_Enum):
441
440
  Pyramid = 5
442
441
  Prism = 6
443
442
 
443
+ class FEDerivativeMethod(_Enum):
444
+ GreenGauss = 0
445
+ MovingLeastSquares = 1
446
+
444
447
  class FaceNeighborMode(_Enum):
445
448
  LocalOneToOne = 0
446
449
  LocalOneToMany = 1
@@ -558,6 +561,7 @@ class GeomShape(_Enum):
558
561
  Point = 10
559
562
  PieChart = 11
560
563
  LineArt = 12
564
+ Plus = 13
561
565
 
562
566
  class GetValueReturnCode(_Enum):
563
567
  Ok = 0
@@ -642,7 +646,8 @@ class LegendShow(_Enum):
642
646
 
643
647
  class LightingEffect(_Enum):
644
648
  Paneled = 0
645
- Gouraud = 1
649
+ SmoothWithCreases = 1
650
+ Smooth = 3
646
651
 
647
652
  class LineCap(_Enum):
648
653
  Flat = 0
@@ -789,7 +794,6 @@ class PrinterDriver(_Enum):
789
794
  EPS = 4
790
795
  WINDOWS = 5
791
796
  WMF = 6
792
- X3D = 7
793
797
 
794
798
  class ProbeNearest(_Enum):
795
799
  Position = 0
@@ -834,6 +838,10 @@ class RelOp(_Enum):
834
838
  EqualTo = 4
835
839
  NotEqualTo = 5
836
840
 
841
+ class RenderAPI(_Enum):
842
+ OpenGL = 0
843
+ Vulkan = 1
844
+
837
845
  class Resulting1DZoneType(_Enum):
838
846
  IOrderedIfPossible = 0
839
847
  FELineSegment = 1
@@ -895,6 +903,12 @@ class SliceSource(_Enum):
895
903
  SurfacesOfVolumeZones = 2
896
904
  LinearZones = 3
897
905
 
906
+ class SphereScatterRenderQuality(_Enum):
907
+ Low = 0
908
+ Medium = 1
909
+ High = 2
910
+ Fast = 3
911
+
898
912
  class StateChange(_Enum):
899
913
  VarsAltered = 0
900
914
  VarsAdded = 1
tecplot/tecutil/sv.py CHANGED
@@ -1,5 +1,5 @@
1
1
  #
2
- # This file was auto-generated on 2024-05-28 by tecgen.
2
+ # This file was auto-generated on 2025-12-15 by tecgen.
3
3
  # IMPORTANT: DO NOT edit this file!
4
4
  #
5
5
 
@@ -351,6 +351,7 @@ DEFINITIONCONTOURGROUP = 'DEFINITIONCONTOURGROUP'
351
351
  DEFNUMLEVELS = 'DEFNUMLEVELS'
352
352
  DELETEVARIABLESDIALOG = 'DELETEVARIABLESDIALOG'
353
353
  DELETEZONESDIALOG = 'DELETEZONESDIALOG'
354
+ DELIVERNORMALSFORPANELSHADING = 'DELIVERNORMALSFORPANELSHADING'
354
355
  DELTATIME = 'DELTATIME'
355
356
  DEPENDENTVARS = 'DEPENDENTVARS'
356
357
  DEPTH = 'DEPTH'
@@ -410,6 +411,7 @@ ENABLEDELAYS = 'ENABLEDELAYS'
410
411
  ENABLEERRORS = 'ENABLEERRORS'
411
412
  ENABLEINTERRUPTS = 'ENABLEINTERRUPTS'
412
413
  ENABLEPAUSES = 'ENABLEPAUSES'
414
+ ENABLERENDERSTATSOVERLAY = 'ENABLERENDERSTATSOVERLAY'
413
415
  ENABLEWARNINGS = 'ENABLEWARNINGS'
414
416
  END = 'END'
415
417
  ENDLEVEL = 'ENDLEVEL'
@@ -463,6 +465,7 @@ FACENODECOUNTS = 'FACENODECOUNTS'
463
465
  FACENODES = 'FACENODES'
464
466
  FACERIGHTELEMS = 'FACERIGHTELEMS'
465
467
  FASTLINEPATTERNSONSCREEN = 'FASTLINEPATTERNSONSCREEN'
468
+ FEDERIVATIVEMETHOD = 'FEDERIVATIVEMETHOD'
466
469
  FFMPEGQSCALE = 'FFMPEGQSCALE'
467
470
  FIELD = 'FIELD'
468
471
  FIELDLAYERCONTROL = 'FIELDLAYERCONTROL'
@@ -514,6 +517,7 @@ FORMATTING = 'FORMATTING'
514
517
  FOURIERTRANSFORMDIALOG = 'FOURIERTRANSFORMDIALOG'
515
518
  FOURIERTRANSFORMRESULTINGVARS = 'FOURIERTRANSFORMRESULTINGVARS'
516
519
  FOURIERTRANSFORMRESULTINGZONES = 'FOURIERTRANSFORMRESULTINGZONES'
520
+ FRAGMENTBUFFERSIZE = 'FRAGMENTBUFFERSIZE'
517
521
  FRAME = 'FRAME'
518
522
  FRAMEAXIS = 'FRAMEAXIS'
519
523
  FRAMECOLLECTION = 'FRAMECOLLECTION'
@@ -558,6 +562,7 @@ GLOBALTHREEDVECTOR = 'GLOBALTHREEDVECTOR'
558
562
  GLOBALTIME = 'GLOBALTIME'
559
563
  GLOBALTWODVECTOR = 'GLOBALTWODVECTOR'
560
564
  GLOBALXY = 'GLOBALXY'
565
+ GPUNUMBER = 'GPUNUMBER'
561
566
  GRANCHOR = 'GRANCHOR'
562
567
  GRAYSCALE = 'GRAYSCALE'
563
568
  GRAYSCALEDEPTH = 'GRAYSCALEDEPTH'
@@ -850,6 +855,7 @@ MAGNITUDELABEL = 'MAGNITUDELABEL'
850
855
  MAINTAINASPECTRATIO = 'MAINTAINASPECTRATIO'
851
856
  MAJGRIDLINEPEN = 'MAJGRIDLINEPEN'
852
857
  MAKEROUGHDRAFT = 'MAKEROUGHDRAFT'
858
+ MANUALLYREPAIRDAMAGEDDRAWAREA = 'MANUALLYREPAIRDAMAGEDDRAWAREA'
853
859
  MAP = 'MAP'
854
860
  MARCHINGCUBEALGORITHM = 'MARCHINGCUBEALGORITHM'
855
861
  MARGIN = 'MARGIN'
@@ -878,6 +884,7 @@ MAXPTSINALINE = 'MAXPTSINALINE'
878
884
  MAXRENDERTIMEBEFOREAPPROX = 'MAXRENDERTIMEBEFOREAPPROX'
879
885
  MAXROTATELINES = 'MAXROTATELINES'
880
886
  MAXSCREENSPEED = 'MAXSCREENSPEED'
887
+ MAXSORTEDFRAGMENTCOUNT = 'MAXSORTEDFRAGMENTCOUNT'
881
888
  MAXSTEPS = 'MAXSTEPS'
882
889
  MAXSTREAMLINES = 'MAXSTREAMLINES'
883
890
  MAXSTRIPLENGTH = 'MAXSTRIPLENGTH'
@@ -910,6 +917,7 @@ MINORLENGTH = 'MINORLENGTH'
910
917
  MINORLINETHICKNESS = 'MINORLINETHICKNESS'
911
918
  MINORTICKS = 'MINORTICKS'
912
919
  MINPIXELSFORDRAG = 'MINPIXELSFORDRAG'
920
+ MINSORTEDFRAGMENTCOUNT = 'MINSORTEDFRAGMENTCOUNT'
913
921
  MINVISIBILITYPERCENTAGE = 'MINVISIBILITYPERCENTAGE'
914
922
  MIRRORVAR = 'MIRRORVAR'
915
923
  MIRRORVARS = 'MIRRORVARS'
@@ -978,11 +986,14 @@ OBEYCLIPPLANES = 'OBEYCLIPPLANES'
978
986
  OBEYSOURCEZONEBLANKING = 'OBEYSOURCEZONEBLANKING'
979
987
  OBJECTALIGN = 'OBJECTALIGN'
980
988
  OBJECTSET = 'OBJECTSET'
989
+ OFFSCREENDEVICE = 'OFFSCREENDEVICE'
981
990
  OFFSET = 'OFFSET'
982
991
  OFFSET1 = 'OFFSET1'
983
992
  OFFSET2 = 'OFFSET2'
984
993
  OFFSETANGLE = 'OFFSETANGLE'
994
+ OITSETTINGS = 'OITSETTINGS'
985
995
  OKTOEXECUTESYSTEMCOMMAND = 'OKTOEXECUTESYSTEMCOMMAND'
996
+ ONSCREENDEVICE = 'ONSCREENDEVICE'
986
997
  OPENGLCONFIG = 'OPENGLCONFIG'
987
998
  OPENLAYOUTDIALOG = 'OPENLAYOUTDIALOG'
988
999
  OPPOSINGAXISVALUE = 'OPPOSINGAXISVALUE'
@@ -1572,6 +1583,7 @@ VISUALID = 'VISUALID'
1572
1583
  VOLUMECELLINTERPOLATIONMODE = 'VOLUMECELLINTERPOLATIONMODE'
1573
1584
  VOLUMEMODE = 'VOLUMEMODE'
1574
1585
  VOLUMEOBJECTSTOPLOT = 'VOLUMEOBJECTSTOPLOT'
1586
+ VULKANCONFIG = 'VULKANCONFIG'
1575
1587
  VVAR = 'VVAR'
1576
1588
  VVARLIST = 'VVARLIST'
1577
1589
  WAIT = 'WAIT'
@@ -1,5 +1,5 @@
1
1
  #
2
- # This file was auto-generated on 2024-05-28 by tecgen.
2
+ # This file was auto-generated on 2025-12-15 by tecgen.
3
3
  # IMPORTANT: DO NOT edit this file!
4
4
  #
5
5
  import sys
@@ -3065,6 +3065,41 @@ class TecUtil(object):
3065
3065
  self.handle.tecUtilLastErrorMessageType.restype = c_int
3066
3066
  except AttributeError:
3067
3067
  error_list.append('TecUtilLastErrorMessageType')
3068
+ # int32_t TecUtilLayoutDatasetCount(LayoutReadDataInfo_pa ReadDataInfo)
3069
+ try:
3070
+ self.handle.tecUtilLayoutDatasetCount.argtypes = [c_void_p]
3071
+ self.handle.tecUtilLayoutDatasetCount.restype = c_int32
3072
+ except AttributeError:
3073
+ error_list.append('TecUtilLayoutDatasetCount')
3074
+ # TP_GIVES LayoutReadDataInfo_pa TecUtilLayoutReadDataInfo(char const * FName)
3075
+ try:
3076
+ self.handle.tecUtilLayoutReadDataInfo.argtypes = [c_char_p]
3077
+ self.handle.tecUtilLayoutReadDataInfo.restype = c_void_p
3078
+ except AttributeError:
3079
+ error_list.append('TecUtilLayoutReadDataInfo')
3080
+ # void TecUtilLayoutReadDataInfoDealloc(TP_RECEIVES_GIVES LayoutReadDataInfo_pa * ReadDataInfo)
3081
+ try:
3082
+ self.handle.tecUtilLayoutReadDataInfoDealloc.argtypes = [POINTER(c_void_p)]
3083
+ except AttributeError:
3084
+ error_list.append('TecUtilLayoutReadDataInfoDealloc')
3085
+ # int32_t TecUtilLayoutReadDataInstructionCount(LayoutReadDataInfo_pa ReadDataInfo, int32_t DatasetNumber)
3086
+ try:
3087
+ self.handle.tecUtilLayoutReadDataInstructionCount.argtypes = [c_void_p, c_int32]
3088
+ self.handle.tecUtilLayoutReadDataInstructionCount.restype = c_int32
3089
+ except AttributeError:
3090
+ error_list.append('TecUtilLayoutReadDataInstructionCount')
3091
+ # TP_GIVES char * TecUtilLayoutReadDataInstructionLoader(LayoutReadDataInfo_pa ReadDataInfo, int32_t DatasetNumber, int32_t InstructionNumber)
3092
+ try:
3093
+ self.handle.tecUtilLayoutReadDataInstructionLoader.argtypes = [c_void_p, c_int32, c_int32]
3094
+ self.handle.tecUtilLayoutReadDataInstructionLoader.restype = POINTER(c_char)
3095
+ except AttributeError:
3096
+ error_list.append('TecUtilLayoutReadDataInstructionLoader')
3097
+ # TP_GIVES char * TecUtilLayoutReadDataInstructions(LayoutReadDataInfo_pa ReadDataInfo, int32_t DatasetNumber, int32_t InstructionNumber)
3098
+ try:
3099
+ self.handle.tecUtilLayoutReadDataInstructions.argtypes = [c_void_p, c_int32, c_int32]
3100
+ self.handle.tecUtilLayoutReadDataInstructions.restype = POINTER(c_char)
3101
+ except AttributeError:
3102
+ error_list.append('TecUtilLayoutReadDataInstructions')
3068
3103
  # LgIndex_t TecUtilLimitGetValue(char const * LimitString)
3069
3104
  try:
3070
3105
  self.handle.tecUtilLimitGetValue.argtypes = [c_char_p]
@@ -9273,6 +9308,48 @@ class TecUtil(object):
9273
9308
  result = self.handle.tecUtilLastErrorMessageType()
9274
9309
  return MessageBoxType(result)
9275
9310
 
9311
+ # int32_t TecUtilLayoutDatasetCount(LayoutReadDataInfo_pa ReadDataInfo)
9312
+ @tecutil_preamble
9313
+ def LayoutDatasetCount(self, read_data_info):
9314
+ result = self.handle.tecUtilLayoutDatasetCount(read_data_info)
9315
+ return result
9316
+
9317
+ # LayoutReadDataInfo_pa TecUtilLayoutReadDataInfo(char const * FName)
9318
+ @tecutil_preamble
9319
+ def LayoutReadDataInfo(self, f_name):
9320
+ f_name_proxy = f_name.encode('utf-8') if f_name is not None else f_name
9321
+ result = self.handle.tecUtilLayoutReadDataInfo(f_name_proxy)
9322
+ return result
9323
+
9324
+ # void TecUtilLayoutReadDataInfoDealloc(TP_RECEIVES_GIVES LayoutReadDataInfo_pa * ReadDataInfo)
9325
+ @tecutil_preamble
9326
+ def LayoutReadDataInfoDealloc(self, read_data_info):
9327
+ self.handle.tecUtilLayoutReadDataInfoDealloc(read_data_info)
9328
+
9329
+ # int32_t TecUtilLayoutReadDataInstructionCount(LayoutReadDataInfo_pa ReadDataInfo, int32_t DatasetNumber)
9330
+ @tecutil_preamble
9331
+ def LayoutReadDataInstructionCount(self, read_data_info, dataset_number):
9332
+ result = self.handle.tecUtilLayoutReadDataInstructionCount(read_data_info, dataset_number)
9333
+ return result
9334
+
9335
+ # char * TecUtilLayoutReadDataInstructionLoader(LayoutReadDataInfo_pa ReadDataInfo, int32_t DatasetNumber, int32_t InstructionNumber)
9336
+ @tecutil_preamble
9337
+ def LayoutReadDataInstructionLoader(self, read_data_info, dataset_number, instruction_number):
9338
+ result_ptr = self.handle.tecUtilLayoutReadDataInstructionLoader(read_data_info, dataset_number, instruction_number)
9339
+ result_char_p = cast(result_ptr, c_char_p)
9340
+ result = None if (result_char_p is None or result_char_p.value is None) else result_char_p.value.decode('utf-8')
9341
+ self.handle.tecUtilStringDealloc(byref(result_char_p))
9342
+ return result
9343
+
9344
+ # char * TecUtilLayoutReadDataInstructions(LayoutReadDataInfo_pa ReadDataInfo, int32_t DatasetNumber, int32_t InstructionNumber)
9345
+ @tecutil_preamble
9346
+ def LayoutReadDataInstructions(self, read_data_info, dataset_number, instruction_number):
9347
+ result_ptr = self.handle.tecUtilLayoutReadDataInstructions(read_data_info, dataset_number, instruction_number)
9348
+ result_char_p = cast(result_ptr, c_char_p)
9349
+ result = None if (result_char_p is None or result_char_p.value is None) else result_char_p.value.decode('utf-8')
9350
+ self.handle.tecUtilStringDealloc(byref(result_char_p))
9351
+ return result
9352
+
9276
9353
  # LgIndex_t TecUtilLimitGetValue(char const * LimitString)
9277
9354
  @tecutil_preamble
9278
9355
  def LimitGetValue(self, limit_string):
@@ -3518,6 +3518,41 @@ class TecUtilRPC(object):
3518
3518
  rep=self.sndrcv("LastErrorMessageType")
3519
3519
  self.chk(rep)
3520
3520
  return try_cast_to_enum(MessageBoxType, rep.args[0].int32)
3521
+ def LayoutDatasetCount(self,read_data_info):
3522
+ args=((ValueType.Address,c_uint64,getattr(read_data_info,'value',read_data_info)),)
3523
+ rep=self.sndrcv("LayoutDatasetCount",*args)
3524
+ self.chk(rep)
3525
+ return rep.args[0].int32
3526
+ def LayoutReadDataInfo(self,f_name):
3527
+ args=((ValueType.Text,None,f_name),)
3528
+ rep=self.sndrcv("LayoutReadDataInfo",*args)
3529
+ self.chk(rep)
3530
+ return rep.args[0].uint64
3531
+ def LayoutReadDataInfoDealloc(self,read_data_info):
3532
+ args=((ValueType.Address,c_uint64,read_data_info.contents.value),)
3533
+ rep=self.sndrcv("LayoutReadDataInfoDealloc",*args)
3534
+ self.chk(rep)
3535
+ return rep.args[0].uint64
3536
+ def LayoutReadDataInstructionCount(self,read_data_info,dataset_number):
3537
+ args=((ValueType.Address,c_uint64,getattr(read_data_info,'value',read_data_info)),
3538
+ (ValueType.Scalar,c_int32,dataset_number),)
3539
+ rep=self.sndrcv("LayoutReadDataInstructionCount",*args)
3540
+ self.chk(rep)
3541
+ return rep.args[0].int32
3542
+ def LayoutReadDataInstructionLoader(self,read_data_info,dataset_number,instruction_number):
3543
+ args=((ValueType.Address,c_uint64,getattr(read_data_info,'value',read_data_info)),
3544
+ (ValueType.Scalar,c_int32,dataset_number),
3545
+ (ValueType.Scalar,c_int32,instruction_number),)
3546
+ rep=self.sndrcv("LayoutReadDataInstructionLoader",*args)
3547
+ self.chk(rep)
3548
+ return self.read_text(rep.args[0])
3549
+ def LayoutReadDataInstructions(self,read_data_info,dataset_number,instruction_number):
3550
+ args=((ValueType.Address,c_uint64,getattr(read_data_info,'value',read_data_info)),
3551
+ (ValueType.Scalar,c_int32,dataset_number),
3552
+ (ValueType.Scalar,c_int32,instruction_number),)
3553
+ rep=self.sndrcv("LayoutReadDataInstructions",*args)
3554
+ self.chk(rep)
3555
+ return self.read_text(rep.args[0])
3521
3556
  def LimitGetValue(self,limit_string):
3522
3557
  args=((ValueType.Text,None,limit_string),)
3523
3558
  rep=self.sndrcv("LimitGetValue",*args)
tecplot/tecutil/util.py CHANGED
@@ -332,11 +332,11 @@ def temporary_closed_file(suffix=None):
332
332
 
333
333
 
334
334
  def api_changed(msg, version_changed, sdk_version_changed, warning=False):
335
- msg = textwrap.dedent('''\
336
- PyTecplot API Change (version {})
337
- Tecplot 360 version: {}
338
- {}
339
- ''').format(version_changed, sdk_version_changed, textwrap.fill(msg))
335
+ detail = textwrap.indent(textwrap.dedent(msg), ' ')
336
+ msg = textwrap.dedent(f'''\
337
+ PyTecplot API Change (version {version_changed})
338
+ Tecplot 360 version: {sdk_version_changed}
339
+ ''') + detail
340
340
  if warning:
341
341
  if __debug__:
342
342
  msg += 'Please update your code as the legacy interface will\n' \
@@ -347,11 +347,11 @@ def api_changed(msg, version_changed, sdk_version_changed, warning=False):
347
347
 
348
348
 
349
349
  def api_moved(old, new, version_changed, sdk_version_changed, warning=False):
350
- msg = textwrap.dedent('''\
351
- PyTecplot API Change (version {})
352
- Tecplot 360 version: {}
353
- {} has been moved to {}
354
- ''').format(version_changed, sdk_version_changed, old, new)
350
+ msg = textwrap.dedent(f'''\
351
+ PyTecplot API Change (version {version_changed})
352
+ Tecplot 360 version: {sdk_version_changed}
353
+ {old} has been moved to {new}
354
+ ''')
355
355
  if warning:
356
356
  if __debug__:
357
357
  msg += 'Please update your code as the legacy interface will\n' \
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.2'
37
- build = '6886ce6'
36
+ version = '1.7.3'
37
+ build = '41d6c97'
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