armodel 1.8.7__py3-none-any.whl → 1.9.2__py3-none-any.whl

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