armodel 1.8.0__py3-none-any.whl → 1.8.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 (49) hide show
  1. armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +1 -2
  2. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +14 -14
  3. armodel/models/M2/AUTOSARTemplates/CommonStructure/FlatMap.py +2 -3
  4. armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +1 -1
  5. armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +7 -7
  6. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +1 -1
  7. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +4 -4
  8. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__init__.py +3 -3
  9. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/ExecutionOrderConstraint.py +3 -3
  10. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingExtensions.py +3 -3
  11. armodel/models/M2/AUTOSARTemplates/ECUCDescriptionTemplate.py +86 -9
  12. armodel/models/M2/AUTOSARTemplates/ECUCParameterDefTemplate.py +1249 -0
  13. armodel/models/M2/AUTOSARTemplates/GenericStructure/AbstractStructure.py +13 -10
  14. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +238 -225
  15. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ArObject.py +5 -4
  16. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +46 -25
  17. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +33 -3
  18. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +18 -20
  19. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +23 -19
  20. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/EndToEndProtection.py +4 -4
  21. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +71 -27
  22. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +9 -9
  23. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +172 -128
  24. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +11 -11
  25. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +8 -8
  26. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +2 -2
  27. armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +6 -6
  28. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +6 -6
  29. armodel/models/M2/MSR/AsamHdo/AdminData.py +101 -8
  30. armodel/parser/abstract_arxml_parser.py +8 -5
  31. armodel/parser/arxml_parser.py +332 -16
  32. armodel/tests/test_armodel/models/test_ECUCParameterDefTemplate.py +116 -0
  33. armodel/tests/test_armodel/models/test_Identifiable.py +85 -0
  34. armodel/tests/test_armodel/models/test_ar_object.py +85 -86
  35. armodel/tests/test_armodel/models/test_ar_package.py +70 -70
  36. armodel/tests/test_armodel/models/test_ar_ref.py +36 -36
  37. armodel/tests/test_armodel/models/test_common_structure.py +37 -35
  38. armodel/tests/test_armodel/models/test_datatype.py +4 -4
  39. armodel/tests/test_armodel/models/test_general_structure.py +19 -18
  40. armodel/tests/test_armodel/models/test_port_interface.py +2 -6
  41. armodel/tests/test_armodel/parser/test_arxml_parser.py +8 -8
  42. armodel/writer/abstract_arxml_writer.py +6 -2
  43. armodel/writer/arxml_writer.py +376 -29
  44. {armodel-1.8.0.dist-info → armodel-1.8.2.dist-info}/METADATA +20 -1
  45. {armodel-1.8.0.dist-info → armodel-1.8.2.dist-info}/RECORD +49 -46
  46. {armodel-1.8.0.dist-info → armodel-1.8.2.dist-info}/LICENSE +0 -0
  47. {armodel-1.8.0.dist-info → armodel-1.8.2.dist-info}/WHEEL +0 -0
  48. {armodel-1.8.0.dist-info → armodel-1.8.2.dist-info}/entry_points.txt +0 -0
  49. {armodel-1.8.0.dist-info → armodel-1.8.2.dist-info}/top_level.txt +0 -0
@@ -1,47 +1,47 @@
1
1
  import pytest
2
2
 
3
+ from ....models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
3
4
  from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import CollectableElement
4
-
5
5
  from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable, MultilanguageReferrable, Referrable
6
-
7
6
  from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
8
-
9
- from ....models.M2.AUTOSARTemplates.CommonStructure.ImplementationDataTypes import AbstractImplementationDataTypeElement, ImplementationDataTypeElement
10
- from .... import AUTOSAR
7
+ from ....models.M2.AUTOSARTemplates.CommonStructure.ImplementationDataTypes import AbstractImplementationDataTypeElement
8
+ from ....models.M2.AUTOSARTemplates.CommonStructure.ImplementationDataTypes import ImplementationDataTypeElement
11
9
  from ....models.M2.AUTOSARTemplates.CommonStructure import ConstantReference, ConstantSpecification, ValueSpecification
12
10
  from ....models.M2.AUTOSARTemplates.CommonStructure.InternalBehavior import ExecutableEntity
13
11
  from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
14
12
  from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import PackageableElement
15
13
 
14
+
16
15
  class Test_M2_AUTOSARTemplates_CommonStructure_Constants:
17
-
16
+
18
17
  def test_ValueSpecification(self):
19
18
  with pytest.raises(NotImplementedError) as err:
20
19
  ValueSpecification()
21
- assert(str(err.value) == "ValueSpecification is an abstract class.")
20
+ assert (str(err.value) == "ValueSpecification is an abstract class.")
22
21
 
23
22
  def test_ConstantSpecification(self):
24
23
  document = AUTOSAR.getInstance()
25
24
  ar_root = document.createARPackage("AUTOSAR")
26
25
  spec = ConstantSpecification(ar_root, "constant")
27
-
28
- assert(isinstance(spec, ARElement))
29
- assert(isinstance(spec, ARObject))
30
- assert(isinstance(spec, CollectableElement))
31
- assert(isinstance(spec, Identifiable))
32
- assert(isinstance(spec, MultilanguageReferrable))
33
- assert(isinstance(spec, PackageableElement))
34
- assert(isinstance(spec, Referrable))
35
- assert(isinstance(spec, ConstantSpecification))
26
+
27
+ assert (isinstance(spec, ARElement))
28
+ assert (isinstance(spec, ARObject))
29
+ assert (isinstance(spec, CollectableElement))
30
+ assert (isinstance(spec, Identifiable))
31
+ assert (isinstance(spec, MultilanguageReferrable))
32
+ assert (isinstance(spec, PackageableElement))
33
+ assert (isinstance(spec, Referrable))
34
+ assert (isinstance(spec, ConstantSpecification))
36
35
 
37
36
  def test_ConstantReference(self):
38
37
  ref = ConstantReference()
39
38
 
40
- assert(ref.getConstantRef() == None)
39
+ assert (ref.getConstantRef() is None)
40
+
41
+ assert (isinstance(ref, ARObject))
42
+ assert (isinstance(ref, ValueSpecification))
43
+ assert (isinstance(ref, ConstantReference))
41
44
 
42
- assert(isinstance(ref, ARObject))
43
- assert(isinstance(ref, ValueSpecification))
44
- assert(isinstance(ref, ConstantReference))
45
45
 
46
46
  class Test_M2_AUTOSARTemplates_CommonStructure_InternalBehavior:
47
47
  def test_ExecutableEntity(self):
@@ -49,32 +49,34 @@ class Test_M2_AUTOSARTemplates_CommonStructure_InternalBehavior:
49
49
  ar_root = document.createARPackage("AUTOSAR")
50
50
  with pytest.raises(NotImplementedError) as err:
51
51
  ExecutableEntity(ar_root, "ExecutableEntity")
52
- assert(str(err.value) == "ExecutableEntity is an abstract class.")
52
+ assert (str(err.value) == "ExecutableEntity is an abstract class.")
53
+
53
54
 
54
55
  class Test_M2_AUTOSARTemplates_CommonStructure_ImplementationDataTypes:
55
56
  def test_ImplementationDataTypeElement(self):
56
57
  document = AUTOSAR.getInstance()
57
58
  ar_root = document.createARPackage("AUTOSAR")
58
- data_type = ImplementationDataTypeElement(ar_root, "implementation_data_type")
59
+ data_type = ImplementationDataTypeElement(
60
+ ar_root, "implementation_data_type")
59
61
 
60
- assert(data_type.getShortName() == "implementation_data_type")
61
- assert(data_type.getArraySize() == None)
62
- assert(data_type.getIsOptional() == None)
62
+ assert (data_type.getShortName() == "implementation_data_type")
63
+ assert (data_type.getArraySize() is None)
64
+ assert (data_type.getIsOptional() is None)
63
65
 
64
- assert(isinstance(data_type, ARObject))
65
- assert(isinstance(data_type, AbstractImplementationDataTypeElement))
66
+ assert (isinstance(data_type, ARObject))
67
+ assert (isinstance(data_type, AbstractImplementationDataTypeElement))
66
68
  # assert(isinstance(data_type, AtpClassifier))
67
69
  # assert(isinstance(data_type, AtpFeature))
68
70
  # assert(isinstance(data_type, AtpStructureElement))
69
- assert(isinstance(data_type, Identifiable))
70
- assert(isinstance(data_type, MultilanguageReferrable))
71
- assert(isinstance(data_type, Referrable))
72
- assert(isinstance(data_type, ImplementationDataTypeElement))
71
+ assert (isinstance(data_type, Identifiable))
72
+ assert (isinstance(data_type, MultilanguageReferrable))
73
+ assert (isinstance(data_type, Referrable))
74
+ assert (isinstance(data_type, ImplementationDataTypeElement))
73
75
 
74
76
  sub_type = data_type.createImplementationDataTypeElement("sub_type")
75
- assert(sub_type.getShortName() == "sub_type")
76
- assert(isinstance(sub_type, ImplementationDataTypeElement))
77
+ assert (sub_type.getShortName() == "sub_type")
78
+ assert (isinstance(sub_type, ImplementationDataTypeElement))
77
79
 
78
- assert(len(data_type.getImplementationDataTypeElements()) == 1)
80
+ assert (len(data_type.getImplementationDataTypeElements()) == 1)
79
81
  sub_type2 = data_type.getImplementationDataTypeElements()[0]
80
- assert(sub_type == sub_type2)
82
+ assert (sub_type == sub_type2)
@@ -72,21 +72,21 @@ class Test_M2_MSR_AsamHdo_BaseTypes:
72
72
 
73
73
  class Test_M2_AUTOSARTemplates_SWComponentTemplate_Datatype_Datatypes:
74
74
  def test_AtpType(self):
75
- with pytest.raises(NotImplementedError) as err:
75
+ with pytest.raises(TypeError) as err:
76
76
  document = AUTOSAR.getInstance()
77
77
  ar_root = document.createARPackage("AUTOSAR")
78
78
  AtpType(ar_root, "AtpType")
79
79
  assert (str(err.value) == "AtpType is an abstract class.")
80
80
 
81
81
  def test_AutosarDataType(self):
82
- with pytest.raises(NotImplementedError) as err:
82
+ with pytest.raises(TypeError) as err:
83
83
  document = AUTOSAR.getInstance()
84
84
  ar_root = document.createARPackage("AUTOSAR")
85
85
  AutosarDataType(ar_root, "AutosarDataType")
86
86
  assert (str(err.value) == "AutosarDataType is an abstract class.")
87
87
 
88
88
  def test_ApplicationDataType(self):
89
- with pytest.raises(NotImplementedError) as err:
89
+ with pytest.raises(TypeError) as err:
90
90
  document = AUTOSAR.getInstance()
91
91
  ar_root = document.createARPackage("AUTOSAR")
92
92
  ApplicationDataType(ar_root, "ApplicationDataType")
@@ -116,7 +116,7 @@ class Test_M2_AUTOSARTemplates_SWComponentTemplate_Datatype_Datatypes:
116
116
  assert (data_type.swDataDefProps is None)
117
117
 
118
118
  def test_ApplicationCompositeDataType(self):
119
- with pytest.raises(NotImplementedError) as err:
119
+ with pytest.raises(TypeError) as err:
120
120
  document = AUTOSAR.getInstance()
121
121
  ar_root = document.createARPackage("AUTOSAR")
122
122
  ApplicationCompositeDataType(ar_root, "ApplicationCompositeDataType")
@@ -13,48 +13,49 @@ from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArOb
13
13
  from ....models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
14
14
  from ....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Limit
15
15
 
16
+
16
17
  class TestGeneralStructure:
17
18
  def test_ar_object(self):
18
- with pytest.raises(NotImplementedError) as err:
19
+ with pytest.raises(TypeError) as err:
19
20
  ARObject()
20
- assert(str(err.value) == "ARObject is an abstract class.")
21
+ assert (str(err.value) == "ARObject is an abstract class.")
21
22
 
22
23
  def test_Referrable(self):
23
- with pytest.raises(NotImplementedError) as err:
24
+ with pytest.raises(TypeError) as err:
24
25
  Referrable(AUTOSAR.getInstance(), "ar_referrable")
25
- assert(str(err.value) == "Referrable is an abstract class.")
26
+ assert (str(err.value) == "Referrable is an abstract class.")
26
27
 
27
28
  def test_MultilanguageReferrable(self):
28
- with pytest.raises(NotImplementedError) as err:
29
+ with pytest.raises(TypeError) as err:
29
30
  MultilanguageReferrable(AUTOSAR.getInstance(), "MultilanguageReferrable")
30
- assert(str(err.value) == "MultilanguageReferrable is an abstract class.")
31
+ assert (str(err.value) == "MultilanguageReferrable is an abstract class.")
31
32
 
32
33
  def test_CollectableElement(self):
33
- with pytest.raises(NotImplementedError) as err:
34
+ with pytest.raises(TypeError) as err:
34
35
  CollectableElement()
35
- assert(str(err.value) == "CollectableElement is an abstract class.")
36
+ assert (str(err.value) == "CollectableElement is an abstract class.")
36
37
 
37
38
  def test_Identifiable(self):
38
- with pytest.raises(NotImplementedError) as err:
39
+ with pytest.raises(TypeError) as err:
39
40
  Identifiable(AUTOSAR.getInstance(), "ar_identifiable")
40
- assert(str(err.value) == "Identifiable is an abstract class.")
41
+ assert (str(err.value) == "Identifiable is an abstract class.")
41
42
 
42
43
  def test_AtpFeature(self):
43
- with pytest.raises(NotImplementedError) as err:
44
+ with pytest.raises(TypeError) as err:
44
45
  AtpFeature(AUTOSAR.getInstance(), "AtpFeature")
45
- assert(str(err.value) == "AtpFeature is an abstract class.")
46
+ assert (str(err.value) == "AtpFeature is an abstract class.")
46
47
 
47
48
  def test_packageable_element(self):
48
- with pytest.raises(NotImplementedError) as err:
49
+ with pytest.raises(TypeError) as err:
49
50
  PackageableElement(AUTOSAR.getInstance(), "ar_packageable_element")
50
- assert(str(err.value) == "PackageableElement is an abstract class.")
51
+ assert (str(err.value) == "PackageableElement is an abstract class.")
51
52
 
52
53
  def test_ar_element(self):
53
- with pytest.raises(NotImplementedError) as err:
54
+ with pytest.raises(TypeError) as err:
54
55
  ARElement(AUTOSAR.getInstance(), "ar_element")
55
- assert(str(err.value) == "ARElement is an abstract class.")
56
+ assert (str(err.value) == "ARElement is an abstract class.")
56
57
 
57
58
  def test_limit(self):
58
59
  limit = Limit()
59
- assert(limit.value == None)
60
- assert(limit.intervalType == None)
60
+ assert (limit.value is None)
61
+ assert (limit.intervalType is None)
@@ -96,22 +96,18 @@ class Test_M2_AUTOSARTemplates_SWComponentTemplate_PortInterface:
96
96
  assert (isinstance(sr_if, Referrable))
97
97
  assert (isinstance(sr_if, SenderReceiverInterface))
98
98
 
99
- assert (sr_if.short_name == "sr_if")
99
+ assert (sr_if.getShortName() == "sr_if")
100
100
  assert (sr_if.parent == ar_root)
101
101
  assert (len(sr_if.getDataElements()) == 0)
102
102
 
103
103
  element = sr_if.createDataElement("element")
104
104
  assert (isinstance(element, VariableDataPrototype))
105
- assert (element.short_name == "element")
105
+ assert (element.getShortName() == "element")
106
106
  assert (len(sr_if.getDataElements()) == 1)
107
107
 
108
108
  element2 = sr_if.getDataElement("element")
109
109
  assert (element == element2)
110
110
 
111
- with pytest.raises(IndexError) as err:
112
- sr_if.getDataElement("non_exist_element")
113
- assert (str(err.value) == "data element <non_exist_element> can not be found.")
114
-
115
111
  def test_ArgumentDataPrototype(self):
116
112
  document = AUTOSAR.getInstance()
117
113
  ar_root = document.createARPackage("AUTOSAR")
@@ -5,11 +5,11 @@ from ....parser.arxml_parser import ARXMLParser
5
5
  class TestARXMLParser:
6
6
  def test_convert_find_key(self):
7
7
  parser = ARXMLParser()
8
- assert(parser.convert_find_key("ELEMENTS") == "xmlns:ELEMENTS")
9
- assert(parser.convert_find_key("ELEMENTS/*") == "xmlns:ELEMENTS/*")
10
- assert(parser.convert_find_key("./ELEMENTS") == "./xmlns:ELEMENTS")
11
- assert(parser.convert_find_key("./ELEMENTS/*") == "./xmlns:ELEMENTS/*")
12
- assert(parser.convert_find_key("A/B") == "xmlns:A/xmlns:B")
13
- assert(parser.convert_find_key("A/B/*") == "xmlns:A/xmlns:B/*")
14
- assert(parser.convert_find_key("./A/B") == "./xmlns:A/xmlns:B")
15
- assert(parser.convert_find_key("./A/B/*") == "./xmlns:A/xmlns:B/*")
8
+ assert (parser.convert_find_key("ELEMENTS") == "xmlns:ELEMENTS")
9
+ assert (parser.convert_find_key("ELEMENTS/*") == "xmlns:ELEMENTS/*")
10
+ assert (parser.convert_find_key("./ELEMENTS") == "./xmlns:ELEMENTS")
11
+ assert (parser.convert_find_key("./ELEMENTS/*") == "./xmlns:ELEMENTS/*")
12
+ assert (parser.convert_find_key("A/B") == "xmlns:A/xmlns:B")
13
+ assert (parser.convert_find_key("A/B/*") == "xmlns:A/xmlns:B/*")
14
+ assert (parser.convert_find_key("./A/B") == "./xmlns:A/xmlns:B")
15
+ assert (parser.convert_find_key("./A/B/*") == "./xmlns:A/xmlns:B/*")
@@ -8,7 +8,8 @@ import logging
8
8
  import xml.etree.cElementTree as ET
9
9
 
10
10
  from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
11
- from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARFloat, ARLiteral, ARNumerical, Integer, TimeValue
11
+ from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARFloat, ARLiteral, ARNumerical, DateTime, Integer
12
+ from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RevisionLabelString, TimeValue
12
13
  from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType, ARBoolean
13
14
 
14
15
 
@@ -81,7 +82,10 @@ class AbstractARXMLWriter:
81
82
  def setChildElementOptionalPositiveInteger(self, element: ET.Element, key: str, value: Integer):
82
83
  self.setChildElementOptionalNumericalValue(element, key, value)
83
84
 
84
- def setChildElementOptionalRevisionLabelString(self, element: ET.Element, key: str, literal: ARLiteral):
85
+ def setChildElementOptionalRevisionLabelString(self, element: ET.Element, key: str, literal: RevisionLabelString):
86
+ self.setChildElementOptionalLiteral(element, key, literal)
87
+
88
+ def setChildElementOptionalDataTime(self, element: ET.Element, key: str, literal: DateTime):
85
89
  self.setChildElementOptionalLiteral(element, key, literal)
86
90
 
87
91
  def setChildElementOptionalRefType(self, parent: ET.Element, child_tag_name: str, ref: RefType):