armodel 1.7.9__py3-none-any.whl → 1.8.1__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.
- armodel/cli/arxml_format_cli.py +1 -0
- armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +50 -12
- armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +14 -14
- armodel/models/M2/AUTOSARTemplates/CommonStructure/FlatMap.py +2 -3
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +1 -1
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +36 -34
- armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +1 -1
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +4 -4
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__init__.py +3 -3
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +5 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/ExecutionOrderConstraint.py +3 -3
- armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingExtensions.py +3 -3
- armodel/models/M2/AUTOSARTemplates/ECUCDescriptionTemplate.py +86 -9
- armodel/models/M2/AUTOSARTemplates/ECUCParameterDefTemplate.py +1249 -0
- armodel/models/M2/AUTOSARTemplates/GenericStructure/AbstractStructure.py +13 -10
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +238 -225
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ArObject.py +5 -4
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +46 -25
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +38 -3
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +18 -20
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +23 -19
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/EndToEndProtection.py +4 -4
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +71 -27
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +27 -17
- armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +172 -128
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +11 -10
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +11 -11
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +16 -10
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +2 -2
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +6 -6
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/RteEventToOsTaskMapping.py +35 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/SWmapping.py +25 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/SecureCommunication.py +83 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +90 -38
- armodel/models/M2/MSR/AsamHdo/AdminData.py +101 -8
- armodel/models/__init__.py +2 -0
- armodel/models/utils/__init__.py +0 -0
- armodel/models/utils/uuid_mgr.py +23 -0
- armodel/parser/abstract_arxml_parser.py +13 -5
- armodel/parser/arxml_parser.py +412 -85
- armodel/tests/test_armodel/models/test_ECUCParameterDefTemplate.py +116 -0
- armodel/tests/test_armodel/models/test_Identifiable.py +85 -0
- armodel/tests/test_armodel/models/test_ar_object.py +85 -86
- armodel/tests/test_armodel/models/test_ar_package.py +70 -70
- armodel/tests/test_armodel/models/test_ar_ref.py +36 -36
- armodel/tests/test_armodel/models/test_common_structure.py +37 -35
- armodel/tests/test_armodel/models/test_datatype.py +140 -142
- armodel/tests/test_armodel/models/test_general_structure.py +19 -18
- armodel/tests/test_armodel/models/test_port_interface.py +2 -6
- armodel/tests/test_armodel/parser/test_arxml_parser.py +8 -8
- armodel/writer/abstract_arxml_writer.py +6 -2
- armodel/writer/arxml_writer.py +414 -57
- {armodel-1.7.9.dist-info → armodel-1.8.1.dist-info}/METADATA +31 -1
- {armodel-1.7.9.dist-info → armodel-1.8.1.dist-info}/RECORD +58 -51
- {armodel-1.7.9.dist-info → armodel-1.8.1.dist-info}/LICENSE +0 -0
- {armodel-1.7.9.dist-info → armodel-1.8.1.dist-info}/WHEEL +0 -0
- {armodel-1.7.9.dist-info → armodel-1.8.1.dist-info}/entry_points.txt +0 -0
- {armodel-1.7.9.dist-info → armodel-1.8.1.dist-info}/top_level.txt +0 -0
|
@@ -1,21 +1,116 @@
|
|
|
1
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import DateTime, NameToken, RevisionLabelString, String
|
|
1
2
|
from ....M2.MSR.Documentation.TextModel.LanguageDataModel import LEnum
|
|
2
|
-
from ....M2.MSR.Documentation.TextModel.MultilanguageData import MultiLanguagePlainText
|
|
3
|
+
from ....M2.MSR.Documentation.TextModel.MultilanguageData import MultiLanguageOverviewParagraph, MultiLanguagePlainText
|
|
3
4
|
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
4
5
|
from typing import List
|
|
5
6
|
|
|
7
|
+
|
|
8
|
+
class Modification(ARObject):
|
|
9
|
+
def __init__(self):
|
|
10
|
+
super().__init__()
|
|
11
|
+
|
|
12
|
+
self.change: MultiLanguageOverviewParagraph = None
|
|
13
|
+
self.reason: MultiLanguageOverviewParagraph = None
|
|
14
|
+
|
|
15
|
+
def getChange(self) -> MultiLanguageOverviewParagraph:
|
|
16
|
+
return self.change
|
|
17
|
+
|
|
18
|
+
def setChange(self, value: MultiLanguageOverviewParagraph):
|
|
19
|
+
if value is not None:
|
|
20
|
+
self.change = value
|
|
21
|
+
return self
|
|
22
|
+
|
|
23
|
+
def getReason(self) -> MultiLanguageOverviewParagraph:
|
|
24
|
+
return self.reason
|
|
25
|
+
|
|
26
|
+
def setReason(self, value: MultiLanguageOverviewParagraph):
|
|
27
|
+
if value is not None:
|
|
28
|
+
self.reason = value
|
|
29
|
+
return self
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class DocRevision(ARObject):
|
|
33
|
+
def __init__(self):
|
|
34
|
+
super().__init__()
|
|
35
|
+
|
|
36
|
+
self.date: DateTime = None
|
|
37
|
+
self.issuedBy: String = None
|
|
38
|
+
self.modifications: List[Modification] = []
|
|
39
|
+
self.revisionLabel: RevisionLabelString = None
|
|
40
|
+
self.revisionLabelP1: RevisionLabelString = None
|
|
41
|
+
self.revisionLabelP2: RevisionLabelString = None
|
|
42
|
+
self.state: NameToken = None
|
|
43
|
+
|
|
44
|
+
def getDate(self) -> DateTime:
|
|
45
|
+
return self.date
|
|
46
|
+
|
|
47
|
+
def setDate(self, value: DateTime):
|
|
48
|
+
if value is not None:
|
|
49
|
+
self.date = value
|
|
50
|
+
return self
|
|
51
|
+
|
|
52
|
+
def getIssuedBy(self) -> String:
|
|
53
|
+
return self.issuedBy
|
|
54
|
+
|
|
55
|
+
def setIssuedBy(self, value: String):
|
|
56
|
+
if value is not None:
|
|
57
|
+
self.issuedBy = value
|
|
58
|
+
return self
|
|
59
|
+
|
|
60
|
+
def getModifications(self) -> List[Modification]:
|
|
61
|
+
return self.modifications
|
|
62
|
+
|
|
63
|
+
def addModification(self, value: List[Modification]):
|
|
64
|
+
if value is not None:
|
|
65
|
+
self.modifications.append(value)
|
|
66
|
+
return self
|
|
67
|
+
|
|
68
|
+
def getRevisionLabel(self) -> RevisionLabelString:
|
|
69
|
+
return self.revisionLabel
|
|
70
|
+
|
|
71
|
+
def setRevisionLabel(self, value: RevisionLabelString):
|
|
72
|
+
if value is not None:
|
|
73
|
+
self.revisionLabel = value
|
|
74
|
+
return self
|
|
75
|
+
|
|
76
|
+
def getRevisionLabelP1(self) -> RevisionLabelString:
|
|
77
|
+
return self.revisionLabelP1
|
|
78
|
+
|
|
79
|
+
def setRevisionLabelP1(self, value: RevisionLabelString):
|
|
80
|
+
if value is not None:
|
|
81
|
+
self.revisionLabelP1 = value
|
|
82
|
+
return self
|
|
83
|
+
|
|
84
|
+
def getRevisionLabelP2(self) -> RevisionLabelString:
|
|
85
|
+
return self.revisionLabelP2
|
|
86
|
+
|
|
87
|
+
def setRevisionLabelP2(self, value: RevisionLabelString):
|
|
88
|
+
if value is not None:
|
|
89
|
+
self.revisionLabelP2 = value
|
|
90
|
+
return self
|
|
91
|
+
|
|
92
|
+
def getState(self) -> NameToken:
|
|
93
|
+
return self.state
|
|
94
|
+
|
|
95
|
+
def setState(self, value: NameToken):
|
|
96
|
+
if value is not None:
|
|
97
|
+
self.state = value
|
|
98
|
+
return self
|
|
99
|
+
|
|
100
|
+
|
|
6
101
|
class AdminData(ARObject):
|
|
7
102
|
def __init__(self):
|
|
8
103
|
super().__init__()
|
|
9
104
|
|
|
10
|
-
self.DocRevisions
|
|
11
|
-
self.language = None
|
|
12
|
-
self.sdgs = []
|
|
13
|
-
self.usedLanguages = None
|
|
105
|
+
self.DocRevisions: List[DocRevision] = []
|
|
106
|
+
self.language: LEnum = None
|
|
107
|
+
self.sdgs: List = []
|
|
108
|
+
self.usedLanguages: MultiLanguagePlainText = None
|
|
14
109
|
|
|
15
110
|
def getDocRevisions(self):
|
|
16
111
|
return self.DocRevisions
|
|
17
112
|
|
|
18
|
-
def
|
|
113
|
+
def addDocRevision(self, value: DocRevision):
|
|
19
114
|
self.DocRevisions.append(value)
|
|
20
115
|
return self
|
|
21
116
|
|
|
@@ -39,5 +134,3 @@ class AdminData(ARObject):
|
|
|
39
134
|
def setUsedLanguages(self, value):
|
|
40
135
|
self.usedLanguages = value
|
|
41
136
|
return self
|
|
42
|
-
|
|
43
|
-
|
armodel/models/__init__.py
CHANGED
|
@@ -63,9 +63,11 @@ from .M2.AUTOSARTemplates.SystemTemplate.DataMapping import *
|
|
|
63
63
|
from .M2.AUTOSARTemplates.SystemTemplate.DiagnosticConnection import *
|
|
64
64
|
from .M2.AUTOSARTemplates.SystemTemplate.EcuResourceMapping import *
|
|
65
65
|
from .M2.AUTOSARTemplates.SystemTemplate.InstanceRefs import *
|
|
66
|
+
from .M2.AUTOSARTemplates.SystemTemplate.RteEventToOsTaskMapping import *
|
|
66
67
|
from .M2.AUTOSARTemplates.SystemTemplate.NetworkManagement import *
|
|
67
68
|
from .M2.AUTOSARTemplates.SystemTemplate.TransportProtocols import *
|
|
68
69
|
from .M2.AUTOSARTemplates.SystemTemplate.SWmapping import *
|
|
70
|
+
from .M2.AUTOSARTemplates.SystemTemplate.SecureCommunication import *
|
|
69
71
|
from .M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Multiplatform import *
|
|
70
72
|
from .M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import *
|
|
71
73
|
from .M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanTopology import *
|
|
File without changes
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from typing import Dict, List
|
|
2
|
+
|
|
3
|
+
from ..M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class UUIDMgr:
|
|
7
|
+
def __init__(self):
|
|
8
|
+
self.uuid_object_mappings = {} # type: Dict[str, List[ARObject]]
|
|
9
|
+
|
|
10
|
+
def addObject(self, obj: ARObject):
|
|
11
|
+
if obj.uuid is None:
|
|
12
|
+
return
|
|
13
|
+
if obj.uuid not in self.uuid_object_mappings:
|
|
14
|
+
self.uuid_object_mappings[obj.uuid] = []
|
|
15
|
+
|
|
16
|
+
uuid_obj_list = self.uuid_object_mappings[obj.uuid]
|
|
17
|
+
uuid_obj_list.append(obj)
|
|
18
|
+
|
|
19
|
+
def getObjects(self, uuid: str):
|
|
20
|
+
result = []
|
|
21
|
+
if uuid in self.uuid_object_mappings:
|
|
22
|
+
result = self.uuid_object_mappings[uuid]
|
|
23
|
+
return result
|
|
@@ -9,9 +9,9 @@ import xml.etree.ElementTree as ET
|
|
|
9
9
|
from ..models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
|
|
10
10
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
11
11
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
|
|
12
|
-
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARFloat, ARLiteral, ARNumerical, Boolean
|
|
12
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARFloat, ARLiteral, ARNumerical, Boolean, DateTime
|
|
13
13
|
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Integer, PositiveInteger, TimeValue
|
|
14
|
-
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType, Limit
|
|
14
|
+
from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType, Limit, RevisionLabelString
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
class AbstractARXMLParser:
|
|
@@ -84,7 +84,7 @@ class AbstractARXMLParser:
|
|
|
84
84
|
return literal
|
|
85
85
|
self.raiseError("The attribute %s of <%s> has not been defined" % (key, short_name))
|
|
86
86
|
|
|
87
|
-
def getChildElementLiteralValueList(self, element: ET.Element, key: str) ->
|
|
87
|
+
def getChildElementLiteralValueList(self, element: ET.Element, key: str) -> List[ARLiteral]:
|
|
88
88
|
child_elements = self.findall(element, key)
|
|
89
89
|
results = []
|
|
90
90
|
for child_element in child_elements:
|
|
@@ -107,7 +107,7 @@ class AbstractARXMLParser:
|
|
|
107
107
|
literal.setValue(child_element.text)
|
|
108
108
|
return literal
|
|
109
109
|
|
|
110
|
-
def getChildElementOptionalRevisionLabelString(self, element: ET.Element, key: str) ->
|
|
110
|
+
def getChildElementOptionalRevisionLabelString(self, element: ET.Element, key: str) -> RevisionLabelString:
|
|
111
111
|
child_element = self.find(element, key)
|
|
112
112
|
literal = None
|
|
113
113
|
if (child_element is not None) and (child_element.text is not None):
|
|
@@ -115,7 +115,7 @@ class AbstractARXMLParser:
|
|
|
115
115
|
m = re.match(r'[0-9]+\.[0-9]+\.[0-9]+([\._;].*)?', child_element.text)
|
|
116
116
|
if not m:
|
|
117
117
|
raise ValueError("Invalid RevisionLabelString <%s>" % child_element.text)
|
|
118
|
-
literal =
|
|
118
|
+
literal = RevisionLabelString()
|
|
119
119
|
self.readARObjectAttributes(child_element, literal)
|
|
120
120
|
# Patch for empty element <USED-CODE-GENERATOR></USED-CODE-GENERATOR>
|
|
121
121
|
if child_element.text is None:
|
|
@@ -124,6 +124,9 @@ class AbstractARXMLParser:
|
|
|
124
124
|
literal.setValue(child_element.text)
|
|
125
125
|
return literal
|
|
126
126
|
|
|
127
|
+
def getChildElementOptionalDataTime(self, element: ET.Element, key: str) -> DateTime:
|
|
128
|
+
return self.getChildElementOptionalLiteral(element, key)
|
|
129
|
+
|
|
127
130
|
def _convertStringToBooleanValue(self, value: str) -> bool:
|
|
128
131
|
if (value == "true"):
|
|
129
132
|
return True
|
|
@@ -275,8 +278,12 @@ class AbstractARXMLParser:
|
|
|
275
278
|
ar_object.timestamp = self.readElementOptionalAttrib(element, "T") # read the timestamp
|
|
276
279
|
ar_object.uuid = self.readElementOptionalAttrib(element, "UUID") # read the uuid
|
|
277
280
|
|
|
281
|
+
AUTOSAR.getInstance().addARObject(ar_object)
|
|
282
|
+
|
|
278
283
|
# if ar_object.timestamp is not None:
|
|
279
284
|
# self.logger.debug("Timestamp: %s" % ar_object.timestamp)
|
|
285
|
+
|
|
286
|
+
'''
|
|
280
287
|
if ar_object.uuid is not None:
|
|
281
288
|
instance = AUTOSAR.getInstance()
|
|
282
289
|
old_ar_object = instance.getARObjectByUUID(ar_object.uuid)
|
|
@@ -285,6 +292,7 @@ class AbstractARXMLParser:
|
|
|
285
292
|
else:
|
|
286
293
|
instance.addARObject(ar_object)
|
|
287
294
|
# self.logger.debug("UUID: %s" % ar_object.uuid)
|
|
295
|
+
'''
|
|
288
296
|
|
|
289
297
|
def getAUTOSARInfo(self, element: ET.Element, document: AUTOSAR):
|
|
290
298
|
key = "{http://www.w3.org/2001/XMLSchema-instance}schemaLocation"
|