armodel 1.6.2__py3-none-any.whl → 1.6.4__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 (170) hide show
  1. armodel/cli/arxml_dump_cli.py +13 -10
  2. armodel/cli/arxml_format_cli.py +1 -2
  3. armodel/cli/connector2xlsx_cli.py +2 -3
  4. armodel/cli/connector_update_cli.py +2 -5
  5. armodel/cli/memory_section_cli.py +2 -2
  6. armodel/cli/swc_list_cli.py +2 -3
  7. armodel/cli/system_signal_cli.py +2 -2
  8. armodel/lib/sw_component.py +3 -3
  9. armodel/lib/system_signal.py +3 -5
  10. armodel/models/{m2/autosar_templates/autosar_top_level_structure.py → M2/AUTOSARTemplates/AutosarTopLevelStructure.py} +5 -7
  11. armodel/models/{bsw_module_template.py → M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py} +113 -140
  12. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswImplementation.py +60 -0
  13. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +52 -0
  14. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +77 -0
  15. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__init__.py +4 -0
  16. armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +238 -0
  17. armodel/models/{m2/autosar_templates/common_structure/implementation_data_types.py → M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py} +7 -6
  18. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +119 -0
  19. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +96 -0
  20. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +69 -0
  21. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__init__.py +20 -0
  22. armodel/models/{service_needs.py → M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py} +13 -9
  23. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcBswMapping.py +35 -0
  24. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/ModeDeclarationGroup.py +24 -0
  25. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/ExecutionOrderConstraint.py +45 -0
  26. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingConstraint.py +24 -0
  27. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingExtensions.py +33 -0
  28. armodel/models/M2/AUTOSARTemplates/CommonStructure/TriggerDeclaration.py +9 -0
  29. armodel/models/{m2/autosar_templates/common_structure → M2/AUTOSARTemplates/CommonStructure}/__init__.py +4 -3
  30. armodel/models/{m2/autosar_templates/ecuc_description_template.py → M2/AUTOSARTemplates/ECUCDescriptionTemplate.py} +6 -7
  31. armodel/models/{m2/autosar_templates/generic_structure/abstract_structure.py → M2/AUTOSARTemplates/GenericStructure/AbstractStructure.py} +25 -5
  32. armodel/models/{m2/autosar_templates/generic_structure/ar_package.py → M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py} +41 -29
  33. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ArObject.py +16 -0
  34. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ElementCollection.py +1 -0
  35. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/EngineeringObject.py +52 -0
  36. armodel/models/{general_structure.py → M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py} +42 -159
  37. armodel/models/{ar_object.py → M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py} +179 -71
  38. armodel/models/M2/AUTOSARTemplates/GenericStructure/__init__.py +1 -0
  39. armodel/models/{m2/autosar_templates/sw_component_template/communication.py → M2/AUTOSARTemplates/SWComponentTemplate/Communication.py} +22 -5
  40. armodel/models/{m2/autosar_templates/sw_component_template/components/instance_refs.py → M2/AUTOSARTemplates/SWComponentTemplate/Components/InstanceRefs.py} +2 -4
  41. armodel/models/{m2/autosar_templates/sw_component_template/components → M2/AUTOSARTemplates/SWComponentTemplate/Components}/__init__.py +114 -10
  42. armodel/models/{m2/autosar_templates/sw_component_template/composition/instance_refs.py → M2/AUTOSARTemplates/SWComponentTemplate/Composition/InstanceRefs.py} +2 -5
  43. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +96 -0
  44. armodel/models/{m2/autosar_templates/sw_component_template/data_type/data_prototypes.py → M2/AUTOSARTemplates/SWComponentTemplate/Datatype/DataPrototypes.py} +24 -8
  45. armodel/models/{datatype.py → M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py} +16 -73
  46. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/EndToEndProtection.py +177 -0
  47. armodel/models/{m2/autosar_templates/sw_component_template/port_interface/instance_refs.py → M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/InstanceRefs.py} +2 -2
  48. armodel/models/{m2/autosar_templates/sw_component_template/port_interface → M2/AUTOSARTemplates/SWComponentTemplate/PortInterface}/__init__.py +10 -6
  49. armodel/models/{rpt_scenario.py → M2/AUTOSARTemplates/SWComponentTemplate/RPTScenario.py} +4 -6
  50. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcImplementation.py +34 -0
  51. armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior/access_count.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AccessCount.py} +2 -2
  52. armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior/data_elements.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/DataElements.py} +7 -5
  53. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/IncludedDataTypes.py +24 -0
  54. armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior/instance_refs_usage.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/InstanceRefsUsage.py} +3 -3
  55. armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior/mode_declaration_group.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py} +4 -4
  56. armodel/models/{per_instance_memory.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PerInstanceMemory.py} +5 -6
  57. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PortAPIOptions.py +86 -0
  58. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +174 -0
  59. armodel/models/{m2/autosar_templates/sw_component_template/swc_internal_behavior/server_call.py → M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServerCall.py} +3 -4
  60. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +57 -0
  61. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/Trigger.py +8 -0
  62. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +358 -0
  63. armodel/models/{m2/autosar_templates/system_template/data_mapping.py → M2/AUTOSARTemplates/SystemTemplate/DataMapping.py} +2 -3
  64. armodel/models/{fibex/can_communication.py → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanCommunication.py} +3 -3
  65. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetFrame.py +14 -0
  66. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +116 -0
  67. armodel/models/{fibex/lin_communication.py → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinCommunication.py} +5 -2
  68. armodel/models/{fibex/fibex_4_multiplatform.py → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py} +5 -4
  69. armodel/models/{fibex/fibex_core/core_communication.py → M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py} +4 -6
  70. armodel/models/{fibex/fibex_core/core_topology.py → M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py} +6 -7
  71. armodel/models/{m2/autosar_templates/system_template/instance_refs.py → M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py} +2 -2
  72. armodel/models/{m2/autosar_templates/system_template/network_management.py → M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py} +5 -6
  73. armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +6 -0
  74. armodel/models/{m2/autosar_templates/system_template → M2/AUTOSARTemplates/SystemTemplate}/__init__.py +3 -4
  75. armodel/models/M2/MSR/AsamHdo/AdminData.py +18 -0
  76. armodel/models/M2/MSR/AsamHdo/BaseTypes.py +77 -0
  77. armodel/models/{m2_msr.py → M2/MSR/AsamHdo/ComputationMethod.py} +43 -28
  78. armodel/models/{global_constraints.py → M2/MSR/AsamHdo/Constraints/GlobalConstraints.py} +6 -4
  79. armodel/models/M2/MSR/AsamHdo/SpecialData.py +60 -0
  80. armodel/models/{m2/msr/asam_hdo/units.py → M2/MSR/AsamHdo/Units.py} +3 -3
  81. armodel/models/M2/MSR/CalibrationData/CalibrationValue.py +26 -0
  82. armodel/models/{m2/msr/data_dictionary/auxillary_objects.py → M2/MSR/DataDictionary/AuxillaryObjects.py} +3 -4
  83. armodel/models/M2/MSR/DataDictionary/Axis.py +145 -0
  84. armodel/models/M2/MSR/DataDictionary/CalibrationParameter.py +37 -0
  85. armodel/models/{m2/msr/data_dictionary/data_def_properties.py → M2/MSR/DataDictionary/DataDefProperties.py} +19 -10
  86. armodel/models/{record_layout.py → M2/MSR/DataDictionary/RecordLayout.py} +26 -25
  87. armodel/models/{annotation.py → M2/MSR/Documentation/Annotation.py} +8 -10
  88. armodel/models/{m2/msr/documentation/block_elements.py → M2/MSR/Documentation/BlockElements.py} +2 -2
  89. armodel/models/M2/MSR/Documentation/TextModel/LanguageDataModel.py +16 -0
  90. armodel/models/{multilanguage_data.py → M2/MSR/Documentation/TextModel/MultilanguageData.py} +20 -32
  91. armodel/models/M2/MSR/Documentation/TextModel/__init__.py +0 -0
  92. armodel/models/M2/MSR/Documentation/__init__.py +3 -0
  93. armodel/models/M2/MSR/__init__.py +1 -0
  94. armodel/models/M2/__init__.py +0 -0
  95. armodel/models/__init__.py +50 -24
  96. armodel/parser/abstract_arxml_parser.py +8 -4
  97. armodel/parser/arxml_parser.py +117 -90
  98. armodel/parser/connector_xlsx_parser.py +5 -3
  99. armodel/parser/file_parser.py +2 -1
  100. armodel/report/connector_xls_report.py +3 -2
  101. armodel/tests/test_armodel/models/test_ar_object.py +2 -3
  102. armodel/tests/test_armodel/models/test_ar_package.py +21 -9
  103. armodel/tests/test_armodel/models/test_ar_ref.py +7 -5
  104. armodel/tests/test_armodel/models/test_bsw_module_template.py +5 -1
  105. armodel/tests/test_armodel/models/test_common_structure.py +11 -5
  106. armodel/tests/test_armodel/models/test_data_dictionary.py +2 -2
  107. armodel/tests/test_armodel/models/test_data_prototype.py +8 -4
  108. armodel/tests/test_armodel/models/test_datatype.py +28 -14
  109. armodel/tests/test_armodel/models/test_general_structure.py +12 -2
  110. armodel/tests/test_armodel/models/test_implementation.py +3 -2
  111. armodel/tests/test_armodel/models/test_m2_msr.py +4 -2
  112. armodel/tests/test_armodel/models/test_port_interface.py +21 -11
  113. armodel/tests/test_armodel/models/test_port_prototype.py +1 -1
  114. armodel/tests/test_armodel/parser/test_parse_bswmd.py +13 -13
  115. armodel/tests/test_armodel/parser/test_sw_components.py +2 -2
  116. armodel/tests/test_armodel/parser/test_system.py +30 -0
  117. armodel/writer/abstract_arxml_writer.py +5 -2
  118. armodel/writer/arxml_writer.py +136 -91
  119. {armodel-1.6.2.dist-info → armodel-1.6.4.dist-info}/METADATA +16 -1
  120. armodel-1.6.4.dist-info/RECORD +156 -0
  121. armodel/lib/data_analyzer.py +0 -34
  122. armodel/models/ar_package.py +0 -641
  123. armodel/models/ar_ref.py +0 -25
  124. armodel/models/calibration.py +0 -119
  125. armodel/models/common_structure.py +0 -272
  126. armodel/models/communication.py +0 -17
  127. armodel/models/data_def_properties.py +0 -16
  128. armodel/models/data_dictionary.py +0 -59
  129. armodel/models/data_prototype.py +0 -103
  130. armodel/models/end_to_end_protection.py +0 -67
  131. armodel/models/fibex/fibex_core.py +0 -341
  132. armodel/models/fibex/lin_topology.py +0 -7
  133. armodel/models/implementation.py +0 -135
  134. armodel/models/internal_behavior.py +0 -63
  135. armodel/models/m2/autosar_templates/common_structure/implementation.py +0 -21
  136. armodel/models/m2/autosar_templates/sw_component_template/composition/__init__.py +0 -154
  137. armodel/models/m2/autosar_templates/sw_component_template/port_interface.py +0 -236
  138. armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/__init__.py +0 -203
  139. armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/trigger.py +0 -10
  140. armodel/models/m2/autosar_templates/system_template/transport_protocols.py +0 -7
  141. armodel/models/mode_declaration.py +0 -8
  142. armodel/models/port_interface.py +0 -165
  143. armodel/models/port_prototype.py +0 -6
  144. armodel/models/service_mapping.py +0 -11
  145. armodel/models/sw_component.py +0 -385
  146. armodel/models/system_template/network_management.py +0 -7
  147. armodel/models/system_template/transport_protocols.py +0 -7
  148. armodel/models/timing.py +0 -91
  149. armodel/models/unit.py +0 -14
  150. armodel-1.6.2.dist-info/RECORD +0 -142
  151. /armodel/models/{fibex → M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior}/__init__.py +0 -0
  152. /armodel/models/{fibex/fibex_4_can → M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint}/__init__.py +0 -0
  153. /armodel/models/{fibex/fibex_4_lin → M2/AUTOSARTemplates/CommonStructure/Timing}/__init__.py +0 -0
  154. /armodel/models/{fibex/fibex_core → M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses}/__init__.py +0 -0
  155. /armodel/models/{m2 → M2/AUTOSARTemplates/SWComponentTemplate/Datatype}/__init__.py +0 -0
  156. /armodel/models/{m2/autosar_templates → M2/AUTOSARTemplates/SWComponentTemplate}/__init__.py +0 -0
  157. /armodel/models/{m2/autosar_templates/generic_structure → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can}/__init__.py +0 -0
  158. /armodel/models/{m2/autosar_templates/sw_component_template → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet}/__init__.py +0 -0
  159. /armodel/models/{m2/autosar_templates/sw_component_template/data_type → M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin}/__init__.py +0 -0
  160. /armodel/models/{m2/msr → M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore}/__init__.py +0 -0
  161. /armodel/models/{m2/msr/asam_hdo → M2/AUTOSARTemplates/SystemTemplate/Fibex}/__init__.py +0 -0
  162. /armodel/models/{m2/msr/data_dictionary → M2/AUTOSARTemplates}/__init__.py +0 -0
  163. /armodel/models/{m2/msr/documentation → M2/MSR/AsamHdo/Constraints}/__init__.py +0 -0
  164. /armodel/models/{system_template → M2/MSR/AsamHdo}/__init__.py +0 -0
  165. /armodel/models/{ecuc_parameter_def_template.py → M2/MSR/CalibrationData/__init__.py} +0 -0
  166. /armodel/models/{m2/autosar_templates/common_structure/constants.py → M2/MSR/DataDictionary/__init__.py} +0 -0
  167. {armodel-1.6.2.dist-info → armodel-1.6.4.dist-info}/LICENSE +0 -0
  168. {armodel-1.6.2.dist-info → armodel-1.6.4.dist-info}/WHEEL +0 -0
  169. {armodel-1.6.2.dist-info → armodel-1.6.4.dist-info}/entry_points.txt +0 -0
  170. {armodel-1.6.2.dist-info → armodel-1.6.4.dist-info}/top_level.txt +0 -0
@@ -1,165 +0,0 @@
1
- from abc import ABCMeta
2
- from typing import List
3
-
4
- from .ar_object import ARBoolean, ARLiteral, ARNumerical
5
- from .common_structure import ModeDeclarationGroupPrototype, Trigger
6
- from .datatype import AtpType
7
- from .general_structure import ARObject, Identifiable, AtpFeature
8
- from .data_prototype import VariableDataPrototype, AutosarDataPrototype
9
- from .ar_ref import RefType
10
-
11
- class PortInterface(AtpType, metaclass = ABCMeta):
12
- def __init__(self, parent: ARObject, short_name: str):
13
- if type(self) == PortInterface:
14
- raise NotImplementedError("PortInterface is an abstract class.")
15
- super().__init__(parent, short_name)
16
-
17
- self.is_service = None # type: ARBoolean
18
- self.serviceKind = None # type: ARLiteral
19
-
20
- class DataInterface(PortInterface, metaclass=ABCMeta):
21
- def __init__(self, parent: ARObject, short_name: str):
22
- if type(self) == DataInterface:
23
- raise NotImplementedError("DataInterface is an abstract class.")
24
- super().__init__(parent, short_name)
25
-
26
-
27
- class NvDataInterface(DataInterface):
28
- def __init__(self, parent: ARObject, short_name: str):
29
- super().__init__(parent, short_name)
30
-
31
-
32
- class ParameterInterface(DataInterface):
33
- def __init__(self, parent: ARObject, short_name: str):
34
- super().__init__(parent, short_name)
35
-
36
-
37
- class SenderReceiverInterface(DataInterface):
38
- def __init__(self, parent: ARObject, short_name: str):
39
- super().__init__(parent, short_name)
40
-
41
- def createDataElement(self, short_name) -> VariableDataPrototype:
42
- if (short_name not in self.elements):
43
- data_element = VariableDataPrototype(self, short_name)
44
- self.elements[short_name] = data_element
45
- return self.elements[short_name]
46
-
47
- def getDataElements(self) -> List[VariableDataPrototype]:
48
- return list(filter(lambda c: isinstance(c, VariableDataPrototype), self.elements.values()))
49
-
50
- def getDataElement(self, short_name) -> VariableDataPrototype:
51
- if (short_name in self.elements):
52
- data_element = self.elements[short_name]
53
- #if (not isinstance(data_element, VariableDataPrototype)):
54
- # raise IndexError("%s is not data element." % short_name)
55
- return data_element
56
- raise IndexError("data element <%s> can not be found." % short_name)
57
-
58
- class ArgumentDataPrototype(AutosarDataPrototype):
59
- def __init__(self, parent: ARObject, short_name: str):
60
- super().__init__(parent, short_name)
61
- self.direction = ""
62
- self.server_argument_impl_policy = ""
63
-
64
- class ApplicationError(Identifiable):
65
- def __init__(self, parent: ARObject, short_name: str):
66
- super().__init__(parent, short_name)
67
-
68
- self.error_code = None # type: ARNumerical
69
-
70
- class ClientServerOperation(AtpFeature):
71
- """
72
- An operation declared within the scope of a client/server interface.
73
- Package: M2::AUTOSARTemplates::SWComponentTemplate::PortInterface
74
- Base: ARObject, AtpClassifier , AtpFeature, AtpStructureElement, Identifiable, MultilanguageReferrable, Referrable
75
-
76
- Attributes:
77
- -----------
78
- _argument: ArgumentDataPrototype (optional)
79
- An argument of this ClientServerOperation
80
-
81
- _possibleError: RefType -> ApplicationError (optional)
82
- Possible errors that may by raised by the referring operation
83
-
84
- Methods:
85
- --------
86
- addArgumentDataPrototype add the argument
87
- getArgumentDataPrototypes get the arguments
88
- addPossibleErrorRef add the possible error
89
- getPossbileErrorRefs get the possible errors
90
-
91
- """
92
- def __init__(self, parent: ARObject, short_name: str):
93
- super().__init__(parent, short_name)
94
-
95
- self._arguments = []
96
- self._possible_error_refs = [] # type: List[RefType]
97
-
98
- def addArgumentDataPrototype(self, prototype: ArgumentDataPrototype):
99
- self._arguments.append(prototype)
100
-
101
- def getArgumentDataPrototypes(self) -> List[ArgumentDataPrototype]:
102
- return self._arguments
103
-
104
- def addPossibleErrorRef(self, possible_error_ref: RefType):
105
- self._possible_error_refs.append(possible_error_ref)
106
-
107
- def getPossbileErrorRefs(self) -> List[RefType]:
108
- return self._possible_error_refs
109
-
110
-
111
- class ClientServerInterface(PortInterface):
112
- """
113
- A client/server interface declares a number of operations that can be invoked on a server by a client.
114
- Package: M2::AUTOSARTemplates::SWComponentTemplate::PortInterface
115
- Base: ARElement, ARObject, AtpBlueprint, AtpBlueprintable, AtpClassifier , AtpType, CollectableElement, Identifiable, MultilanguageReferrable, PackageableElement, PortInterface, Referrable
116
-
117
- Methods:
118
- --------
119
- createOperation create ClientServerOperation(s) of this ClientServerInterface.
120
- createApplicationError create Application errors that are defined as part of this interface
121
- getOperations get all ClientServerOperation(s) of this ClientServerInterface
122
- getPossibleErrors get all Application error(s) of this ClientServerInterface
123
-
124
- """
125
- def __init__(self, parent: ARObject, short_name: str):
126
- super().__init__(parent, short_name)
127
-
128
- def createOperation(self, short_name: str) -> ClientServerOperation:
129
- if (short_name not in self.elements):
130
- operation = ClientServerOperation(self, short_name)
131
- self.elements[short_name] = operation
132
- return self.elements[short_name]
133
-
134
- def createApplicationError(self, short_name: str) -> ApplicationError:
135
- if (short_name not in self.elements):
136
- error = ApplicationError(self, short_name)
137
- self.elements[short_name] = error
138
- return self.elements[short_name]
139
-
140
- def getOperations(self) -> List[ClientServerOperation]:
141
- return list(filter(lambda c: isinstance(c, ClientServerOperation), self.elements.values()))
142
-
143
- def getPossibleErrors(self) -> List[ApplicationError]:
144
- return list(filter(lambda c: isinstance(c, ApplicationError), self.elements.values()))
145
-
146
- class TriggerInterface(PortInterface):
147
- def __init__(self, parent: ARObject, short_name: str):
148
- super().__init__(parent, short_name)
149
-
150
- self._triggers = [] # type: Trigger
151
-
152
- class ModeSwitchInterface(PortInterface):
153
- def __init__(self, parent: ARObject, short_name: str):
154
- super().__init__(parent, short_name)
155
-
156
- self._modeGroup = [] # type: List[ModeDeclarationGroupPrototype]
157
-
158
- def createModeGroup(self, short_name: str) -> ModeDeclarationGroupPrototype:
159
- prototype = ModeDeclarationGroupPrototype(self, short_name)
160
- if (short_name not in self.elements):
161
- self.elements[short_name] = prototype
162
- return self.elements[short_name]
163
-
164
- def getModeGroups(self) -> List[ModeDeclarationGroupPrototype]:
165
- return list(sorted(filter(lambda c: isinstance(c, ModeDeclarationGroupPrototype), self.elements.values()), key= lambda o: o.short_name))
@@ -1,6 +0,0 @@
1
- from typing import List
2
-
3
- from .m2.autosar_templates.sw_component_template.communication import ClientComSpec, ModeSwitchReceiverComSpec, ModeSwitchSenderComSpec, NonqueuedReceiverComSpec, NonqueuedSenderComSpec, PPortComSpec, ParameterRequireComSpec, QueuedReceiverComSpec, QueuedSenderComSpec, RPortComSpec, ServerComSpec
4
- from .general_structure import ARObject, Identifiable
5
- from .ar_ref import TRefType
6
-
@@ -1,11 +0,0 @@
1
-
2
- from .ar_ref import RefType
3
- from .ar_object import ARObject
4
-
5
-
6
- class RoleBasedPortAssignment(ARObject):
7
- def __init__(self):
8
- super().__init__()
9
-
10
- self.port_prototype_ref = None # type: RefType
11
- self.role = None # type: str
@@ -1,385 +0,0 @@
1
- from typing import List
2
- from abc import ABCMeta
3
-
4
- from .m2.autosar_templates.sw_component_template.components import SwComponentType
5
- from .m2.autosar_templates.sw_component_template.composition.instance_refs import POperationInAtomicSwcInstanceRef
6
- from .m2.autosar_templates.sw_component_template.components.instance_refs import RModeInAtomicSwcInstanceRef, RVariableInAtomicSwcInstanceRef
7
- from .m2.autosar_templates.sw_component_template.swc_internal_behavior import RunnableEntity
8
- from .internal_behavior import IncludedDataTypeSet, InternalBehavior
9
- from .service_mapping import RoleBasedPortAssignment
10
- from .per_instance_memory import PerInstanceMemory
11
- from .service_needs import NvBlockNeeds, RoleBasedDataAssignment, ServiceNeeds
12
- from .ar_object import ARBoolean, ARLiteral
13
- from .general_structure import Identifiable, ARObject
14
- from .ar_ref import TRefType
15
- from .ar_ref import RefType
16
- from .m2.autosar_templates.sw_component_template.data_type.data_prototypes import ParameterDataPrototype, VariableDataPrototype
17
- from .m2.autosar_templates.common_structure import ValueSpecification
18
-
19
- class AbstractEvent(Identifiable):
20
- def __init__(self, parent: ARObject, short_name: str):
21
- super().__init__(parent, short_name)
22
-
23
- class RTEEvent(AbstractEvent):
24
- def __init__(self, parent: ARObject, short_name: str):
25
- super().__init__(parent, short_name)
26
-
27
- self.start_on_event_ref = None # type: RefType
28
- self.disabled_mode_irefs = [] # type: List[RModeInAtomicSwcInstanceRef]
29
-
30
- def addDisabledModeIRef(self, iref: RModeInAtomicSwcInstanceRef):
31
- self.disabled_mode_irefs.append(iref)
32
-
33
- def getDisabledModeIRefs(self) -> List[RModeInAtomicSwcInstanceRef]:
34
- return self.disabled_mode_irefs
35
-
36
- class AsynchronousServerCallReturnsEvent(RTEEvent):
37
- def __init__(self, parent: ARObject, short_name: str):
38
- super().__init__(parent, short_name)
39
-
40
- class DataSendCompletedEvent(RTEEvent):
41
- def __init__(self, parent: ARObject, short_name: str):
42
- super().__init__(parent, short_name)
43
-
44
- class DataWriteCompletedEvent(RTEEvent):
45
- def __init__(self, parent: ARObject, short_name: str):
46
- super().__init__(parent, short_name)
47
-
48
- class DataReceivedEvent(RTEEvent):
49
- def __init__(self, parent: ARObject, short_name: str):
50
- super().__init__(parent, short_name)
51
-
52
- self.dataIRef = None # type: RVariableInAtomicSwcInstanceRef
53
-
54
- def getDataIRef(self):
55
- return self.dataIRef
56
-
57
- def setDataIRef(self, value):
58
- self.dataIRef = value
59
- return self
60
-
61
- class SwcModeSwitchEvent(RTEEvent):
62
- def __init__(self, parent: ARObject, short_name: str):
63
- super().__init__(parent, short_name)
64
-
65
- self._activation = None # type: ARLiteral
66
- self.mode_irefs = [] # type: List[RModeInAtomicSwcInstanceRef]
67
-
68
- def addModeIRef(self, iref: RModeInAtomicSwcInstanceRef):
69
- self.mode_irefs.append(iref)
70
-
71
- def getModeIRefs(self) -> List[RModeInAtomicSwcInstanceRef]:
72
- return self.mode_irefs
73
-
74
- @property
75
- def activation(self) -> ARLiteral:
76
- return self._activation
77
-
78
- @activation.setter
79
- def activation(self, value: ARLiteral):
80
- if value.getValue() not in ("ON-ENTRY", "ON-EXIT", "ON-TRANSITION"):
81
- raise ValueError("Invalid activation <%s> of SwcModeSwitchEvent <%s>" % (value, self.short_name))
82
- self._activation = value
83
-
84
- def addModeIRef(self, mode_iref: RModeInAtomicSwcInstanceRef):
85
- self.mode_irefs.append(mode_iref)
86
-
87
- class DataReceiveErrorEvent(RTEEvent):
88
- def __init__(self, parent: ARObject, short_name: str):
89
- super().__init__(parent, short_name)
90
-
91
- self.variable_data_prototype_iref = None
92
-
93
- class OperationInvokedEvent(RTEEvent):
94
- def __init__(self, parent: ARObject, short_name: str):
95
- super().__init__(parent, short_name)
96
- self.operation_iref = None # type: POperationInAtomicSwcInstanceRef
97
-
98
- @property
99
- def operationIRef(self) -> POperationInAtomicSwcInstanceRef:
100
- return self.operation_iref
101
-
102
- @operationIRef.setter
103
- def operationIRef(self, value: POperationInAtomicSwcInstanceRef):
104
- self.operation_iref = value
105
-
106
- class InitEvent(RTEEvent):
107
- def __init__(self, parent: ARObject, short_name: str):
108
- super().__init__(parent, short_name)
109
-
110
- class TimingEvent(RTEEvent):
111
- def __init__(self, parent: ARObject, short_name: str):
112
- super().__init__(parent, short_name)
113
- self.offset = None
114
- self.period = 0
115
-
116
- @property
117
- def period_ms(self):
118
- if (self.period < 0.001):
119
- return self.period * 1000
120
- else:
121
- return (int)(self.period * 1000)
122
-
123
- class InternalTriggerOccurredEvent(RTEEvent):
124
- def __init__(self, parent: ARObject, short_name: str):
125
- super().__init__(parent, short_name)
126
-
127
- self.event_source_ref = None # type: RefType
128
-
129
- class PortDefinedArgumentValue(ARObject):
130
- def __init__(self):
131
- super().__init__()
132
-
133
- self.value = None # type: ValueSpecification
134
- self.value_type = None # type: TRefType
135
-
136
- class PortAPIOption(ARObject):
137
- def __init__(self):
138
- super().__init__()
139
-
140
- self.enable_take_address = None # type: ARBoolean
141
- self.indirect_api = None # type: ARBoolean
142
- self.port_ref = None # type: RefType
143
- self._port_arg_values = [] # type: List[PortDefinedArgumentValue]
144
-
145
- def addPortArgValue(self, value:PortDefinedArgumentValue):
146
- self._port_arg_values.append(value)
147
-
148
- def getPortArgValues(self) -> List[PortDefinedArgumentValue]:
149
- return self._port_arg_values
150
-
151
- class ServiceDependency(Identifiable):
152
- def __init__(self, parent: ARObject, short_name: str):
153
- super().__init__(parent, short_name)
154
-
155
- class SwcServiceDependency(ServiceDependency):
156
- def __init__(self, parent: ARObject, short_name: str):
157
- super().__init__(parent, short_name)
158
-
159
- self._assigned_data = []
160
- self._assigned_ports = []
161
-
162
- def AddAssignedData(self, data: RoleBasedDataAssignment):
163
- self._assigned_data.append(data)
164
-
165
- def getAssignedData(self) -> List[RoleBasedDataAssignment]:
166
- return self._assigned_data
167
-
168
- def AddAssignedPort(self, data: RoleBasedPortAssignment):
169
- self._assigned_ports.append(data)
170
-
171
- def getAssignedPorts(self) -> List[RoleBasedPortAssignment]:
172
- return self._assigned_ports
173
-
174
- def createNvBlockNeeds(self, short_name: str) -> NvBlockNeeds:
175
- if (short_name not in self.elements):
176
- event = NvBlockNeeds(self, short_name)
177
- self.elements[short_name] = event
178
- return self.elements[short_name]
179
-
180
- def getNvBlockNeeds(self) -> List[NvBlockNeeds]:
181
- return sorted(filter(lambda c: isinstance(c, NvBlockNeeds), self.elements.values()), key=lambda e: e.short_name)
182
-
183
- def getServiceNeeds(self) -> List[ServiceNeeds]:
184
- return sorted(filter(lambda c: isinstance(c, ServiceNeeds), self.elements.values()), key=lambda e: e.short_name)
185
-
186
- class SwcInternalBehavior(InternalBehavior):
187
- def __init__(self, parent: ARObject, short_name: str):
188
- super().__init__(parent, short_name)
189
-
190
- self.handle_termination_and_restart = None # type: str
191
- self.supports_multiple_instantiation = None # type: ARBoolean
192
- self.explicit_inter_runnable_variables = [] # type: List[VariableDataPrototype]
193
- self.implicit_inter_runnable_variables = [] # type: List[VariableDataPrototype]
194
- self.per_instance_memories = [] # type: List[PerInstanceMemory]
195
- self.per_instance_parameters = [] # type: List[ParameterDataPrototype]
196
- self.port_api_options = [] # type: List[PortAPIOption]
197
- self.included_data_type_sets = [] # type: List[IncludedDataTypeSet]
198
-
199
- def getExplicitInterRunnableVariables(self) -> List[VariableDataPrototype]:
200
- return self.explicit_inter_runnable_variables
201
-
202
- def getImplicitInterRunnableVariables(self) -> List[VariableDataPrototype]:
203
- return self.implicit_inter_runnable_variables
204
-
205
- def getPerInstanceMemories(self) -> List[PerInstanceMemory]:
206
- return self.per_instance_memories
207
-
208
- def getPerInstanceParameters(self) -> List[ParameterDataPrototype]:
209
- return self.per_instance_parameters
210
-
211
- def addPortAPIOption(self, option: PortAPIOption):
212
- self.port_api_options.append(option)
213
-
214
- def getPortAPIOptions(self) -> List[PortAPIOption]:
215
- return self.port_api_options
216
-
217
- def addIncludedDataTypeSet(self, set: IncludedDataTypeSet):
218
- self.included_data_type_sets.append(set)
219
-
220
- def getIncludedDataTypeSets(self) -> List[IncludedDataTypeSet]:
221
- return self.included_data_type_sets
222
-
223
- def createOperationInvokedEvent(self, short_name: str) -> OperationInvokedEvent:
224
- if (short_name not in self.elements):
225
- event = OperationInvokedEvent(self, short_name)
226
- self.elements[short_name] = event
227
- return self.elements[short_name]
228
-
229
- def createTimingEvent(self, short_name: str) -> TimingEvent:
230
- if (short_name not in self.elements):
231
- event = TimingEvent(self, short_name)
232
- self.elements[short_name] = event
233
- return self.elements[short_name]
234
-
235
- def createInitEvent(self, short_name: str) -> InitEvent:
236
- if (short_name not in self.elements):
237
- event = InitEvent(self, short_name)
238
- self.elements[short_name] = event
239
- return self.elements[short_name]
240
-
241
- def createDataReceivedEvent(self, short_name: str) -> DataReceivedEvent:
242
- if (short_name not in self.elements):
243
- event = DataReceivedEvent(self, short_name)
244
- self.elements[short_name] = event
245
- return self.elements[short_name]
246
-
247
- def createSwcModeSwitchEvent(self, short_name: str) -> SwcModeSwitchEvent:
248
- if (short_name not in self.elements):
249
- event = SwcModeSwitchEvent(self, short_name)
250
- self.elements[short_name] = event
251
- return self.elements[short_name]
252
-
253
- def createInternalTriggerOccurredEvent(self, short_name: str) -> InternalTriggerOccurredEvent:
254
- if (short_name not in self.elements):
255
- event = InternalTriggerOccurredEvent(self, short_name)
256
- self.elements[short_name] = event
257
- return self.elements[short_name]
258
-
259
- def createSwcServiceDependency(self, short_name: str) -> SwcServiceDependency:
260
- if (short_name not in self.elements):
261
- event = SwcServiceDependency(self, short_name)
262
- self.elements[short_name] = event
263
- return self.elements[short_name]
264
-
265
- def getRteEvents(self) -> List[RTEEvent]:
266
- return sorted(filter(lambda c: isinstance(c, RTEEvent), self.elements.values()), key=lambda e: e.short_name)
267
-
268
- def getOperationInvokedEvents(self) -> List[OperationInvokedEvent]:
269
- return sorted(filter(lambda c: isinstance(c, OperationInvokedEvent), self.elements.values()), key=lambda e: e.short_name)
270
-
271
- def getInitEvents(self) -> List[InitEvent]:
272
- return sorted(filter(lambda c: isinstance(c, InitEvent), self.elements.values()), key=lambda e: e.short_name)
273
-
274
- def getTimingEvents(self) -> List[TimingEvent]:
275
- return sorted(filter(lambda c: isinstance(c, TimingEvent), self.elements.values()), key=lambda e: e.short_name)
276
-
277
- def getDataReceivedEvents(self) -> List[DataReceivedEvent]:
278
- return sorted(filter(lambda c: isinstance(c, DataReceivedEvent), self.elements.values()), key=lambda e: e.short_name)
279
-
280
- def getSwcModeSwitchEvents(self) -> List[SwcModeSwitchEvent]:
281
- return sorted(filter(lambda c: isinstance(c, SwcModeSwitchEvent), self.elements.values()), key=lambda e: e.short_name)
282
-
283
- def getInternalTriggerOccurredEvents(self) -> List[InternalTriggerOccurredEvent]:
284
- return sorted(filter(lambda c: isinstance(c, InternalTriggerOccurredEvent), self.elements.values()), key= lambda e: e.short_name)
285
-
286
- def getSwcServiceDependencies(self) -> List[SwcServiceDependency]:
287
- return sorted(filter(lambda c: isinstance(c, SwcServiceDependency), self.elements.values()), key= lambda e: e.short_name)
288
-
289
- def getEvent(self, short_name: str) -> RTEEvent:
290
- if (not isinstance(self.elements[short_name], RTEEvent)):
291
- raise ValueError("Invalid Event Type <%s> of <%s>" % type(self.elements[short_name]), short_name)
292
- return self.elements[short_name]
293
-
294
- def createExplicitInterRunnableVariable(self, short_name: str) -> VariableDataPrototype:
295
- if (short_name not in self.elements):
296
- prototype = VariableDataPrototype(self, short_name)
297
- self.elements[short_name] = prototype
298
- self.explicit_inter_runnable_variables.append(prototype)
299
- return self.elements[short_name]
300
-
301
- def createImplicitInterRunnableVariable(self, short_name: str) -> VariableDataPrototype:
302
- if (short_name not in self.elements):
303
- prototype = VariableDataPrototype(self, short_name)
304
- self.elements[short_name] = prototype
305
- self.implicit_inter_runnable_variables.append(prototype)
306
- return self.elements[short_name]
307
-
308
- def createPerInstanceMemory(self, short_name: str) -> PerInstanceMemory:
309
- if (short_name not in self.elements):
310
- memory = PerInstanceMemory(self, short_name)
311
- self.elements[short_name] = memory
312
- self.per_instance_memories.append(memory)
313
- return self.elements[short_name]
314
-
315
- def createPerInstanceParameter(self, short_name: str) -> ParameterDataPrototype:
316
- if (short_name not in self.elements):
317
- prototype = ParameterDataPrototype(self, short_name)
318
- self.elements[short_name] = prototype
319
- self.per_instance_parameters.append(prototype)
320
- return self.elements[short_name]
321
-
322
- def getVariableDataPrototypes(self) -> List[VariableDataPrototype]:
323
- return sorted(filter(lambda c: isinstance(c, VariableDataPrototype), self.elements.values()), key=lambda e: e.short_name)
324
-
325
- def createRunnableEntity(self, short_name: str) -> RunnableEntity:
326
- if (short_name not in self.elements):
327
- runnable = RunnableEntity(self, short_name)
328
- self.elements[short_name] = runnable
329
- return self.elements[short_name]
330
-
331
- def getRunnableEntities(self) -> List[RunnableEntity]:
332
- return sorted(filter(lambda c: isinstance(c, RunnableEntity), self.elements.values()), key=lambda r: r.short_name)
333
-
334
- def getRunnableEntity(self, short_name) -> RunnableEntity:
335
- return self.elements[short_name]
336
-
337
-
338
-
339
- class AtomicSwComponentType(SwComponentType):
340
- __metaclass__ = ABCMeta
341
-
342
- def __init__(self, parent: ARObject, short_name: str):
343
- super().__init__(parent, short_name)
344
-
345
- def createSwcInternalBehavior(self, short_name) -> SwcInternalBehavior:
346
- if (short_name not in self.elements):
347
- if (len(list(filter(lambda e: isinstance(e, SwcInternalBehavior), self.elements.values()))) >= 1):
348
- raise ValueError("The internal behavior of <%s> can not more than 1" % self.short_name)
349
- behavior = SwcInternalBehavior(self, short_name)
350
- self.elements[short_name] = behavior
351
- return self.elements[short_name]
352
-
353
- @property
354
- def internal_behavior(self) -> SwcInternalBehavior:
355
- return next(filter(lambda e: isinstance(e, SwcInternalBehavior), self.elements.values()))
356
-
357
- class EcuAbstractionSwComponentType(AtomicSwComponentType):
358
- def __init__(self, parent:ARObject, short_name: str):
359
- super().__init__(parent, short_name)
360
-
361
- class ApplicationSwComponentType(AtomicSwComponentType):
362
- def __init__(self, parent: ARObject, short_name: str):
363
- super().__init__(parent, short_name)
364
-
365
- class ComplexDeviceDriverSwComponentType(AtomicSwComponentType):
366
- def __init__(self, parent: ARObject, short_name: str):
367
- super().__init__(parent, short_name)
368
-
369
- class NvBlockSwComponentType(AtomicSwComponentType):
370
- def __init__(self, parent: ARObject, short_name: str):
371
- super().__init__(parent, short_name)
372
-
373
- class SensorActuatorSwComponentType(AtomicSwComponentType):
374
- def __init__(self, parent: ARObject, short_name: str):
375
- super().__init__(parent, short_name)
376
-
377
- class ServiceProxySwComponentType(AtomicSwComponentType):
378
- def __init__(self, parent: ARObject, short_name: str):
379
- super().__init__(parent, short_name)
380
-
381
- class ServiceSwComponentType(AtomicSwComponentType):
382
- def __init__(self, parent: ARObject, short_name: str):
383
- super().__init__(parent, short_name)
384
-
385
-
@@ -1,7 +0,0 @@
1
-
2
- from ..ar_object import ARObject
3
- from ..fibex.fibex_core import FibexElement
4
-
5
- class NmConfig(FibexElement):
6
- def __init__(self, parent: ARObject, short_name: str):
7
- super().__init__(parent, short_name)
@@ -1,7 +0,0 @@
1
-
2
- from ..ar_object import ARObject
3
- from ..fibex.fibex_core import FibexElement
4
-
5
- class CanTpConfig(FibexElement):
6
- def __init__(self, parent: ARObject, short_name: str):
7
- super().__init__(parent, short_name)
armodel/models/timing.py DELETED
@@ -1,91 +0,0 @@
1
-
2
- from abc import ABCMeta
3
- from typing import List
4
-
5
- from armodel.models.ar_ref import RefType
6
-
7
- from ..models.general_structure import Identifiable
8
- from ..models.ar_object import ARObject
9
-
10
- class EOCExecutableEntityRefAbstract(Identifiable):
11
- __metaclass__ = ABCMeta
12
-
13
- def __init__(self, parent: ARObject, short_name: str):
14
- if type(self) == TimingConstraint:
15
- raise NotImplementedError("TimingExtension is an abstract class.")
16
-
17
- super().__init__(parent, short_name)
18
-
19
- class EOCExecutableEntityRef(EOCExecutableEntityRefAbstract):
20
- def __init__(self, parent: ARObject, short_name: str):
21
- super().__init__(parent, short_name)
22
-
23
- self.successor_refs = [] # List[RefType]
24
-
25
- def addSuccessorRef(self, ref: RefType):
26
- self.successor_refs.append(ref)
27
-
28
- def getSuccessorRefs(self) -> List[RefType]:
29
- return self.successor_refs
30
-
31
- class TimingConstraint(Identifiable):
32
- __metaclass__ = ABCMeta
33
-
34
- def __init__(self, parent: ARObject, short_name: str):
35
- if type(self) == TimingConstraint:
36
- raise NotImplementedError("TimingExtension is an abstract class.")
37
-
38
- super().__init__(parent, short_name)
39
-
40
- self.timing_condition_ref = None # type: RefType
41
-
42
- @property
43
- def timingConditionRef(self) -> RefType:
44
- return self.timing_condition_ref
45
-
46
- @timingConditionRef.setter
47
- def timingConditionRef(self, ref: RefType):
48
- self.timing_condition_ref = ref
49
-
50
- class ExecutionOrderConstraint(TimingConstraint):
51
- def __init__(self, parent: ARObject, short_name: str):
52
- super().__init__(parent, short_name)
53
-
54
- self.ordered_elements = [] # type: List[EOCExecutableEntityRefAbstract]
55
-
56
- def createEOCExecutableEntityRef(self, short_name: str)-> EOCExecutableEntityRef:
57
- if short_name not in self.elements:
58
- entity_ref = EOCExecutableEntityRef(self, short_name)
59
- self.elements[short_name] = entity_ref
60
- self.ordered_elements.append(entity_ref)
61
- return self.elements[short_name]
62
-
63
- def getOrderedElements(self) -> List[EOCExecutableEntityRefAbstract]:
64
- return self.ordered_elements
65
-
66
- class TimingExtension(Identifiable):
67
- __metaclass__ = ABCMeta
68
-
69
- def __init__(self, parent: ARObject, short_name: str):
70
- if type(self) == TimingExtension:
71
- raise NotImplementedError("TimingExtension is an abstract class.")
72
-
73
- super().__init__(parent, short_name)
74
-
75
- self.timing_requirements = [] # Type: List[TimingConstraint]
76
-
77
- def createExecutionOrderConstraint(self, short_name: str)-> ExecutionOrderConstraint:
78
- if short_name not in self.elements:
79
- constraint = ExecutionOrderConstraint(self, short_name)
80
- self.elements[short_name] = constraint
81
- self.timing_requirements.append(constraint)
82
- return self.elements[short_name]
83
-
84
- def getTimingRequirements(self) -> List[TimingConstraint]:
85
- return self.timing_requirements
86
-
87
- class SwcTiming(TimingExtension):
88
- def __init__(self, parent: ARObject, short_name: str):
89
- super().__init__(parent, short_name)
90
-
91
-