DipsScripting 9.1.0__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.
- dips/AnchorPointVal.py +103 -0
- dips/AngleDataVal.py +62 -0
- dips/AnnotativeTools2DVal.py +273 -0
- dips/ApplicationManager.py +89 -0
- dips/ArrowToolEntityInfoRef.py +43 -0
- dips/ArrowToolEntityInfoVal.py +155 -0
- dips/AutomaticClusterAnalysisSettingsVal.py +161 -0
- dips/BuiltInDataDescriptors.py +81 -0
- dips/BuiltInDataFormatters.py +81 -0
- dips/CircularWindowVal.py +103 -0
- dips/ClusterWindowVal.py +190 -0
- dips/ColorSurrogateVal.py +95 -0
- dips/ConeToolEntityInfoRef.py +43 -0
- dips/ConeToolEntityInfoVal.py +114 -0
- dips/ConeVal.py +92 -0
- dips/ContourEntityVisibilityVal.py +132 -0
- dips/ContourOptionsVal.py +193 -0
- dips/CumulativeChartViewRef.py +42 -0
- dips/CumulativeChartViewVal.py +100 -0
- dips/CumulativePlotSettingsVal.py +94 -0
- dips/CurvedWindowVal.py +102 -0
- dips/CustomColumnCollectionVal.py +69 -0
- dips/CustomHistogramOptionsVal.py +103 -0
- dips/CustomRangeVal.py +84 -0
- dips/CustomRowRawDataVal.py +74 -0
- dips/DataDescriptorVal.py +83 -0
- dips/DataFilterRef.py +23 -0
- dips/DataFilterVal.py +73 -0
- dips/DataFormatterVal.py +62 -0
- dips/DataIdentifierVal.py +62 -0
- dips/DipsAPI_pb2.py +817 -0
- dips/DipsAPI_pb2_grpc.py +12363 -0
- dips/DipsApp.py +81 -0
- dips/DiscontinuityDataVal.py +164 -0
- dips/EllipseToolEntityInfoRef.py +43 -0
- dips/EllipseToolEntityInfoVal.py +153 -0
- dips/FillFormatVal.py +83 -0
- dips/FoldEntityInfoRef.py +23 -0
- dips/FoldEntityInfoVal.py +103 -0
- dips/FoldEntityOptionsVal.py +106 -0
- dips/FoldEntityVisibilityRef.py +38 -0
- dips/FoldEntityVisibilityVal.py +100 -0
- dips/FoldWindowEntityInfoVal.py +92 -0
- dips/FoldWindowEntityVisibilityRef.py +29 -0
- dips/FoldWindowEntityVisibilityVal.py +80 -0
- dips/FreehandWindowVal.py +80 -0
- dips/FullDataFormatVal.py +92 -0
- dips/GlobalPlaneEntityVisibilityVal.py +103 -0
- dips/HistogramChartViewRef.py +42 -0
- dips/HistogramChartViewVal.py +100 -0
- dips/HistogramPlotSettingsVal.py +136 -0
- dips/IntersectionEntityVisibilityVal.py +83 -0
- dips/IntersectionOptionsVal.py +83 -0
- dips/IntervalVal.py +102 -0
- dips/JointFrequencyAnalysisSettingsVal.py +102 -0
- dips/JointFrequencyChartViewRef.py +42 -0
- dips/JointFrequencyChartViewVal.py +100 -0
- dips/JointSpacingAnalysisSettingsVal.py +138 -0
- dips/JointSpacingChartViewRef.py +42 -0
- dips/JointSpacingChartViewVal.py +100 -0
- dips/KinematicAnalysisEntityVisibilityVal.py +73 -0
- dips/KinematicAnalysisSettingsVal.py +140 -0
- dips/LatLongVal.py +84 -0
- dips/LengthDataVal.py +83 -0
- dips/LineFormatVal.py +83 -0
- dips/LineIntersectionCalculatorToolEntityInfoRef.py +43 -0
- dips/LineIntersectionCalculatorToolEntityInfoVal.py +133 -0
- dips/LineToolEntityInfoRef.py +43 -0
- dips/LineToolEntityInfoVal.py +133 -0
- dips/LineationVal.py +83 -0
- dips/MeasureAngleToolEntityInfoRef.py +43 -0
- dips/MeasureAngleToolEntityInfoVal.py +133 -0
- dips/OrientationDataSetRef.py +23 -0
- dips/OrientationDataSetVal.py +453 -0
- dips/PitchGridToolEntityInfoRef.py +43 -0
- dips/PitchGridToolEntityInfoVal.py +114 -0
- dips/PlaneEntityInfoRef.py +23 -0
- dips/PlaneEntityInfoVal.py +92 -0
- dips/PlaneEntityVisibilityRef.py +38 -0
- dips/PlaneEntityVisibilityVal.py +100 -0
- dips/PlaneIntersectionCalculatorToolEntityInfoRef.py +43 -0
- dips/PlaneIntersectionCalculatorToolEntityInfoVal.py +133 -0
- dips/PlaneOptionsVal.py +117 -0
- dips/PlaneVal.py +105 -0
- dips/PoleEntityOptionsVal.py +84 -0
- dips/PoleEntityVisibilityVal.py +83 -0
- dips/PolygonToolEntityInfoRef.py +43 -0
- dips/PolygonToolEntityInfoVal.py +131 -0
- dips/PolylineToolEntityInfoRef.py +43 -0
- dips/PolylineToolEntityInfoVal.py +111 -0
- dips/ProcessedDataVal.py +94 -0
- dips/ProjStubRef.py +388 -0
- dips/ProjStubVal.py +52 -0
- dips/ProtobufCollectionWrappers.py +108 -0
- dips/QualitativeQuantitativeAnalysisSettingsVal.py +151 -0
- dips/QualitativeQuantitativeChartViewRef.py +42 -0
- dips/QualitativeQuantitativeChartViewVal.py +111 -0
- dips/QuantitativeContourSettingsVal.py +103 -0
- dips/RQDAnalysisChartViewRef.py +42 -0
- dips/RQDAnalysisChartViewVal.py +100 -0
- dips/RQDAnalysisSettingsVal.py +111 -0
- dips/RectangleToolEntityInfoRef.py +43 -0
- dips/RectangleToolEntityInfoVal.py +153 -0
- dips/ReportingConventionResultVal.py +62 -0
- dips/RosettePresetOptionsVal.py +227 -0
- dips/RosetteSettingsVal.py +174 -0
- dips/RosetteViewRef.py +296 -0
- dips/RosetteViewVal.py +177 -0
- dips/ScatterChartViewRef.py +42 -0
- dips/ScatterChartViewVal.py +100 -0
- dips/ScatterPlotSettingsVal.py +113 -0
- dips/SetEntityInfoRef.py +23 -0
- dips/SetEntityInfoVal.py +103 -0
- dips/SetEntityOptionsVal.py +133 -0
- dips/SetEntityVisibilityRef.py +38 -0
- dips/SetEntityVisibilityVal.py +100 -0
- dips/SetStatisticsSettingsVal.py +106 -0
- dips/SetVersusSetVal.py +82 -0
- dips/SetWindowEntityInfoVal.py +183 -0
- dips/SetWindowEntityVisibilityRef.py +29 -0
- dips/SetWindowEntityVisibilityVal.py +80 -0
- dips/StatisticalDistributionFilterVal.py +128 -0
- dips/Stereonet2DPresetOptionsVal.py +488 -0
- dips/Stereonet2DViewRef.py +612 -0
- dips/Stereonet2DViewVal.py +363 -0
- dips/Stereonet3DPresetOptionsVal.py +281 -0
- dips/Stereonet3DViewRef.py +440 -0
- dips/Stereonet3DViewVal.py +303 -0
- dips/StereonetOverlayEntityVisibilityVal.py +83 -0
- dips/StereonetOverlaySettingsVal.py +103 -0
- dips/StereonetProjectionModeVal.py +73 -0
- dips/SurveyDataVal.py +103 -0
- dips/SymbolDisplaySettingVal.py +124 -0
- dips/SymbolicSettingsVal.py +89 -0
- dips/TextFormatVal.py +105 -0
- dips/TextToolEntityInfoRef.py +43 -0
- dips/TextToolEntityInfoVal.py +176 -0
- dips/TraverseEntityOptionsVal.py +84 -0
- dips/TraverseEntityVisibilityRef.py +38 -0
- dips/TraverseEntityVisibilityVal.py +100 -0
- dips/TrendLineToolEntityInfoRef.py +43 -0
- dips/TrendLineToolEntityInfoVal.py +114 -0
- dips/TrendPlungeVal.py +91 -0
- dips/UnitSystemResultVal.py +62 -0
- dips/UserPlaneEntityOptionsVal.py +100 -0
- dips/ValidatableResultVal.py +69 -0
- dips/ValidatableResult_ProtoReference_ArrowToolEntityInfoVal.py +86 -0
- dips/ValidatableResult_ProtoReference_ConeToolEntityInfoVal.py +86 -0
- dips/ValidatableResult_ProtoReference_EllipseToolEntityInfoVal.py +86 -0
- dips/ValidatableResult_ProtoReference_FoldEntityInfoVal.py +86 -0
- dips/ValidatableResult_ProtoReference_LineIntersectionCalculatorToolEntityInfoVal.py +86 -0
- dips/ValidatableResult_ProtoReference_LineToolEntityInfoVal.py +86 -0
- dips/ValidatableResult_ProtoReference_MeasureAngleToolEntityInfoVal.py +86 -0
- dips/ValidatableResult_ProtoReference_OrientationDataSetVal.py +86 -0
- dips/ValidatableResult_ProtoReference_PitchGridToolEntityInfoVal.py +86 -0
- dips/ValidatableResult_ProtoReference_PlaneEntityInfoVal.py +86 -0
- dips/ValidatableResult_ProtoReference_PlaneIntersectionCalculatorToolEntityInfoVal.py +86 -0
- dips/ValidatableResult_ProtoReference_PolygonToolEntityInfoVal.py +86 -0
- dips/ValidatableResult_ProtoReference_PolylineToolEntityInfoVal.py +86 -0
- dips/ValidatableResult_ProtoReference_RectangleToolEntityInfoVal.py +86 -0
- dips/ValidatableResult_ProtoReference_SetEntityInfoVal.py +86 -0
- dips/ValidatableResult_ProtoReference_TextToolEntityInfoVal.py +86 -0
- dips/ValidatableResult_ProtoReference_TrendLineToolEntityInfoVal.py +86 -0
- dips/ValidationErrorVal.py +73 -0
- dips/Vector2DVal.py +73 -0
- dips/Vector3Val.py +84 -0
- dips/VectorDensityContourSettingsVal.py +73 -0
- dips/WeightingSettingsVal.py +83 -0
- dips/WrappedFreehandWindowVal.py +102 -0
- dips/__init__.py +29 -0
- dipsscripting-9.1.0.dist-info/METADATA +29 -0
- dipsscripting-9.1.0.dist-info/RECORD +175 -0
- dipsscripting-9.1.0.dist-info/WHEEL +5 -0
- dipsscripting-9.1.0.dist-info/licenses/License.txt +20 -0
- dipsscripting-9.1.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"""Generated wrapper for QualitativeQuantitativeAnalysisSettings protobuf message."""
|
|
2
|
+
|
|
3
|
+
from typing import Any, Optional, List, Dict
|
|
4
|
+
from . import DipsAPI_pb2
|
|
5
|
+
|
|
6
|
+
from .ProtobufCollectionWrappers import _ProtobufListWrapper, _ProtobufMapWrapper
|
|
7
|
+
|
|
8
|
+
from .CustomRangeVal import CustomRangeVal
|
|
9
|
+
from .DataDescriptorVal import DataDescriptorVal
|
|
10
|
+
|
|
11
|
+
class QualitativeQuantitativeAnalysisSettingsVal:
|
|
12
|
+
"""Simple wrapper for QualitativeQuantitativeAnalysisSettings with Pythonic getters and setters."""
|
|
13
|
+
|
|
14
|
+
_proto_class = DipsAPI_pb2.QualitativeQuantitativeAnalysisSettings
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def __init__(self, custom_range: Optional[CustomRangeVal] = None, selected_column: Optional[DataDescriptorVal] = None, proto_message: Optional[Any] = None):
|
|
18
|
+
"""Initialize the QualitativeQuantitativeAnalysisSettings wrapper."""
|
|
19
|
+
# Initialize the protobuf message
|
|
20
|
+
if proto_message is not None:
|
|
21
|
+
self._proto_message = proto_message
|
|
22
|
+
else:
|
|
23
|
+
self._proto_message = self._proto_class()
|
|
24
|
+
|
|
25
|
+
if custom_range is not None:
|
|
26
|
+
self._proto_message.CustomRange.CopyFrom(custom_range.to_proto())
|
|
27
|
+
self._custom_range_wrapper = custom_range
|
|
28
|
+
if selected_column is not None:
|
|
29
|
+
self._proto_message.SelectedColumn.CopyFrom(selected_column.to_proto())
|
|
30
|
+
self._selected_column_wrapper = selected_column
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
# Properties
|
|
34
|
+
|
|
35
|
+
@property
|
|
36
|
+
def analysis_type(self) -> Any:
|
|
37
|
+
"""Get the AnalysisType field value."""
|
|
38
|
+
return self._proto_message.AnalysisType
|
|
39
|
+
|
|
40
|
+
@analysis_type.setter
|
|
41
|
+
def analysis_type(self, value: Any) -> None:
|
|
42
|
+
"""Set the AnalysisType field value."""
|
|
43
|
+
self._proto_message.AnalysisType = value
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
@property
|
|
47
|
+
def allocated_items(self) -> list:
|
|
48
|
+
"""Get the AllocatedItems field as a list."""
|
|
49
|
+
return _ProtobufListWrapper(self._proto_message.AllocatedItems)
|
|
50
|
+
|
|
51
|
+
@allocated_items.setter
|
|
52
|
+
def allocated_items(self, value: list) -> None:
|
|
53
|
+
"""Set the AllocatedItems field to a list."""
|
|
54
|
+
if not isinstance(value, (list, tuple)):
|
|
55
|
+
raise TypeError(f"Expected list or tuple, got {type(value).__name__}")
|
|
56
|
+
# Clear the repeated field using slice assignment
|
|
57
|
+
self._proto_message.AllocatedItems[:] = []
|
|
58
|
+
self._proto_message.AllocatedItems.extend(value)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
@property
|
|
62
|
+
def custom_range(self) -> CustomRangeVal:
|
|
63
|
+
"""Get the CustomRange field as a wrapper."""
|
|
64
|
+
if not hasattr(self, '_custom_range_wrapper'):
|
|
65
|
+
self._custom_range_wrapper = CustomRangeVal(proto_message=self._proto_message.CustomRange)
|
|
66
|
+
return self._custom_range_wrapper
|
|
67
|
+
|
|
68
|
+
@custom_range.setter
|
|
69
|
+
def custom_range(self, value: CustomRangeVal) -> None:
|
|
70
|
+
"""Set the CustomRange field to a wrapper."""
|
|
71
|
+
self._proto_message.CustomRange.CopyFrom(value.to_proto())
|
|
72
|
+
# Update the cached wrapper if it exists
|
|
73
|
+
if hasattr(self, '_custom_range_wrapper'):
|
|
74
|
+
self._custom_range_wrapper._proto_message.CopyFrom(self._proto_message.CustomRange)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
@property
|
|
78
|
+
def num_bins(self) -> int:
|
|
79
|
+
"""Get the NumBins field value."""
|
|
80
|
+
return self._proto_message.NumBins
|
|
81
|
+
|
|
82
|
+
@num_bins.setter
|
|
83
|
+
def num_bins(self, value: int) -> None:
|
|
84
|
+
"""Set the NumBins field value."""
|
|
85
|
+
self._proto_message.NumBins = value
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
@property
|
|
89
|
+
def logarithmic(self) -> bool:
|
|
90
|
+
"""Get the Logarithmic field value."""
|
|
91
|
+
return self._proto_message.Logarithmic
|
|
92
|
+
|
|
93
|
+
@logarithmic.setter
|
|
94
|
+
def logarithmic(self, value: bool) -> None:
|
|
95
|
+
"""Set the Logarithmic field value."""
|
|
96
|
+
self._proto_message.Logarithmic = value
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
@property
|
|
100
|
+
def selected_column(self) -> DataDescriptorVal:
|
|
101
|
+
"""Get the SelectedColumn field as a wrapper."""
|
|
102
|
+
if not hasattr(self, '_selected_column_wrapper'):
|
|
103
|
+
self._selected_column_wrapper = DataDescriptorVal(proto_message=self._proto_message.SelectedColumn)
|
|
104
|
+
return self._selected_column_wrapper
|
|
105
|
+
|
|
106
|
+
@selected_column.setter
|
|
107
|
+
def selected_column(self, value: DataDescriptorVal) -> None:
|
|
108
|
+
"""Set the SelectedColumn field to a wrapper."""
|
|
109
|
+
self._proto_message.SelectedColumn.CopyFrom(value.to_proto())
|
|
110
|
+
# Update the cached wrapper if it exists
|
|
111
|
+
if hasattr(self, '_selected_column_wrapper'):
|
|
112
|
+
self._selected_column_wrapper._proto_message.CopyFrom(self._proto_message.SelectedColumn)
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
@property
|
|
116
|
+
def is_weighted(self) -> bool:
|
|
117
|
+
"""Get the IsWeighted field value."""
|
|
118
|
+
return self._proto_message.IsWeighted
|
|
119
|
+
|
|
120
|
+
@is_weighted.setter
|
|
121
|
+
def is_weighted(self, value: bool) -> None:
|
|
122
|
+
"""Set the IsWeighted field value."""
|
|
123
|
+
self._proto_message.IsWeighted = value
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
# Utility methods
|
|
127
|
+
|
|
128
|
+
def to_proto(self):
|
|
129
|
+
"""Get the underlying protobuf message."""
|
|
130
|
+
return self._proto_message
|
|
131
|
+
|
|
132
|
+
@classmethod
|
|
133
|
+
def from_proto(cls, proto_message):
|
|
134
|
+
"""Create wrapper from existing protobuf message."""
|
|
135
|
+
wrapper = cls()
|
|
136
|
+
wrapper._proto_message.CopyFrom(proto_message)
|
|
137
|
+
return wrapper
|
|
138
|
+
|
|
139
|
+
def copy(self):
|
|
140
|
+
"""Create a copy of this wrapper."""
|
|
141
|
+
new_wrapper = self.__class__()
|
|
142
|
+
new_wrapper._proto_message.CopyFrom(self._proto_message)
|
|
143
|
+
return new_wrapper
|
|
144
|
+
|
|
145
|
+
def __str__(self) -> str:
|
|
146
|
+
"""String representation."""
|
|
147
|
+
return f"{self.__class__.__name__}({self._proto_message})"
|
|
148
|
+
|
|
149
|
+
def __repr__(self) -> str:
|
|
150
|
+
"""Detailed string representation."""
|
|
151
|
+
return f"{self.__class__.__name__}({self._proto_message})"
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
from typing import List
|
|
2
|
+
from . import DipsAPI_pb2_grpc
|
|
3
|
+
from . import DipsAPI_pb2
|
|
4
|
+
from .QualitativeQuantitativeChartViewVal import QualitativeQuantitativeChartViewVal
|
|
5
|
+
from .DataFilterRef import DataFilterRef as DataFilter_RefType
|
|
6
|
+
|
|
7
|
+
class QualitativeQuantitativeChartViewRef:
|
|
8
|
+
def __init__(self, channelToConnectOn, ref: DipsAPI_pb2.ProtoReference_QualitativeQuantitativeChartView):
|
|
9
|
+
self.__modelRef = ref
|
|
10
|
+
self.__refManagerStub = DipsAPI_pb2_grpc.nSameModuleReferenceAccessorStub(channelToConnectOn)
|
|
11
|
+
self.__channelToConnectOn = channelToConnectOn
|
|
12
|
+
self.__QualitativeQuantitativeChartServicesStubLocal = DipsAPI_pb2_grpc.QualitativeQuantitativeChartServicesStub(channelToConnectOn)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def GetValue(self) -> QualitativeQuantitativeChartViewVal:
|
|
16
|
+
bytes = self.__refManagerStub.GetValue(self.__modelRef.ID)
|
|
17
|
+
ret = DipsAPI_pb2.QualitativeQuantitativeChartView()
|
|
18
|
+
ret.MergeFromString(bytes.data)
|
|
19
|
+
return QualitativeQuantitativeChartViewVal.from_proto(ret)
|
|
20
|
+
|
|
21
|
+
def get_model_ref(self):
|
|
22
|
+
"""Get the underlying model reference for direct protobuf operations."""
|
|
23
|
+
return self.__modelRef
|
|
24
|
+
|
|
25
|
+
def CloseQualitativeQuantitativeChartView(self):
|
|
26
|
+
functionParam = DipsAPI_pb2.ProtoMemberFunction_ProtoReference_QualitativeQuantitativeChartView(This=self.__modelRef)
|
|
27
|
+
ret = self.__QualitativeQuantitativeChartServicesStubLocal.CloseQualitativeQuantitativeChartView(functionParam)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def GetActiveDataFilter(self) -> DataFilter_RefType:
|
|
31
|
+
functionParam = DipsAPI_pb2.ProtoMemberFunction_ProtoReference_QualitativeQuantitativeChartView(This=self.__modelRef)
|
|
32
|
+
ret = self.__QualitativeQuantitativeChartServicesStubLocal.GetActiveDataFilter(functionParam)
|
|
33
|
+
|
|
34
|
+
return DataFilter_RefType(self.__channelToConnectOn, ret)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def SetActiveDataFilter(self, DataFilter: DataFilter_RefType):
|
|
38
|
+
functionParam = DipsAPI_pb2.ProtoMemberFunction_ProtoReference_QualitativeQuantitativeChartView_ProtoReference_DataFilter(This=self.__modelRef, Input1=DataFilter.get_model_ref())
|
|
39
|
+
ret = self.__QualitativeQuantitativeChartServicesStubLocal.SetActiveDataFilter(functionParam)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"""Generated wrapper for QualitativeQuantitativeChartView protobuf message."""
|
|
2
|
+
|
|
3
|
+
from typing import Any, Optional, List, Dict
|
|
4
|
+
from . import DipsAPI_pb2
|
|
5
|
+
|
|
6
|
+
from .ProtobufCollectionWrappers import _ProtobufListWrapper, _ProtobufMapWrapper
|
|
7
|
+
|
|
8
|
+
from .QualitativeQuantitativeAnalysisSettingsVal import QualitativeQuantitativeAnalysisSettingsVal
|
|
9
|
+
from .DataFilterRef import DataFilterRef
|
|
10
|
+
|
|
11
|
+
class QualitativeQuantitativeChartViewVal:
|
|
12
|
+
"""Simple wrapper for QualitativeQuantitativeChartView with Pythonic getters and setters."""
|
|
13
|
+
|
|
14
|
+
_proto_class = DipsAPI_pb2.QualitativeQuantitativeChartView
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def __init__(self, qualitative_quantitative_analysis_settings: Optional[QualitativeQuantitativeAnalysisSettingsVal] = None, active_filter: Optional[DataFilterRef] = None, proto_message: Optional[Any] = None, channel_to_connect_on: Optional[Any] = None):
|
|
18
|
+
"""Initialize the QualitativeQuantitativeChartView wrapper."""
|
|
19
|
+
# Initialize the protobuf message
|
|
20
|
+
if proto_message is not None:
|
|
21
|
+
self._proto_message = proto_message
|
|
22
|
+
else:
|
|
23
|
+
self._proto_message = self._proto_class()
|
|
24
|
+
|
|
25
|
+
# Store channel for reference types
|
|
26
|
+
self.__channelToConnectOn = channel_to_connect_on
|
|
27
|
+
|
|
28
|
+
if qualitative_quantitative_analysis_settings is not None:
|
|
29
|
+
self._proto_message.QualitativeQuantitativeAnalysisSettings.CopyFrom(qualitative_quantitative_analysis_settings.to_proto())
|
|
30
|
+
self._qualitative_quantitative_analysis_settings_wrapper = qualitative_quantitative_analysis_settings
|
|
31
|
+
if active_filter is not None:
|
|
32
|
+
self.active_filter = active_filter
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
# Properties
|
|
36
|
+
|
|
37
|
+
@property
|
|
38
|
+
def view_name(self) -> str:
|
|
39
|
+
"""Get the ViewName field value."""
|
|
40
|
+
return self._proto_message.ViewName
|
|
41
|
+
|
|
42
|
+
@view_name.setter
|
|
43
|
+
def view_name(self, value: str) -> None:
|
|
44
|
+
"""Set the ViewName field value."""
|
|
45
|
+
self._proto_message.ViewName = value
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
@property
|
|
49
|
+
def qualitative_quantitative_analysis_settings(self) -> QualitativeQuantitativeAnalysisSettingsVal:
|
|
50
|
+
"""Get the QualitativeQuantitativeAnalysisSettings field as a wrapper."""
|
|
51
|
+
if not hasattr(self, '_qualitative_quantitative_analysis_settings_wrapper'):
|
|
52
|
+
self._qualitative_quantitative_analysis_settings_wrapper = QualitativeQuantitativeAnalysisSettingsVal(proto_message=self._proto_message.QualitativeQuantitativeAnalysisSettings)
|
|
53
|
+
return self._qualitative_quantitative_analysis_settings_wrapper
|
|
54
|
+
|
|
55
|
+
@qualitative_quantitative_analysis_settings.setter
|
|
56
|
+
def qualitative_quantitative_analysis_settings(self, value: QualitativeQuantitativeAnalysisSettingsVal) -> None:
|
|
57
|
+
"""Set the QualitativeQuantitativeAnalysisSettings field to a wrapper."""
|
|
58
|
+
self._proto_message.QualitativeQuantitativeAnalysisSettings.CopyFrom(value.to_proto())
|
|
59
|
+
# Update the cached wrapper if it exists
|
|
60
|
+
if hasattr(self, '_qualitative_quantitative_analysis_settings_wrapper'):
|
|
61
|
+
self._qualitative_quantitative_analysis_settings_wrapper._proto_message.CopyFrom(self._proto_message.QualitativeQuantitativeAnalysisSettings)
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
@property
|
|
65
|
+
def chart_type(self) -> Any:
|
|
66
|
+
"""Get the ChartType field value."""
|
|
67
|
+
return self._proto_message.ChartType
|
|
68
|
+
|
|
69
|
+
@chart_type.setter
|
|
70
|
+
def chart_type(self, value: Any) -> None:
|
|
71
|
+
"""Set the ChartType field value."""
|
|
72
|
+
self._proto_message.ChartType = value
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
@property
|
|
76
|
+
def active_filter(self) -> DataFilterRef:
|
|
77
|
+
"""Get the ActiveFilter field as a reference."""
|
|
78
|
+
return DataFilterRef(self.__channelToConnectOn, self._proto_message.ActiveFilter)
|
|
79
|
+
|
|
80
|
+
@active_filter.setter
|
|
81
|
+
def active_filter(self, value: DataFilterRef) -> None:
|
|
82
|
+
"""Set the ActiveFilter field to a reference."""
|
|
83
|
+
self._proto_message.ActiveFilter.CopyFrom(value.get_model_ref())
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
# Utility methods
|
|
87
|
+
|
|
88
|
+
def to_proto(self):
|
|
89
|
+
"""Get the underlying protobuf message."""
|
|
90
|
+
return self._proto_message
|
|
91
|
+
|
|
92
|
+
@classmethod
|
|
93
|
+
def from_proto(cls, proto_message):
|
|
94
|
+
"""Create wrapper from existing protobuf message."""
|
|
95
|
+
wrapper = cls()
|
|
96
|
+
wrapper._proto_message.CopyFrom(proto_message)
|
|
97
|
+
return wrapper
|
|
98
|
+
|
|
99
|
+
def copy(self):
|
|
100
|
+
"""Create a copy of this wrapper."""
|
|
101
|
+
new_wrapper = self.__class__()
|
|
102
|
+
new_wrapper._proto_message.CopyFrom(self._proto_message)
|
|
103
|
+
return new_wrapper
|
|
104
|
+
|
|
105
|
+
def __str__(self) -> str:
|
|
106
|
+
"""String representation."""
|
|
107
|
+
return f"{self.__class__.__name__}({self._proto_message})"
|
|
108
|
+
|
|
109
|
+
def __repr__(self) -> str:
|
|
110
|
+
"""Detailed string representation."""
|
|
111
|
+
return f"{self.__class__.__name__}({self._proto_message})"
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"""Generated wrapper for QuantitativeContourSettings protobuf message."""
|
|
2
|
+
|
|
3
|
+
from typing import Any, Optional, List, Dict
|
|
4
|
+
from . import DipsAPI_pb2
|
|
5
|
+
|
|
6
|
+
from .ProtobufCollectionWrappers import _ProtobufListWrapper, _ProtobufMapWrapper
|
|
7
|
+
|
|
8
|
+
from .AngleDataVal import AngleDataVal
|
|
9
|
+
from .DataDescriptorVal import DataDescriptorVal
|
|
10
|
+
|
|
11
|
+
class QuantitativeContourSettingsVal:
|
|
12
|
+
"""Simple wrapper for QuantitativeContourSettings with Pythonic getters and setters."""
|
|
13
|
+
|
|
14
|
+
_proto_class = DipsAPI_pb2.QuantitativeContourSettings
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def __init__(self, local_angle: Optional[AngleDataVal] = None, selected_column: Optional[DataDescriptorVal] = None, proto_message: Optional[Any] = None):
|
|
18
|
+
"""Initialize the QuantitativeContourSettings wrapper."""
|
|
19
|
+
# Initialize the protobuf message
|
|
20
|
+
if proto_message is not None:
|
|
21
|
+
self._proto_message = proto_message
|
|
22
|
+
else:
|
|
23
|
+
self._proto_message = self._proto_class()
|
|
24
|
+
|
|
25
|
+
if local_angle is not None:
|
|
26
|
+
self._proto_message.LocalAngle.CopyFrom(local_angle.to_proto())
|
|
27
|
+
self._local_angle_wrapper = local_angle
|
|
28
|
+
if selected_column is not None:
|
|
29
|
+
self._proto_message.SelectedColumn.CopyFrom(selected_column.to_proto())
|
|
30
|
+
self._selected_column_wrapper = selected_column
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
# Properties
|
|
34
|
+
|
|
35
|
+
@property
|
|
36
|
+
def interpolation(self) -> Any:
|
|
37
|
+
"""Get the Interpolation field value."""
|
|
38
|
+
return self._proto_message.Interpolation
|
|
39
|
+
|
|
40
|
+
@interpolation.setter
|
|
41
|
+
def interpolation(self, value: Any) -> None:
|
|
42
|
+
"""Set the Interpolation field value."""
|
|
43
|
+
self._proto_message.Interpolation = value
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
@property
|
|
47
|
+
def local_angle(self) -> AngleDataVal:
|
|
48
|
+
"""Get the LocalAngle field as a wrapper."""
|
|
49
|
+
if not hasattr(self, '_local_angle_wrapper'):
|
|
50
|
+
self._local_angle_wrapper = AngleDataVal(proto_message=self._proto_message.LocalAngle)
|
|
51
|
+
return self._local_angle_wrapper
|
|
52
|
+
|
|
53
|
+
@local_angle.setter
|
|
54
|
+
def local_angle(self, value: AngleDataVal) -> None:
|
|
55
|
+
"""Set the LocalAngle field to a wrapper."""
|
|
56
|
+
self._proto_message.LocalAngle.CopyFrom(value.to_proto())
|
|
57
|
+
# Update the cached wrapper if it exists
|
|
58
|
+
if hasattr(self, '_local_angle_wrapper'):
|
|
59
|
+
self._local_angle_wrapper._proto_message.CopyFrom(self._proto_message.LocalAngle)
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
@property
|
|
63
|
+
def selected_column(self) -> DataDescriptorVal:
|
|
64
|
+
"""Get the SelectedColumn field as a wrapper."""
|
|
65
|
+
if not hasattr(self, '_selected_column_wrapper'):
|
|
66
|
+
self._selected_column_wrapper = DataDescriptorVal(proto_message=self._proto_message.SelectedColumn)
|
|
67
|
+
return self._selected_column_wrapper
|
|
68
|
+
|
|
69
|
+
@selected_column.setter
|
|
70
|
+
def selected_column(self, value: DataDescriptorVal) -> None:
|
|
71
|
+
"""Set the SelectedColumn field to a wrapper."""
|
|
72
|
+
self._proto_message.SelectedColumn.CopyFrom(value.to_proto())
|
|
73
|
+
# Update the cached wrapper if it exists
|
|
74
|
+
if hasattr(self, '_selected_column_wrapper'):
|
|
75
|
+
self._selected_column_wrapper._proto_message.CopyFrom(self._proto_message.SelectedColumn)
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
# Utility methods
|
|
79
|
+
|
|
80
|
+
def to_proto(self):
|
|
81
|
+
"""Get the underlying protobuf message."""
|
|
82
|
+
return self._proto_message
|
|
83
|
+
|
|
84
|
+
@classmethod
|
|
85
|
+
def from_proto(cls, proto_message):
|
|
86
|
+
"""Create wrapper from existing protobuf message."""
|
|
87
|
+
wrapper = cls()
|
|
88
|
+
wrapper._proto_message.CopyFrom(proto_message)
|
|
89
|
+
return wrapper
|
|
90
|
+
|
|
91
|
+
def copy(self):
|
|
92
|
+
"""Create a copy of this wrapper."""
|
|
93
|
+
new_wrapper = self.__class__()
|
|
94
|
+
new_wrapper._proto_message.CopyFrom(self._proto_message)
|
|
95
|
+
return new_wrapper
|
|
96
|
+
|
|
97
|
+
def __str__(self) -> str:
|
|
98
|
+
"""String representation."""
|
|
99
|
+
return f"{self.__class__.__name__}({self._proto_message})"
|
|
100
|
+
|
|
101
|
+
def __repr__(self) -> str:
|
|
102
|
+
"""Detailed string representation."""
|
|
103
|
+
return f"{self.__class__.__name__}({self._proto_message})"
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
from typing import List
|
|
2
|
+
from . import DipsAPI_pb2_grpc
|
|
3
|
+
from . import DipsAPI_pb2
|
|
4
|
+
from .RQDAnalysisChartViewVal import RQDAnalysisChartViewVal
|
|
5
|
+
from .DataFilterRef import DataFilterRef as DataFilter_RefType
|
|
6
|
+
|
|
7
|
+
class RQDAnalysisChartViewRef:
|
|
8
|
+
def __init__(self, channelToConnectOn, ref: DipsAPI_pb2.ProtoReference_RQDAnalysisChartView):
|
|
9
|
+
self.__modelRef = ref
|
|
10
|
+
self.__refManagerStub = DipsAPI_pb2_grpc.nSameModuleReferenceAccessorStub(channelToConnectOn)
|
|
11
|
+
self.__channelToConnectOn = channelToConnectOn
|
|
12
|
+
self.__RQDAnalysisChartServicesStubLocal = DipsAPI_pb2_grpc.RQDAnalysisChartServicesStub(channelToConnectOn)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def GetValue(self) -> RQDAnalysisChartViewVal:
|
|
16
|
+
bytes = self.__refManagerStub.GetValue(self.__modelRef.ID)
|
|
17
|
+
ret = DipsAPI_pb2.RQDAnalysisChartView()
|
|
18
|
+
ret.MergeFromString(bytes.data)
|
|
19
|
+
return RQDAnalysisChartViewVal.from_proto(ret)
|
|
20
|
+
|
|
21
|
+
def get_model_ref(self):
|
|
22
|
+
"""Get the underlying model reference for direct protobuf operations."""
|
|
23
|
+
return self.__modelRef
|
|
24
|
+
|
|
25
|
+
def CloseRQDAnalysisChartView(self):
|
|
26
|
+
functionParam = DipsAPI_pb2.ProtoMemberFunction_ProtoReference_RQDAnalysisChartView(This=self.__modelRef)
|
|
27
|
+
ret = self.__RQDAnalysisChartServicesStubLocal.CloseRQDAnalysisChartView(functionParam)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def GetActiveDataFilter(self) -> DataFilter_RefType:
|
|
31
|
+
functionParam = DipsAPI_pb2.ProtoMemberFunction_ProtoReference_RQDAnalysisChartView(This=self.__modelRef)
|
|
32
|
+
ret = self.__RQDAnalysisChartServicesStubLocal.GetActiveDataFilter(functionParam)
|
|
33
|
+
|
|
34
|
+
return DataFilter_RefType(self.__channelToConnectOn, ret)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def SetActiveDataFilter(self, DataFilter: DataFilter_RefType):
|
|
38
|
+
functionParam = DipsAPI_pb2.ProtoMemberFunction_ProtoReference_RQDAnalysisChartView_ProtoReference_DataFilter(This=self.__modelRef, Input1=DataFilter.get_model_ref())
|
|
39
|
+
ret = self.__RQDAnalysisChartServicesStubLocal.SetActiveDataFilter(functionParam)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"""Generated wrapper for RQDAnalysisChartView protobuf message."""
|
|
2
|
+
|
|
3
|
+
from typing import Any, Optional, List, Dict
|
|
4
|
+
from . import DipsAPI_pb2
|
|
5
|
+
|
|
6
|
+
from .ProtobufCollectionWrappers import _ProtobufListWrapper, _ProtobufMapWrapper
|
|
7
|
+
|
|
8
|
+
from .RQDAnalysisSettingsVal import RQDAnalysisSettingsVal
|
|
9
|
+
from .DataFilterRef import DataFilterRef
|
|
10
|
+
|
|
11
|
+
class RQDAnalysisChartViewVal:
|
|
12
|
+
"""Simple wrapper for RQDAnalysisChartView with Pythonic getters and setters."""
|
|
13
|
+
|
|
14
|
+
_proto_class = DipsAPI_pb2.RQDAnalysisChartView
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def __init__(self, rqd_analysis_settings: Optional[RQDAnalysisSettingsVal] = None, active_filter: Optional[DataFilterRef] = None, proto_message: Optional[Any] = None, channel_to_connect_on: Optional[Any] = None):
|
|
18
|
+
"""Initialize the RQDAnalysisChartView wrapper."""
|
|
19
|
+
# Initialize the protobuf message
|
|
20
|
+
if proto_message is not None:
|
|
21
|
+
self._proto_message = proto_message
|
|
22
|
+
else:
|
|
23
|
+
self._proto_message = self._proto_class()
|
|
24
|
+
|
|
25
|
+
# Store channel for reference types
|
|
26
|
+
self.__channelToConnectOn = channel_to_connect_on
|
|
27
|
+
|
|
28
|
+
if rqd_analysis_settings is not None:
|
|
29
|
+
self._proto_message.RQDAnalysisSettings.CopyFrom(rqd_analysis_settings.to_proto())
|
|
30
|
+
self._rqd_analysis_settings_wrapper = rqd_analysis_settings
|
|
31
|
+
if active_filter is not None:
|
|
32
|
+
self.active_filter = active_filter
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
# Properties
|
|
36
|
+
|
|
37
|
+
@property
|
|
38
|
+
def view_name(self) -> str:
|
|
39
|
+
"""Get the ViewName field value."""
|
|
40
|
+
return self._proto_message.ViewName
|
|
41
|
+
|
|
42
|
+
@view_name.setter
|
|
43
|
+
def view_name(self, value: str) -> None:
|
|
44
|
+
"""Set the ViewName field value."""
|
|
45
|
+
self._proto_message.ViewName = value
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
@property
|
|
49
|
+
def rqd_analysis_settings(self) -> RQDAnalysisSettingsVal:
|
|
50
|
+
"""Get the RQDAnalysisSettings field as a wrapper."""
|
|
51
|
+
if not hasattr(self, '_rqd_analysis_settings_wrapper'):
|
|
52
|
+
self._rqd_analysis_settings_wrapper = RQDAnalysisSettingsVal(proto_message=self._proto_message.RQDAnalysisSettings)
|
|
53
|
+
return self._rqd_analysis_settings_wrapper
|
|
54
|
+
|
|
55
|
+
@rqd_analysis_settings.setter
|
|
56
|
+
def rqd_analysis_settings(self, value: RQDAnalysisSettingsVal) -> None:
|
|
57
|
+
"""Set the RQDAnalysisSettings field to a wrapper."""
|
|
58
|
+
self._proto_message.RQDAnalysisSettings.CopyFrom(value.to_proto())
|
|
59
|
+
# Update the cached wrapper if it exists
|
|
60
|
+
if hasattr(self, '_rqd_analysis_settings_wrapper'):
|
|
61
|
+
self._rqd_analysis_settings_wrapper._proto_message.CopyFrom(self._proto_message.RQDAnalysisSettings)
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
@property
|
|
65
|
+
def active_filter(self) -> DataFilterRef:
|
|
66
|
+
"""Get the ActiveFilter field as a reference."""
|
|
67
|
+
return DataFilterRef(self.__channelToConnectOn, self._proto_message.ActiveFilter)
|
|
68
|
+
|
|
69
|
+
@active_filter.setter
|
|
70
|
+
def active_filter(self, value: DataFilterRef) -> None:
|
|
71
|
+
"""Set the ActiveFilter field to a reference."""
|
|
72
|
+
self._proto_message.ActiveFilter.CopyFrom(value.get_model_ref())
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
# Utility methods
|
|
76
|
+
|
|
77
|
+
def to_proto(self):
|
|
78
|
+
"""Get the underlying protobuf message."""
|
|
79
|
+
return self._proto_message
|
|
80
|
+
|
|
81
|
+
@classmethod
|
|
82
|
+
def from_proto(cls, proto_message):
|
|
83
|
+
"""Create wrapper from existing protobuf message."""
|
|
84
|
+
wrapper = cls()
|
|
85
|
+
wrapper._proto_message.CopyFrom(proto_message)
|
|
86
|
+
return wrapper
|
|
87
|
+
|
|
88
|
+
def copy(self):
|
|
89
|
+
"""Create a copy of this wrapper."""
|
|
90
|
+
new_wrapper = self.__class__()
|
|
91
|
+
new_wrapper._proto_message.CopyFrom(self._proto_message)
|
|
92
|
+
return new_wrapper
|
|
93
|
+
|
|
94
|
+
def __str__(self) -> str:
|
|
95
|
+
"""String representation."""
|
|
96
|
+
return f"{self.__class__.__name__}({self._proto_message})"
|
|
97
|
+
|
|
98
|
+
def __repr__(self) -> str:
|
|
99
|
+
"""Detailed string representation."""
|
|
100
|
+
return f"{self.__class__.__name__}({self._proto_message})"
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"""Generated wrapper for RQDAnalysisSettings protobuf message."""
|
|
2
|
+
|
|
3
|
+
from typing import Any, Optional, List, Dict
|
|
4
|
+
from . import DipsAPI_pb2
|
|
5
|
+
|
|
6
|
+
from .ProtobufCollectionWrappers import _ProtobufListWrapper, _ProtobufMapWrapper
|
|
7
|
+
|
|
8
|
+
from .IntervalVal import IntervalVal
|
|
9
|
+
from .LengthDataVal import LengthDataVal
|
|
10
|
+
from .OrientationDataSetRef import OrientationDataSetRef
|
|
11
|
+
|
|
12
|
+
class RQDAnalysisSettingsVal:
|
|
13
|
+
"""Simple wrapper for RQDAnalysisSettings with Pythonic getters and setters."""
|
|
14
|
+
|
|
15
|
+
_proto_class = DipsAPI_pb2.RQDAnalysisSettings
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def __init__(self, interval: Optional[IntervalVal] = None, intact_core_cutoff_length: Optional[LengthDataVal] = None, proto_message: Optional[Any] = None, channel_to_connect_on: Optional[Any] = None):
|
|
19
|
+
"""Initialize the RQDAnalysisSettings wrapper."""
|
|
20
|
+
# Initialize the protobuf message
|
|
21
|
+
if proto_message is not None:
|
|
22
|
+
self._proto_message = proto_message
|
|
23
|
+
else:
|
|
24
|
+
self._proto_message = self._proto_class()
|
|
25
|
+
|
|
26
|
+
# Store channel for reference types
|
|
27
|
+
self.__channelToConnectOn = channel_to_connect_on
|
|
28
|
+
|
|
29
|
+
if interval is not None:
|
|
30
|
+
self._proto_message.Interval.CopyFrom(interval.to_proto())
|
|
31
|
+
self._interval_wrapper = interval
|
|
32
|
+
if intact_core_cutoff_length is not None:
|
|
33
|
+
self._proto_message.IntactCoreCutoffLength.CopyFrom(intact_core_cutoff_length.to_proto())
|
|
34
|
+
self._intact_core_cutoff_length_wrapper = intact_core_cutoff_length
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
# Properties
|
|
38
|
+
|
|
39
|
+
@property
|
|
40
|
+
def interval(self) -> IntervalVal:
|
|
41
|
+
"""Get the Interval field as a wrapper."""
|
|
42
|
+
if not hasattr(self, '_interval_wrapper'):
|
|
43
|
+
self._interval_wrapper = IntervalVal(proto_message=self._proto_message.Interval)
|
|
44
|
+
return self._interval_wrapper
|
|
45
|
+
|
|
46
|
+
@interval.setter
|
|
47
|
+
def interval(self, value: IntervalVal) -> None:
|
|
48
|
+
"""Set the Interval field to a wrapper."""
|
|
49
|
+
self._proto_message.Interval.CopyFrom(value.to_proto())
|
|
50
|
+
# Update the cached wrapper if it exists
|
|
51
|
+
if hasattr(self, '_interval_wrapper'):
|
|
52
|
+
self._interval_wrapper._proto_message.CopyFrom(self._proto_message.Interval)
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
@property
|
|
56
|
+
def intact_core_cutoff_length(self) -> LengthDataVal:
|
|
57
|
+
"""Get the IntactCoreCutoffLength field as a wrapper."""
|
|
58
|
+
if not hasattr(self, '_intact_core_cutoff_length_wrapper'):
|
|
59
|
+
self._intact_core_cutoff_length_wrapper = LengthDataVal(proto_message=self._proto_message.IntactCoreCutoffLength)
|
|
60
|
+
return self._intact_core_cutoff_length_wrapper
|
|
61
|
+
|
|
62
|
+
@intact_core_cutoff_length.setter
|
|
63
|
+
def intact_core_cutoff_length(self, value: LengthDataVal) -> None:
|
|
64
|
+
"""Set the IntactCoreCutoffLength field to a wrapper."""
|
|
65
|
+
self._proto_message.IntactCoreCutoffLength.CopyFrom(value.to_proto())
|
|
66
|
+
# Update the cached wrapper if it exists
|
|
67
|
+
if hasattr(self, '_intact_core_cutoff_length_wrapper'):
|
|
68
|
+
self._intact_core_cutoff_length_wrapper._proto_message.CopyFrom(self._proto_message.IntactCoreCutoffLength)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
@property
|
|
72
|
+
def traverses(self) -> List[OrientationDataSetRef]:
|
|
73
|
+
"""Get the Traverses field as a list."""
|
|
74
|
+
return _ProtobufListWrapper(self._proto_message.Traverses)
|
|
75
|
+
|
|
76
|
+
@traverses.setter
|
|
77
|
+
def traverses(self, value: List[OrientationDataSetRef]) -> None:
|
|
78
|
+
"""Set the Traverses field to a list."""
|
|
79
|
+
if not isinstance(value, (list, tuple)):
|
|
80
|
+
raise TypeError(f"Expected list or tuple, got {type(value).__name__}")
|
|
81
|
+
# Clear the repeated field using slice assignment
|
|
82
|
+
self._proto_message.Traverses[:] = []
|
|
83
|
+
self._proto_message.Traverses.extend(value)
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
# Utility methods
|
|
87
|
+
|
|
88
|
+
def to_proto(self):
|
|
89
|
+
"""Get the underlying protobuf message."""
|
|
90
|
+
return self._proto_message
|
|
91
|
+
|
|
92
|
+
@classmethod
|
|
93
|
+
def from_proto(cls, proto_message):
|
|
94
|
+
"""Create wrapper from existing protobuf message."""
|
|
95
|
+
wrapper = cls()
|
|
96
|
+
wrapper._proto_message.CopyFrom(proto_message)
|
|
97
|
+
return wrapper
|
|
98
|
+
|
|
99
|
+
def copy(self):
|
|
100
|
+
"""Create a copy of this wrapper."""
|
|
101
|
+
new_wrapper = self.__class__()
|
|
102
|
+
new_wrapper._proto_message.CopyFrom(self._proto_message)
|
|
103
|
+
return new_wrapper
|
|
104
|
+
|
|
105
|
+
def __str__(self) -> str:
|
|
106
|
+
"""String representation."""
|
|
107
|
+
return f"{self.__class__.__name__}({self._proto_message})"
|
|
108
|
+
|
|
109
|
+
def __repr__(self) -> str:
|
|
110
|
+
"""Detailed string representation."""
|
|
111
|
+
return f"{self.__class__.__name__}({self._proto_message})"
|