armodel 1.8.7__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 (430) 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 -318
  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 -791
  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/CommonStructure/Constants/__init__.py +670 -0
  43. armodel/models/M2/AUTOSARTemplates/CommonStructure/Filter.py +243 -96
  44. armodel/models/M2/AUTOSARTemplates/CommonStructure/FlatMap.py +273 -69
  45. armodel/models/M2/AUTOSARTemplates/CommonStructure/Implementation.py +756 -243
  46. armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +336 -170
  47. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +430 -136
  48. armodel/models/M2/AUTOSARTemplates/CommonStructure/McGroups.py +53 -0
  49. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/ImplementationElementInParameterInstanceRef.py +15 -0
  50. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McDataAccessDetails.py +60 -0
  51. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McDataInstance.py +62 -0
  52. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McFunction.py +62 -0
  53. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McParameterElementGroup.py +39 -0
  54. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McSupportData.py +62 -0
  55. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/McSwEmulationMethodSupport.py +37 -0
  56. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RoleBasedMcDataAssignment.py +61 -0
  57. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/McFunctionDataRefSet.py +39 -0
  58. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptAccessEnum.py +12 -0
  59. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptComponent.py +60 -0
  60. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptEnablerImplTypeEnum.py +11 -0
  61. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutableEntity.py +62 -0
  62. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutableEntityEvent.py +62 -0
  63. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutionContext.py +38 -0
  64. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptExecutionControlEnum.py +11 -0
  65. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptPreparationEnum.py +11 -0
  66. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptServicePoint.py +62 -0
  67. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptSupportData.py +111 -0
  68. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/RptSwPrototypingAccess.py +62 -0
  69. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/RptSupport/__init__.py +27 -0
  70. armodel/models/M2/AUTOSARTemplates/CommonStructure/MeasurementCalibrationSupport/__init__.py +19 -0
  71. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclaration.py +424 -148
  72. armodel/models/M2/AUTOSARTemplates/CommonStructure/ModeDeclarationExtra.py +73 -0
  73. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/ExecutionTime/__init__.py +132 -0
  74. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HardwareConfiguration.py +93 -32
  75. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/HeapUsage.py +78 -10
  76. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +239 -81
  77. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/SoftwareContext.py +68 -23
  78. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/StackUsage.py +274 -92
  79. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__init__.py +135 -53
  80. armodel/models/M2/AUTOSARTemplates/CommonStructure/ServiceNeeds.py +2955 -839
  81. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationControlEnum.py +11 -0
  82. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationElementProps.py +37 -0
  83. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationEventProps.py +37 -0
  84. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationProps.py +38 -0
  85. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/SignalServiceTranslationPropsSet.py +38 -0
  86. armodel/models/M2/AUTOSARTemplates/CommonStructure/SignalServiceTranslation/__init__.py +13 -0
  87. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/AbstractBlueprintStructure/AtpBlueprint.py +32 -0
  88. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/AbstractBlueprintStructure/__init__.py +7 -0
  89. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/PortPrototypeBlueprint.py +186 -73
  90. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__init__.py +10 -0
  91. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintGenerator/BlueprintGenerator.py +37 -0
  92. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintGenerator/__init__.py +3 -0
  93. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintMapping/BlueprintMappingSet.py +38 -0
  94. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintMapping/__init__.py +3 -0
  95. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/Keyword.py +126 -45
  96. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__init__.py +5 -0
  97. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcBswMapping.py +290 -77
  98. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/TDLETZoneClock.py +61 -0
  99. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/TimingClock.py +60 -0
  100. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/TimingClockSyncAccuracy.py +60 -0
  101. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingClock/__init__.py +5 -0
  102. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/ModeInBswInstanceRef.py +14 -0
  103. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/ModeInSwcInstanceRef.py +14 -0
  104. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingCondition.py +61 -0
  105. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingConditionFormula.py +37 -0
  106. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingExtensionResource.py +60 -0
  107. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/TimingModeInstance.py +61 -0
  108. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingCondition/__init__.py +15 -0
  109. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/AgeConstraint.py +57 -0
  110. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/EventTriggeringConstraint.py +203 -0
  111. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/ExecutionOrderConstraint.py +193 -45
  112. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/ExecutionTimeConstraint.py +101 -0
  113. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/LatencyTimingConstraint.py +100 -0
  114. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/OffsetConstraint.py +56 -0
  115. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/SynchronizationPointConstraint.py +57 -0
  116. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/SynchronizationTiming.py +117 -0
  117. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingConstraint.py +59 -24
  118. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/TimingExtensions.py +69 -32
  119. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__init__.py +48 -0
  120. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/Traceable.py +11 -0
  121. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/__init__.py +16 -0
  122. armodel/models/M2/AUTOSARTemplates/CommonStructure/TriggerDeclaration.py +147 -52
  123. armodel/models/M2/AUTOSARTemplates/CommonStructure/__init__.py +17 -205
  124. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/DiagnosticCommonElement.py +11 -0
  125. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/DiagnosticContribution.py +137 -47
  126. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__init__.py +10 -0
  127. armodel/models/M2/AUTOSARTemplates/ECUCDescriptionTemplate.py +285 -346
  128. armodel/models/M2/AUTOSARTemplates/ECUCParameterDefTemplate.py +1561 -1249
  129. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwAttributeValue.py +117 -0
  130. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwElementCategory.py +176 -59
  131. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwElementConnector.py +73 -0
  132. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__init__.py +401 -145
  133. armodel/models/M2/AUTOSARTemplates/GenericStructure/AbstractStructure.py +293 -92
  134. armodel/models/M2/AUTOSARTemplates/GenericStructure/DocumentationOnM1/__init__.py +39 -0
  135. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +1314 -816
  136. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/AnyInstanceRef.py +88 -0
  137. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ArObject.py +37 -17
  138. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ElementCollection.py +197 -74
  139. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/EngineeringObject.py +129 -51
  140. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Enumerations.py +16 -0
  141. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +599 -236
  142. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +902 -594
  143. armodel/models/M2/AUTOSARTemplates/GenericStructure/LifeCycles.py +395 -155
  144. armodel/models/M2/AUTOSARTemplates/GenericStructure/RolesAndRights/AtpDefinition.py +36 -0
  145. armodel/models/M2/AUTOSARTemplates/GenericStructure/RolesAndRights/__init__.py +7 -0
  146. armodel/models/M2/AUTOSARTemplates/GenericStructure/VariantHandling/AttributeValueVariationPoints/__init__.py +36 -0
  147. armodel/models/M2/AUTOSARTemplates/GenericStructure/VariantHandling/__init__.py +182 -0
  148. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/ApplicationAttributes/__init__.py +97 -0
  149. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Communication.py +784 -712
  150. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/InstanceRefs.py +186 -179
  151. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +363 -463
  152. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/InstanceRefs.py +160 -154
  153. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +160 -100
  154. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/DataPrototypes.py +145 -145
  155. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/Datatypes.py +137 -131
  156. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/EndToEndProtection.py +191 -184
  157. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/InstanceRefs.py +45 -39
  158. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +647 -641
  159. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/RPTScenario.py +21 -17
  160. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SoftwareComponentDocumentation.py +84 -80
  161. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwComponentType.py +76 -0
  162. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcImplementation.py +37 -34
  163. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AccessCount.py +26 -21
  164. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AutosarVariableRef.py +39 -34
  165. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/DataElements.py +57 -52
  166. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/IncludedDataTypes.py +32 -24
  167. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/InstanceRefsUsage.py +160 -155
  168. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py +68 -63
  169. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PerInstanceMemory.py +46 -40
  170. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/PortAPIOptions.py +91 -86
  171. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/RTEEvents.py +219 -206
  172. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServerCall.py +33 -26
  173. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ServiceMapping.py +148 -137
  174. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/Trigger.py +54 -49
  175. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +488 -489
  176. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +334 -259
  177. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DiagnosticConnection.py +62 -58
  178. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DoIp.py +48 -29
  179. armodel/models/M2/AUTOSARTemplates/SystemTemplate/{EcuResourceMapping.py → ECUResourceMapping.py} +48 -45
  180. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanCommunication.py +139 -122
  181. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +628 -344
  182. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__init__.py +2 -0
  183. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetCommunication.py +267 -244
  184. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetFrame.py +30 -16
  185. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +750 -685
  186. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/NetworkEndpoint.py +375 -327
  187. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +924 -975
  188. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayCommunication.py +92 -76
  189. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayTopology.py +669 -654
  190. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinCommunication.py +193 -149
  191. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinTopology.py +110 -92
  192. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py +205 -205
  193. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +1376 -1232
  194. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +800 -662
  195. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +269 -270
  196. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/Timing.py +172 -172
  197. armodel/models/M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py +90 -87
  198. armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +899 -789
  199. armodel/models/M2/AUTOSARTemplates/SystemTemplate/RteEventToOsTaskMapping.py +43 -35
  200. armodel/models/M2/AUTOSARTemplates/SystemTemplate/SWmapping.py +65 -52
  201. armodel/models/M2/AUTOSARTemplates/SystemTemplate/SecureCommunication.py +105 -83
  202. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Transformer/__init__.py +574 -524
  203. armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +739 -658
  204. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +493 -458
  205. armodel/models/M2/MSR/AsamHdo/AdminData.py +150 -136
  206. armodel/models/M2/MSR/AsamHdo/BaseTypes.py +95 -76
  207. armodel/models/M2/MSR/AsamHdo/ComputationMethod.py +367 -329
  208. armodel/models/M2/MSR/AsamHdo/Constraints/GlobalConstraints.py +58 -41
  209. armodel/models/M2/MSR/AsamHdo/SpecialData.py +99 -87
  210. armodel/models/M2/MSR/AsamHdo/Units.py +159 -105
  211. armodel/models/M2/MSR/CalibrationData/CalibrationValue.py +55 -57
  212. armodel/models/M2/MSR/DataDictionary/AuxillaryObjects.py +40 -41
  213. armodel/models/M2/MSR/DataDictionary/Axis.py +142 -144
  214. armodel/models/M2/MSR/DataDictionary/CalibrationParameter.py +35 -36
  215. armodel/models/M2/MSR/DataDictionary/DataDefProperties.py +383 -351
  216. armodel/models/M2/MSR/DataDictionary/RecordLayout.py +207 -209
  217. armodel/models/M2/MSR/DataDictionary/ServiceProcessTask.py +31 -33
  218. armodel/models/M2/MSR/DataDictionary/SystemConstant.py +32 -0
  219. armodel/models/M2/MSR/Documentation/Annotation.py +40 -41
  220. armodel/models/M2/MSR/Documentation/BlockElements/Figure.py +162 -163
  221. armodel/models/M2/MSR/Documentation/BlockElements/Formula/__init__.py +26 -0
  222. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/ListElements.py +55 -56
  223. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/PaginationAndView.py +35 -30
  224. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__init__.py +110 -110
  225. armodel/models/M2/MSR/Documentation/TextModel/LanguageDataModel.py +57 -44
  226. armodel/models/M2/MSR/Documentation/TextModel/MultilanguageData.py +59 -58
  227. armodel/models/M2/MSR/Documentation/__init__.py +3 -3
  228. armodel/models/M2/MSR/documentation/__init__.py +3 -0
  229. armodel/models/__init__.py +86 -86
  230. armodel/models/utils/uuid_mgr.py +28 -29
  231. armodel/parser/__init__.py +2 -2
  232. armodel/parser/abstract_arxml_parser.py +323 -325
  233. armodel/parser/arxml_parser.py +5832 -5830
  234. armodel/parser/connector_xlsx_parser.py +192 -193
  235. armodel/parser/excel_parser.py +17 -17
  236. armodel/parser/file_parser.py +46 -46
  237. armodel/report/__init__.py +1 -1
  238. armodel/report/connector_xls_report.py +76 -77
  239. armodel/report/excel_report.py +41 -41
  240. armodel/transformer/abstract.py +6 -6
  241. armodel/transformer/admin_data.py +31 -31
  242. armodel/writer/__init__.py +1 -1
  243. armodel/writer/abstract_arxml_writer.py +146 -147
  244. armodel/writer/arxml_writer.py +5969 -5965
  245. {armodel-1.8.7.dist-info → armodel-1.9.1.dist-info}/METADATA +850 -662
  246. armodel-1.9.1.dist-info/RECORD +273 -0
  247. {armodel-1.8.7.dist-info → armodel-1.9.1.dist-info}/WHEEL +1 -1
  248. {armodel-1.8.7.dist-info → armodel-1.9.1.dist-info}/entry_points.txt +0 -1
  249. {armodel-1.8.7.dist-info → armodel-1.9.1.dist-info/licenses}/LICENSE +21 -21
  250. armodel/__pycache__/__init__.cpython-312.pyc +0 -0
  251. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswBehavior.cpython-312.pyc +0 -0
  252. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswImplementation.cpython-312.pyc +0 -0
  253. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswInterfaces.cpython-312.pyc +0 -0
  254. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/BswOverview.cpython-312.pyc +0 -0
  255. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  256. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/HardwareConfiguration.cpython-312.pyc +0 -0
  257. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/HeapUsage.cpython-312.pyc +0 -0
  258. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/MemorySectionUsage.cpython-312.pyc +0 -0
  259. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/SoftwareContext.cpython-312.pyc +0 -0
  260. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/StackUsage.cpython-312.pyc +0 -0
  261. armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/__pycache__/__init__.cpython-312.pyc +0 -0
  262. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__pycache__/PortPrototypeBlueprint.cpython-312.pyc +0 -0
  263. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/BlueprintDedicated/__pycache__/__init__.cpython-312.pyc +0 -0
  264. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__pycache__/Keyword.cpython-312.pyc +0 -0
  265. armodel/models/M2/AUTOSARTemplates/CommonStructure/StandardizationTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  266. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/ModeDeclarationGroup.py +0 -24
  267. armodel/models/M2/AUTOSARTemplates/CommonStructure/SwcInternalBehavior/__init__.py +0 -0
  268. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/ExecutionOrderConstraint.cpython-312.pyc +0 -0
  269. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/TimingConstraint.cpython-312.pyc +0 -0
  270. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/TimingExtensions.cpython-312.pyc +0 -0
  271. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/TimingConstraint/__pycache__/__init__.cpython-312.pyc +0 -0
  272. armodel/models/M2/AUTOSARTemplates/CommonStructure/Timing/__pycache__/__init__.cpython-312.pyc +0 -0
  273. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/Filter.cpython-312.pyc +0 -0
  274. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/FlatMap.cpython-312.pyc +0 -0
  275. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/Implementation.cpython-312.pyc +0 -0
  276. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/ImplementationDataTypes.cpython-312.pyc +0 -0
  277. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/InternalBehavior.cpython-312.pyc +0 -0
  278. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/ModeDeclaration.cpython-312.pyc +0 -0
  279. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/ServiceNeeds.cpython-312.pyc +0 -0
  280. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/SwcBswMapping.cpython-312.pyc +0 -0
  281. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/TriggerDeclaration.cpython-312.pyc +0 -0
  282. armodel/models/M2/AUTOSARTemplates/CommonStructure/__pycache__/__init__.cpython-312.pyc +0 -0
  283. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__pycache__/DiagnosticContribution.cpython-312.pyc +0 -0
  284. armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__pycache__/__init__.cpython-312.pyc +0 -0
  285. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__pycache__/HwElementCategory.cpython-312.pyc +0 -0
  286. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  287. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/ARPackage.cpython-312.pyc +0 -0
  288. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/ArObject.cpython-312.pyc +0 -0
  289. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/ElementCollection.cpython-312.pyc +0 -0
  290. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/EngineeringObject.cpython-312.pyc +0 -0
  291. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/Identifiable.cpython-312.pyc +0 -0
  292. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/PrimitiveTypes.cpython-312.pyc +0 -0
  293. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/__pycache__/__init__.cpython-312.pyc +0 -0
  294. armodel/models/M2/AUTOSARTemplates/GenericStructure/__pycache__/AbstractStructure.cpython-312.pyc +0 -0
  295. armodel/models/M2/AUTOSARTemplates/GenericStructure/__pycache__/LifeCycles.cpython-312.pyc +0 -0
  296. armodel/models/M2/AUTOSARTemplates/GenericStructure/__pycache__/__init__.cpython-312.pyc +0 -0
  297. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  298. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__pycache__/__init__.cpython-312.pyc +0 -0
  299. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  300. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__pycache__/__init__.cpython-312.pyc +0 -0
  301. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__pycache__/DataPrototypes.cpython-312.pyc +0 -0
  302. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__pycache__/Datatypes.cpython-312.pyc +0 -0
  303. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Datatype/__pycache__/__init__.cpython-312.pyc +0 -0
  304. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  305. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__pycache__/__init__.cpython-312.pyc +0 -0
  306. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/AccessCount.cpython-312.pyc +0 -0
  307. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/AutosarVariableRef.cpython-312.pyc +0 -0
  308. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/DataElements.cpython-312.pyc +0 -0
  309. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/IncludedDataTypes.cpython-312.pyc +0 -0
  310. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/InstanceRefsUsage.cpython-312.pyc +0 -0
  311. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/ModeDeclarationGroup.cpython-312.pyc +0 -0
  312. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/PerInstanceMemory.cpython-312.pyc +0 -0
  313. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/PortAPIOptions.cpython-312.pyc +0 -0
  314. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/RTEEvents.cpython-312.pyc +0 -0
  315. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/ServerCall.cpython-312.pyc +0 -0
  316. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/ServiceMapping.cpython-312.pyc +0 -0
  317. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/Trigger.cpython-312.pyc +0 -0
  318. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__pycache__/__init__.cpython-312.pyc +0 -0
  319. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/Communication.cpython-312.pyc +0 -0
  320. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/EndToEndProtection.cpython-312.pyc +0 -0
  321. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/RPTScenario.cpython-312.pyc +0 -0
  322. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/SwcImplementation.cpython-312.pyc +0 -0
  323. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  324. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__pycache__/CanCommunication.cpython-312.pyc +0 -0
  325. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__pycache__/CanTopology.cpython-312.pyc +0 -0
  326. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/__pycache__/__init__.cpython-312.pyc +0 -0
  327. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/EthernetCommunication.cpython-312.pyc +0 -0
  328. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/EthernetFrame.cpython-312.pyc +0 -0
  329. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/EthernetTopology.cpython-312.pyc +0 -0
  330. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/NetworkEndpoint.cpython-312.pyc +0 -0
  331. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/ServiceInstances.cpython-312.pyc +0 -0
  332. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/__pycache__/__init__.cpython-312.pyc +0 -0
  333. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__pycache__/FlexrayCommunication.cpython-312.pyc +0 -0
  334. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__pycache__/FlexrayTopology.cpython-312.pyc +0 -0
  335. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__pycache__/__init__.cpython-312.pyc +0 -0
  336. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__pycache__/LinCommunication.cpython-312.pyc +0 -0
  337. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__pycache__/LinTopology.cpython-312.pyc +0 -0
  338. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/__pycache__/__init__.cpython-312.pyc +0 -0
  339. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/CoreCommunication.cpython-312.pyc +0 -0
  340. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/CoreTopology.cpython-312.pyc +0 -0
  341. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/EcuInstance.cpython-312.pyc +0 -0
  342. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/Timing.cpython-312.pyc +0 -0
  343. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/__pycache__/__init__.cpython-312.pyc +0 -0
  344. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/__pycache__/Fibex4Multiplatform.cpython-312.pyc +0 -0
  345. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/__pycache__/__init__.cpython-312.pyc +0 -0
  346. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Transformer/__pycache__/__init__.cpython-312.pyc +0 -0
  347. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/DataMapping.cpython-312.pyc +0 -0
  348. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/DiagnosticConnection.cpython-312.pyc +0 -0
  349. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/DoIp.cpython-312.pyc +0 -0
  350. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/EcuResourceMapping.cpython-312.pyc +0 -0
  351. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/InstanceRefs.cpython-312.pyc +0 -0
  352. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/NetworkManagement.cpython-312.pyc +0 -0
  353. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/RteEventToOsTaskMapping.cpython-312.pyc +0 -0
  354. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/SWmapping.cpython-312.pyc +0 -0
  355. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/SecureCommunication.cpython-312.pyc +0 -0
  356. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/TransportProtocols.cpython-312.pyc +0 -0
  357. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__pycache__/__init__.cpython-312.pyc +0 -0
  358. armodel/models/M2/AUTOSARTemplates/__pycache__/AutosarTopLevelStructure.cpython-312.pyc +0 -0
  359. armodel/models/M2/AUTOSARTemplates/__pycache__/ECUCDescriptionTemplate.cpython-312.pyc +0 -0
  360. armodel/models/M2/AUTOSARTemplates/__pycache__/ECUCParameterDefTemplate.cpython-312.pyc +0 -0
  361. armodel/models/M2/AUTOSARTemplates/__pycache__/__init__.cpython-312.pyc +0 -0
  362. armodel/models/M2/MSR/AsamHdo/Constraints/__pycache__/GlobalConstraints.cpython-312.pyc +0 -0
  363. armodel/models/M2/MSR/AsamHdo/Constraints/__pycache__/__init__.cpython-312.pyc +0 -0
  364. armodel/models/M2/MSR/AsamHdo/__pycache__/AdminData.cpython-312.pyc +0 -0
  365. armodel/models/M2/MSR/AsamHdo/__pycache__/BaseTypes.cpython-312.pyc +0 -0
  366. armodel/models/M2/MSR/AsamHdo/__pycache__/ComputationMethod.cpython-312.pyc +0 -0
  367. armodel/models/M2/MSR/AsamHdo/__pycache__/SpecialData.cpython-312.pyc +0 -0
  368. armodel/models/M2/MSR/AsamHdo/__pycache__/Units.cpython-312.pyc +0 -0
  369. armodel/models/M2/MSR/AsamHdo/__pycache__/__init__.cpython-312.pyc +0 -0
  370. armodel/models/M2/MSR/CalibrationData/__pycache__/CalibrationValue.cpython-312.pyc +0 -0
  371. armodel/models/M2/MSR/CalibrationData/__pycache__/__init__.cpython-312.pyc +0 -0
  372. armodel/models/M2/MSR/DataDictionary/__pycache__/AuxillaryObjects.cpython-312.pyc +0 -0
  373. armodel/models/M2/MSR/DataDictionary/__pycache__/Axis.cpython-312.pyc +0 -0
  374. armodel/models/M2/MSR/DataDictionary/__pycache__/CalibrationParameter.cpython-312.pyc +0 -0
  375. armodel/models/M2/MSR/DataDictionary/__pycache__/DataDefProperties.cpython-312.pyc +0 -0
  376. armodel/models/M2/MSR/DataDictionary/__pycache__/RecordLayout.cpython-312.pyc +0 -0
  377. armodel/models/M2/MSR/DataDictionary/__pycache__/ServiceProcessTask.cpython-312.pyc +0 -0
  378. armodel/models/M2/MSR/DataDictionary/__pycache__/__init__.cpython-312.pyc +0 -0
  379. armodel/models/M2/MSR/Documentation/BlockElements/__pycache__/Figure.cpython-312.pyc +0 -0
  380. armodel/models/M2/MSR/Documentation/BlockElements/__pycache__/__init__.cpython-312.pyc +0 -0
  381. armodel/models/M2/MSR/Documentation/BlockElements.py +0 -18
  382. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__pycache__/ListElements.cpython-312.pyc +0 -0
  383. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__pycache__/PaginationAndView.cpython-312.pyc +0 -0
  384. armodel/models/M2/MSR/Documentation/TextModel/BlockElements/__pycache__/__init__.cpython-312.pyc +0 -0
  385. armodel/models/M2/MSR/Documentation/TextModel/__pycache__/LanguageDataModel.cpython-312.pyc +0 -0
  386. armodel/models/M2/MSR/Documentation/TextModel/__pycache__/MultilanguageData.cpython-312.pyc +0 -0
  387. armodel/models/M2/MSR/Documentation/TextModel/__pycache__/__init__.cpython-312.pyc +0 -0
  388. armodel/models/M2/MSR/Documentation/__pycache__/Annotation.cpython-312.pyc +0 -0
  389. armodel/models/M2/MSR/Documentation/__pycache__/__init__.cpython-312.pyc +0 -0
  390. armodel/models/M2/MSR/__pycache__/__init__.cpython-312.pyc +0 -0
  391. armodel/models/M2/__pycache__/__init__.cpython-312.pyc +0 -0
  392. armodel/models/__pycache__/__init__.cpython-312.pyc +0 -0
  393. armodel/models/utils/__pycache__/__init__.cpython-312.pyc +0 -0
  394. armodel/models/utils/__pycache__/uuid_mgr.cpython-312.pyc +0 -0
  395. armodel/parser/__pycache__/__init__.cpython-312.pyc +0 -0
  396. armodel/parser/__pycache__/abstract_arxml_parser.cpython-312.pyc +0 -0
  397. armodel/parser/__pycache__/arxml_parser.cpython-312.pyc +0 -0
  398. armodel/parser/__pycache__/file_parser.cpython-312.pyc +0 -0
  399. armodel/tests/__init__.py +0 -0
  400. armodel/tests/test_armodel/__init__.py +0 -0
  401. armodel/tests/test_armodel/models/__init__.py +0 -0
  402. armodel/tests/test_armodel/models/test_ECUCParameterDefTemplate.py +0 -116
  403. armodel/tests/test_armodel/models/test_Identifiable.py +0 -85
  404. armodel/tests/test_armodel/models/test_ar_object.py +0 -154
  405. armodel/tests/test_armodel/models/test_ar_package.py +0 -304
  406. armodel/tests/test_armodel/models/test_ar_ref.py +0 -81
  407. armodel/tests/test_armodel/models/test_bsw_module_template.py +0 -52
  408. armodel/tests/test_armodel/models/test_common_structure.py +0 -82
  409. armodel/tests/test_armodel/models/test_data_dictionary.py +0 -30
  410. armodel/tests/test_armodel/models/test_data_prototype.py +0 -93
  411. armodel/tests/test_armodel/models/test_datatype.py +0 -251
  412. armodel/tests/test_armodel/models/test_general_structure.py +0 -56
  413. armodel/tests/test_armodel/models/test_implementation.py +0 -27
  414. armodel/tests/test_armodel/models/test_m2_msr.py +0 -79
  415. armodel/tests/test_armodel/models/test_port_interface.py +0 -202
  416. armodel/tests/test_armodel/models/test_port_prototype.py +0 -15
  417. armodel/tests/test_armodel/parser/__init__.py +0 -0
  418. armodel/tests/test_armodel/parser/test_arxml_parser.py +0 -53
  419. armodel/tests/test_armodel/parser/test_bsw_module_descriiption.py +0 -218
  420. armodel/tests/test_armodel/parser/test_implementation_data_type.py +0 -247
  421. armodel/tests/test_armodel/parser/test_parse_bswmd.py +0 -202
  422. armodel/tests/test_armodel/parser/test_rte_event.py +0 -142
  423. armodel/tests/test_armodel/parser/test_runnable_entity.py +0 -135
  424. armodel/tests/test_armodel/parser/test_sw_components.py +0 -484
  425. armodel/tests/test_armodel/parser/test_system.py +0 -23
  426. armodel/writer/__pycache__/__init__.cpython-312.pyc +0 -0
  427. armodel/writer/__pycache__/abstract_arxml_writer.cpython-312.pyc +0 -0
  428. armodel/writer/__pycache__/arxml_writer.cpython-312.pyc +0 -0
  429. armodel-1.8.7.dist-info/RECORD +0 -360
  430. {armodel-1.8.7.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)