armodel 1.7.0__py3-none-any.whl → 1.7.2__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.
Files changed (47) hide show
  1. armodel/cli/arxml_dump_cli.py +2 -2
  2. armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +53 -16
  3. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +41 -19
  4. armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +14 -14
  5. armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +22 -11
  6. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +26 -9
  7. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +8 -0
  8. armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +711 -27
  9. armodel/models/M2/AUTOSARTemplates/ECUCDescriptionTemplate.py +1 -1
  10. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +91 -14
  11. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +17 -4
  12. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +78 -11
  13. armodel/models/M2/AUTOSARTemplates/GenericStructure/LifeCycles.py +5 -0
  14. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +41 -3
  15. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +53 -15
  16. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +23 -8
  17. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +44 -1
  18. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +46 -5
  19. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +56 -35
  20. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py +1 -1
  21. armodel/models/M2/MSR/AsamHdo/AdminData.py +34 -8
  22. armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +170 -23
  23. armodel/models/M2/MSR/DataDictionary/AuxillaryObjects.py +4 -4
  24. armodel/models/M2/MSR/DataDictionary/RecordLayout.py +130 -37
  25. armodel/models/M2/MSR/Documentation/Annotation.py +1 -1
  26. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/ListElements.py +54 -0
  27. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/PaginationAndView.py +9 -0
  28. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__init__.py +25 -0
  29. armodel/models/M2/MSR/Documentation/TextModel/LanguageDataModel.py +33 -5
  30. armodel/models/M2/MSR/Documentation/TextModel/MultilanguageData.py +15 -2
  31. armodel/models/M2/MSR/Documentation/__init__.py +1 -1
  32. armodel/models/__init__.py +4 -1
  33. armodel/parser/abstract_arxml_parser.py +31 -15
  34. armodel/parser/arxml_parser.py +456 -237
  35. armodel/tests/test_armodel/models/test_ar_ref.py +7 -4
  36. armodel/tests/test_armodel/models/test_datatype.py +4 -4
  37. armodel/tests/test_armodel/models/test_m2_msr.py +5 -5
  38. armodel/tests/test_armodel/parser/test_sw_components.py +10 -1
  39. armodel/tests/test_armodel/parser/test_system.py +0 -1
  40. armodel/writer/abstract_arxml_writer.py +17 -8
  41. armodel/writer/arxml_writer.py +436 -195
  42. {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/METADATA +29 -1
  43. {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/RECORD +47 -43
  44. {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/LICENSE +0 -0
  45. {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/WHEEL +0 -0
  46. {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/entry_points.txt +0 -0
  47. {armodel-1.7.0.dist-info → armodel-1.7.2.dist-info}/top_level.txt +0 -0
@@ -14,13 +14,16 @@ from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArOb
14
14
  class TestARRef:
15
15
  def test_RefType(self):
16
16
  ref_type = RefType()
17
- assert(ref_type.value == "")
18
- assert(ref_type.dest == "")
17
+ assert(ref_type.getBase() == None)
18
+ assert(ref_type.getValue() == None)
19
+ assert(ref_type.getDest() == None)
19
20
 
20
21
  def test_TRefType(self):
21
22
  ref_type = TRefType()
22
- assert(ref_type.value == "")
23
- assert(ref_type.dest == "")
23
+ assert(ref_type.getBase() == None)
24
+ assert(ref_type.getValue() == None)
25
+ assert(ref_type.getDest() == None)
26
+
24
27
 
25
28
  def test_AutosarVariableRef(self):
26
29
  ref_type = AutosarVariableRef()
@@ -180,8 +180,8 @@ class Test_M2_AUTOSARTemplates_SWComponentTemplate_Datatype_Datatypes:
180
180
  assert(isinstance(data_type_map, ARObject))
181
181
  assert(isinstance(data_type_map, DataTypeMap))
182
182
 
183
- assert(data_type_map.application_data_type_ref == None)
184
- assert(data_type_map.implementation_data_type_ref == None)
183
+ assert(data_type_map.applicationDataTypeRef == None)
184
+ assert(data_type_map.implementationDataTypeRef == None)
185
185
 
186
186
  def test_DataTypeMappingSet(self):
187
187
  document = AUTOSAR.getInstance()
@@ -201,7 +201,7 @@ class Test_M2_AUTOSARTemplates_SWComponentTemplate_Datatype_Datatypes:
201
201
 
202
202
  assert(data_type_mapping_set.parent == ar_root)
203
203
  assert(data_type_mapping_set.short_name == "DataTypeMappingSet")
204
- assert(len(data_type_mapping_set._dataTypeMaps) == 0)
204
+ assert(len(data_type_mapping_set.dataTypeMaps) == 0)
205
205
 
206
206
  data_type_map = DataTypeMap()
207
207
  data_type_mapping_set.addDataTypeMap(data_type_map)
@@ -242,7 +242,7 @@ class Test_M2_AUTOSARTemplates_CommonStructure_ImplementationDataTypes:
242
242
  assert(data_type.short_name == "ImplementationDataType")
243
243
  assert(data_type.subElements == [])
244
244
  assert(data_type.symbolProps == None)
245
- assert(data_type._type_emitter == None)
245
+ assert(data_type.typeEmitter == None)
246
246
 
247
247
  element = data_type.createImplementationDataTypeElement("ImplementationDataTypeElement")
248
248
  assert(isinstance(element, ImplementationDataTypeElement))
@@ -18,8 +18,8 @@ class Test_M2_MSR_AsamHdo_ComputationMethod:
18
18
  assert(isinstance(compu, ARObject))
19
19
  assert(isinstance(compu, Compu))
20
20
 
21
- assert(compu.compu_content == None)
22
- assert(compu.compu_default_value == None)
21
+ assert(compu.compuContent == None)
22
+ assert(compu.compuDefaultValue == None)
23
23
 
24
24
  def test_CompuConstContent(self):
25
25
  with pytest.raises(NotImplementedError) as err:
@@ -50,7 +50,7 @@ class Test_M2_MSR_AsamHdo_ComputationMethod:
50
50
  assert(isinstance(compu_const, ARObject))
51
51
  assert(isinstance(compu_const, CompuConst))
52
52
 
53
- assert(compu_const.compu_const_content_type == None)
53
+ assert(compu_const.compuConstContentType == None)
54
54
 
55
55
  def test_CompuScale(self):
56
56
  compu_scale = CompuScale()
@@ -58,7 +58,7 @@ class Test_M2_MSR_AsamHdo_ComputationMethod:
58
58
  assert(isinstance(compu_scale, ARObject))
59
59
  assert(isinstance(compu_scale, CompuScale))
60
60
 
61
- assert(compu_scale.compu_content == None)
61
+ assert(compu_scale.compuContent == None)
62
62
  assert(compu_scale.lowerLimit == None)
63
63
  assert(compu_scale.upperLimit == None)
64
64
  assert(compu_scale.compuInverseValue == None)
@@ -70,7 +70,7 @@ class Test_M2_MSR_AsamHdo_ComputationMethod:
70
70
  assert(isinstance(compu_scales, ARObject))
71
71
  assert(isinstance(compu_scales, CompuScales))
72
72
 
73
- assert(len(compu_scales.compu_scales) == 0)
73
+ assert(len(compu_scales.compuScales) == 0)
74
74
 
75
75
  compu_scale = CompuScale()
76
76
  compu_scales.addCompuScale(compu_scale)
@@ -64,7 +64,16 @@ class TestSWComponents:
64
64
 
65
65
  assert(filecmp.cmp("src/armodel/tests/test_files/BswMMode.arxml", "data/generated_AUTOSAR_Datatypes.arxml", shallow = False) == True)
66
66
 
67
-
67
+ def test_bswm_mode_arxml_loading_and_saving(self):
68
+ document = AUTOSAR.getInstance()
69
+ document.clear()
70
+ parser = ARXMLParser()
71
+ parser.load("test_files/AUTOSAR_MOD_AISpecification_ApplicationDataType_Blueprint.arxml", document)
72
+
73
+ writer = ARXMLWriter()
74
+ writer.save("data/generated_AUTOSAR_MOD_AISpecification_ApplicationDataType_Blueprint.arxml", document)
75
+
76
+ #assert(filecmp.cmp("test_files/AUTOSAR_MOD_AISpecification_ApplicationDataType_Blueprint.arxml", "data/generated_AUTOSAR_MOD_AISpecification_ApplicationDataType_Blueprint.arxml", shallow = False) == True)
68
77
 
69
78
 
70
79
 
@@ -1,5 +1,4 @@
1
1
  import filecmp
2
- from ....models.M2.AUTOSARTemplates.SWComponentTemplate.Components import CompositionSwComponentType
3
2
  from ....writer.arxml_writer import ARXMLWriter
4
3
  from ....parser.arxml_parser import ARXMLParser
5
4
  from ....models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
@@ -8,11 +8,7 @@ import logging
8
8
  import xml.etree.cElementTree as ET
9
9
 
10
10
  from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
11
-
12
- from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARFloat, ARLiteral, ARNumerical, Integer, TimeValue
13
- from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import TRefType
14
-
15
- from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARBoolean
11
+ from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARFloat, ARLiteral, ARNumerical, Integer, TimeValue, RefType, ARBoolean
16
12
 
17
13
  class AbstractARXMLWriter:
18
14
  __metaclass__ = ABCMeta
@@ -43,6 +39,12 @@ class AbstractARXMLWriter:
43
39
  else:
44
40
  raise ValueError(error_msg)
45
41
 
42
+ def notImplemented(self, error_msg):
43
+ if (self.options['warning'] == True):
44
+ self.logger.error(Fore.RED + error_msg + Fore.WHITE)
45
+ else:
46
+ raise NotImplementedError(error_msg)
47
+
46
48
  def setARObjectAttributes(self, element: ET.Element, ar_obj: ARObject):
47
49
  if ar_obj.timestamp is not None:
48
50
  self.logger.debug("Timestamp: %s" % ar_obj.timestamp)
@@ -74,6 +76,9 @@ class AbstractARXMLWriter:
74
76
  def setChildElementOptionalIntegerValue(self, element: ET.Element, key: str, value: Integer):
75
77
  self.setChildElementOptionalNumericalValue(element, key, value)
76
78
 
79
+ def setChildElementOptionalPositiveInteger(self, element: ET.Element, key: str, value: Integer):
80
+ self.setChildElementOptionalNumericalValue(element, key, value)
81
+
77
82
  def setChildElementOptionalLiteral(self, element: ET.Element, key: str, literal: ARLiteral):
78
83
  if literal is not None:
79
84
  child_element = ET.SubElement(element, key)
@@ -84,11 +89,15 @@ class AbstractARXMLWriter:
84
89
  def setChildElementOptionalRevisionLabelString(self, element: ET.Element, key: str, literal: ARLiteral):
85
90
  self.setChildElementOptionalLiteral(element, key, literal)
86
91
 
87
- def setChildElementOptionalRefType(self, parent: ET.Element, child_tag_name: str, ref: TRefType):
92
+ def setChildElementOptionalRefType(self, parent: ET.Element, child_tag_name: str, ref: RefType):
88
93
  if ref is not None:
89
94
  child_tag = ET.SubElement(parent, child_tag_name)
90
- if ref.dest is not None:
91
- child_tag.attrib['DEST'] = ref.dest
95
+ base = ref.getBase()
96
+ if base is not None:
97
+ child_tag.attrib['BASE'] = base
98
+ dest = ref.getDest()
99
+ if dest is not None:
100
+ child_tag.attrib['DEST'] = dest
92
101
  if ref.value is not None:
93
102
  child_tag.text = ref.value
94
103