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,594 +1,902 @@
1
- from abc import ABCMeta
2
- import re
3
- from typing import List
4
- from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
5
-
6
-
7
- class ARType(metaclass=ABCMeta):
8
- def __init__(self) -> None:
9
- self.timestamp = None # type: str
10
- self.uuid = None # type: str
11
- self._value = None
12
-
13
- @property
14
- def value(self):
15
- return self._value
16
-
17
- @value.setter
18
- def value(self, val):
19
- self._value = val
20
-
21
- def getValue(self):
22
- return self.value
23
-
24
- def setValue(self, val):
25
- if val is not None:
26
- self.value = val
27
- return self
28
-
29
- def getText(self) -> str:
30
- return str(self)
31
-
32
-
33
- class ARNumerical(ARType):
34
- def __init__(self) -> None:
35
- super().__init__()
36
-
37
- self.shortLabel: str = None
38
- self._text: str = None
39
-
40
- def _convertStringToNumberValue(self, value: str) -> int:
41
- try:
42
- if value == 'true':
43
- return 1
44
- elif value == 'false':
45
- return 0
46
- else:
47
- m = re.match(r"0x([0-9a-f]+)", value, re.I)
48
- if m:
49
- return int(m.group(1), 16)
50
- m = re.match(r'0b([\d]+)', value, re.I)
51
- if m:
52
- return int(m.group(1), 2)
53
- m = re.match(r"^[-+]?(\d+(\.\d*)?|\.\d+)([eE][-+]?\d+)?$", value)
54
- if m:
55
- return float(value)
56
- return int(value)
57
- except: # noqa E722
58
- raise ValueError("Invalid Numerical Type <%s>" % value)
59
-
60
- @property
61
- def value(self) -> int:
62
- return self._value
63
-
64
- @value.setter
65
- def value(self, val: any):
66
- if isinstance(val, int):
67
- self._value = val
68
- elif isinstance(val, str):
69
- self._text = val
70
- self._value = self._convertStringToNumberValue(val)
71
- else:
72
- raise ValueError("Unsupported Type <%s>", type(val))
73
-
74
- def __str__(self) -> str:
75
- if self._text is not None:
76
- return self._text
77
- else:
78
- return str(self._value)
79
-
80
- def getValue(self):
81
- return self.value
82
-
83
- def setShortLabel(self, val: str):
84
- if val is not None:
85
- self.shortLabel = val
86
- return self
87
-
88
- def getShortLabel(self) -> str:
89
- return self.shortLabel
90
-
91
-
92
- class ARFloat(ARNumerical):
93
- def __init__(self) -> None:
94
- super().__init__()
95
-
96
- self._text = None # type: str
97
-
98
- @property
99
- def value(self) -> float:
100
- return self._value
101
-
102
- @value.setter
103
- def value(self, val: any):
104
- if isinstance(val, float):
105
- self._value = val
106
- elif isinstance(val, int):
107
- self._value = val * 1.0
108
- elif isinstance(val, str):
109
- self._text = val
110
- self._value = self._convertStringToNumberValue(val)
111
- else:
112
- raise ValueError("Unsupported Type <%s>", type(val))
113
-
114
- def __str__(self) -> str:
115
- if self._text is not None:
116
- return self._text
117
- else:
118
- return str(self._value)
119
-
120
-
121
- class Float(ARFloat):
122
- '''
123
- An instance of Float is an element from the set of real numbers.
124
- Tags:
125
- * xml.xsd.customType=FLOAT
126
- * xml.xsd.type=double
127
- '''
128
- def __init__(self):
129
- super().__init__()
130
-
131
-
132
- class TimeValue(ARFloat):
133
- '''
134
- This primitive type is taken for expressing time values. The numerical value is supposed to be interpreted
135
- in the physical unit second.
136
- Tags:
137
- * xml.xsd.customType=TIME-VALUE
138
- * xml.xsd.type=double
139
- '''
140
-
141
- def __init__(self):
142
- super().__init__()
143
-
144
-
145
- class ARLiteral(ARType):
146
- def __init__(self) -> None:
147
- super().__init__()
148
-
149
- @property
150
- def value(self) -> str:
151
- if self._value is None:
152
- return ""
153
- return self._value
154
-
155
- @value.setter
156
- def value(self, val: any):
157
- if isinstance(val, str):
158
- self._value = val
159
- else:
160
- self._value = str(val)
161
-
162
- def __str__(self) -> str:
163
- return self.value
164
-
165
- def upper(self) -> str:
166
- return self.value.upper()
167
-
168
-
169
- class AREnum(ARLiteral):
170
- def __init__(self, enum_values: List[str]):
171
- super().__init__()
172
-
173
- self.enumValues = enum_values # List[str]
174
-
175
- def getEnumValues(self):
176
- return self.enumValues
177
-
178
- def setEnumValues(self, values: List[str]):
179
- self.enumValues = values
180
- return self
181
-
182
- def validateEnumValue(self, value: str):
183
- if value in self.enumValues:
184
- return True
185
- return False
186
-
187
-
188
- class String(ARLiteral):
189
- def __init__(self):
190
- super().__init__()
191
-
192
-
193
- class ReferrableSubtypesEnum(ARLiteral):
194
- def __init__(self):
195
- super().__init__()
196
-
197
-
198
- class ARPositiveInteger(ARNumerical):
199
- def __init__(self) -> None:
200
- super().__init__()
201
-
202
- @property
203
- def value(self) -> int:
204
- return self._value
205
-
206
- @value.setter
207
- def value(self, val: any):
208
- if isinstance(val, int):
209
- if val < 0:
210
- raise ValueError("Invalid Positive Integer <%s>" % val)
211
- self._value = val
212
- elif isinstance(val, str):
213
- self._text = val
214
- self._value = self._convertStringToNumberValue(val)
215
- else:
216
- raise ValueError("Unsupported Type <%s>", type(val))
217
-
218
-
219
- class ARBoolean(ARType):
220
- def __init__(self) -> None:
221
- super().__init__()
222
-
223
- self._text = None
224
-
225
- def _convertNumberToBoolean(self, value: int) -> bool:
226
- if value == 0:
227
- return False
228
- return True
229
-
230
- def _convertStringToBoolean(self, value: str) -> bool:
231
- value = value.lower()
232
- if value == "true" or value == "1":
233
- return True
234
- elif value == "false" or value == "0":
235
- return False
236
- else:
237
- return self._convertNumberToBoolean(int(value))
238
-
239
- @property
240
- def value(self) -> int:
241
- return self._value
242
-
243
- @value.setter
244
- def value(self, val: any):
245
- if isinstance(val, bool):
246
- self._value = val
247
- elif isinstance(val, int):
248
- self._value = self._convertNumberToBoolean(val)
249
- self._text = str(val)
250
- elif isinstance(val, str):
251
- self._value = self._convertStringToBoolean(val.strip())
252
- self._text = val.strip()
253
- else:
254
- raise ValueError("Unsupported Type <%s>", type(val))
255
-
256
- def __str__(self) -> str:
257
- if self._text is not None:
258
- return self._text
259
- else:
260
- if self._value:
261
- return "true"
262
- else:
263
- return "false"
264
-
265
-
266
- class NameToken(ARLiteral):
267
- '''
268
- This is an identifier as used in xml, e.g. xml-names. Typical usages are, for example, the names of type
269
- emitters, protocols, or profiles. For details see NMTOKEN definition on the W3C website
270
- (https://www.w3.org/TR/xml/#NT-Nmtoken).
271
-
272
- Note: Although NameToken supports a wide range of characters, the actually allowed patterns for a
273
- certain attribute typed by NameToken may be further restricted by the specification of that attribute.
274
-
275
- Tags:
276
- * xml.xsd.customType=NMTOKEN-STRING
277
- * xml.xsd.type=NMTOKEN
278
- '''
279
- def __init__(self):
280
- super().__init__()
281
-
282
-
283
- class PositiveInteger(ARPositiveInteger):
284
- r'''\n
285
- This is a positive integer which can be denoted in decimal, binary, octal and hexadecimal. The value is
286
- between 0 and 4294967295.
287
-
288
- Tags:
289
- * xml.xsd.customType=POSITIVE-INTEGER
290
- * xml.xsd.pattern=0|[\+]?[1-9][0-9]*|0[xX][0-9a-fA-F]+|0[bB][0-1]+|0[0-7]+
291
- * xml.xsd.type=string
292
- \n
293
- '''
294
- def __init__(self):
295
- super().__init__()
296
-
297
-
298
- class PositiveUnlimitedInteger(ARPositiveInteger):
299
- r'''
300
- This is a positive unlimited integer which can be denoted in decimal, binary, octal and hexadecimal.
301
-
302
- Tags:
303
- * xml.xsd.customType=POSITIVE-UNLIMITED-INTEGER
304
- * xml.xsd.pattern=0|[\+]?[1-9][0-9]*|0[xX][0-9a-fA-F]+|0[bB][0-1]+|0[0-7]+
305
- * xml.xsd.type=string
306
- '''
307
-
308
-
309
- class Integer(ARNumerical):
310
- r'''
311
- An instance of Integer is an element in the set of integer numbers ( ..., -2, -1, 0, 1, 2, ...).
312
- The value can be expressed in decimal, octal, hexadecimal and binary representation. Negative numbers
313
- can only be expressed in decimal notation
314
- Range is from -2147483648 and 2147483647.
315
-
316
- Tags:
317
- * xml.xsd.customType=INTEGER
318
- * xml.xsd.pattern=0|[\+\-]?[1-9][0-9]*|0[xX][0-9a-fA-F]+|0[bB][0-1]+|0[0-7]+
319
- * xml.xsd.type=string
320
- '''
321
- def __init__(self):
322
- super().__init__()
323
-
324
-
325
- class UnlimitedInteger(Integer):
326
- r'''
327
- An instance of UnlimitedInteger is an element in the set of integer numbers ( ..., -2, -1, 0, 1, 2, ...).
328
- The range is limited by constraint 2534.
329
- The value can be expressed in decimal, octal, hexadecimal and binary representation. Negative numbers
330
- can only be expressed in decimal notation.
331
-
332
- Tags:
333
- * xml.xsd.customType=UNLIMITED-INTEGER
334
- * xml.xsd.pattern=0|[\+\-]?[1-9][0-9]*|0[xX][0-9a-fA-F]+|0[bB][0-1]+|0[0-7]+
335
- * xml.xsd.type=string
336
- '''
337
- def __init__(self):
338
- super().__init__()
339
-
340
-
341
- class Boolean(ARBoolean):
342
- '''
343
- A Boolean value denotes a logical condition that is either 'true' or 'false'. It can be one of "0", "1", "true",
344
- "false"
345
-
346
- Tags:
347
- * xml.xsd.customType=BOOLEAN
348
- * xml.xsd.pattern=0|1|true|false
349
- * xml.xsd.type=string
350
- '''
351
- def __init__(self):
352
- super().__init__()
353
-
354
-
355
- class Identifier(ARLiteral):
356
- '''
357
- An Identifier is a string with a number of constraints on its appearance, satisfying the requirements typical
358
- programming languages define for their Identifiers.
359
- This datatype represents a string, that can be used as a c-Identifier.
360
- It shall start with a letter, may consist of letters, digits and underscores.
361
-
362
- Tags:
363
- * xml.xsd.customType=IDENTIFIER
364
- * xml.xsd.maxLength=128
365
- * xml.xsd.pattern=[a-zA-Z][a-zA-Z0-9_]*
366
- * xml.xsd.type=string
367
- '''
368
- def __init__(self):
369
- super().__init__()
370
-
371
-
372
- class CIdentifier(ARLiteral):
373
- '''
374
- This datatype represents a string, that follows the rules of C-identifiers.
375
-
376
- Tags:
377
- * xml.xsd.customType=C-IDENTIFIER
378
- * xml.xsd.pattern=[a-zA-Z_][a-zA-Z0-9_]*
379
- * xml.xsd.type=string
380
- '''
381
- def __init__(self):
382
- super().__init__()
383
-
384
- self.blueprintValue = None
385
- self.namePattern = None
386
-
387
- def getBlueprintValue(self):
388
- return self.blueprintValue
389
-
390
- def setBlueprintValue(self, value):
391
- self.blueprintValue = value
392
- return self
393
-
394
- def getNamePattern(self):
395
- return self.namePattern
396
-
397
- def setNamePattern(self, value):
398
- self.namePattern = value
399
- return self
400
-
401
-
402
- class RevisionLabelString(ARLiteral):
403
- '''
404
- This primitive represents an internal AUTOSAR revision label which identifies an engineering object. It
405
- represents a pattern which
406
- * supports three integers representing from left to right MajorVersion, MinorVersion, PatchVersion.
407
- * may add an application specific suffix separated by one of ".", "_", ";".
408
- Legal patterns are for example:
409
- * 4.0.0
410
- * 4.0.0.1234565
411
- * 4.0.0_vendor specific;13
412
- * 4.0.0;12
413
- '''
414
-
415
-
416
- class Limit(ARObject):
417
- def __init__(self):
418
- super().__init__()
419
-
420
- self.intervalType = None # type: str
421
- self.value = None # type: str
422
-
423
- def getIntervalType(self):
424
- return self.intervalType
425
-
426
- def setIntervalType(self, value):
427
- self.intervalType = value
428
- return self
429
-
430
- def getValue(self):
431
- return self.value
432
-
433
- def setValue(self, value):
434
- self.value = value
435
- return self
436
-
437
-
438
- class RefType(ARObject):
439
- def __init__(self):
440
- self.base = None # type: str
441
- self.dest = None # type: str
442
- self.value = None # type: str
443
-
444
- def getBase(self):
445
- return self.base
446
-
447
- def setBase(self, value):
448
- self.base = value
449
- return self
450
-
451
- def getDest(self):
452
- return self.dest
453
-
454
- def setDest(self, value):
455
- self.dest = value
456
- return self
457
-
458
- def getValue(self):
459
- return self.value
460
-
461
- def setValue(self, value):
462
- self.value = value
463
- return self
464
-
465
- def getShortValue(self):
466
- if self.value is None:
467
- raise ValueError("Invalid value of RefType")
468
- m = re.match(r'\/[\w\/]+\/(\w+)', self.value)
469
- if m:
470
- return m.group(1)
471
- return self.value
472
-
473
-
474
- class TRefType(RefType):
475
- def __init__(self):
476
- super().__init__()
477
-
478
-
479
- class DiagRequirementIdString(ARLiteral):
480
- r'''
481
- This string denotes an Identifier for a requirement.
482
-
483
- Tags:
484
- * xml.xsd.customType=DIAG-REQUIREMENT-ID-STRING
485
- * xml.xsd.pattern=[0-9a-zA-Z_\-]+ # noqa W605
486
- * xml.xsd.type=string
487
- '''
488
- def __init__(self):
489
- super().__init__()
490
-
491
-
492
- class ArgumentDirectionEnum(AREnum):
493
- IN = "in"
494
- INOUT = "inout"
495
- OUT = "out"
496
-
497
- def __init__(self):
498
- super().__init__((
499
- ArgumentDirectionEnum.IN,
500
- ArgumentDirectionEnum.INOUT,
501
- ArgumentDirectionEnum.OUT
502
- ))
503
-
504
-
505
- class Ip4AddressString(ARLiteral):
506
- r'''
507
- This is used to specify an IP4 address. Notation: 255.255.255.255
508
-
509
- Tags
510
- * xml.xsd.customType=IP4-ADDRESS-STRING
511
- * xml.xsd.pattern=(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|ANY # noqa E501
512
- * xml.xsd.type=string
513
- '''
514
- def __init__(self):
515
- super().__init__()
516
-
517
-
518
- class Ip6AddressString(ARLiteral):
519
- r'''
520
- This is used to specify an IP6 address. Notation: FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
521
- Alternative notations, short-cuts with duplicate colons like ::, etc. or mixtures using colons and dots, are
522
- not allowed.
523
-
524
- Tags:
525
- * xml.xsd.customType=IP6-ADDRESS-STRING
526
- * xml.xsd.pattern=[0-9A-Fa-f]{1,4}(:[0-9A-Fa-f]{1,4}){7,7}|ANY
527
- * xml.xsd.type=string
528
- '''
529
- def __init__(self):
530
- super().__init__()
531
-
532
-
533
- class MacAddressString(ARLiteral):
534
- '''
535
- This primitive specifies a Mac Address. Notation: FF:FF:FF:FF:FF:FF
536
- Alternative notations, e.g. using dash instead of colon, or another grouping of numbers, is not allowed.
537
-
538
- Tags:
539
- * xml.xsd.customType=MAC-ADDRESS-STRING
540
- * xml.xsd.pattern=([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}
541
- * xml.xsd.type=string
542
- '''
543
- def __init__(self):
544
- super().__init__()
545
-
546
-
547
- class CategoryString(ARLiteral):
548
- '''
549
- This represents the pattern applicable to categories.
550
- It is basically the same as Identifier but has a different semantics. Therefore it is modeled as a primitive
551
- of its own.
552
-
553
- Tags:
554
- * xml.xsd.customType=CATEGORY-STRING
555
- * xml.xsd.pattern=[a-zA-Z][a-zA-Z0-9_]*
556
- * xml.xsd.type=string
557
- '''
558
- def __init__(self):
559
- super().__init__()
560
-
561
-
562
- class ByteOrderEnum(AREnum):
563
- def __init__(self):
564
- super().__init__([])
565
-
566
-
567
- class DateTime(ARLiteral):
568
- r'''
569
- A datatype representing a timestamp. The smallest granularity is 1 second.
570
- This datatype represents a timestamp in the format yyyy-mm-dd followed by an optional time. The lead-in
571
- character for the time is "T" and the format is hh:mm:ss. In addition, a time zone designator shall be
572
- specified. The time zone designator can either be "Z" (for UTC) or the time offset to UTC, i.e. (+|-)hh:mm.
573
-
574
- Examples:
575
- 2009-07-23
576
- 2009-07-23T14:38:00+01:00
577
- 2009-07-23T13:38:00Z
578
- Tags:
579
- xml.xsd.customType=DATE
580
- xml.xsd.pattern=([0-9]{4}-[0-9]{2}-[0-9]{2})(T[0-9]{2}:[0-9]{2}:[0-9]{2}(Z|([+\-][0-9]{2}:[0-9]{2})))?
581
- xml.xsd.type=string
582
- '''
583
- def __init__(self):
584
- super().__init__()
585
-
586
-
587
- class VerbatimString(ARLiteral):
588
- def __init__(self):
589
- super().__init__()
590
-
591
-
592
- class RegularExpression(ARLiteral):
593
- def __init__(self):
594
- super().__init__()
1
+ """
2
+ This module contains primitive type classes for AUTOSAR models
3
+ in the GenericStructure module.
4
+ """
5
+
6
+ from abc import ABC
7
+ import re
8
+ from typing import List, Optional, Union, Any
9
+ from armodel.models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
10
+
11
+
12
+ class ARType(ABC):
13
+ """
14
+ Abstract base class for all AUTOSAR types.
15
+ This class provides the basic structure for all AUTOSAR type definitions.
16
+ """
17
+
18
+ def __init__(self) -> None:
19
+ self.timestamp: Optional[str] = None
20
+ self.uuid: Optional[str] = None
21
+ self._value: Optional[Any] = None
22
+
23
+ @property
24
+ def value(self) -> Optional[Any]:
25
+ """Optional[Any]: The current value of this AUTOSAR type."""
26
+ return self._value
27
+
28
+ @value.setter
29
+ def value(self, val: Optional[Any]):
30
+ self._value = val
31
+
32
+ def getValue(self) -> Optional[Any]:
33
+ """
34
+ Gets the current value of this AUTOSAR type.
35
+
36
+ Returns:
37
+ The current value, or None if not set
38
+ """
39
+ return self.value
40
+
41
+ def setValue(self, val: Optional[Any]):
42
+ """
43
+ Sets the value of this AUTOSAR type.
44
+ Only sets the value if it is not None.
45
+
46
+ Args:
47
+ val: The value to set
48
+
49
+ Returns:
50
+ self for method chaining
51
+ """
52
+ if val is not None:
53
+ self.value = val
54
+ return self
55
+
56
+ def getText(self) -> str:
57
+ """
58
+ Gets the text representation of this type.
59
+
60
+ Returns:
61
+ String representation of this type
62
+ """
63
+ return str(self)
64
+
65
+
66
+ class ARNumerical(ARType):
67
+ """
68
+ Base class for numerical AUTOSAR types.
69
+ This class provides functionality for numerical values in AUTOSAR models.
70
+ """
71
+
72
+ def __init__(self) -> None:
73
+ super().__init__()
74
+
75
+ self.shortLabel: Optional[str] = None
76
+ self._text: Optional[str] = None
77
+
78
+ def _convertStringToNumberValue(self, value: str) -> Union[int, float]:
79
+ """
80
+ Converts a string value to a numerical value.
81
+
82
+ Args:
83
+ value: The string value to convert
84
+
85
+ Returns:
86
+ The converted numerical value
87
+
88
+ Raises:
89
+ ValueError: If the value cannot be converted to a numerical type
90
+ """
91
+ try:
92
+ if value == 'true':
93
+ return 1
94
+ elif value == 'false':
95
+ return 0
96
+ else:
97
+ m = re.match(r"0x([0-9a-f]+)", value, re.I)
98
+ if m:
99
+ return int(m.group(1), 16)
100
+ m = re.match(r'0b([\d]+)', value, re.I)
101
+ if m:
102
+ return int(m.group(1), 2)
103
+ m = re.match(r"^[-+]?(\d+(\.\d*)?|\.\d+)([eE][-+]?\d+)?$", value)
104
+ if m:
105
+ return float(value)
106
+ return int(value)
107
+ except: # noqa E722
108
+ raise ValueError("Invalid Numerical Type <%s>" % value)
109
+
110
+ @property
111
+ def value(self) -> Optional[Union[int, float]]:
112
+ """Optional[Union[int, float]]: The numerical value."""
113
+ return self._value
114
+
115
+ @value.setter
116
+ def value(self, val: Optional[Union[int, float, str]]):
117
+ if isinstance(val, int):
118
+ self._value = val
119
+ elif isinstance(val, str):
120
+ self._text = val
121
+ self._value = self._convertStringToNumberValue(val)
122
+ else:
123
+ raise ValueError("Unsupported Type <%s>", type(val))
124
+
125
+ def __str__(self) -> str:
126
+ if self._text is not None:
127
+ return self._text
128
+ else:
129
+ return str(self._value)
130
+
131
+ def getValue(self) -> Optional[Union[int, float]]:
132
+ """
133
+ Gets the numerical value of this type.
134
+
135
+ Returns:
136
+ The numerical value, or None if not set
137
+ """
138
+ return self.value
139
+
140
+ def setShortLabel(self, val: Optional[str]):
141
+ """
142
+ Sets the short label for this numerical type.
143
+ Only sets the value if it is not None.
144
+
145
+ Args:
146
+ val: The short label to set
147
+
148
+ Returns:
149
+ self for method chaining
150
+ """
151
+ if val is not None:
152
+ self.shortLabel = val
153
+ return self
154
+
155
+ def getShortLabel(self) -> Optional[str]:
156
+ """
157
+ Gets the short label of this numerical type.
158
+
159
+ Returns:
160
+ The short label, or None if not set
161
+ """
162
+ return self.shortLabel
163
+
164
+
165
+ class ARFloat(ARNumerical):
166
+ """
167
+ Base class for floating-point AUTOSAR types.
168
+ This class provides functionality for floating-point values in AUTOSAR models.
169
+ """
170
+
171
+ def __init__(self) -> None:
172
+ super().__init__()
173
+
174
+ self._text: Optional[str] = None
175
+
176
+ @property
177
+ def value(self) -> Optional[float]:
178
+ """Optional[float]: The floating-point value."""
179
+ return self._value
180
+
181
+ @value.setter
182
+ def value(self, val: Optional[Union[float, int, str]]):
183
+ if isinstance(val, float):
184
+ self._value = val
185
+ elif isinstance(val, int):
186
+ self._value = val * 1.0
187
+ elif isinstance(val, str):
188
+ self._text = val
189
+ self._value = self._convertStringToNumberValue(val)
190
+ else:
191
+ raise ValueError("Unsupported Type <%s>", type(val))
192
+
193
+ def __str__(self) -> str:
194
+ if self._text is not None:
195
+ return self._text
196
+ else:
197
+ return str(self._value)
198
+
199
+
200
+ class Float(ARFloat):
201
+ '''
202
+ An instance of Float is an element from the set of real numbers.
203
+ Tags:
204
+ * xml.xsd.customType=FLOAT
205
+ * xml.xsd.type=double
206
+ '''
207
+ def __init__(self):
208
+ super().__init__()
209
+
210
+
211
+ class TimeValue(ARFloat):
212
+ '''
213
+ This primitive type is taken for expressing time values. The numerical value is supposed to be interpreted
214
+ in the physical unit second.
215
+ Tags:
216
+ * xml.xsd.customType=TIME-VALUE
217
+ * xml.xsd.type=double
218
+ '''
219
+
220
+ def __init__(self):
221
+ super().__init__()
222
+
223
+
224
+ class ARLiteral(ARType):
225
+ """
226
+ Base class for literal AUTOSAR types.
227
+ This class provides functionality for literal values in AUTOSAR models.
228
+ """
229
+
230
+ def __init__(self) -> None:
231
+ super().__init__()
232
+
233
+ @property
234
+ def value(self) -> str:
235
+ """str: The literal value."""
236
+ if self._value is None:
237
+ return ""
238
+ return self._value
239
+
240
+ @value.setter
241
+ def value(self, val: Any):
242
+ if isinstance(val, str):
243
+ self._value = val
244
+ else:
245
+ self._value = str(val)
246
+
247
+ def __str__(self) -> str:
248
+ return self.value
249
+
250
+ def upper(self) -> str:
251
+ """
252
+ Gets the uppercase representation of this literal.
253
+
254
+ Returns:
255
+ Uppercase string representation
256
+ """
257
+ return self.value.upper()
258
+
259
+
260
+ class AREnum(ARLiteral):
261
+ """
262
+ Base class for enumeration AUTOSAR types.
263
+ This class provides functionality for enumeration values in AUTOSAR models.
264
+ """
265
+
266
+ def __init__(self, enum_values: List[str]):
267
+ super().__init__()
268
+
269
+ self.enumValues: List[str] = enum_values
270
+
271
+ def getEnumValues(self) -> List[str]:
272
+ """
273
+ Gets the list of possible enum values.
274
+
275
+ Returns:
276
+ List of possible enum values
277
+ """
278
+ return self.enumValues
279
+
280
+ def setEnumValues(self, values: List[str]):
281
+ """
282
+ Sets the list of possible enum values.
283
+
284
+ Args:
285
+ values: The list of possible enum values to set
286
+
287
+ Returns:
288
+ self for method chaining
289
+ """
290
+ self.enumValues = values
291
+ return self
292
+
293
+ def validateEnumValue(self, value: str) -> bool:
294
+ """
295
+ Validates if the provided value is one of the allowed enum values.
296
+
297
+ Args:
298
+ value: The value to validate
299
+
300
+ Returns:
301
+ True if the value is valid, False otherwise
302
+ """
303
+ if value in self.enumValues:
304
+ return True
305
+ return False
306
+
307
+
308
+ class String(ARLiteral):
309
+ """
310
+ Represents a string AUTOSAR type.
311
+ This class provides functionality for string values in AUTOSAR models.
312
+ """
313
+
314
+ def __init__(self):
315
+ super().__init__()
316
+
317
+
318
+ class ReferrableSubtypesEnum(ARLiteral):
319
+ """
320
+ Represents an enum for referrable subtypes in AUTOSAR models.
321
+ """
322
+
323
+ def __init__(self):
324
+ super().__init__()
325
+
326
+
327
+ class ARPositiveInteger(ARNumerical):
328
+ """
329
+ Base class for positive integer AUTOSAR types.
330
+ This class provides functionality for positive integer values in AUTOSAR models.
331
+ """
332
+
333
+ def __init__(self) -> None:
334
+ super().__init__()
335
+
336
+ @property
337
+ def value(self) -> Optional[int]:
338
+ """Optional[int]: The positive integer value."""
339
+ return self._value
340
+
341
+ @value.setter
342
+ def value(self, val: Optional[Union[int, str]]):
343
+ if isinstance(val, int):
344
+ if val < 0:
345
+ raise ValueError("Invalid Positive Integer <%s>" % val)
346
+ self._value = val
347
+ elif isinstance(val, str):
348
+ self._text = val
349
+ self._value = self._convertStringToNumberValue(val)
350
+ else:
351
+ raise ValueError("Unsupported Type <%s>", type(val))
352
+
353
+
354
+ class ARBoolean(ARType):
355
+ """
356
+ Base class for boolean AUTOSAR types.
357
+ This class provides functionality for boolean values in AUTOSAR models.
358
+ """
359
+
360
+ def __init__(self) -> None:
361
+ super().__init__()
362
+
363
+ self._text: Optional[str] = None
364
+
365
+ def _convertNumberToBoolean(self, value: int) -> bool:
366
+ """
367
+ Converts a numerical value to a boolean value.
368
+
369
+ Args:
370
+ value: The numerical value to convert
371
+
372
+ Returns:
373
+ Boolean representation of the value
374
+ """
375
+ if value == 0:
376
+ return False
377
+ return True
378
+
379
+ def _convertStringToBoolean(self, value: str) -> bool:
380
+ """
381
+ Converts a string value to a boolean value.
382
+
383
+ Args:
384
+ value: The string value to convert
385
+
386
+ Returns:
387
+ Boolean representation of the value
388
+ """
389
+ value = value.lower()
390
+ if value == "true" or value == "1":
391
+ return True
392
+ elif value == "false" or value == "0":
393
+ return False
394
+ else:
395
+ return self._convertNumberToBoolean(int(value))
396
+
397
+ @property
398
+ def value(self) -> Optional[bool]:
399
+ """Optional[bool]: The boolean value."""
400
+ return self._value
401
+
402
+ @value.setter
403
+ def value(self, val: Optional[Union[bool, int, str]]):
404
+ if isinstance(val, bool):
405
+ self._value = val
406
+ elif isinstance(val, int):
407
+ self._value = self._convertNumberToBoolean(val)
408
+ self._text = str(val)
409
+ elif isinstance(val, str):
410
+ self._value = self._convertStringToBoolean(val.strip())
411
+ self._text = val.strip()
412
+ else:
413
+ raise ValueError("Unsupported Type <%s>", type(val))
414
+
415
+ def __str__(self) -> str:
416
+ if self._text is not None:
417
+ return self._text
418
+ else:
419
+ if self._value:
420
+ return "true"
421
+ else:
422
+ return "false"
423
+
424
+
425
+ class NameToken(ARLiteral):
426
+ '''
427
+ This is an identifier as used in xml, e.g. xml-names. Typical usages are, for example, the names of type
428
+ emitters, protocols, or profiles. For details see NMTOKEN definition on the W3C website
429
+ (https://www.w3.org/TR/xml/#NT-Nmtoken).
430
+
431
+ Note: Although NameToken supports a wide range of characters, the actually allowed patterns for a
432
+ certain attribute typed by NameToken may be further restricted by the specification of that attribute.
433
+
434
+ Tags:
435
+ * xml.xsd.customType=NMTOKEN-STRING
436
+ * xml.xsd.type=NMTOKEN
437
+ '''
438
+ def __init__(self):
439
+ super().__init__()
440
+
441
+
442
+ class PositiveInteger(ARPositiveInteger):
443
+ r'''\n
444
+ This is a positive integer which can be denoted in decimal, binary, octal and hexadecimal. The value is
445
+ between 0 and 4294967295.
446
+
447
+ Tags:
448
+ * xml.xsd.customType=POSITIVE-INTEGER
449
+ * xml.xsd.pattern=0|[\+]?[1-9][0-9]*|0[xX][0-9a-fA-F]+|0[bB][0-1]+|0[0-7]+
450
+ * xml.xsd.type=string
451
+ \n
452
+ '''
453
+ def __init__(self):
454
+ super().__init__()
455
+
456
+
457
+ class PositiveUnlimitedInteger(ARPositiveInteger):
458
+ r'''
459
+ This is a positive unlimited integer which can be denoted in decimal, binary, octal and hexadecimal.
460
+
461
+ Tags:
462
+ * xml.xsd.customType=POSITIVE-UNLIMITED-INTEGER
463
+ * xml.xsd.pattern=0|[\+]?[1-9][0-9]*|0[xX][0-9a-fA-F]+|0[bB][0-1]+|0[0-7]+
464
+ * xml.xsd.type=string
465
+ '''
466
+
467
+
468
+ class Integer(ARNumerical):
469
+ r'''
470
+ An instance of Integer is an element in the set of integer numbers ( ..., -2, -1, 0, 1, 2, ...).
471
+ The value can be expressed in decimal, octal, hexadecimal and binary representation. Negative numbers
472
+ can only be expressed in decimal notation
473
+ Range is from -2147483648 and 2147483647.
474
+
475
+ Tags:
476
+ * xml.xsd.customType=INTEGER
477
+ * xml.xsd.pattern=0|[\+\-]?[1-9][0-9]*|0[xX][0-9a-fA-F]+|0[bB][0-1]+|0[0-7]+
478
+ * xml.xsd.type=string
479
+ '''
480
+ def __init__(self):
481
+ super().__init__()
482
+
483
+
484
+ class UnlimitedInteger(Integer):
485
+ r'''
486
+ An instance of UnlimitedInteger is an element in the set of integer numbers ( ..., -2, -1, 0, 1, 2, ...).
487
+ The range is limited by constraint 2534.
488
+ The value can be expressed in decimal, octal, hexadecimal and binary representation. Negative numbers
489
+ can only be expressed in decimal notation.
490
+
491
+ Tags:
492
+ * xml.xsd.customType=UNLIMITED-INTEGER
493
+ * xml.xsd.pattern=0|[\+\-]?[1-9][0-9]*|0[xX][0-9a-fA-F]+|0[bB][0-1]+|0[0-7]+
494
+ * xml.xsd.type=string
495
+ '''
496
+ def __init__(self):
497
+ super().__init__()
498
+
499
+
500
+ class Boolean(ARBoolean):
501
+ '''
502
+ A Boolean value denotes a logical condition that is either 'true' or 'false'. It can be one of "0", "1", "true",
503
+ "false"
504
+
505
+ Tags:
506
+ * xml.xsd.customType=BOOLEAN
507
+ * xml.xsd.pattern=0|1|true|false
508
+ * xml.xsd.type=string
509
+ '''
510
+ def __init__(self):
511
+ super().__init__()
512
+
513
+
514
+ class Identifier(ARLiteral):
515
+ '''
516
+ An Identifier is a string with a number of constraints on its appearance, satisfying the requirements typical
517
+ programming languages define for their Identifiers.
518
+ This datatype represents a string, that can be used as a c-Identifier.
519
+ It shall start with a letter, may consist of letters, digits and underscores.
520
+
521
+ Tags:
522
+ * xml.xsd.customType=IDENTIFIER
523
+ * xml.xsd.maxLength=128
524
+ * xml.xsd.pattern=[a-zA-Z][a-zA-Z0-9_]*
525
+ * xml.xsd.type=string
526
+ '''
527
+ def __init__(self):
528
+ super().__init__()
529
+
530
+
531
+ class CIdentifier(ARLiteral):
532
+ '''
533
+ This datatype represents a string, that follows the rules of C-identifiers.
534
+
535
+ Tags:
536
+ * xml.xsd.customType=C-IDENTIFIER
537
+ * xml.xsd.pattern=[a-zA-Z_][a-zA-Z0-9_]*
538
+ * xml.xsd.type=string
539
+ '''
540
+ def __init__(self):
541
+ super().__init__()
542
+
543
+ self.blueprintValue: Optional[str] = None
544
+ self.namePattern: Optional[str] = None
545
+
546
+ def getBlueprintValue(self) -> Optional[str]:
547
+ """
548
+ Gets the blueprint value of this C identifier.
549
+
550
+ Returns:
551
+ The blueprint value, or None if not set
552
+ """
553
+ return self.blueprintValue
554
+
555
+ def setBlueprintValue(self, value: str):
556
+ """
557
+ Sets the blueprint value of this C identifier.
558
+
559
+ Args:
560
+ value: The blueprint value to set
561
+
562
+ Returns:
563
+ self for method chaining
564
+ """
565
+ self.blueprintValue = value
566
+ return self
567
+
568
+ def getNamePattern(self) -> Optional[str]:
569
+ """
570
+ Gets the name pattern of this C identifier.
571
+
572
+ Returns:
573
+ The name pattern, or None if not set
574
+ """
575
+ return self.namePattern
576
+
577
+ def setNamePattern(self, value: str):
578
+ """
579
+ Sets the name pattern of this C identifier.
580
+
581
+ Args:
582
+ value: The name pattern to set
583
+
584
+ Returns:
585
+ self for method chaining
586
+ """
587
+ self.namePattern = value
588
+ return self
589
+
590
+
591
+ class RevisionLabelString(ARLiteral):
592
+ '''
593
+ This primitive represents an internal AUTOSAR revision label which identifies an engineering object. It
594
+ represents a pattern which
595
+ * supports three integers representing from left to right MajorVersion, MinorVersion, PatchVersion.
596
+ * may add an application specific suffix separated by one of ".", "_", ";".
597
+ Legal patterns are for example:
598
+ * 4.0.0
599
+ * 4.0.0.1234565
600
+ * 4.0.0_vendor specific;13
601
+ * 4.0.0;12
602
+ '''
603
+
604
+
605
+ class Limit(ARObject):
606
+ """
607
+ Represents a limit in AUTOSAR models.
608
+ This class defines limits with interval type and value.
609
+ """
610
+
611
+ def __init__(self):
612
+ super().__init__()
613
+
614
+ self.intervalType: Optional[str] = None
615
+ self.value: Optional[str] = None
616
+
617
+ def getIntervalType(self) -> Optional[str]:
618
+ """
619
+ Gets the interval type of this limit.
620
+
621
+ Returns:
622
+ The interval type, or None if not set
623
+ """
624
+ return self.intervalType
625
+
626
+ def setIntervalType(self, value: str):
627
+ """
628
+ Sets the interval type of this limit.
629
+
630
+ Args:
631
+ value: The interval type to set
632
+
633
+ Returns:
634
+ self for method chaining
635
+ """
636
+ self.intervalType = value
637
+ return self
638
+
639
+ def getValue(self) -> Optional[str]:
640
+ """
641
+ Gets the value of this limit.
642
+
643
+ Returns:
644
+ The limit value, or None if not set
645
+ """
646
+ return self.value
647
+
648
+ def setValue(self, value: str):
649
+ """
650
+ Sets the value of this limit.
651
+
652
+ Args:
653
+ value: The limit value to set
654
+
655
+ Returns:
656
+ self for method chaining
657
+ """
658
+ self.value = value
659
+ return self
660
+
661
+
662
+ class RefType(ARObject):
663
+ """
664
+ Represents a reference type in AUTOSAR models.
665
+ This class defines references with base, destination and value properties.
666
+ """
667
+
668
+ def __init__(self):
669
+ super().__init__()
670
+
671
+ self.base: Optional[str] = None
672
+ self.dest: Optional[str] = None
673
+ self.value: Optional[str] = None
674
+
675
+ def getBase(self) -> Optional[str]:
676
+ """
677
+ Gets the base of this reference type.
678
+
679
+ Returns:
680
+ The base string, or None if not set
681
+ """
682
+ return self.base
683
+
684
+ def setBase(self, value: str):
685
+ """
686
+ Sets the base of this reference type.
687
+
688
+ Args:
689
+ value: The base to set
690
+
691
+ Returns:
692
+ self for method chaining
693
+ """
694
+ self.base = value
695
+ return self
696
+
697
+ def getDest(self) -> Optional[str]:
698
+ """
699
+ Gets the destination of this reference type.
700
+
701
+ Returns:
702
+ The destination string, or None if not set
703
+ """
704
+ return self.dest
705
+
706
+ def setDest(self, value: str):
707
+ """
708
+ Sets the destination of this reference type.
709
+
710
+ Args:
711
+ value: The destination to set
712
+
713
+ Returns:
714
+ self for method chaining
715
+ """
716
+ self.dest = value
717
+ return self
718
+
719
+ def getValue(self) -> Optional[str]:
720
+ """
721
+ Gets the value of this reference type.
722
+
723
+ Returns:
724
+ The reference value, or None if not set
725
+ """
726
+ return self.value
727
+
728
+ def setValue(self, value: str):
729
+ """
730
+ Sets the value of this reference type.
731
+
732
+ Args:
733
+ value: The reference value to set
734
+
735
+ Returns:
736
+ self for method chaining
737
+ """
738
+ self.value = value
739
+ return self
740
+
741
+ def getShortValue(self) -> str:
742
+ """
743
+ Gets the short value of this reference type.
744
+
745
+ Returns:
746
+ The short value as a string
747
+
748
+ Raises:
749
+ ValueError: If the value is None
750
+ """
751
+ if self.value is None:
752
+ raise ValueError("Invalid value of RefType")
753
+ m = re.match(r'\/[\w\/]+\/(\w+)', self.value)
754
+ if m:
755
+ return m.group(1)
756
+ return self.value
757
+
758
+
759
+ class TRefType(RefType):
760
+ """
761
+ Represents a typed reference type in AUTOSAR models.
762
+ This class extends RefType with additional type-specific functionality.
763
+ """
764
+
765
+ def __init__(self):
766
+ super().__init__()
767
+
768
+
769
+ class DiagRequirementIdString(ARLiteral):
770
+ r'''
771
+ This string denotes an Identifier for a requirement.
772
+
773
+ Tags:
774
+ * xml.xsd.customType=DIAG-REQUIREMENT-ID-STRING
775
+ * xml.xsd.pattern=[0-9a-zA-Z_\-]+ # noqa W605
776
+ * xml.xsd.type=string
777
+ '''
778
+ def __init__(self):
779
+ super().__init__()
780
+
781
+
782
+ class ArgumentDirectionEnum(AREnum):
783
+ """
784
+ Enumeration for argument direction in AUTOSAR models.
785
+ Defines the direction of arguments in function interfaces.
786
+ """
787
+ IN = "in"
788
+ INOUT = "inout"
789
+ OUT = "out"
790
+
791
+ def __init__(self):
792
+ super().__init__((
793
+ ArgumentDirectionEnum.IN,
794
+ ArgumentDirectionEnum.INOUT,
795
+ ArgumentDirectionEnum.OUT
796
+ ))
797
+
798
+
799
+ class Ip4AddressString(ARLiteral):
800
+ r'''
801
+ This is used to specify an IP4 address. Notation: 255.255.255.255
802
+
803
+ Tags
804
+ * xml.xsd.customType=IP4-ADDRESS-STRING
805
+ * xml.xsd.pattern=(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|ANY # noqa E501
806
+ * xml.xsd.type=string
807
+ '''
808
+ def __init__(self):
809
+ super().__init__()
810
+
811
+
812
+ class Ip6AddressString(ARLiteral):
813
+ r'''
814
+ This is used to specify an IP6 address. Notation: FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
815
+ Alternative notations, short-cuts with duplicate colons like ::, etc. or mixtures using colons and dots, are
816
+ not allowed.
817
+
818
+ Tags:
819
+ * xml.xsd.customType=IP6-ADDRESS-STRING
820
+ * xml.xsd.pattern=[0-9A-Fa-f]{1,4}(:[0-9A-Fa-f]{1,4}){7,7}|ANY
821
+ * xml.xsd.type=string
822
+ '''
823
+ def __init__(self):
824
+ super().__init__()
825
+
826
+
827
+ class MacAddressString(ARLiteral):
828
+ '''
829
+ This primitive specifies a Mac Address. Notation: FF:FF:FF:FF:FF:FF
830
+ Alternative notations, e.g. using dash instead of colon, or another grouping of numbers, is not allowed.
831
+
832
+ Tags:
833
+ * xml.xsd.customType=MAC-ADDRESS-STRING
834
+ * xml.xsd.pattern=([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}
835
+ * xml.xsd.type=string
836
+ '''
837
+ def __init__(self):
838
+ super().__init__()
839
+
840
+
841
+ class CategoryString(ARLiteral):
842
+ '''
843
+ This represents the pattern applicable to categories.
844
+ It is basically the same as Identifier but has a different semantics. Therefore it is modeled as a primitive
845
+ of its own.
846
+
847
+ Tags:
848
+ * xml.xsd.customType=CATEGORY-STRING
849
+ * xml.xsd.pattern=[a-zA-Z][a-zA-Z0-9_]*
850
+ * xml.xsd.type=string
851
+ '''
852
+ def __init__(self):
853
+ super().__init__()
854
+
855
+
856
+ class ByteOrderEnum(AREnum):
857
+ """
858
+ Enumeration for byte order in AUTOSAR models.
859
+ """
860
+
861
+ def __init__(self):
862
+ super().__init__([])
863
+
864
+
865
+ class DateTime(ARLiteral):
866
+ r'''
867
+ A datatype representing a timestamp. The smallest granularity is 1 second.
868
+ This datatype represents a timestamp in the format yyyy-mm-dd followed by an optional time. The lead-in
869
+ character for the time is "T" and the format is hh:mm:ss. In addition, a time zone designator shall be
870
+ specified. The time zone designator can either be "Z" (for UTC) or the time offset to UTC, i.e. (+|-)hh:mm.
871
+
872
+ Examples:
873
+ 2009-07-23
874
+ 2009-07-23T14:38:00+01:00
875
+ 2009-07-23T13:38:00Z
876
+ Tags:
877
+ xml.xsd.customType=DATE
878
+ xml.xsd.pattern=([0-9]{4}-[0-9]{2}-[0-9]{2})(T[0-9]{2}:[0-9]{2}:[0-9]{2}(Z|([+\-][0-9]{2}:[0-9]{2})))?
879
+ xml.xsd.type=string
880
+ '''
881
+ def __init__(self):
882
+ super().__init__()
883
+
884
+
885
+ class VerbatimString(ARLiteral):
886
+ """
887
+ Represents a verbatim string in AUTOSAR models.
888
+ This class is used for strings that should be preserved exactly as written.
889
+ """
890
+
891
+ def __init__(self):
892
+ super().__init__()
893
+
894
+
895
+ class RegularExpression(ARLiteral):
896
+ """
897
+ Represents a regular expression in AUTOSAR models.
898
+ This class is used for storing and handling regular expression patterns.
899
+ """
900
+
901
+ def __init__(self):
902
+ super().__init__()