Source code for paraview._backwardscompatibilityhelper

r"""
Internal module used by paraview.servermanager to help warn about properties
changed or removed.

If the compatibility version is less than the version where a particular
property was removed, `check_attr` should ideally continue to work as before
or return a value of appropriate form so old code doesn't fail. Otherwise
`check_attr` should throw the NotSupportedException with appropriate debug
message.
"""

import paraview

[docs]class NotSupportedException(Exception): def __init__(self, msg): self.msg = msg paraview.print_debug_info("\nDEBUG: %s\n" % msg)
[docs]class Continue(Exception): pass
class _CubeAxesHelper(object): def __init__(self): self.CubeAxesVisibility = 0 self.CubeAxesColor = [0, 0, 0] self.CubeAxesCornerOffset = 0.0 self.CubeAxesFlyMode = 1 self.CubeAxesInertia = 1 self.CubeAxesTickLocation = 0 self.CubeAxesXAxisMinorTickVisibility = 0 self.CubeAxesXAxisTickVisibility = 0 self.CubeAxesXAxisVisibility = 0 self.CubeAxesXGridLines = 0 self.CubeAxesXTitle = "" self.CubeAxesUseDefaultXTitle = 0 self.CubeAxesYAxisMinorTickVisibility = 0 self.CubeAxesYAxisTickVisibility = 0 self.CubeAxesYAxisVisibility = 0 self.CubeAxesYGridLines = 0 self.CubeAxesYTitle = "" self.CubeAxesUseDefaultYTitle = 0 self.CubeAxesZAxisMinorTickVisibility = 0 self.CubeAxesZAxisTickVisibility = 0 self.CubeAxesZAxisVisibility = 0 self.CubeAxesZGridLines = 0 self.CubeAxesZTitle = "" self.CubeAxesUseDefaultZTitle = 0 self.CubeAxesGridLineLocation = 0 self.DataBounds = [0, 1, 0, 1, 0, 1] self.CustomBounds = [0, 1, 0, 1, 0, 1] self.CustomBoundsActive = 0 self.OriginalBoundsRangeActive = 0 self.CustomRange = [0, 1, 0, 1, 0, 1] self.CustomRangeActive = 0 self.UseAxesOrigin = 0 self.AxesOrigin = [0, 0, 0] self.CubeAxesXLabelFormat = "" self.CubeAxesYLabelFormat = "" self.CubeAxesZLabelFormat = "" self.StickyAxes = 0 self.CenterStickyAxes = 0 _ACubeAxesHelper = _CubeAxesHelper() _fgetattr = getattr
[docs]def getattr(proxy, pname): """ Attempts to emulate getattr() when called using a deprecated property name for a proxy. Will return a *resonable* standin if the property was deprecated and the paraview compatibility version was set to a version older than when the property was deprecated. Will raise ``NotSupportedException`` if the property was deprecated and paraview compatibility version is newer than that deprecation version. Will raise ``Continue`` to indicate the property name is unaffected by any API deprecation and the caller should follow normal code execution paths. """ version = paraview.compatibility.GetVersion() # In 4.2, we removed ColorAttributeType property. One is expected to use # ColorArrayName to specify the attribute type as well. if pname == "ColorAttributeType" and proxy.SMProxy.GetProperty("ColorArrayName"): if version <= 4.1: if proxy.GetProperty("ColorArrayName")[0] == "CELLS": return "CELL_DATA" else: return "POINT_DATA" else: # if ColorAttributeType is being used, warn. raise NotSupportedException( "'ColorAttributeType' is obsolete. Simply use 'ColorArrayName' instead. Refer to ParaView Python API changes documentation online.") # In 5.1, we removed CameraClippingRange property. It was not of any use # since we added support to render view to automatically reset clipping # range for each render. if pname == "CameraClippingRange" and not proxy.SMProxy.GetProperty("CameraClippingRange"): if version <= 5.0: return [0.0, 0.0, 0.0] else: raise NotSupportedException( 'CameraClippingRange is obsolete. Please remove '\ 'it from your script. You no longer need it.') # In 5.1, we remove support for Cube Axes and related properties. global _ACubeAxesHelper if proxy.SMProxy.IsA("vtkSMPVRepresentationProxy") and hasattr(_ACubeAxesHelper, pname): if version <= 5.0: return _fgetattr(_ACubeAxesHelper, pname) else: raise NotSupportedException( 'Cube Axes and related properties are now obsolete. Please '\ 'remove them from your script.') raise Continue()
[docs]def GetProxy(module, key): version = paraview.compatibility.GetVersion() if version < 5.2: if key == "ResampleWithDataset": return module.__dict__["LegacyResampleWithDataset"]() return module.__dict__[key]()