stepxmlclient 1.0.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.
- stepxmlclient/__init__.py +22 -0
- stepxmlclient/client.py +373 -0
- stepxmlclient/creator.py +317 -0
- stepxmlclient/model/__init__.py +418 -0
- stepxmlclient/model/asset.py +250 -0
- stepxmlclient/model/attribute.py +288 -0
- stepxmlclient/model/business.py +233 -0
- stepxmlclient/model/classification.py +409 -0
- stepxmlclient/model/complex_elements.py +260 -0
- stepxmlclient/model/deletion.py +87 -0
- stepxmlclient/model/entity.py +368 -0
- stepxmlclient/model/metadata.py +199 -0
- stepxmlclient/model/organization.py +167 -0
- stepxmlclient/model/product.py +519 -0
- stepxmlclient/model/relations.py +105 -0
- stepxmlclient/model/replacement.py +417 -0
- stepxmlclient/parser.py +2805 -0
- stepxmlclient/rest_client/__init__.py +16 -0
- stepxmlclient/rest_client/base.py +388 -0
- stepxmlclient/rest_client/client.py +127 -0
- stepxmlclient/rest_client/exceptions.py +97 -0
- stepxmlclient/rest_client/models/__init__.py +175 -0
- stepxmlclient/rest_client/models/asset.py +253 -0
- stepxmlclient/rest_client/models/attribute.py +112 -0
- stepxmlclient/rest_client/models/background_process.py +23 -0
- stepxmlclient/rest_client/models/batch.py +41 -0
- stepxmlclient/rest_client/models/classification.py +57 -0
- stepxmlclient/rest_client/models/collection.py +26 -0
- stepxmlclient/rest_client/models/common.py +192 -0
- stepxmlclient/rest_client/models/context.py +16 -0
- stepxmlclient/rest_client/models/data_type_group.py +15 -0
- stepxmlclient/rest_client/models/entity.py +63 -0
- stepxmlclient/rest_client/models/event_processor.py +15 -0
- stepxmlclient/rest_client/models/import_export.py +43 -0
- stepxmlclient/rest_client/models/integration_endpoint.py +16 -0
- stepxmlclient/rest_client/models/product.py +200 -0
- stepxmlclient/rest_client/models/relations.py +280 -0
- stepxmlclient/rest_client/models/system_information.py +11 -0
- stepxmlclient/rest_client/models/user.py +28 -0
- stepxmlclient/rest_client/models/workflow.py +30 -0
- stepxmlclient/rest_client/operations/__init__.py +54 -0
- stepxmlclient/rest_client/operations/assets.py +652 -0
- stepxmlclient/rest_client/operations/attributes.py +252 -0
- stepxmlclient/rest_client/operations/background_processes.py +84 -0
- stepxmlclient/rest_client/operations/batch.py +28 -0
- stepxmlclient/rest_client/operations/classifications.py +248 -0
- stepxmlclient/rest_client/operations/collection_groups.py +46 -0
- stepxmlclient/rest_client/operations/collections.py +67 -0
- stepxmlclient/rest_client/operations/contexts.py +88 -0
- stepxmlclient/rest_client/operations/data_type_groups.py +68 -0
- stepxmlclient/rest_client/operations/entities.py +295 -0
- stepxmlclient/rest_client/operations/event_processors.py +109 -0
- stepxmlclient/rest_client/operations/exports.py +153 -0
- stepxmlclient/rest_client/operations/gateway.py +53 -0
- stepxmlclient/rest_client/operations/inbound.py +472 -0
- stepxmlclient/rest_client/operations/outbound.py +64 -0
- stepxmlclient/rest_client/operations/products.py +489 -0
- stepxmlclient/rest_client/operations/relations.py +349 -0
- stepxmlclient/rest_client/operations/reports.py +27 -0
- stepxmlclient/rest_client/operations/system_information.py +28 -0
- stepxmlclient/rest_client/operations/user_groups.py +79 -0
- stepxmlclient/rest_client/operations/users.py +119 -0
- stepxmlclient/rest_client/operations/workflow_tasks.py +61 -0
- stepxmlclient/rest_client/operations/workflows.py +50 -0
- stepxmlclient/upload.py +293 -0
- stepxmlclient-1.0.0.dist-info/METADATA +666 -0
- stepxmlclient-1.0.0.dist-info/RECORD +70 -0
- stepxmlclient-1.0.0.dist-info/WHEEL +5 -0
- stepxmlclient-1.0.0.dist-info/licenses/LICENSE +21 -0
- stepxmlclient-1.0.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"""Cross-reference models for STEP XML Client.
|
|
2
|
+
|
|
3
|
+
Defines relationship/cross-reference classes for linking STEP entities together.
|
|
4
|
+
These are used to create various types of associations between products, assets,
|
|
5
|
+
classifications, and entities in the MDM system.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from typing import List, Optional
|
|
9
|
+
from . import BaseObject
|
|
10
|
+
|
|
11
|
+
class AssetCrossReference(BaseObject):
|
|
12
|
+
"""Link between a product and an asset.
|
|
13
|
+
|
|
14
|
+
Represents a relationship from a product (or asset) to an asset file.
|
|
15
|
+
Includes optional type and qualifier information for classification of the link.
|
|
16
|
+
|
|
17
|
+
Attributes:
|
|
18
|
+
AssetID: ID of the asset being linked
|
|
19
|
+
Type: Optional link type (e.g., 'Image', 'Document')
|
|
20
|
+
QualifierID: Optional qualifier for context/language specificity
|
|
21
|
+
KeyValue: Optional key value reference
|
|
22
|
+
MetaData: Optional metadata for the relationship
|
|
23
|
+
"""
|
|
24
|
+
_GROUP_NAME: Optional[str] = None # Used as child element only
|
|
25
|
+
_TAG_NAME: str = 'AssetCrossReference'
|
|
26
|
+
_ATTRIBUTE_NAMES: List[str] = ["AssetID", "Type", "QualifierID", "Changed"]
|
|
27
|
+
_TEXT_NAMES: List[str] = []
|
|
28
|
+
_CHILDREN_NAMES: List[str] = ["KeyValue", "MetaData"]
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class ProductCrossReference(BaseObject):
|
|
32
|
+
"""Link between two products.
|
|
33
|
+
|
|
34
|
+
Represents a relationship from one product to another (parent, related, component, etc.).
|
|
35
|
+
Includes optional type, qualifier, and mount location information.
|
|
36
|
+
|
|
37
|
+
Attributes:
|
|
38
|
+
ProductID: ID of the linked product
|
|
39
|
+
Type: Optional link type (e.g., 'Parent', 'Related', 'Component')
|
|
40
|
+
QualifierID: Optional qualifier for context/language specificity
|
|
41
|
+
MountLocation: Optional location where product is mounted/used
|
|
42
|
+
KeyValue: Optional key value reference
|
|
43
|
+
MetaData: Optional metadata for the relationship
|
|
44
|
+
"""
|
|
45
|
+
_GROUP_NAME: Optional[str] = None # Used as child element only
|
|
46
|
+
_TAG_NAME: str = 'ProductCrossReference'
|
|
47
|
+
_ATTRIBUTE_NAMES: List[str] = ["ProductID", "Type", "QualifierID", "MountLocation", "Changed"]
|
|
48
|
+
_TEXT_NAMES: List[str] = []
|
|
49
|
+
_CHILDREN_NAMES: List[str] = ["KeyValue", "MetaData"]
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class ClassificationCrossReference(BaseObject):
|
|
53
|
+
"""Link between a product/classification and another classification.
|
|
54
|
+
|
|
55
|
+
Represents a relationship from a product or classification to a classification.
|
|
56
|
+
Used to associate products or classifications with categories in the taxonomy.
|
|
57
|
+
|
|
58
|
+
Attributes:
|
|
59
|
+
ClassificationID: ID of the classification being linked
|
|
60
|
+
Type: Optional link type for classification relationships
|
|
61
|
+
QualifierID: Optional qualifier for context/language specificity
|
|
62
|
+
MountLocation: Optional location/context for the classification
|
|
63
|
+
KeyValue: Optional key value reference
|
|
64
|
+
MetaData: Optional metadata for the relationship
|
|
65
|
+
"""
|
|
66
|
+
_GROUP_NAME: Optional[str] = None # Used as child element only
|
|
67
|
+
_TAG_NAME: str = 'ClassificationCrossReference'
|
|
68
|
+
_ATTRIBUTE_NAMES: List[str] = ["ClassificationID", "Type", "QualifierID", "Changed"]
|
|
69
|
+
_TEXT_NAMES: List[str] = []
|
|
70
|
+
_CHILDREN_NAMES: List[str] = ["KeyValue", "MetaData"]
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
class ClassificationReference(BaseObject):
|
|
74
|
+
"""Reference from an asset/product to a classification.
|
|
75
|
+
|
|
76
|
+
This relation uses the ``ClassificationReference`` tag (not
|
|
77
|
+
``ClassificationCrossReference``) and is required for asset-to-classification
|
|
78
|
+
links according to STEP.xsd ``AssetType``.
|
|
79
|
+
"""
|
|
80
|
+
_GROUP_NAME: Optional[str] = None # Used as child element only
|
|
81
|
+
_TAG_NAME: str = 'ClassificationReference'
|
|
82
|
+
_ATTRIBUTE_NAMES: List[str] = ["ClassificationID", "Type", "QualifierID", "Changed"]
|
|
83
|
+
_TEXT_NAMES: List[str] = []
|
|
84
|
+
_CHILDREN_NAMES: List[str] = ["KeyValue", "MetaData"]
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
class EntityCrossReference(BaseObject):
|
|
88
|
+
"""Link between a product/entity and another entity.
|
|
89
|
+
|
|
90
|
+
Represents a relationship from a product or entity to an entity.
|
|
91
|
+
Entities can have various types of links to other entities for flexible data modeling.
|
|
92
|
+
|
|
93
|
+
Attributes:
|
|
94
|
+
EntityID: ID of the entity being linked
|
|
95
|
+
Type: Optional link type for entity relationships
|
|
96
|
+
QualifierID: Optional qualifier for context/language specificity
|
|
97
|
+
MountLocation: Optional location/context for the entity link
|
|
98
|
+
KeyValue: Optional key value reference
|
|
99
|
+
MetaData: Optional metadata for the relationship
|
|
100
|
+
"""
|
|
101
|
+
_GROUP_NAME: Optional[str] = None # Used as child element only
|
|
102
|
+
_TAG_NAME: str = 'EntityCrossReference'
|
|
103
|
+
_ATTRIBUTE_NAMES: List[str] = ["EntityID", "Type", "QualifierID", "Changed"]
|
|
104
|
+
_TEXT_NAMES: List[str] = []
|
|
105
|
+
_CHILDREN_NAMES: List[str] = ["KeyValue", "MetaData"]
|
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
"""Phase 7: Replacement Rules for bulk update operations.
|
|
2
|
+
|
|
3
|
+
Handles ReplaceValues, ReplaceCrossReferences, ReplaceAttributeLinks,
|
|
4
|
+
ReplaceClassificationReferences and their container classes for Products,
|
|
5
|
+
Classifications, Entities, and Assets.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from typing import List, Optional, TYPE_CHECKING
|
|
9
|
+
from . import BaseObject
|
|
10
|
+
|
|
11
|
+
if TYPE_CHECKING:
|
|
12
|
+
pass
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class ReplaceValues(BaseObject):
|
|
16
|
+
"""Replacement instruction for attribute values.
|
|
17
|
+
|
|
18
|
+
Child-only element used within ReplaceProducts, ReplaceClassifications,
|
|
19
|
+
ReplaceAssets, ReplaceEntities containers.
|
|
20
|
+
|
|
21
|
+
Attributes:
|
|
22
|
+
AttributeID: Reference to attribute being replaced
|
|
23
|
+
AttributeGroupID: Optional reference to attribute group
|
|
24
|
+
ContextID: Optional context for the replacement
|
|
25
|
+
"""
|
|
26
|
+
_GROUP_NAME: Optional[str] = None
|
|
27
|
+
_TAG_NAME: str = 'ReplaceValues'
|
|
28
|
+
_ATTRIBUTE_NAMES: List[str] = ["AttributeID", "AttributeGroupID", "ContextID"]
|
|
29
|
+
_TEXT_NAMES: List[str] = []
|
|
30
|
+
_CHILDREN_NAMES: List[str] = []
|
|
31
|
+
|
|
32
|
+
def __init__(self, attribute_id: Optional[str] = None,
|
|
33
|
+
attribute_group_id: Optional[str] = None,
|
|
34
|
+
context_id: Optional[str] = None):
|
|
35
|
+
data = {}
|
|
36
|
+
if attribute_id is not None:
|
|
37
|
+
data["AttributeID"] = attribute_id
|
|
38
|
+
if attribute_group_id is not None:
|
|
39
|
+
data["AttributeGroupID"] = attribute_group_id
|
|
40
|
+
if context_id is not None:
|
|
41
|
+
data["ContextID"] = context_id
|
|
42
|
+
super().__init__(data)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
class ReplaceCrossReferences(BaseObject):
|
|
46
|
+
"""Replacement instruction for cross-references.
|
|
47
|
+
|
|
48
|
+
Child-only element used within ReplaceProducts, ReplaceClassifications,
|
|
49
|
+
ReplaceAssets, ReplaceEntities containers.
|
|
50
|
+
|
|
51
|
+
Attributes:
|
|
52
|
+
CrossReferenceID: Reference to the cross-reference being replaced
|
|
53
|
+
ContextID: Optional context for the replacement
|
|
54
|
+
MountLocation: Optional mount point location
|
|
55
|
+
"""
|
|
56
|
+
_GROUP_NAME: Optional[str] = None
|
|
57
|
+
_TAG_NAME: str = 'ReplaceCrossReferences'
|
|
58
|
+
_ATTRIBUTE_NAMES: List[str] = ["CrossReferenceID", "ContextID", "MountLocation"]
|
|
59
|
+
_TEXT_NAMES: List[str] = []
|
|
60
|
+
_CHILDREN_NAMES: List[str] = []
|
|
61
|
+
|
|
62
|
+
def __init__(self, cross_reference_id: Optional[str] = None,
|
|
63
|
+
context_id: Optional[str] = None,
|
|
64
|
+
mount_location: Optional[str] = None):
|
|
65
|
+
data = {}
|
|
66
|
+
if cross_reference_id is not None:
|
|
67
|
+
data["CrossReferenceID"] = cross_reference_id
|
|
68
|
+
if context_id is not None:
|
|
69
|
+
data["ContextID"] = context_id
|
|
70
|
+
if mount_location is not None:
|
|
71
|
+
data["MountLocation"] = mount_location
|
|
72
|
+
super().__init__(data)
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
class ReplaceAttributeLinks(BaseObject):
|
|
76
|
+
"""Replacement instruction for attribute links.
|
|
77
|
+
|
|
78
|
+
Child-only element used within ReplaceProducts, ReplaceClassifications
|
|
79
|
+
containers.
|
|
80
|
+
|
|
81
|
+
Attributes:
|
|
82
|
+
AttributeID: Reference to the attribute link being replaced
|
|
83
|
+
"""
|
|
84
|
+
_GROUP_NAME: Optional[str] = None
|
|
85
|
+
_TAG_NAME: str = 'ReplaceAttributeLinks'
|
|
86
|
+
_ATTRIBUTE_NAMES: List[str] = ["AttributeID"]
|
|
87
|
+
_TEXT_NAMES: List[str] = []
|
|
88
|
+
_CHILDREN_NAMES: List[str] = []
|
|
89
|
+
|
|
90
|
+
def __init__(self, attribute_id: Optional[str] = None):
|
|
91
|
+
data = {}
|
|
92
|
+
if attribute_id is not None:
|
|
93
|
+
data["AttributeID"] = attribute_id
|
|
94
|
+
super().__init__(data)
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
class ReplaceClassificationReferences(BaseObject):
|
|
98
|
+
"""Replacement instruction for classification references.
|
|
99
|
+
|
|
100
|
+
Child-only element used within ReplaceProducts, ReplaceClassifications
|
|
101
|
+
containers.
|
|
102
|
+
"""
|
|
103
|
+
_GROUP_NAME: Optional[str] = None
|
|
104
|
+
_TAG_NAME: str = 'ReplaceClassificationReferences'
|
|
105
|
+
_ATTRIBUTE_NAMES: List[str] = []
|
|
106
|
+
_TEXT_NAMES: List[str] = []
|
|
107
|
+
_CHILDREN_NAMES: List[str] = []
|
|
108
|
+
|
|
109
|
+
def __init__(self):
|
|
110
|
+
super().__init__({})
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
class ReplaceProducts(BaseObject):
|
|
114
|
+
"""Container for replacement rules for a product.
|
|
115
|
+
|
|
116
|
+
Used within ReplacementRules section. Supports four types of
|
|
117
|
+
replacements: ReplaceValues, ReplaceCrossReferences, ReplaceAttributeLinks,
|
|
118
|
+
ReplaceClassificationReferences.
|
|
119
|
+
|
|
120
|
+
Convenience Methods:
|
|
121
|
+
add_replace_values(attribute_id, attribute_group_id, context_id)
|
|
122
|
+
add_replace_cross_references(cross_reference_id, context_id, mount_location)
|
|
123
|
+
add_replace_attribute_links(attribute_id)
|
|
124
|
+
add_replace_classification_references()
|
|
125
|
+
"""
|
|
126
|
+
_GROUP_NAME: Optional[str] = None # Child-only within ReplacementRules
|
|
127
|
+
_TAG_NAME: str = 'Products'
|
|
128
|
+
_ATTRIBUTE_NAMES: List[str] = []
|
|
129
|
+
_TEXT_NAMES: List[str] = []
|
|
130
|
+
_CHILDREN_NAMES: List[str] = ["ReplaceValues", "ReplaceCrossReferences",
|
|
131
|
+
"ReplaceAttributeLinks", "ReplaceClassificationReferences"]
|
|
132
|
+
|
|
133
|
+
def __init__(self):
|
|
134
|
+
super().__init__({})
|
|
135
|
+
self.ReplaceValues: List[BaseObject] = []
|
|
136
|
+
self.ReplaceCrossReferences: List[BaseObject] = []
|
|
137
|
+
self.ReplaceAttributeLinks: List[BaseObject] = []
|
|
138
|
+
self.ReplaceClassificationReferences: List[BaseObject] = []
|
|
139
|
+
|
|
140
|
+
def add_replace_values(self, attribute_id: Optional[str] = None,
|
|
141
|
+
attribute_group_id: Optional[str] = None,
|
|
142
|
+
context_id: Optional[str] = None) -> ReplaceValues:
|
|
143
|
+
"""Add ReplaceValues instruction using parameters.
|
|
144
|
+
|
|
145
|
+
Args:
|
|
146
|
+
attribute_id: Reference to attribute being replaced
|
|
147
|
+
attribute_group_id: Optional reference to attribute group
|
|
148
|
+
context_id: Optional context for the replacement
|
|
149
|
+
|
|
150
|
+
Returns:
|
|
151
|
+
ReplaceValues: Created instruction object
|
|
152
|
+
"""
|
|
153
|
+
rv = ReplaceValues(attribute_id, attribute_group_id, context_id)
|
|
154
|
+
self.ReplaceValues.append(rv)
|
|
155
|
+
return rv
|
|
156
|
+
|
|
157
|
+
def add_replace_values_obj(self, replace_values: ReplaceValues) -> ReplaceValues:
|
|
158
|
+
"""Add ReplaceValues instruction using object.
|
|
159
|
+
|
|
160
|
+
Args:
|
|
161
|
+
replace_values: ReplaceValues object to add
|
|
162
|
+
|
|
163
|
+
Returns:
|
|
164
|
+
ReplaceValues: Added instruction object
|
|
165
|
+
"""
|
|
166
|
+
self.ReplaceValues.append(replace_values)
|
|
167
|
+
return replace_values
|
|
168
|
+
|
|
169
|
+
def add_replace_cross_references(self, cross_reference_id: Optional[str] = None,
|
|
170
|
+
context_id: Optional[str] = None,
|
|
171
|
+
mount_location: Optional[str] = None) -> ReplaceCrossReferences:
|
|
172
|
+
"""Add ReplaceCrossReferences instruction using parameters.
|
|
173
|
+
|
|
174
|
+
Args:
|
|
175
|
+
cross_reference_id: Reference to the cross-reference being replaced
|
|
176
|
+
context_id: Optional context for the replacement
|
|
177
|
+
mount_location: Optional mount point location
|
|
178
|
+
|
|
179
|
+
Returns:
|
|
180
|
+
ReplaceCrossReferences: Created instruction object
|
|
181
|
+
"""
|
|
182
|
+
rcr = ReplaceCrossReferences(cross_reference_id, context_id, mount_location)
|
|
183
|
+
self.ReplaceCrossReferences.append(rcr)
|
|
184
|
+
return rcr
|
|
185
|
+
|
|
186
|
+
def add_replace_cross_references_obj(self, replace_cross_ref: ReplaceCrossReferences) -> ReplaceCrossReferences:
|
|
187
|
+
"""Add ReplaceCrossReferences instruction using object.
|
|
188
|
+
|
|
189
|
+
Args:
|
|
190
|
+
replace_cross_ref: ReplaceCrossReferences object to add
|
|
191
|
+
|
|
192
|
+
Returns:
|
|
193
|
+
ReplaceCrossReferences: Added instruction object
|
|
194
|
+
"""
|
|
195
|
+
self.ReplaceCrossReferences.append(replace_cross_ref)
|
|
196
|
+
return replace_cross_ref
|
|
197
|
+
|
|
198
|
+
def add_replace_attribute_links(self, attribute_id: Optional[str] = None) -> ReplaceAttributeLinks:
|
|
199
|
+
"""Add ReplaceAttributeLinks instruction using parameters.
|
|
200
|
+
|
|
201
|
+
Args:
|
|
202
|
+
attribute_id: Reference to the attribute link being replaced
|
|
203
|
+
|
|
204
|
+
Returns:
|
|
205
|
+
ReplaceAttributeLinks: Created instruction object
|
|
206
|
+
"""
|
|
207
|
+
ral = ReplaceAttributeLinks(attribute_id)
|
|
208
|
+
self.ReplaceAttributeLinks.append(ral)
|
|
209
|
+
return ral
|
|
210
|
+
|
|
211
|
+
def add_replace_attribute_links_obj(self, replace_attr_links: ReplaceAttributeLinks) -> ReplaceAttributeLinks:
|
|
212
|
+
"""Add ReplaceAttributeLinks instruction using object.
|
|
213
|
+
|
|
214
|
+
Args:
|
|
215
|
+
replace_attr_links: ReplaceAttributeLinks object to add
|
|
216
|
+
|
|
217
|
+
Returns:
|
|
218
|
+
ReplaceAttributeLinks: Added instruction object
|
|
219
|
+
"""
|
|
220
|
+
self.ReplaceAttributeLinks.append(replace_attr_links)
|
|
221
|
+
return replace_attr_links
|
|
222
|
+
|
|
223
|
+
def add_replace_classification_references(self) -> ReplaceClassificationReferences:
|
|
224
|
+
"""Add ReplaceClassificationReferences instruction.
|
|
225
|
+
|
|
226
|
+
Returns:
|
|
227
|
+
ReplaceClassificationReferences: Created instruction object
|
|
228
|
+
"""
|
|
229
|
+
rcr = ReplaceClassificationReferences()
|
|
230
|
+
self.ReplaceClassificationReferences.append(rcr)
|
|
231
|
+
return rcr
|
|
232
|
+
|
|
233
|
+
def add_replace_classification_references_obj(self, replace_class_refs: ReplaceClassificationReferences) -> ReplaceClassificationReferences:
|
|
234
|
+
"""Add ReplaceClassificationReferences instruction using object.
|
|
235
|
+
|
|
236
|
+
Args:
|
|
237
|
+
replace_class_refs: ReplaceClassificationReferences object to add
|
|
238
|
+
|
|
239
|
+
Returns:
|
|
240
|
+
ReplaceClassificationReferences: Added instruction object
|
|
241
|
+
"""
|
|
242
|
+
self.ReplaceClassificationReferences.append(replace_class_refs)
|
|
243
|
+
return replace_class_refs
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
class ReplaceClassifications(BaseObject):
|
|
247
|
+
"""Container for replacement rules for classifications.
|
|
248
|
+
|
|
249
|
+
Supports ReplaceValues, ReplaceCrossReferences, and ReplaceAttributeLinks.
|
|
250
|
+
Similar to ReplaceProducts but without ReplaceClassificationReferences.
|
|
251
|
+
|
|
252
|
+
Convenience Methods:
|
|
253
|
+
add_replace_values(attribute_id, attribute_group_id, context_id)
|
|
254
|
+
add_replace_cross_references(cross_reference_id, context_id, mount_location)
|
|
255
|
+
add_replace_attribute_links(attribute_id)
|
|
256
|
+
"""
|
|
257
|
+
_GROUP_NAME: Optional[str] = None # Child-only within ReplacementRules
|
|
258
|
+
_TAG_NAME: str = 'Classifications'
|
|
259
|
+
_ATTRIBUTE_NAMES: List[str] = []
|
|
260
|
+
_TEXT_NAMES: List[str] = []
|
|
261
|
+
_CHILDREN_NAMES: List[str] = ["ReplaceValues", "ReplaceCrossReferences",
|
|
262
|
+
"ReplaceAttributeLinks"]
|
|
263
|
+
|
|
264
|
+
def __init__(self):
|
|
265
|
+
super().__init__({})
|
|
266
|
+
self.ReplaceValues: List[BaseObject] = []
|
|
267
|
+
self.ReplaceCrossReferences: List[BaseObject] = []
|
|
268
|
+
self.ReplaceAttributeLinks: List[BaseObject] = []
|
|
269
|
+
|
|
270
|
+
def add_replace_values(self, attribute_id: Optional[str] = None,
|
|
271
|
+
attribute_group_id: Optional[str] = None,
|
|
272
|
+
context_id: Optional[str] = None) -> ReplaceValues:
|
|
273
|
+
"""Add ReplaceValues instruction using parameters."""
|
|
274
|
+
rv = ReplaceValues(attribute_id, attribute_group_id, context_id)
|
|
275
|
+
self.ReplaceValues.append(rv)
|
|
276
|
+
return rv
|
|
277
|
+
|
|
278
|
+
def add_replace_values_obj(self, replace_values: ReplaceValues) -> ReplaceValues:
|
|
279
|
+
"""Add ReplaceValues instruction using object."""
|
|
280
|
+
self.ReplaceValues.append(replace_values)
|
|
281
|
+
return replace_values
|
|
282
|
+
|
|
283
|
+
def add_replace_cross_references(self, cross_reference_id: Optional[str] = None,
|
|
284
|
+
context_id: Optional[str] = None,
|
|
285
|
+
mount_location: Optional[str] = None) -> ReplaceCrossReferences:
|
|
286
|
+
"""Add ReplaceCrossReferences instruction using parameters."""
|
|
287
|
+
rcr = ReplaceCrossReferences(cross_reference_id, context_id, mount_location)
|
|
288
|
+
self.ReplaceCrossReferences.append(rcr)
|
|
289
|
+
return rcr
|
|
290
|
+
|
|
291
|
+
def add_replace_cross_references_obj(self, replace_cross_ref: ReplaceCrossReferences) -> ReplaceCrossReferences:
|
|
292
|
+
"""Add ReplaceCrossReferences instruction using object."""
|
|
293
|
+
self.ReplaceCrossReferences.append(replace_cross_ref)
|
|
294
|
+
return replace_cross_ref
|
|
295
|
+
|
|
296
|
+
def add_replace_attribute_links(self, attribute_id: Optional[str] = None) -> ReplaceAttributeLinks:
|
|
297
|
+
"""Add ReplaceAttributeLinks instruction using parameters."""
|
|
298
|
+
ral = ReplaceAttributeLinks(attribute_id)
|
|
299
|
+
self.ReplaceAttributeLinks.append(ral)
|
|
300
|
+
return ral
|
|
301
|
+
|
|
302
|
+
def add_replace_attribute_links_obj(self, replace_attr_links: ReplaceAttributeLinks) -> ReplaceAttributeLinks:
|
|
303
|
+
"""Add ReplaceAttributeLinks instruction using object."""
|
|
304
|
+
self.ReplaceAttributeLinks.append(replace_attr_links)
|
|
305
|
+
return replace_attr_links
|
|
306
|
+
|
|
307
|
+
|
|
308
|
+
class ReplaceEntities(BaseObject):
|
|
309
|
+
"""Container for replacement rules for entities.
|
|
310
|
+
|
|
311
|
+
Supports ReplaceValues and ReplaceCrossReferences (no attribute links or
|
|
312
|
+
classification references for entities).
|
|
313
|
+
|
|
314
|
+
Convenience Methods:
|
|
315
|
+
add_replace_values(attribute_id, attribute_group_id, context_id)
|
|
316
|
+
add_replace_cross_references(cross_reference_id, context_id, mount_location)
|
|
317
|
+
"""
|
|
318
|
+
_GROUP_NAME: Optional[str] = None # Child-only within ReplacementRules
|
|
319
|
+
_TAG_NAME: str = 'Entities'
|
|
320
|
+
_ATTRIBUTE_NAMES: List[str] = []
|
|
321
|
+
_TEXT_NAMES: List[str] = []
|
|
322
|
+
_CHILDREN_NAMES: List[str] = ["ReplaceValues", "ReplaceCrossReferences"]
|
|
323
|
+
|
|
324
|
+
def __init__(self):
|
|
325
|
+
super().__init__({})
|
|
326
|
+
self.ReplaceValues: List[BaseObject] = []
|
|
327
|
+
self.ReplaceCrossReferences: List[BaseObject] = []
|
|
328
|
+
|
|
329
|
+
def add_replace_values(self, attribute_id: Optional[str] = None,
|
|
330
|
+
attribute_group_id: Optional[str] = None,
|
|
331
|
+
context_id: Optional[str] = None) -> ReplaceValues:
|
|
332
|
+
"""Add ReplaceValues instruction using parameters."""
|
|
333
|
+
rv = ReplaceValues(attribute_id, attribute_group_id, context_id)
|
|
334
|
+
self.ReplaceValues.append(rv)
|
|
335
|
+
return rv
|
|
336
|
+
|
|
337
|
+
def add_replace_values_obj(self, replace_values: ReplaceValues) -> ReplaceValues:
|
|
338
|
+
"""Add ReplaceValues instruction using object."""
|
|
339
|
+
self.ReplaceValues.append(replace_values)
|
|
340
|
+
return replace_values
|
|
341
|
+
|
|
342
|
+
def add_replace_cross_references(self, cross_reference_id: Optional[str] = None,
|
|
343
|
+
context_id: Optional[str] = None,
|
|
344
|
+
mount_location: Optional[str] = None) -> ReplaceCrossReferences:
|
|
345
|
+
"""Add ReplaceCrossReferences instruction using parameters."""
|
|
346
|
+
rcr = ReplaceCrossReferences(cross_reference_id, context_id, mount_location)
|
|
347
|
+
self.ReplaceCrossReferences.append(rcr)
|
|
348
|
+
return rcr
|
|
349
|
+
|
|
350
|
+
def add_replace_cross_references_obj(self, replace_cross_ref: ReplaceCrossReferences) -> ReplaceCrossReferences:
|
|
351
|
+
"""Add ReplaceCrossReferences instruction using object."""
|
|
352
|
+
self.ReplaceCrossReferences.append(replace_cross_ref)
|
|
353
|
+
return replace_cross_ref
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
class ReplaceAssets(BaseObject):
|
|
357
|
+
"""Container for replacement rules for assets.
|
|
358
|
+
|
|
359
|
+
Supports ReplaceValues and ReplaceCrossReferences (no attribute links or
|
|
360
|
+
classification references for assets).
|
|
361
|
+
|
|
362
|
+
Convenience Methods:
|
|
363
|
+
add_replace_values(attribute_id, attribute_group_id, context_id)
|
|
364
|
+
add_replace_cross_references(cross_reference_id, context_id, mount_location)
|
|
365
|
+
"""
|
|
366
|
+
_GROUP_NAME: Optional[str] = None # Child-only within ReplacementRules
|
|
367
|
+
_TAG_NAME: str = 'Assets'
|
|
368
|
+
_ATTRIBUTE_NAMES: List[str] = []
|
|
369
|
+
_TEXT_NAMES: List[str] = []
|
|
370
|
+
_CHILDREN_NAMES: List[str] = ["ReplaceValues", "ReplaceCrossReferences"]
|
|
371
|
+
|
|
372
|
+
def __init__(self):
|
|
373
|
+
super().__init__({})
|
|
374
|
+
self.ReplaceValues: List[BaseObject] = []
|
|
375
|
+
self.ReplaceCrossReferences: List[BaseObject] = []
|
|
376
|
+
|
|
377
|
+
def add_replace_values(self, attribute_id: Optional[str] = None,
|
|
378
|
+
attribute_group_id: Optional[str] = None,
|
|
379
|
+
context_id: Optional[str] = None) -> ReplaceValues:
|
|
380
|
+
"""Add ReplaceValues instruction using parameters."""
|
|
381
|
+
rv = ReplaceValues(attribute_id, attribute_group_id, context_id)
|
|
382
|
+
self.ReplaceValues.append(rv)
|
|
383
|
+
return rv
|
|
384
|
+
|
|
385
|
+
def add_replace_values_obj(self, replace_values: ReplaceValues) -> ReplaceValues:
|
|
386
|
+
"""Add ReplaceValues instruction using object."""
|
|
387
|
+
self.ReplaceValues.append(replace_values)
|
|
388
|
+
return replace_values
|
|
389
|
+
|
|
390
|
+
def add_replace_cross_references(self, cross_reference_id: Optional[str] = None,
|
|
391
|
+
context_id: Optional[str] = None,
|
|
392
|
+
mount_location: Optional[str] = None) -> ReplaceCrossReferences:
|
|
393
|
+
"""Add ReplaceCrossReferences instruction using parameters."""
|
|
394
|
+
rcr = ReplaceCrossReferences(cross_reference_id, context_id, mount_location)
|
|
395
|
+
self.ReplaceCrossReferences.append(rcr)
|
|
396
|
+
return rcr
|
|
397
|
+
|
|
398
|
+
def add_replace_cross_references_obj(self, replace_cross_ref: ReplaceCrossReferences) -> ReplaceCrossReferences:
|
|
399
|
+
"""Add ReplaceCrossReferences instruction using object."""
|
|
400
|
+
self.ReplaceCrossReferences.append(replace_cross_ref)
|
|
401
|
+
return replace_cross_ref
|
|
402
|
+
|
|
403
|
+
|
|
404
|
+
class ReplaceAttributes(BaseObject):
|
|
405
|
+
"""Container for replacement rules for attributes (empty container).
|
|
406
|
+
|
|
407
|
+
Currently a simple container with no child elements defined in the schema.
|
|
408
|
+
Provides expansion point for future attribute-specific replacements.
|
|
409
|
+
"""
|
|
410
|
+
_GROUP_NAME: Optional[str] = None # Child-only within ReplacementRules
|
|
411
|
+
_TAG_NAME: str = 'Attributes'
|
|
412
|
+
_ATTRIBUTE_NAMES: List[str] = []
|
|
413
|
+
_TEXT_NAMES: List[str] = []
|
|
414
|
+
_CHILDREN_NAMES: List[str] = []
|
|
415
|
+
|
|
416
|
+
def __init__(self):
|
|
417
|
+
super().__init__({})
|