armodel 1.8.6__py3-none-any.whl → 1.9.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.
Files changed (431) hide show
  1. armodel/__init__.py +19 -3
  2. armodel/cli/arxml_dump_cli.py +196 -197
  3. armodel/cli/arxml_format_cli.py +84 -84
  4. armodel/cli/connector2xlsx_cli.py +73 -73
  5. armodel/cli/connector_update_cli.py +73 -73
  6. armodel/cli/file_list_cli.py +69 -69
  7. armodel/cli/format_xml_cli.py +62 -62
  8. armodel/cli/memory_section_cli.py +74 -75
  9. armodel/cli/swc_list_cli.py +79 -79
  10. armodel/cli/system_signal_cli.py +73 -73
  11. armodel/cli/uuid_checker_cli.py +95 -95
  12. armodel/data_models/sw_connector.py +21 -21
  13. armodel/lib/__init__.py +4 -4
  14. armodel/lib/cli_args_parser.py +36 -35
  15. armodel/lib/sw_component.py +34 -35
  16. armodel/lib/system_signal.py +36 -36
  17. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/Firewall/FirewallRule.py +62 -0
  18. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/Firewall/FirewallRuleProps.py +83 -0
  19. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/Firewall/StateDependentFirewall.py +62 -0
  20. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/Firewall/__init__.py +5 -0
  21. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/PlatformModuleDeployment/__init__.py +3 -0
  22. armodel/models/M2/AUTOSARTemplates/AdaptivePlatform/__init__.py +3 -0
  23. armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure/__init__.py +320 -0
  24. armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +315 -296
  25. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswAsynchronousServerCallReturnsEvent.py +27 -0
  26. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswExclusiveAreaPolicy.py +22 -0
  27. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswInterruptEvent.py +18 -0
  28. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswModeManagerErrorEvent.py +18 -0
  29. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswModeReceiverPolicy.py +22 -0
  30. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswSchedulerNamePrefix.py +26 -0
  31. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswServiceDependency.py +27 -0
  32. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/BswTriggerDirectImplementation.py +21 -0
  33. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior/RoleBasedBswModuleEntryAssignment.py +35 -0
  34. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +2223 -792
  35. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswImplementation.py +180 -60
  36. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces/BswEntryRelationship.py +26 -0
  37. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces/BswEntryRelationshipEnum.py +24 -0
  38. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces/BswEntryRelationshipSet.py +24 -0
  39. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswInterfaces.py +586 -200
  40. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview/ModeInBswModuleDescriptionInstanceRef.py +17 -0
  41. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +445 -179
  42. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__init__.py +0 -4
  43. armodel/models/M2/AUTOSARTemplates/CommonStructure/Constants/__init__.py +670 -0
  44. armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +243 -96
  45. armodel/models/M2/AUTOSARTemplates/CommonStructure/FlatMap.py +273 -69
  46. armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +756 -243
  47. armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +336 -170
  48. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +430 -136
  49. armodel/models/M2/AUTOSARTemplates/CommonStructure/McGroups.py +53 -0
  50. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/ImplementationElementInParameterInstanceRef.py +15 -0
  51. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McDataAccessDetails.py +60 -0
  52. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McDataInstance.py +62 -0
  53. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McFunction.py +62 -0
  54. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McParameterElementGroup.py +39 -0
  55. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McSupportData.py +62 -0
  56. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McSwEmulationMethodSupport.py +37 -0
  57. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RoleBasedMcDataAssignment.py +61 -0
  58. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/McFunctionDataRefSet.py +39 -0
  59. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptAccessEnum.py +12 -0
  60. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptComponent.py +60 -0
  61. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptEnablerImplTypeEnum.py +11 -0
  62. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutableEntity.py +62 -0
  63. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutableEntityEvent.py +62 -0
  64. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutionContext.py +38 -0
  65. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutionControlEnum.py +11 -0
  66. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptPreparationEnum.py +11 -0
  67. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptServicePoint.py +62 -0
  68. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptSupportData.py +111 -0
  69. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptSwPrototypingAccess.py +62 -0
  70. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/__init__.py +27 -0
  71. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/__init__.py +19 -0
  72. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +424 -148
  73. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclarationExtra.py +73 -0
  74. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/ExecutionTime/__init__.py +132 -0
  75. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HardwareConfiguration.py +93 -32
  76. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HeapUsage.py +78 -10
  77. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +239 -81
  78. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/SoftwareContext.py +68 -23
  79. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/StackUsage.py +274 -92
  80. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__init__.py +135 -53
  81. armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +2955 -839
  82. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationControlEnum.py +11 -0
  83. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationElementProps.py +37 -0
  84. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationEventProps.py +37 -0
  85. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationProps.py +38 -0
  86. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationPropsSet.py +38 -0
  87. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/__init__.py +13 -0
  88. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/AbstractBlueprintStructure/AtpBlueprint.py +32 -0
  89. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/AbstractBlueprintStructure/__init__.py +7 -0
  90. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/PortPrototypeBlueprint.py +186 -73
  91. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__init__.py +10 -0
  92. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintGenerator/BlueprintGenerator.py +37 -0
  93. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintGenerator/__init__.py +3 -0
  94. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintMapping/BlueprintMappingSet.py +38 -0
  95. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintMapping/__init__.py +3 -0
  96. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/Keyword.py +126 -45
  97. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__init__.py +5 -0
  98. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcBswMapping.py +290 -77
  99. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/TDLETZoneClock.py +61 -0
  100. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/TimingClock.py +60 -0
  101. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/TimingClockSyncAccuracy.py +60 -0
  102. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/__init__.py +5 -0
  103. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/ModeInBswInstanceRef.py +14 -0
  104. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/ModeInSwcInstanceRef.py +14 -0
  105. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingCondition.py +61 -0
  106. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingConditionFormula.py +37 -0
  107. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingExtensionResource.py +60 -0
  108. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingModeInstance.py +61 -0
  109. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/__init__.py +15 -0
  110. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/AgeConstraint.py +57 -0
  111. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/EventTriggeringConstraint.py +203 -0
  112. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/ExecutionOrderConstraint.py +193 -45
  113. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/ExecutionTimeConstraint.py +101 -0
  114. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/LatencyTimingConstraint.py +100 -0
  115. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/OffsetConstraint.py +56 -0
  116. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/SynchronizationPointConstraint.py +57 -0
  117. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/SynchronizationTiming.py +117 -0
  118. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingConstraint.py +59 -24
  119. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingExtensions.py +69 -32
  120. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__init__.py +48 -0
  121. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/Traceable.py +11 -0
  122. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/__init__.py +16 -0
  123. armodel/models/M2/AUTOSARTemplates/CommonStructure/TriggerDeclaration.py +147 -52
  124. armodel/models/M2/AUTOSARTemplates/CommonStructure/__init__.py +17 -205
  125. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/DiagnosticCommonElement.py +11 -0
  126. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/DiagnosticContribution.py +137 -47
  127. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__init__.py +10 -0
  128. armodel/models/M2/AUTOSARTemplates/ECUCDescriptionTemplate.py +285 -346
  129. armodel/models/M2/AUTOSARTemplates/ECUCParameterDefTemplate.py +1561 -1249
  130. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwAttributeValue.py +117 -0
  131. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwElementCategory.py +176 -59
  132. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwElementConnector.py +73 -0
  133. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__init__.py +401 -145
  134. armodel/models/M2/AUTOSARTemplates/GenericStructure/AbstractStructure.py +293 -92
  135. armodel/models/M2/AUTOSARTemplates/GenericStructure/DocumentationOnM1/__init__.py +39 -0
  136. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +1314 -816
  137. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/AnyInstanceRef.py +88 -0
  138. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ArObject.py +37 -17
  139. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ElementCollection.py +197 -74
  140. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/EngineeringObject.py +129 -51
  141. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Enumerations.py +16 -0
  142. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +599 -236
  143. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +902 -594
  144. armodel/models/M2/AUTOSARTemplates/GenericStructure/LifeCycles.py +395 -155
  145. armodel/models/M2/AUTOSARTemplates/GenericStructure/RolesAndRights/AtpDefinition.py +36 -0
  146. armodel/models/M2/AUTOSARTemplates/GenericStructure/RolesAndRights/__init__.py +7 -0
  147. armodel/models/M2/AUTOSARTemplates/GenericStructure/VariantHandling/AttributeValueVariationPoints/__init__.py +36 -0
  148. armodel/models/M2/AUTOSARTemplates/GenericStructure/VariantHandling/__init__.py +182 -0
  149. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/ApplicationAttributes/__init__.py +97 -0
  150. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +784 -712
  151. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/InstanceRefs.py +186 -179
  152. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +363 -463
  153. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/InstanceRefs.py +160 -154
  154. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +160 -100
  155. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/DataPrototypes.py +145 -145
  156. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +137 -131
  157. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/EndToEndProtection.py +191 -184
  158. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/InstanceRefs.py +45 -39
  159. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +647 -641
  160. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/RPTScenario.py +21 -17
  161. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SoftwareComponentDocumentation.py +84 -80
  162. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwComponentType.py +76 -0
  163. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcImplementation.py +37 -34
  164. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AccessCount.py +26 -21
  165. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AutosarVariableRef.py +39 -34
  166. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/DataElements.py +57 -52
  167. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/IncludedDataTypes.py +32 -24
  168. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/InstanceRefsUsage.py +160 -155
  169. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py +68 -63
  170. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PerInstanceMemory.py +46 -40
  171. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PortAPIOptions.py +91 -86
  172. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +219 -206
  173. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServerCall.py +33 -26
  174. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +148 -137
  175. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/Trigger.py +54 -49
  176. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +488 -489
  177. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +334 -259
  178. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DiagnosticConnection.py +62 -58
  179. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DoIp.py +48 -29
  180. armodel/models/M2/AUTOSARTemplates/SystemTemplate/{EcuResourceMapping.py → ECUResourceMapping.py} +48 -45
  181. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanCommunication.py +139 -122
  182. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +628 -344
  183. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__init__.py +2 -0
  184. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetCommunication.py +267 -244
  185. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetFrame.py +30 -16
  186. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +750 -685
  187. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/NetworkEndpoint.py +375 -327
  188. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +924 -975
  189. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayCommunication.py +92 -76
  190. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayTopology.py +669 -654
  191. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinCommunication.py +193 -149
  192. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinTopology.py +110 -92
  193. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py +205 -205
  194. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +1376 -1232
  195. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +800 -662
  196. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +269 -270
  197. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/Timing.py +172 -172
  198. armodel/models/M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py +90 -87
  199. armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +899 -789
  200. armodel/models/M2/AUTOSARTemplates/SystemTemplate/RteEventToOsTaskMapping.py +43 -35
  201. armodel/models/M2/AUTOSARTemplates/SystemTemplate/SWmapping.py +65 -52
  202. armodel/models/M2/AUTOSARTemplates/SystemTemplate/SecureCommunication.py +105 -83
  203. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Transformer/__init__.py +574 -524
  204. armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +739 -658
  205. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +493 -458
  206. armodel/models/M2/MSR/AsamHdo/AdminData.py +150 -136
  207. armodel/models/M2/MSR/AsamHdo/BaseTypes.py +95 -76
  208. armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +367 -329
  209. armodel/models/M2/MSR/AsamHdo/Constraints/GlobalConstraints.py +58 -41
  210. armodel/models/M2/MSR/AsamHdo/SpecialData.py +99 -87
  211. armodel/models/M2/MSR/AsamHdo/Units.py +159 -105
  212. armodel/models/M2/MSR/CalibrationData/CalibrationValue.py +55 -57
  213. armodel/models/M2/MSR/DataDictionary/AuxillaryObjects.py +40 -41
  214. armodel/models/M2/MSR/DataDictionary/Axis.py +142 -144
  215. armodel/models/M2/MSR/DataDictionary/CalibrationParameter.py +35 -36
  216. armodel/models/M2/MSR/DataDictionary/DataDefProperties.py +383 -351
  217. armodel/models/M2/MSR/DataDictionary/RecordLayout.py +207 -209
  218. armodel/models/M2/MSR/DataDictionary/ServiceProcessTask.py +31 -33
  219. armodel/models/M2/MSR/DataDictionary/SystemConstant.py +32 -0
  220. armodel/models/M2/MSR/Documentation/Annotation.py +40 -41
  221. armodel/models/M2/MSR/Documentation/BlockElements/Figure.py +162 -163
  222. armodel/models/M2/MSR/Documentation/BlockElements/Formula/__init__.py +26 -0
  223. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/ListElements.py +55 -56
  224. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/PaginationAndView.py +35 -30
  225. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__init__.py +110 -110
  226. armodel/models/M2/MSR/Documentation/TextModel/LanguageDataModel.py +57 -44
  227. armodel/models/M2/MSR/Documentation/TextModel/MultilanguageData.py +59 -58
  228. armodel/models/M2/MSR/Documentation/__init__.py +3 -3
  229. armodel/models/M2/MSR/documentation/__init__.py +3 -0
  230. armodel/models/__init__.py +86 -85
  231. armodel/models/utils/uuid_mgr.py +28 -29
  232. armodel/parser/__init__.py +2 -2
  233. armodel/parser/abstract_arxml_parser.py +323 -325
  234. armodel/parser/arxml_parser.py +5832 -5830
  235. armodel/parser/connector_xlsx_parser.py +192 -193
  236. armodel/parser/excel_parser.py +17 -17
  237. armodel/parser/file_parser.py +46 -46
  238. armodel/report/__init__.py +1 -1
  239. armodel/report/connector_xls_report.py +76 -77
  240. armodel/report/excel_report.py +41 -41
  241. armodel/transformer/abstract.py +6 -6
  242. armodel/transformer/admin_data.py +31 -31
  243. armodel/writer/__init__.py +1 -1
  244. armodel/writer/abstract_arxml_writer.py +146 -147
  245. armodel/writer/arxml_writer.py +5969 -5965
  246. {armodel-1.8.6.dist-info → armodel-1.9.1.dist-info}/METADATA +850 -656
  247. armodel-1.9.1.dist-info/RECORD +273 -0
  248. {armodel-1.8.6.dist-info → armodel-1.9.1.dist-info}/WHEEL +1 -1
  249. {armodel-1.8.6.dist-info → armodel-1.9.1.dist-info}/entry_points.txt +0 -1
  250. {armodel-1.8.6.dist-info → armodel-1.9.1.dist-info/licenses}/LICENSE +21 -21
  251. armodel/__pycache__/__init__.cpython-312.pyc +0 -0
  252. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswBehavior.cpython-312.pyc +0 -0
  253. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswImplementation.cpython-312.pyc +0 -0
  254. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswInterfaces.cpython-312.pyc +0 -0
  255. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswOverview.cpython-312.pyc +0 -0
  256. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  257. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/HardwareConfiguration.cpython-312.pyc +0 -0
  258. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/HeapUsage.cpython-312.pyc +0 -0
  259. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/MemorySectionUsage.cpython-312.pyc +0 -0
  260. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/SoftwareContext.cpython-312.pyc +0 -0
  261. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/StackUsage.cpython-312.pyc +0 -0
  262. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/__init__.cpython-312.pyc +0 -0
  263. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__pycache__/PortPrototypeBlueprint.cpython-312.pyc +0 -0
  264. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__pycache__/__init__.cpython-312.pyc +0 -0
  265. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__pycache__/Keyword.cpython-312.pyc +0 -0
  266. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  267. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/ModeDeclarationGroup.py +0 -24
  268. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/__init__.py +0 -0
  269. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/ExecutionOrderConstraint.cpython-312.pyc +0 -0
  270. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/TimingConstraint.cpython-312.pyc +0 -0
  271. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/TimingExtensions.cpython-312.pyc +0 -0
  272. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/__init__.cpython-312.pyc +0 -0
  273. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/__pycache__/__init__.cpython-312.pyc +0 -0
  274. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/Filter.cpython-312.pyc +0 -0
  275. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/FlatMap.cpython-312.pyc +0 -0
  276. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/Implementation.cpython-312.pyc +0 -0
  277. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/ImplementationDataTypes.cpython-312.pyc +0 -0
  278. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/InternalBehavior.cpython-312.pyc +0 -0
  279. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/ModeDeclaration.cpython-312.pyc +0 -0
  280. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/ServiceNeeds.cpython-312.pyc +0 -0
  281. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/SwcBswMapping.cpython-312.pyc +0 -0
  282. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/TriggerDeclaration.cpython-312.pyc +0 -0
  283. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/__init__.cpython-312.pyc +0 -0
  284. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__pycache__/DiagnosticContribution.cpython-312.pyc +0 -0
  285. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__pycache__/__init__.cpython-312.pyc +0 -0
  286. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__pycache__/HwElementCategory.cpython-312.pyc +0 -0
  287. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  288. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/ARPackage.cpython-312.pyc +0 -0
  289. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/ArObject.cpython-312.pyc +0 -0
  290. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/ElementCollection.cpython-312.pyc +0 -0
  291. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/EngineeringObject.cpython-312.pyc +0 -0
  292. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/Identifiable.cpython-312.pyc +0 -0
  293. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/PrimitiveTypes.cpython-312.pyc +0 -0
  294. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/__init__.cpython-312.pyc +0 -0
  295. armodel/models/M2/AUTOSARTemplates/GenericStructure/__pycache__/AbstractStructure.cpython-312.pyc +0 -0
  296. armodel/models/M2/AUTOSARTemplates/GenericStructure/__pycache__/LifeCycles.cpython-312.pyc +0 -0
  297. armodel/models/M2/AUTOSARTemplates/GenericStructure/__pycache__/__init__.cpython-312.pyc +0 -0
  298. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  299. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__pycache__/__init__.cpython-312.pyc +0 -0
  300. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  301. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__pycache__/__init__.cpython-312.pyc +0 -0
  302. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__pycache__/DataPrototypes.cpython-312.pyc +0 -0
  303. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__pycache__/Datatypes.cpython-312.pyc +0 -0
  304. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__pycache__/__init__.cpython-312.pyc +0 -0
  305. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  306. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__pycache__/__init__.cpython-312.pyc +0 -0
  307. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/AccessCount.cpython-312.pyc +0 -0
  308. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/AutosarVariableRef.cpython-312.pyc +0 -0
  309. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/DataElements.cpython-312.pyc +0 -0
  310. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/IncludedDataTypes.cpython-312.pyc +0 -0
  311. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/InstanceRefsUsage.cpython-312.pyc +0 -0
  312. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/ModeDeclarationGroup.cpython-312.pyc +0 -0
  313. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/PerInstanceMemory.cpython-312.pyc +0 -0
  314. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/PortAPIOptions.cpython-312.pyc +0 -0
  315. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/RTEEvents.cpython-312.pyc +0 -0
  316. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/ServerCall.cpython-312.pyc +0 -0
  317. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/ServiceMapping.cpython-312.pyc +0 -0
  318. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/Trigger.cpython-312.pyc +0 -0
  319. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/__init__.cpython-312.pyc +0 -0
  320. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/Communication.cpython-312.pyc +0 -0
  321. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/EndToEndProtection.cpython-312.pyc +0 -0
  322. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/RPTScenario.cpython-312.pyc +0 -0
  323. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/SwcImplementation.cpython-312.pyc +0 -0
  324. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  325. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__pycache__/CanCommunication.cpython-312.pyc +0 -0
  326. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__pycache__/CanTopology.cpython-312.pyc +0 -0
  327. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__pycache__/__init__.cpython-312.pyc +0 -0
  328. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/EthernetCommunication.cpython-312.pyc +0 -0
  329. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/EthernetFrame.cpython-312.pyc +0 -0
  330. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/EthernetTopology.cpython-312.pyc +0 -0
  331. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/NetworkEndpoint.cpython-312.pyc +0 -0
  332. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/ServiceInstances.cpython-312.pyc +0 -0
  333. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/__init__.cpython-312.pyc +0 -0
  334. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__pycache__/FlexrayCommunication.cpython-312.pyc +0 -0
  335. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__pycache__/FlexrayTopology.cpython-312.pyc +0 -0
  336. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__pycache__/__init__.cpython-312.pyc +0 -0
  337. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__pycache__/LinCommunication.cpython-312.pyc +0 -0
  338. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__pycache__/LinTopology.cpython-312.pyc +0 -0
  339. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__pycache__/__init__.cpython-312.pyc +0 -0
  340. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/CoreCommunication.cpython-312.pyc +0 -0
  341. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/CoreTopology.cpython-312.pyc +0 -0
  342. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/EcuInstance.cpython-312.pyc +0 -0
  343. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/Timing.cpython-312.pyc +0 -0
  344. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/__init__.cpython-312.pyc +0 -0
  345. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/__pycache__/Fibex4Multiplatform.cpython-312.pyc +0 -0
  346. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/__pycache__/__init__.cpython-312.pyc +0 -0
  347. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Transformer/__pycache__/__init__.cpython-312.pyc +0 -0
  348. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/DataMapping.cpython-312.pyc +0 -0
  349. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/DiagnosticConnection.cpython-312.pyc +0 -0
  350. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/DoIp.cpython-312.pyc +0 -0
  351. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/EcuResourceMapping.cpython-312.pyc +0 -0
  352. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  353. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/NetworkManagement.cpython-312.pyc +0 -0
  354. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/RteEventToOsTaskMapping.cpython-312.pyc +0 -0
  355. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/SWmapping.cpython-312.pyc +0 -0
  356. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/SecureCommunication.cpython-312.pyc +0 -0
  357. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/TransportProtocols.cpython-312.pyc +0 -0
  358. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  359. armodel/models/M2/AUTOSARTemplates/__pycache__/AutosarTopLevelStructure.cpython-312.pyc +0 -0
  360. armodel/models/M2/AUTOSARTemplates/__pycache__/ECUCDescriptionTemplate.cpython-312.pyc +0 -0
  361. armodel/models/M2/AUTOSARTemplates/__pycache__/ECUCParameterDefTemplate.cpython-312.pyc +0 -0
  362. armodel/models/M2/AUTOSARTemplates/__pycache__/__init__.cpython-312.pyc +0 -0
  363. armodel/models/M2/MSR/AsamHdo/Constraints/__pycache__/GlobalConstraints.cpython-312.pyc +0 -0
  364. armodel/models/M2/MSR/AsamHdo/Constraints/__pycache__/__init__.cpython-312.pyc +0 -0
  365. armodel/models/M2/MSR/AsamHdo/__pycache__/AdminData.cpython-312.pyc +0 -0
  366. armodel/models/M2/MSR/AsamHdo/__pycache__/BaseTypes.cpython-312.pyc +0 -0
  367. armodel/models/M2/MSR/AsamHdo/__pycache__/ComputationMethod.cpython-312.pyc +0 -0
  368. armodel/models/M2/MSR/AsamHdo/__pycache__/SpecialData.cpython-312.pyc +0 -0
  369. armodel/models/M2/MSR/AsamHdo/__pycache__/Units.cpython-312.pyc +0 -0
  370. armodel/models/M2/MSR/AsamHdo/__pycache__/__init__.cpython-312.pyc +0 -0
  371. armodel/models/M2/MSR/CalibrationData/__pycache__/CalibrationValue.cpython-312.pyc +0 -0
  372. armodel/models/M2/MSR/CalibrationData/__pycache__/__init__.cpython-312.pyc +0 -0
  373. armodel/models/M2/MSR/DataDictionary/__pycache__/AuxillaryObjects.cpython-312.pyc +0 -0
  374. armodel/models/M2/MSR/DataDictionary/__pycache__/Axis.cpython-312.pyc +0 -0
  375. armodel/models/M2/MSR/DataDictionary/__pycache__/CalibrationParameter.cpython-312.pyc +0 -0
  376. armodel/models/M2/MSR/DataDictionary/__pycache__/DataDefProperties.cpython-312.pyc +0 -0
  377. armodel/models/M2/MSR/DataDictionary/__pycache__/RecordLayout.cpython-312.pyc +0 -0
  378. armodel/models/M2/MSR/DataDictionary/__pycache__/ServiceProcessTask.cpython-312.pyc +0 -0
  379. armodel/models/M2/MSR/DataDictionary/__pycache__/__init__.cpython-312.pyc +0 -0
  380. armodel/models/M2/MSR/Documentation/BlockElements/__pycache__/Figure.cpython-312.pyc +0 -0
  381. armodel/models/M2/MSR/Documentation/BlockElements/__pycache__/__init__.cpython-312.pyc +0 -0
  382. armodel/models/M2/MSR/Documentation/BlockElements.py +0 -18
  383. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__pycache__/ListElements.cpython-312.pyc +0 -0
  384. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__pycache__/PaginationAndView.cpython-312.pyc +0 -0
  385. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__pycache__/__init__.cpython-312.pyc +0 -0
  386. armodel/models/M2/MSR/Documentation/TextModel/__pycache__/LanguageDataModel.cpython-312.pyc +0 -0
  387. armodel/models/M2/MSR/Documentation/TextModel/__pycache__/MultilanguageData.cpython-312.pyc +0 -0
  388. armodel/models/M2/MSR/Documentation/TextModel/__pycache__/__init__.cpython-312.pyc +0 -0
  389. armodel/models/M2/MSR/Documentation/__pycache__/Annotation.cpython-312.pyc +0 -0
  390. armodel/models/M2/MSR/Documentation/__pycache__/__init__.cpython-312.pyc +0 -0
  391. armodel/models/M2/MSR/__pycache__/__init__.cpython-312.pyc +0 -0
  392. armodel/models/M2/__pycache__/__init__.cpython-312.pyc +0 -0
  393. armodel/models/__pycache__/__init__.cpython-312.pyc +0 -0
  394. armodel/models/utils/__pycache__/__init__.cpython-312.pyc +0 -0
  395. armodel/models/utils/__pycache__/uuid_mgr.cpython-312.pyc +0 -0
  396. armodel/parser/__pycache__/__init__.cpython-312.pyc +0 -0
  397. armodel/parser/__pycache__/abstract_arxml_parser.cpython-312.pyc +0 -0
  398. armodel/parser/__pycache__/arxml_parser.cpython-312.pyc +0 -0
  399. armodel/parser/__pycache__/file_parser.cpython-312.pyc +0 -0
  400. armodel/tests/__init__.py +0 -0
  401. armodel/tests/test_armodel/__init__.py +0 -0
  402. armodel/tests/test_armodel/models/__init__.py +0 -0
  403. armodel/tests/test_armodel/models/test_ECUCParameterDefTemplate.py +0 -116
  404. armodel/tests/test_armodel/models/test_Identifiable.py +0 -85
  405. armodel/tests/test_armodel/models/test_ar_object.py +0 -154
  406. armodel/tests/test_armodel/models/test_ar_package.py +0 -304
  407. armodel/tests/test_armodel/models/test_ar_ref.py +0 -81
  408. armodel/tests/test_armodel/models/test_bsw_module_template.py +0 -52
  409. armodel/tests/test_armodel/models/test_common_structure.py +0 -82
  410. armodel/tests/test_armodel/models/test_data_dictionary.py +0 -30
  411. armodel/tests/test_armodel/models/test_data_prototype.py +0 -93
  412. armodel/tests/test_armodel/models/test_datatype.py +0 -251
  413. armodel/tests/test_armodel/models/test_general_structure.py +0 -56
  414. armodel/tests/test_armodel/models/test_implementation.py +0 -27
  415. armodel/tests/test_armodel/models/test_m2_msr.py +0 -79
  416. armodel/tests/test_armodel/models/test_port_interface.py +0 -202
  417. armodel/tests/test_armodel/models/test_port_prototype.py +0 -15
  418. armodel/tests/test_armodel/parser/__init__.py +0 -0
  419. armodel/tests/test_armodel/parser/test_arxml_parser.py +0 -53
  420. armodel/tests/test_armodel/parser/test_bsw_module_descriiption.py +0 -218
  421. armodel/tests/test_armodel/parser/test_implementation_data_type.py +0 -247
  422. armodel/tests/test_armodel/parser/test_parse_bswmd.py +0 -202
  423. armodel/tests/test_armodel/parser/test_rte_event.py +0 -142
  424. armodel/tests/test_armodel/parser/test_runnable_entity.py +0 -135
  425. armodel/tests/test_armodel/parser/test_sw_components.py +0 -484
  426. armodel/tests/test_armodel/parser/test_system.py +0 -23
  427. armodel/writer/__pycache__/__init__.cpython-312.pyc +0 -0
  428. armodel/writer/__pycache__/abstract_arxml_writer.cpython-312.pyc +0 -0
  429. armodel/writer/__pycache__/arxml_writer.cpython-312.pyc +0 -0
  430. armodel-1.8.6.dist-info/RECORD +0 -360
  431. {armodel-1.8.6.dist-info → armodel-1.9.1.dist-info}/top_level.txt +0 -0
@@ -1,325 +1,323 @@
1
- from abc import ABCMeta
2
- from typing import List
3
- from colorama import Fore
4
-
5
- import re
6
- import logging
7
- import xml.etree.ElementTree as ET
8
-
9
- from ..models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
10
- from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
11
- from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Identifiable
12
- from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARFloat, ARLiteral, ARNumerical, Boolean, DateTime
13
- from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Integer, PositiveInteger, TimeValue
14
- from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType, Limit, RevisionLabelString
15
-
16
-
17
- class AbstractARXMLParser:
18
- __metaclass__ = ABCMeta
19
-
20
- def __init__(self, options=None) -> None:
21
- if type(self) is AbstractARXMLParser:
22
- raise NotImplementedError("AbstractArxmlParser is an abstract class.")
23
-
24
- self.nsmap = {"xmlns": "http://autosar.org/schema/r4.0"}
25
- self.options = {}
26
- self.options['warning'] = False
27
- self.logger = logging.getLogger()
28
-
29
- self._processOptions(options=options)
30
-
31
- def getTagName(self, tag: ET.Element) -> str:
32
- if isinstance(tag, ET.Element):
33
- tag = tag.tag
34
- if isinstance(tag, str):
35
- return tag.replace("{%s}" % self.nsmap["xmlns"], "")
36
- self.raiseError("Invalid Tag type <%s>" % type(tag))
37
-
38
- def _processOptions(self, options):
39
- if options:
40
- if 'warning' in options:
41
- self.options['warning'] = options['warning']
42
-
43
- def raiseError(self, error_msg):
44
- if (self.options['warning'] is True):
45
- self.logger.error(Fore.RED + error_msg + Fore.WHITE)
46
- else:
47
- raise ValueError(error_msg)
48
-
49
- def notImplemented(self, error_msg):
50
- if (self.options['warning'] is True):
51
- self.logger.error(Fore.RED + error_msg + Fore.WHITE)
52
- else:
53
- raise NotImplementedError(error_msg)
54
-
55
- def raiseWarning(self, error_msg):
56
- self.logger.warning(error_msg)
57
-
58
- def getPureTagName(self, tag):
59
- return re.sub(r'\{[\w:\/.]+\}(\w+)', r'\1', tag)
60
-
61
- '''
62
- def getChildElement(self, short_name: str, element: ET.Element, key: str) -> str:
63
- child_element = element.find("./xmlns:%s" % key, self.nsmap)
64
- if (child_element is not None):
65
- return child_element.text
66
- self._raiseError("The attribute %s of <%s> has not been defined" % (key, short_name))
67
- '''
68
- '''
69
- def getChildElementOptionalValue(self, element: ET.Element, key: str) -> str:
70
- child_element = element.find("./xmlns:%s" % key, self.nsmap)
71
- if (child_element is not None):
72
- if child_element.text is None:
73
- return ""
74
- return child_element.text
75
- return None
76
- '''
77
-
78
- def getChildElementLiteral(self, short_name: str, element: ET.Element, key: str) -> ARLiteral:
79
- child_element = self.find(element, key)
80
- if (child_element is not None):
81
- literal = ARLiteral()
82
- self.readARObjectAttributes(child_element, literal)
83
- literal._value = child_element.text
84
- return literal
85
- self.raiseError("The attribute %s of <%s> has not been defined" % (key, short_name))
86
-
87
- def getChildElementLiteralValueList(self, element: ET.Element, key: str) -> List[ARLiteral]:
88
- child_elements = self.findall(element, key)
89
- results = []
90
- for child_element in child_elements:
91
- literal = ARLiteral()
92
- literal.setValue(child_element.text)
93
- results.append(literal)
94
- return results
95
-
96
- def getChildElementOptionalLiteral(self, element: ET.Element, key: str) -> ARLiteral:
97
- child_element = self.find(element, key)
98
- literal = None
99
- if (child_element is not None):
100
- # self.logger.debug("getChildElementOptionalLiteral : %s" % child_element.text)
101
- literal = ARLiteral()
102
- self.readARObjectAttributes(child_element, literal)
103
- # Patch for empty element <USED-CODE-GENERATOR></USED-CODE-GENERATOR>
104
- if child_element.text is None:
105
- literal.setValue("")
106
- else:
107
- literal.setValue(child_element.text)
108
- return literal
109
-
110
- def getChildElementOptionalRevisionLabelString(self, element: ET.Element, key: str) -> RevisionLabelString:
111
- child_element = self.find(element, key)
112
- literal = None
113
- if (child_element is not None) and (child_element.text is not None):
114
- # self.logger.debug("getChildElementOptionalRevisionLabelString : %s" % child_element.text)
115
- m = re.match(r'[0-9]+\.[0-9]+\.[0-9]+([\._;].*)?', child_element.text)
116
- if not m:
117
- raise ValueError("Invalid RevisionLabelString <%s>" % child_element.text)
118
- literal = RevisionLabelString()
119
- self.readARObjectAttributes(child_element, literal)
120
- # Patch for empty element <USED-CODE-GENERATOR></USED-CODE-GENERATOR>
121
- if child_element.text is None:
122
- literal.setValue("")
123
- else:
124
- literal.setValue(child_element.text)
125
- return literal
126
-
127
- def getChildElementOptionalDataTime(self, element: ET.Element, key: str) -> DateTime:
128
- return self.getChildElementOptionalLiteral(element, key)
129
-
130
- def _convertStringToBooleanValue(self, value: str) -> bool:
131
- if (value == "true"):
132
- return True
133
- return False
134
-
135
- def getChildElementOptionalFloatValue(self, element: ET.Element, key: str) -> ARFloat:
136
- child_element = self.find(element, key)
137
- float_value = None
138
- if (child_element is not None) and (child_element.text is not None):
139
- float_value = ARFloat()
140
- self.readARObjectAttributes(child_element, float_value)
141
- float_value.setValue(child_element.text)
142
- return float_value
143
-
144
- def getChildElementFloatValueList(self, element: ET.Element, key: str) -> ARFloat:
145
- child_elements = self.findall(element, key)
146
- results = []
147
- for child_element in child_elements:
148
- float_value = ARFloat()
149
- float_value.setValue(child_element.text)
150
- results.append(float_value)
151
- return results
152
-
153
- def getChildElementOptionalTimeValue(self, element: ET.Element, key: str) -> TimeValue:
154
- child_element = self.find(element, key)
155
- time_value = None
156
- if (child_element is not None) and (child_element.text is not None):
157
- time_value = TimeValue()
158
- time_value.setValue(child_element.text)
159
- return time_value
160
-
161
- '''
162
- def getChildElementBooleanValue(self, short_name: str, element: ET.Element, key: str) -> Boolean:
163
- literal = self.getChildElementLiteral(short_name, element, key)
164
- bool_value = Boolean()
165
- bool_value.timestamp = literal.timestamp
166
- bool_value.value = self._convertStringToBooleanValue(literal._value)
167
- return bool_value
168
- '''
169
-
170
- def getChildElementOptionalBooleanValue(self, element: ET.Element, key: str) -> Boolean:
171
- literal = self.getChildElementOptionalLiteral(element, key)
172
- if literal is None:
173
- return None
174
- if literal.getText() == "":
175
- return None
176
- bool_value = Boolean()
177
- bool_value.timestamp = literal.timestamp
178
- bool_value.setValue(literal.getText())
179
- return bool_value
180
-
181
- def _convertStringToNumberValue(self, value) -> int:
182
- m = re.match(r"0x([0-9a-f]+)", value, re.I)
183
- if (m):
184
- return int(m.group(1), 16)
185
- return int(value)
186
-
187
- def getChildElementOptionalNumericalValue(self, element: ET.Element, key: str) -> ARNumerical:
188
- child_element = self.find(element, key)
189
- if child_element is None:
190
- return None
191
- numerical = ARNumerical()
192
- self.readARObjectAttributes(child_element, numerical)
193
- if "SHORT-LABEL" in child_element.attrib:
194
- numerical.setShortLabel(child_element.attrib["SHORT-LABEL"])
195
- numerical.setValue(child_element.text)
196
- return numerical
197
-
198
- def getChildElementOptionalIntegerValue(self, element: ET.Element, key: str) -> Integer:
199
- child_element = self.find(element, key)
200
- if child_element is None:
201
- return None
202
- numerical = Integer()
203
- self.readARObjectAttributes(child_element, numerical)
204
- numerical.setValue(child_element.text)
205
- return numerical
206
-
207
- def getChildElementOptionalPositiveInteger(self, element: ET.Element, key: str) -> PositiveInteger:
208
- child_element = self.find(element, key)
209
- if child_element is None:
210
- return None
211
- if child_element.text is None:
212
- return None
213
- numerical = PositiveInteger()
214
- self.readARObjectAttributes(child_element, numerical)
215
- numerical.setValue(child_element.text)
216
- if numerical.getValue() < 0:
217
- raise ValueError("Invalid PositiveInteger <%s>" % child_element.text)
218
- return numerical
219
-
220
- def getChildElementNumericalValueList(self, element: ET.Element, key: str) -> List[ARNumerical]:
221
- child_elements = self.findall(element, key)
222
- results = []
223
- for child_element in child_elements:
224
- numerical = ARNumerical()
225
- numerical.setValue(child_element.text)
226
- results.append(numerical)
227
- return results
228
-
229
- def getChildLimitElement(self, element: ET.Element, key: str) -> Limit:
230
- child_element = self.find(element, key)
231
- if (child_element is not None):
232
- limit = Limit()
233
- self.readARObjectAttributes(child_element, limit)
234
- if ('INTERVAL-TYPE' in child_element.attrib):
235
- limit.intervalType = child_element.attrib['INTERVAL-TYPE']
236
- else:
237
- limit.intervalType = None
238
- limit.value = child_element.text
239
- return limit
240
- return None
241
-
242
- def _getChildElementRefTypeDestAndValue(self, element: ET.Element) -> RefType:
243
- ref = RefType()
244
- if 'BASE' in element.attrib:
245
- ref.setBase(element.attrib['BASE'])
246
- if 'DEST' in element.attrib:
247
- ref.setDest(element.attrib['DEST'])
248
- ref.setValue(element.text)
249
- return ref
250
-
251
- def getChildElementRefType(self, short_name: str, element: ET.Element, key: str) -> RefType:
252
- child_element = self.find(element, key)
253
- if (child_element is not None):
254
- return self._getChildElementRefTypeDestAndValue(child_element)
255
- self.raiseError("The attribute %s of <%s> has not been defined" % (key, short_name))
256
-
257
- def getChildElementOptionalRefType(self, element: ET.Element, key: str) -> RefType:
258
- child_element = self.find(element, key)
259
- if (child_element is not None):
260
- return self._getChildElementRefTypeDestAndValue(child_element)
261
- return None
262
-
263
- def getChildElementRefTypeList(self, element: ET.Element, key: str) -> List[RefType]:
264
- child_elements = self.findall(element, key)
265
- results = []
266
- for child_element in child_elements:
267
- ref = RefType()
268
- if 'BASE' in child_element.attrib:
269
- ref.setBase(child_element.attrib['BASE'])
270
- if 'DEST' in child_element.attrib:
271
- ref.setDest(child_element.attrib['DEST'])
272
- ref.setValue(child_element.text)
273
- results.append(ref)
274
- return results
275
-
276
- def readElementOptionalAttrib(self, element: ET.Element, key: str) -> str:
277
- if key in element.attrib:
278
- return element.attrib[key]
279
- return None
280
-
281
- def readARObjectAttributes(self, element: ET.Element, ar_object: ARObject):
282
- ar_object.timestamp = self.readElementOptionalAttrib(element, "T") # read the timestamp
283
- ar_object.uuid = self.readElementOptionalAttrib(element, "UUID") # read the uuid
284
-
285
- AUTOSAR.getInstance().addARObject(ar_object)
286
-
287
- # if ar_object.timestamp is not None:
288
- # self.logger.debug("Timestamp: %s" % ar_object.timestamp)
289
-
290
- '''
291
- if ar_object.uuid is not None:
292
- instance = AUTOSAR.getInstance()
293
- old_ar_object = instance.getARObjectByUUID(ar_object.uuid)
294
- if old_ar_object is not None:
295
- self.logger.warning(Fore.YELLOW + "Duplicate UUID <%s> / type <%s>" % (ar_object.uuid, type(old_ar_object)) + Fore.WHITE)
296
- else:
297
- instance.addARObject(ar_object)
298
- # self.logger.debug("UUID: %s" % ar_object.uuid)
299
- '''
300
-
301
- def getAUTOSARInfo(self, element: ET.Element, document: AUTOSAR):
302
- key = "{http://www.w3.org/2001/XMLSchema-instance}schemaLocation"
303
- if key in element.attrib:
304
- document.schema_location = element.attrib[key]
305
-
306
- self.logger.debug("schemaLocation %s" % document.schema_location)
307
-
308
- def getShortName(self, element: ET.Element) -> str:
309
- child_element = self.find(element, "SHORT-NAME")
310
- if child_element is None:
311
- raise ValueError("Short Name is required")
312
- return child_element.text
313
-
314
- def convert_find_key(self, key: str) -> str:
315
- keys = key.split("/")
316
- for idx, item in enumerate(keys):
317
- if item != "*" and item != ".":
318
- keys[idx] = "xmlns:%s" % item
319
- return "/".join(keys)
320
-
321
- def find(self, parent: ET.Element, key: str) -> ET.Element:
322
- return parent.find(self.convert_find_key(key), self.nsmap)
323
-
324
- def findall(self, parent: ET.Element, key: str) -> List[ET.Element]:
325
- return parent.findall(self.convert_find_key(key), self.nsmap)
1
+ from abc import ABC
2
+ from typing import List
3
+ from colorama import Fore
4
+
5
+ import re
6
+ import logging
7
+ import xml.etree.ElementTree as ET
8
+
9
+ from armodel.models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
10
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
11
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARFloat, ARLiteral, ARNumerical, Boolean, DateTime
12
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Integer, PositiveInteger, TimeValue
13
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType, Limit, RevisionLabelString
14
+
15
+
16
+ class AbstractARXMLParser(ABC):
17
+
18
+ def __init__(self, options=None) -> None:
19
+ if type(self) is AbstractARXMLParser:
20
+ raise TypeError("AbstractArxmlParser is an abstract class.")
21
+
22
+ self.nsmap = {"xmlns": "http://autosar.org/schema/r4.0"}
23
+ self.options = {}
24
+ self.options['warning'] = False
25
+ self.logger = logging.getLogger()
26
+
27
+ self._processOptions(options=options)
28
+
29
+ def getTagName(self, tag: ET.Element) -> str:
30
+ if isinstance(tag, ET.Element):
31
+ tag = tag.tag
32
+ if isinstance(tag, str):
33
+ return tag.replace("{%s}" % self.nsmap["xmlns"], "")
34
+ self.raiseError("Invalid Tag type <%s>" % type(tag))
35
+
36
+ def _processOptions(self, options):
37
+ if options:
38
+ if 'warning' in options:
39
+ self.options['warning'] = options['warning']
40
+
41
+ def raiseError(self, error_msg):
42
+ if (self.options['warning'] is True):
43
+ self.logger.error(Fore.RED + error_msg + Fore.WHITE)
44
+ else:
45
+ raise ValueError(error_msg)
46
+
47
+ def notImplemented(self, error_msg):
48
+ if (self.options['warning'] is True):
49
+ self.logger.error(Fore.RED + error_msg + Fore.WHITE)
50
+ else:
51
+ raise NotImplementedError(error_msg)
52
+
53
+ def raiseWarning(self, error_msg):
54
+ self.logger.warning(error_msg)
55
+
56
+ def getPureTagName(self, tag):
57
+ return re.sub(r'\{[\w:\/.]+\}(\w+)', r'\1', tag)
58
+
59
+ '''
60
+ def getChildElement(self, short_name: str, element: ET.Element, key: str) -> str:
61
+ child_element = element.find("./xmlns:%s" % key, self.nsmap)
62
+ if (child_element is not None):
63
+ return child_element.text
64
+ self._raiseError("The attribute %s of <%s> has not been defined" % (key, short_name))
65
+ '''
66
+ '''
67
+ def getChildElementOptionalValue(self, element: ET.Element, key: str) -> str:
68
+ child_element = element.find("./xmlns:%s" % key, self.nsmap)
69
+ if (child_element is not None):
70
+ if child_element.text is None:
71
+ return ""
72
+ return child_element.text
73
+ return None
74
+ '''
75
+
76
+ def getChildElementLiteral(self, short_name: str, element: ET.Element, key: str) -> ARLiteral:
77
+ child_element = self.find(element, key)
78
+ if (child_element is not None):
79
+ literal = ARLiteral()
80
+ self.readARObjectAttributes(child_element, literal)
81
+ literal._value = child_element.text
82
+ return literal
83
+ self.raiseError("The attribute %s of <%s> has not been defined" % (key, short_name))
84
+
85
+ def getChildElementLiteralValueList(self, element: ET.Element, key: str) -> List[ARLiteral]:
86
+ child_elements = self.findall(element, key)
87
+ results = []
88
+ for child_element in child_elements:
89
+ literal = ARLiteral()
90
+ literal.setValue(child_element.text)
91
+ results.append(literal)
92
+ return results
93
+
94
+ def getChildElementOptionalLiteral(self, element: ET.Element, key: str) -> ARLiteral:
95
+ child_element = self.find(element, key)
96
+ literal = None
97
+ if (child_element is not None):
98
+ # self.logger.debug("getChildElementOptionalLiteral : %s" % child_element.text)
99
+ literal = ARLiteral()
100
+ self.readARObjectAttributes(child_element, literal)
101
+ # Patch for empty element <USED-CODE-GENERATOR></USED-CODE-GENERATOR>
102
+ if child_element.text is None:
103
+ literal.setValue("")
104
+ else:
105
+ literal.setValue(child_element.text)
106
+ return literal
107
+
108
+ def getChildElementOptionalRevisionLabelString(self, element: ET.Element, key: str) -> RevisionLabelString:
109
+ child_element = self.find(element, key)
110
+ literal = None
111
+ if (child_element is not None) and (child_element.text is not None):
112
+ # self.logger.debug("getChildElementOptionalRevisionLabelString : %s" % child_element.text)
113
+ m = re.match(r'[0-9]+\.[0-9]+\.[0-9]+([\._;].*)?', child_element.text)
114
+ if not m:
115
+ raise ValueError("Invalid RevisionLabelString <%s>" % child_element.text)
116
+ literal = RevisionLabelString()
117
+ self.readARObjectAttributes(child_element, literal)
118
+ # Patch for empty element <USED-CODE-GENERATOR></USED-CODE-GENERATOR>
119
+ if child_element.text is None:
120
+ literal.setValue("")
121
+ else:
122
+ literal.setValue(child_element.text)
123
+ return literal
124
+
125
+ def getChildElementOptionalDataTime(self, element: ET.Element, key: str) -> DateTime:
126
+ return self.getChildElementOptionalLiteral(element, key)
127
+
128
+ def _convertStringToBooleanValue(self, value: str) -> bool:
129
+ if (value == "true"):
130
+ return True
131
+ return False
132
+
133
+ def getChildElementOptionalFloatValue(self, element: ET.Element, key: str) -> ARFloat:
134
+ child_element = self.find(element, key)
135
+ float_value = None
136
+ if (child_element is not None) and (child_element.text is not None):
137
+ float_value = ARFloat()
138
+ self.readARObjectAttributes(child_element, float_value)
139
+ float_value.setValue(child_element.text)
140
+ return float_value
141
+
142
+ def getChildElementFloatValueList(self, element: ET.Element, key: str) -> ARFloat:
143
+ child_elements = self.findall(element, key)
144
+ results = []
145
+ for child_element in child_elements:
146
+ float_value = ARFloat()
147
+ float_value.setValue(child_element.text)
148
+ results.append(float_value)
149
+ return results
150
+
151
+ def getChildElementOptionalTimeValue(self, element: ET.Element, key: str) -> TimeValue:
152
+ child_element = self.find(element, key)
153
+ time_value = None
154
+ if (child_element is not None) and (child_element.text is not None):
155
+ time_value = TimeValue()
156
+ time_value.setValue(child_element.text)
157
+ return time_value
158
+
159
+ '''
160
+ def getChildElementBooleanValue(self, short_name: str, element: ET.Element, key: str) -> Boolean:
161
+ literal = self.getChildElementLiteral(short_name, element, key)
162
+ bool_value = Boolean()
163
+ bool_value.timestamp = literal.timestamp
164
+ bool_value.value = self._convertStringToBooleanValue(literal._value)
165
+ return bool_value
166
+ '''
167
+
168
+ def getChildElementOptionalBooleanValue(self, element: ET.Element, key: str) -> Boolean:
169
+ literal = self.getChildElementOptionalLiteral(element, key)
170
+ if literal is None:
171
+ return None
172
+ if literal.getText() == "":
173
+ return None
174
+ bool_value = Boolean()
175
+ bool_value.timestamp = literal.timestamp
176
+ bool_value.setValue(literal.getText())
177
+ return bool_value
178
+
179
+ def _convertStringToNumberValue(self, value) -> int:
180
+ m = re.match(r"0x([0-9a-f]+)", value, re.I)
181
+ if (m):
182
+ return int(m.group(1), 16)
183
+ return int(value)
184
+
185
+ def getChildElementOptionalNumericalValue(self, element: ET.Element, key: str) -> ARNumerical:
186
+ child_element = self.find(element, key)
187
+ if child_element is None:
188
+ return None
189
+ numerical = ARNumerical()
190
+ self.readARObjectAttributes(child_element, numerical)
191
+ if "SHORT-LABEL" in child_element.attrib:
192
+ numerical.setShortLabel(child_element.attrib["SHORT-LABEL"])
193
+ numerical.setValue(child_element.text)
194
+ return numerical
195
+
196
+ def getChildElementOptionalIntegerValue(self, element: ET.Element, key: str) -> Integer:
197
+ child_element = self.find(element, key)
198
+ if child_element is None:
199
+ return None
200
+ numerical = Integer()
201
+ self.readARObjectAttributes(child_element, numerical)
202
+ numerical.setValue(child_element.text)
203
+ return numerical
204
+
205
+ def getChildElementOptionalPositiveInteger(self, element: ET.Element, key: str) -> PositiveInteger:
206
+ child_element = self.find(element, key)
207
+ if child_element is None:
208
+ return None
209
+ if child_element.text is None:
210
+ return None
211
+ numerical = PositiveInteger()
212
+ self.readARObjectAttributes(child_element, numerical)
213
+ numerical.setValue(child_element.text)
214
+ if numerical.getValue() < 0:
215
+ raise ValueError("Invalid PositiveInteger <%s>" % child_element.text)
216
+ return numerical
217
+
218
+ def getChildElementNumericalValueList(self, element: ET.Element, key: str) -> List[ARNumerical]:
219
+ child_elements = self.findall(element, key)
220
+ results = []
221
+ for child_element in child_elements:
222
+ numerical = ARNumerical()
223
+ numerical.setValue(child_element.text)
224
+ results.append(numerical)
225
+ return results
226
+
227
+ def getChildLimitElement(self, element: ET.Element, key: str) -> Limit:
228
+ child_element = self.find(element, key)
229
+ if (child_element is not None):
230
+ limit = Limit()
231
+ self.readARObjectAttributes(child_element, limit)
232
+ if ('INTERVAL-TYPE' in child_element.attrib):
233
+ limit.intervalType = child_element.attrib['INTERVAL-TYPE']
234
+ else:
235
+ limit.intervalType = None
236
+ limit.value = child_element.text
237
+ return limit
238
+ return None
239
+
240
+ def _getChildElementRefTypeDestAndValue(self, element: ET.Element) -> RefType:
241
+ ref = RefType()
242
+ if 'BASE' in element.attrib:
243
+ ref.setBase(element.attrib['BASE'])
244
+ if 'DEST' in element.attrib:
245
+ ref.setDest(element.attrib['DEST'])
246
+ ref.setValue(element.text)
247
+ return ref
248
+
249
+ def getChildElementRefType(self, short_name: str, element: ET.Element, key: str) -> RefType:
250
+ child_element = self.find(element, key)
251
+ if (child_element is not None):
252
+ return self._getChildElementRefTypeDestAndValue(child_element)
253
+ self.raiseError("The attribute %s of <%s> has not been defined" % (key, short_name))
254
+
255
+ def getChildElementOptionalRefType(self, element: ET.Element, key: str) -> RefType:
256
+ child_element = self.find(element, key)
257
+ if (child_element is not None):
258
+ return self._getChildElementRefTypeDestAndValue(child_element)
259
+ return None
260
+
261
+ def getChildElementRefTypeList(self, element: ET.Element, key: str) -> List[RefType]:
262
+ child_elements = self.findall(element, key)
263
+ results = []
264
+ for child_element in child_elements:
265
+ ref = RefType()
266
+ if 'BASE' in child_element.attrib:
267
+ ref.setBase(child_element.attrib['BASE'])
268
+ if 'DEST' in child_element.attrib:
269
+ ref.setDest(child_element.attrib['DEST'])
270
+ ref.setValue(child_element.text)
271
+ results.append(ref)
272
+ return results
273
+
274
+ def readElementOptionalAttrib(self, element: ET.Element, key: str) -> str:
275
+ if key in element.attrib:
276
+ return element.attrib[key]
277
+ return None
278
+
279
+ def readARObjectAttributes(self, element: ET.Element, ar_object: ARObject):
280
+ ar_object.timestamp = self.readElementOptionalAttrib(element, "T") # read the timestamp
281
+ ar_object.uuid = self.readElementOptionalAttrib(element, "UUID") # read the uuid
282
+
283
+ AUTOSAR.getInstance().addARObject(ar_object)
284
+
285
+ # if ar_object.timestamp is not None:
286
+ # self.logger.debug("Timestamp: %s" % ar_object.timestamp)
287
+
288
+ '''
289
+ if ar_object.uuid is not None:
290
+ instance = AUTOSAR.getInstance()
291
+ old_ar_object = instance.getARObjectByUUID(ar_object.uuid)
292
+ if old_ar_object is not None:
293
+ self.logger.warning(Fore.YELLOW + "Duplicate UUID <%s> / type <%s>" % (ar_object.uuid, type(old_ar_object)) + Fore.WHITE)
294
+ else:
295
+ instance.addARObject(ar_object)
296
+ # self.logger.debug("UUID: %s" % ar_object.uuid)
297
+ '''
298
+
299
+ def getAUTOSARInfo(self, element: ET.Element, document: AUTOSAR):
300
+ key = "{http://www.w3.org/2001/XMLSchema-instance}schemaLocation"
301
+ if key in element.attrib:
302
+ document.schema_location = element.attrib[key]
303
+
304
+ self.logger.debug("schemaLocation %s" % document.schema_location)
305
+
306
+ def getShortName(self, element: ET.Element) -> str:
307
+ child_element = self.find(element, "SHORT-NAME")
308
+ if child_element is None:
309
+ raise ValueError("Short Name is required")
310
+ return child_element.text
311
+
312
+ def convert_find_key(self, key: str) -> str:
313
+ keys = key.split("/")
314
+ for idx, item in enumerate(keys):
315
+ if item != "*" and item != ".":
316
+ keys[idx] = "xmlns:%s" % item
317
+ return "/".join(keys)
318
+
319
+ def find(self, parent: ET.Element, key: str) -> ET.Element:
320
+ return parent.find(self.convert_find_key(key), self.nsmap)
321
+
322
+ def findall(self, parent: ET.Element, key: str) -> List[ET.Element]:
323
+ return parent.findall(self.convert_find_key(key), self.nsmap)