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,78 +1,77 @@
1
- from ..models.M2.AUTOSARTemplates.SWComponentTemplate.Components import CompositionSwComponentType
2
- from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ARPackage import ARPackage
3
- from .excel_report import ExcelReporter
4
- from ..models import AUTOSAR
5
- from ..models import PPortInCompositionInstanceRef, RPortInCompositionInstanceRef
6
- from typing import List
7
-
8
- class ConnectorXlsReport(ExcelReporter):
9
- def __init__(self) -> None:
10
- super().__init__()
11
- self.swcs = [] # type: List[CompositionSwComponentType]
12
-
13
- def _parse_pkg(self, parent: ARPackage):
14
- for pkg in parent.getARPackages():
15
- self._parse_pkg(pkg)
16
- for swc in parent.getSwComponentTypes():
17
- self.swcs.append(swc)
18
-
19
- def import_data(self, document: AUTOSAR):
20
- for pkg in document.getARPackages():
21
- self._parse_pkg(pkg)
22
-
23
- def _write_assembly_sw_connection(self, swc: CompositionSwComponentType, index = 0):
24
- sheet = self.wb.create_sheet("%s - AC" % swc.short_name, index)
25
- title_row = ["Short Name", "Provide SW-C", "PPort", "Request SW-C", "RPort"]
26
- self.write_title_row(sheet, title_row)
27
-
28
- row = 2
29
- for connector in swc.getAssemblySwConnectors():
30
- self._logger.debug("Write AssemblySwConnection %s" % connector.short_name)
31
- self.write_cell(sheet, row, 1, connector.short_name)
32
- self.write_cell(sheet, row, 2, connector.provider_iref.context_component_ref.value)
33
- self.write_cell(sheet, row, 3, connector.provider_iref.target_p_port_ref.value)
34
- self.write_cell(sheet, row, 4, connector.requester_iref.context_component_ref.value)
35
- self.write_cell(sheet, row, 5, connector.requester_iref.target_r_port_ref.value)
36
- row += 1
37
-
38
- self.auto_width(sheet)
39
-
40
- def _write_delegation_sw_connection(self, swc: CompositionSwComponentType, index = 0):
41
- sheet = self.wb.create_sheet("%s - DC" % swc.short_name, index)
42
- title_row = ["Short Name", "Inner SW-C", "Inner PPort", "Outer PPort", "Inner RPort", "Outer RPort"]
43
- self.write_title_row(sheet, title_row)
44
-
45
- row = 2
46
- for connector in swc.getDelegationSwConnectors():
47
- self._logger.debug("Write DelegationSwConnection %s" % connector.short_name)
48
- self.write_cell(sheet, row, 1, connector.short_name)
49
-
50
- if connector.inner_port_iref:
51
- if isinstance(connector.inner_port_iref, PPortInCompositionInstanceRef):
52
- self.write_cell(sheet, row, 2, connector.inner_port_iref.context_component_ref.value)
53
- self.write_cell(sheet, row, 3, connector.inner_port_iref.target_p_port_ref.value)
54
- elif isinstance(connector.inner_port_iref, RPortInCompositionInstanceRef):
55
- self.write_cell(sheet, row, 2, connector.inner_port_iref.context_component_ref.value)
56
- self.write_cell(sheet, row, 5, connector.inner_port_iref.target_r_port_ref.value)
57
-
58
- if connector.outer_port_ref.dest == "P-PORT-PROTOTYPE":
59
- self.write_cell(sheet, row, 4, connector.outer_port_ref.value)
60
- elif connector.outer_port_ref.dest == "R-PORT-PROTOTYPE":
61
- self.write_cell(sheet, row, 6, connector.outer_port_ref.value)
62
- else:
63
- raise ValueError("Invalid OUTER-PORT-REF of SwConnector <%s>" % connector.short_name)
64
- row += 1
65
-
66
- self.auto_width(sheet)
67
-
68
- def write(self, filename: str):
69
- swc_list = filter(lambda o: isinstance(o, CompositionSwComponentType), self.swcs)
70
-
71
- idx = 1
72
- for swc in sorted(swc_list, key = lambda o: o.short_name):
73
- self._logger.info("CompositionSwComponentType %s" % swc.short_name)
74
- self._write_assembly_sw_connection(swc, idx)
75
- self._write_delegation_sw_connection(swc, idx + 1)
76
- idx += 2
77
-
1
+ from armodel.models.M2.AUTOSARTemplates.SWComponentTemplate.Composition import CompositionSwComponentType
2
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ARPackage import ARPackage
3
+ from armodel.models.M2.AUTOSARTemplates.excel_report import ExcelReporter
4
+ from armodel.models import AUTOSAR
5
+ from armodel.models import PPortInCompositionInstanceRef, RPortInCompositionInstanceRef
6
+
7
+ class ConnectorXlsReport(ExcelReporter):
8
+ def __init__(self) -> None:
9
+ super().__init__()
10
+ self.swcs = [] # type: List[CompositionSwComponentType]
11
+
12
+ def _parse_pkg(self, parent: ARPackage):
13
+ for pkg in parent.getARPackages():
14
+ self._parse_pkg(pkg)
15
+ for swc in parent.getSwComponentTypes():
16
+ self.swcs.append(swc)
17
+
18
+ def import_data(self, document: AUTOSAR):
19
+ for pkg in document.getARPackages():
20
+ self._parse_pkg(pkg)
21
+
22
+ def _write_assembly_sw_connection(self, swc: CompositionSwComponentType, index = 0):
23
+ sheet = self.wb.create_sheet("%s - AC" % swc.short_name, index)
24
+ title_row = ["Short Name", "Provide SW-C", "PPort", "Request SW-C", "RPort"]
25
+ self.write_title_row(sheet, title_row)
26
+
27
+ row = 2
28
+ for connector in swc.getAssemblySwConnectors():
29
+ self._logger.debug("Write AssemblySwConnection %s" % connector.short_name)
30
+ self.write_cell(sheet, row, 1, connector.short_name)
31
+ self.write_cell(sheet, row, 2, connector.provider_iref.context_component_ref.value)
32
+ self.write_cell(sheet, row, 3, connector.provider_iref.target_p_port_ref.value)
33
+ self.write_cell(sheet, row, 4, connector.requester_iref.context_component_ref.value)
34
+ self.write_cell(sheet, row, 5, connector.requester_iref.target_r_port_ref.value)
35
+ row += 1
36
+
37
+ self.auto_width(sheet)
38
+
39
+ def _write_delegation_sw_connection(self, swc: CompositionSwComponentType, index = 0):
40
+ sheet = self.wb.create_sheet("%s - DC" % swc.short_name, index)
41
+ title_row = ["Short Name", "Inner SW-C", "Inner PPort", "Outer PPort", "Inner RPort", "Outer RPort"]
42
+ self.write_title_row(sheet, title_row)
43
+
44
+ row = 2
45
+ for connector in swc.getDelegationSwConnectors():
46
+ self._logger.debug("Write DelegationSwConnection %s" % connector.short_name)
47
+ self.write_cell(sheet, row, 1, connector.short_name)
48
+
49
+ if connector.inner_port_iref:
50
+ if isinstance(connector.inner_port_iref, PPortInCompositionInstanceRef):
51
+ self.write_cell(sheet, row, 2, connector.inner_port_iref.context_component_ref.value)
52
+ self.write_cell(sheet, row, 3, connector.inner_port_iref.target_p_port_ref.value)
53
+ elif isinstance(connector.inner_port_iref, RPortInCompositionInstanceRef):
54
+ self.write_cell(sheet, row, 2, connector.inner_port_iref.context_component_ref.value)
55
+ self.write_cell(sheet, row, 5, connector.inner_port_iref.target_r_port_ref.value)
56
+
57
+ if connector.outer_port_ref.dest == "P-PORT-PROTOTYPE":
58
+ self.write_cell(sheet, row, 4, connector.outer_port_ref.value)
59
+ elif connector.outer_port_ref.dest == "R-PORT-PROTOTYPE":
60
+ self.write_cell(sheet, row, 6, connector.outer_port_ref.value)
61
+ else:
62
+ raise ValueError("Invalid OUTER-PORT-REF of SwConnector <%s>" % connector.short_name)
63
+ row += 1
64
+
65
+ self.auto_width(sheet)
66
+
67
+ def write(self, filename: str):
68
+ swc_list = filter(lambda o: isinstance(o, CompositionSwComponentType), self.swcs)
69
+
70
+ idx = 1
71
+ for swc in sorted(swc_list, key = lambda o: o.short_name):
72
+ self._logger.info("CompositionSwComponentType %s" % swc.short_name)
73
+ self._write_assembly_sw_connection(swc, idx)
74
+ self._write_delegation_sw_connection(swc, idx + 1)
75
+ idx += 2
76
+
78
77
  self.wb.save(filename)
@@ -1,42 +1,42 @@
1
- from openpyxl import Workbook
2
-
3
- import logging
4
-
5
- class ExcelReporter:
6
- def __init__(self) -> None:
7
- self.wb = Workbook()
8
- self._logger = logging.getLogger()
9
-
10
- def write_revision(self):
11
- sheet = self.wb['Sheet']
12
- sheet.title = "History"
13
-
14
- title_rows = ["When", "Who", "Version", "History"]
15
- self.write_title_row(sheet, title_rows)
16
-
17
- def auto_width(self, worksheet):
18
- dims = {}
19
- for row in worksheet.rows:
20
- for cell in row:
21
- if cell.value:
22
- dims[cell.column_letter] = max((dims.get(cell.column_letter, 0), len(str(cell.value))))
23
-
24
- for col, value in dims.items():
25
- worksheet.column_dimensions[col].width = (value + 2) + 2
26
-
27
- def write_title_row(self, sheet, title_row):
28
- for idx in range(0, len(title_row)):
29
- cell = sheet.cell(row=1, column=idx + 1)
30
- cell.value = title_row[idx]
31
-
32
- def write_cell(self, sheet, row, column, value, format = None):
33
- cell = sheet.cell(row = row, column=column)
34
- cell.value = value
35
- if (format != None):
36
- if ('alignment' in format):
37
- cell.alignment = format['alignment']
38
- if ('number_format' in format):
39
- cell.number_format = format['number_format']
40
-
41
- def save(self, name: str):
1
+ from openpyxl import Workbook
2
+
3
+ import logging
4
+
5
+ class ExcelReporter:
6
+ def __init__(self) -> None:
7
+ self.wb = Workbook()
8
+ self._logger = logging.getLogger()
9
+
10
+ def write_revision(self):
11
+ sheet = self.wb['Sheet']
12
+ sheet.title = "History"
13
+
14
+ title_rows = ["When", "Who", "Version", "History"]
15
+ self.write_title_row(sheet, title_rows)
16
+
17
+ def auto_width(self, worksheet):
18
+ dims = {}
19
+ for row in worksheet.rows:
20
+ for cell in row:
21
+ if cell.value:
22
+ dims[cell.column_letter] = max((dims.get(cell.column_letter, 0), len(str(cell.value))))
23
+
24
+ for col, value in dims.items():
25
+ worksheet.column_dimensions[col].width = (value + 2) + 2
26
+
27
+ def write_title_row(self, sheet, title_row):
28
+ for idx in range(0, len(title_row)):
29
+ cell = sheet.cell(row=1, column=idx + 1)
30
+ cell.value = title_row[idx]
31
+
32
+ def write_cell(self, sheet, row, column, value, format = None):
33
+ cell = sheet.cell(row = row, column=column)
34
+ cell.value = value
35
+ if (format != None):
36
+ if ('alignment' in format):
37
+ cell.alignment = format['alignment']
38
+ if ('number_format' in format):
39
+ cell.number_format = format['number_format']
40
+
41
+ def save(self, name: str):
42
42
  self.wb.save(name)
@@ -1,6 +1,6 @@
1
- class AbstractTransformer():
2
- def __init__(self):
3
- pass
4
-
5
- def remove(self):
6
- pass
1
+ class AbstractTransformer():
2
+ def __init__(self):
3
+ pass
4
+
5
+ def remove(self):
6
+ pass
@@ -1,31 +1,31 @@
1
- import logging
2
- from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ARPackage import ARPackage
3
- from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Describable, Identifiable
4
- from ..models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
5
- from ..transformer.abstract import AbstractTransformer
6
-
7
-
8
- class AdminDataTransformer(AbstractTransformer):
9
- def __init__(self):
10
- super().__init__()
11
- self.logger = logging.getLogger()
12
-
13
- def process_pkg(self, pkg: ARPackage):
14
- for sub_package in pkg.getARPackages():
15
- self.process_pkg(sub_package)
16
-
17
- self.logger.debug("Remove AdminData of <%s>", pkg.getShortName())
18
- pkg.removeAdminData()
19
-
20
- for element in pkg.getElements():
21
- if isinstance(element, Describable):
22
- self.logger.debug("Remove AdminData of <%s>", element.getShortName())
23
- element.removeAdminData()
24
- elif isinstance(element, Identifiable):
25
- self.logger.debug("Remove AdminData of <%s>", element.getShortName())
26
- element.removeAdminData()
27
-
28
- def remove(self, root: AUTOSAR):
29
- root.removeAdminData()
30
- for pkg in root.getARPackages():
31
- self.process_pkg(pkg)
1
+ import logging
2
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ARPackage import ARPackage
3
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Describable, Identifiable
4
+ from armodel.models.M2.AUTOSARTemplates.AutosarTopLevelStructure import AUTOSAR
5
+ from armodel.transformer.abstract import AbstractTransformer
6
+
7
+
8
+ class AdminDataTransformer(AbstractTransformer):
9
+ def __init__(self):
10
+ super().__init__()
11
+ self.logger = logging.getLogger()
12
+
13
+ def process_pkg(self, pkg: ARPackage):
14
+ for sub_package in pkg.getARPackages():
15
+ self.process_pkg(sub_package)
16
+
17
+ self.logger.debug("Remove AdminData of <%s>", pkg.getShortName())
18
+ pkg.removeAdminData()
19
+
20
+ for element in pkg.getElements():
21
+ if isinstance(element, Describable):
22
+ self.logger.debug("Remove AdminData of <%s>", element.getShortName())
23
+ element.removeAdminData()
24
+ elif isinstance(element, Identifiable):
25
+ self.logger.debug("Remove AdminData of <%s>", element.getShortName())
26
+ element.removeAdminData()
27
+
28
+ def remove(self, root: AUTOSAR):
29
+ root.removeAdminData()
30
+ for pkg in root.getARPackages():
31
+ self.process_pkg(pkg)
@@ -1 +1 @@
1
- from .arxml_writer import ARXMLWriter
1
+ from armodel.writer.arxml_writer import ARXMLWriter
@@ -1,147 +1,146 @@
1
- import sys
2
- from abc import ABCMeta
3
- import re
4
- from xml.dom import minidom
5
- from colorama import Fore
6
-
7
- import logging
8
- import xml.etree.cElementTree as ET
9
-
10
- from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
11
- from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARFloat, ARLiteral, ARNumerical, DateTime, Integer
12
- from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RevisionLabelString, TimeValue
13
- from ..models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType, ARBoolean
14
-
15
-
16
- class AbstractARXMLWriter:
17
- __metaclass__ = ABCMeta
18
-
19
- def __init__(self, options=None) -> None:
20
- if type(self) is AbstractARXMLWriter:
21
- raise NotImplementedError("AbstractARXMLWriter is an abstract class.")
22
-
23
- self.options = {}
24
- self.options['warning'] = False
25
- self.options['version'] = "4.2.2"
26
- self.logger = logging.getLogger()
27
-
28
- self._processOptions(options=options)
29
-
30
- self.nsmap = {
31
- "xmlns": "http://autosar.org/schema/r4.0",
32
- }
33
-
34
- def _processOptions(self, options):
35
- if options:
36
- if 'warning' in options:
37
- self.options['warning'] = options['warning']
38
-
39
- def _raiseError(self, error_msg):
40
- if (self.options['warning'] is True):
41
- self.logger.error(Fore.RED + error_msg + Fore.WHITE)
42
- else:
43
- raise ValueError(error_msg)
44
-
45
- def notImplemented(self, error_msg):
46
- if (self.options['warning'] is True):
47
- self.logger.error(Fore.RED + error_msg + Fore.WHITE)
48
- else:
49
- raise NotImplementedError(error_msg)
50
-
51
- def writeARObjectAttributes(self, element: ET.Element, ar_obj: ARObject):
52
- if ar_obj.timestamp is not None:
53
- # self.logger.debug("Timestamp: %s" % ar_obj.timestamp)
54
- element.attrib['T'] = ar_obj.timestamp
55
- if ar_obj.uuid is not None:
56
- # self.logger.debug("UUID: %s" % ar_obj.uuid)
57
- element.attrib['UUID'] = ar_obj.uuid
58
-
59
- '''
60
- def setChildElementOptionalValue(self, element: ET.Element, key: str, value: str):
61
- if value is not None:
62
- child_element = ET.SubElement(element, key)
63
- child_element.text = value
64
- '''
65
-
66
- '''
67
- def setChildElementOptionalNumberValue(self, element: ET.Element, key: str, value: str):
68
- if value is not None:
69
- child_element = ET.SubElement(element, key)
70
- child_element.text = str(value)
71
- '''
72
-
73
- def setChildElementOptionalNumericalValue(self, element: ET.Element, key: str, numerical: ARNumerical):
74
- if numerical is not None:
75
- child_element = ET.SubElement(element, key)
76
- self.writeARObjectAttributes(child_element, numerical)
77
- if numerical.getShortLabel() is not None:
78
- child_element.attrib["SHORT-LABEL"] = numerical.getShortLabel()
79
- child_element.text = numerical._text
80
-
81
- def setChildElementOptionalIntegerValue(self, element: ET.Element, key: str, value: Integer):
82
- self.setChildElementOptionalNumericalValue(element, key, value)
83
-
84
- def setChildElementOptionalPositiveInteger(self, element: ET.Element, key: str, value: Integer):
85
- self.setChildElementOptionalNumericalValue(element, key, value)
86
-
87
- def setChildElementOptionalRevisionLabelString(self, element: ET.Element, key: str, literal: RevisionLabelString):
88
- self.setChildElementOptionalLiteral(element, key, literal)
89
-
90
- def setChildElementOptionalDataTime(self, element: ET.Element, key: str, literal: DateTime):
91
- self.setChildElementOptionalLiteral(element, key, literal)
92
-
93
- def setChildElementOptionalRefType(self, parent: ET.Element, child_tag_name: str, ref: RefType):
94
- if ref is not None:
95
- child_tag = ET.SubElement(parent, child_tag_name)
96
- base = ref.getBase()
97
- if base is not None:
98
- child_tag.attrib['BASE'] = base
99
- dest = ref.getDest()
100
- if dest is not None:
101
- child_tag.attrib['DEST'] = dest
102
- if ref.value is not None:
103
- child_tag.text = ref.value
104
-
105
- def setChildElementOptionalFloatValue(self, element: ET.Element, key: str, value: ARFloat):
106
- if value is not None:
107
- child_element = ET.SubElement(element, key)
108
- self.writeARObjectAttributes(child_element, value)
109
- child_element.text = value.getText()
110
-
111
- def setChildElementOptionalTimeValue(self, element: ET.Element, key: str, value: TimeValue):
112
- self.setChildElementOptionalFloatValue(element, key, value)
113
-
114
- def setChildElementOptionalBooleanValue(self, element: ET.Element, key: str, value: ARBoolean) -> ET.Element:
115
- if value is not None:
116
- child_element = ET.SubElement(element, key)
117
- self.writeARObjectAttributes(child_element, value)
118
- child_element.text = value.getText()
119
- return element
120
-
121
- def setChildElementOptionalLiteral(self, element: ET.Element, key: str, value: ARLiteral) -> ET.Element:
122
- if value is not None:
123
- child_element = ET.SubElement(element, key)
124
- self.writeARObjectAttributes(child_element, value)
125
- child_element.text = value.getText()
126
- return element
127
-
128
- def patch_xml(self, xml: str) -> str:
129
- xml = re.sub(r"\<([\w-]+)\/\>", r"<\1></\1>", xml)
130
- # xml = re.sub(r"<([\w-]+)\s+(\w+)=(\"[\w-]+\")\/>", r"<\1 \2=\3></\1>", xml)
131
- # xml = re.sub(r"&quot;", '"', xml)
132
- return xml
133
-
134
- def saveToFile(self, filename, root: ET.Element):
135
- if sys.version_info <= (3, 9):
136
- xml = ET.tostring(root, encoding="UTF-8", short_empty_elements=False)
137
- else:
138
- xml = ET.tostring(root, encoding="UTF-8", xml_declaration=True, short_empty_elements=False)
139
-
140
- dom = minidom.parseString(xml.decode())
141
- xml = dom.toprettyxml(indent=" ", encoding="UTF-8")
142
-
143
- text = self.patch_xml(xml.decode())
144
-
145
- with open(filename, "w", encoding="utf-8") as f_out:
146
- # f_out.write(xml.decode())
147
- f_out.write(text)
1
+ import sys
2
+ from abc import ABC
3
+ import re
4
+ from xml.dom import minidom
5
+ from colorama import Fore
6
+
7
+ import logging
8
+ import xml.etree.cElementTree as ET
9
+
10
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
11
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARFloat, ARLiteral, ARNumerical, DateTime, Integer
12
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RevisionLabelString, TimeValue
13
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType, ARBoolean
14
+
15
+
16
+ class AbstractARXMLWriter(ABC):
17
+
18
+ def __init__(self, options=None) -> None:
19
+ if type(self) is AbstractARXMLWriter:
20
+ raise TypeError("AbstractARXMLWriter is an abstract class.")
21
+
22
+ self.options = {}
23
+ self.options['warning'] = False
24
+ self.options['version'] = "4.2.2"
25
+ self.logger = logging.getLogger()
26
+
27
+ self._processOptions(options=options)
28
+
29
+ self.nsmap = {
30
+ "xmlns": "http://autosar.org/schema/r4.0",
31
+ }
32
+
33
+ def _processOptions(self, options):
34
+ if options:
35
+ if 'warning' in options:
36
+ self.options['warning'] = options['warning']
37
+
38
+ def _raiseError(self, error_msg):
39
+ if (self.options['warning'] is True):
40
+ self.logger.error(Fore.RED + error_msg + Fore.WHITE)
41
+ else:
42
+ raise ValueError(error_msg)
43
+
44
+ def notImplemented(self, error_msg):
45
+ if (self.options['warning'] is True):
46
+ self.logger.error(Fore.RED + error_msg + Fore.WHITE)
47
+ else:
48
+ raise NotImplementedError(error_msg)
49
+
50
+ def writeARObjectAttributes(self, element: ET.Element, ar_obj: ARObject):
51
+ if ar_obj.timestamp is not None:
52
+ # self.logger.debug("Timestamp: %s" % ar_obj.timestamp)
53
+ element.attrib['T'] = ar_obj.timestamp
54
+ if ar_obj.uuid is not None:
55
+ # self.logger.debug("UUID: %s" % ar_obj.uuid)
56
+ element.attrib['UUID'] = ar_obj.uuid
57
+
58
+ '''
59
+ def setChildElementOptionalValue(self, element: ET.Element, key: str, value: str):
60
+ if value is not None:
61
+ child_element = ET.SubElement(element, key)
62
+ child_element.text = value
63
+ '''
64
+
65
+ '''
66
+ def setChildElementOptionalNumberValue(self, element: ET.Element, key: str, value: str):
67
+ if value is not None:
68
+ child_element = ET.SubElement(element, key)
69
+ child_element.text = str(value)
70
+ '''
71
+
72
+ def setChildElementOptionalNumericalValue(self, element: ET.Element, key: str, numerical: ARNumerical):
73
+ if numerical is not None:
74
+ child_element = ET.SubElement(element, key)
75
+ self.writeARObjectAttributes(child_element, numerical)
76
+ if numerical.getShortLabel() is not None:
77
+ child_element.attrib["SHORT-LABEL"] = numerical.getShortLabel()
78
+ child_element.text = numerical._text
79
+
80
+ def setChildElementOptionalIntegerValue(self, element: ET.Element, key: str, value: Integer):
81
+ self.setChildElementOptionalNumericalValue(element, key, value)
82
+
83
+ def setChildElementOptionalPositiveInteger(self, element: ET.Element, key: str, value: Integer):
84
+ self.setChildElementOptionalNumericalValue(element, key, value)
85
+
86
+ def setChildElementOptionalRevisionLabelString(self, element: ET.Element, key: str, literal: RevisionLabelString):
87
+ self.setChildElementOptionalLiteral(element, key, literal)
88
+
89
+ def setChildElementOptionalDataTime(self, element: ET.Element, key: str, literal: DateTime):
90
+ self.setChildElementOptionalLiteral(element, key, literal)
91
+
92
+ def setChildElementOptionalRefType(self, parent: ET.Element, child_tag_name: str, ref: RefType):
93
+ if ref is not None:
94
+ child_tag = ET.SubElement(parent, child_tag_name)
95
+ base = ref.getBase()
96
+ if base is not None:
97
+ child_tag.attrib['BASE'] = base
98
+ dest = ref.getDest()
99
+ if dest is not None:
100
+ child_tag.attrib['DEST'] = dest
101
+ if ref.value is not None:
102
+ child_tag.text = ref.value
103
+
104
+ def setChildElementOptionalFloatValue(self, element: ET.Element, key: str, value: ARFloat):
105
+ if value is not None:
106
+ child_element = ET.SubElement(element, key)
107
+ self.writeARObjectAttributes(child_element, value)
108
+ child_element.text = value.getText()
109
+
110
+ def setChildElementOptionalTimeValue(self, element: ET.Element, key: str, value: TimeValue):
111
+ self.setChildElementOptionalFloatValue(element, key, value)
112
+
113
+ def setChildElementOptionalBooleanValue(self, element: ET.Element, key: str, value: ARBoolean) -> ET.Element:
114
+ if value is not None:
115
+ child_element = ET.SubElement(element, key)
116
+ self.writeARObjectAttributes(child_element, value)
117
+ child_element.text = value.getText()
118
+ return element
119
+
120
+ def setChildElementOptionalLiteral(self, element: ET.Element, key: str, value: ARLiteral) -> ET.Element:
121
+ if value is not None:
122
+ child_element = ET.SubElement(element, key)
123
+ self.writeARObjectAttributes(child_element, value)
124
+ child_element.text = value.getText()
125
+ return element
126
+
127
+ def patch_xml(self, xml: str) -> str:
128
+ xml = re.sub(r"\<([\w-]+)\/\>", r"<\1></\1>", xml)
129
+ # xml = re.sub(r"<([\w-]+)\s+(\w+)=(\"[\w-]+\")\/>", r"<\1 \2=\3></\1>", xml)
130
+ # xml = re.sub(r"&quot;", '"', xml)
131
+ return xml
132
+
133
+ def saveToFile(self, filename, root: ET.Element):
134
+ if sys.version_info <= (3, 9):
135
+ xml = ET.tostring(root, encoding="UTF-8", short_empty_elements=False)
136
+ else:
137
+ xml = ET.tostring(root, encoding="UTF-8", xml_declaration=True, short_empty_elements=False)
138
+
139
+ dom = minidom.parseString(xml.decode())
140
+ xml = dom.toprettyxml(indent=" ", encoding="UTF-8")
141
+
142
+ text = self.patch_xml(xml.decode())
143
+
144
+ with open(filename, "w", encoding="utf-8") as f_out:
145
+ # f_out.write(xml.decode())
146
+ f_out.write(text)