armodel 1.6.0__py3-none-any.whl → 1.6.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. armodel/cli/arxml_dump_cli.py +25 -22
  2. armodel/cli/arxml_format_cli.py +1 -4
  3. armodel/cli/connector_update_cli.py +1 -1
  4. armodel/cli/swc_list_cli.py +1 -1
  5. armodel/data_models/sw_connector.py +3 -3
  6. armodel/lib/sw_component.py +3 -1
  7. armodel/lib/system_signal.py +3 -1
  8. armodel/models/__init__.py +5 -3
  9. armodel/models/ar_object.py +1 -1
  10. armodel/models/ar_package.py +185 -151
  11. armodel/models/ar_ref.py +0 -202
  12. armodel/models/common_structure.py +3 -71
  13. armodel/models/communication.py +1 -1
  14. armodel/models/datatype.py +7 -72
  15. armodel/models/end_to_end_protection.py +1 -1
  16. armodel/models/general_structure.py +10 -4
  17. armodel/models/internal_behavior.py +1 -1
  18. armodel/models/m2/autosar_templates/autosar_top_level_structure.py +120 -0
  19. armodel/models/m2/autosar_templates/common_structure/implementation.py +21 -0
  20. armodel/models/m2/autosar_templates/common_structure/implementation_data_types.py +154 -0
  21. armodel/models/m2/autosar_templates/ecuc_description_template.py +2 -1
  22. armodel/models/m2/autosar_templates/generic_structure/__init__.py +0 -0
  23. armodel/models/m2/autosar_templates/generic_structure/abstract_structure.py +69 -0
  24. armodel/models/m2/autosar_templates/generic_structure/ar_package.py +528 -0
  25. armodel/models/m2/autosar_templates/sw_component_template/communication.py +44 -0
  26. armodel/models/m2/autosar_templates/sw_component_template/components/__init__.py +246 -0
  27. armodel/models/m2/autosar_templates/sw_component_template/components/instance_refs.py +33 -1
  28. armodel/models/m2/autosar_templates/sw_component_template/composition/__init__.py +154 -0
  29. armodel/models/m2/autosar_templates/sw_component_template/composition/instance_refs.py +157 -0
  30. armodel/models/m2/autosar_templates/sw_component_template/data_type/__init__.py +0 -0
  31. armodel/models/m2/autosar_templates/sw_component_template/data_type/data_prototypes.py +104 -0
  32. armodel/models/m2/autosar_templates/sw_component_template/port_interface/__init__.py +243 -0
  33. armodel/models/m2/autosar_templates/sw_component_template/port_interface/instance_refs.py +39 -0
  34. armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/data_elements.py +3 -11
  35. armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/instance_refs_usage.py +169 -0
  36. armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/mode_declaration_group.py +1 -2
  37. armodel/models/m2/autosar_templates/sw_component_template/swc_internal_behavior/server_call.py +5 -4
  38. armodel/models/m2/autosar_templates/system_template/instance_refs.py +48 -0
  39. armodel/models/m2_msr.py +1 -0
  40. armodel/models/port_prototype.py +1 -90
  41. armodel/models/service_needs.py +3 -1
  42. armodel/models/sw_component.py +6 -143
  43. armodel/parser/__init__.py +2 -1
  44. armodel/parser/abstract_arxml_parser.py +1 -1
  45. armodel/parser/arxml_parser.py +157 -80
  46. armodel/parser/connector_xlsx_parser.py +3 -1
  47. armodel/parser/file_parser.py +43 -0
  48. armodel/report/connector_xls_report.py +2 -1
  49. armodel/tests/test_armodel/models/test_ar_package.py +6 -3
  50. armodel/tests/test_armodel/models/test_ar_ref.py +15 -13
  51. armodel/tests/test_armodel/models/test_common_structure.py +6 -5
  52. armodel/tests/test_armodel/models/test_data_prototype.py +1 -1
  53. armodel/tests/test_armodel/models/test_datatype.py +9 -9
  54. armodel/tests/test_armodel/models/test_general_structure.py +1 -1
  55. armodel/tests/test_armodel/models/test_implementation.py +1 -1
  56. armodel/tests/test_armodel/models/test_port_interface.py +2 -2
  57. armodel/tests/test_armodel/parser/test_parse_bswmd.py +3 -1
  58. armodel/tests/test_armodel/parser/test_sw_components.py +2 -2
  59. armodel/writer/abstract_arxml_writer.py +5 -1
  60. armodel/writer/arxml_writer.py +70 -60
  61. {armodel-1.6.0.dist-info → armodel-1.6.2.dist-info}/METADATA +5 -1
  62. {armodel-1.6.0.dist-info → armodel-1.6.2.dist-info}/RECORD +66 -51
  63. {armodel-1.6.0.dist-info → armodel-1.6.2.dist-info}/LICENSE +0 -0
  64. {armodel-1.6.0.dist-info → armodel-1.6.2.dist-info}/WHEEL +0 -0
  65. {armodel-1.6.0.dist-info → armodel-1.6.2.dist-info}/entry_points.txt +0 -0
  66. {armodel-1.6.0.dist-info → armodel-1.6.2.dist-info}/top_level.txt +0 -0
@@ -1,95 +1,6 @@
1
1
  from typing import List
2
2
 
3
- from .m2.autosar_templates.sw_component_template.communication import ClientComSpec, ModeSwitchReceiverComSpec, ModeSwitchSenderComSpec, NonqueuedReceiverComSpec, NonqueuedSenderComSpec, PPortComSpec, QueuedReceiverComSpec, QueuedSenderComSpec, RPortComSpec, ServerComSpec
3
+ from .m2.autosar_templates.sw_component_template.communication import ClientComSpec, ModeSwitchReceiverComSpec, ModeSwitchSenderComSpec, NonqueuedReceiverComSpec, NonqueuedSenderComSpec, PPortComSpec, ParameterRequireComSpec, QueuedReceiverComSpec, QueuedSenderComSpec, RPortComSpec, ServerComSpec
4
4
  from .general_structure import ARObject, Identifiable
5
5
  from .ar_ref import TRefType
6
6
 
7
- class PortPrototype(Identifiable):
8
- def __init__(self, parent: ARObject, short_name: str):
9
- super().__init__(parent, short_name)
10
-
11
- class AbstractProvidedPortPrototype(PortPrototype):
12
- def __init__(self, parent: ARObject, short_name: str):
13
- super().__init__(parent, short_name)
14
-
15
- self.provided_com_specs = [] # type: List[PPortComSpec]
16
-
17
- def _validateRPortComSpec(self, com_spec: PPortComSpec):
18
- if isinstance(com_spec, NonqueuedSenderComSpec):
19
- if com_spec.dataElementRef == None:
20
- raise ValueError(
21
- "operation of NonqueuedSenderComSpec is invalid")
22
- if com_spec.dataElementRef.dest != "VARIABLE-DATA-PROTOTYPE":
23
- raise ValueError(
24
- "Invalid operation dest of NonqueuedSenderComSpec")
25
- elif isinstance(com_spec, ServerComSpec):
26
- pass
27
- elif isinstance(com_spec, QueuedSenderComSpec):
28
- pass
29
- elif isinstance(com_spec, ModeSwitchSenderComSpec):
30
- pass
31
- else:
32
- raise ValueError("Unsupported com spec")
33
-
34
- def addProvidedComSpec(self, com_spec):
35
- self._validateRPortComSpec(com_spec)
36
- self.provided_com_specs.append(com_spec)
37
-
38
- def getProvidedComSpecs(self) -> List[PPortComSpec]:
39
- return self.provided_com_specs
40
-
41
- def getNonqueuedSenderComSpecs(self) -> List[NonqueuedSenderComSpec]:
42
- return filter(lambda c: isinstance(c, NonqueuedSenderComSpec), self.provided_com_specs)
43
-
44
-
45
- class AbstractRequiredPortPrototype(PortPrototype):
46
- def __init__(self, parent: ARObject, short_name: str):
47
- super().__init__(parent, short_name)
48
-
49
- self.required_com_specs = [] # type: List[RPortComSpec]
50
-
51
- def _validateRPortComSpec(self, com_spec: RPortComSpec):
52
- if (isinstance(com_spec, ClientComSpec)):
53
- if (com_spec.operationRef == None):
54
- raise ValueError(
55
- "The operation reference of ClientComSpec has not been defined.")
56
- if (com_spec.operationRef.dest != "CLIENT-SERVER-OPERATION"):
57
- raise ValueError("Invalid operation dest of ClientComSpec.")
58
- elif (isinstance(com_spec, NonqueuedReceiverComSpec)):
59
- if (com_spec.dataElementRef == None):
60
- raise ValueError(
61
- "The data element reference of NonqueuedReceiverComSpec has not been defined.")
62
- if (com_spec.dataElementRef.dest != "VARIABLE-DATA-PROTOTYPE"):
63
- raise ValueError(
64
- "Invalid date element dest of NonqueuedReceiverComSpec.")
65
- elif isinstance(com_spec, QueuedReceiverComSpec):
66
- pass
67
- elif isinstance(com_spec, ModeSwitchReceiverComSpec):
68
- pass
69
- else:
70
- raise ValueError("Unsupported RPortComSpec <%s>" % type(com_spec))
71
-
72
- def addRequiredComSpec(self, com_spec: RPortComSpec):
73
- self._validateRPortComSpec(com_spec)
74
- self.required_com_specs.append(com_spec)
75
-
76
- def getRequiredComSpecs(self) -> List[RPortComSpec]:
77
- return self.required_com_specs
78
-
79
- def getClientComSpecs(self) -> List[ClientComSpec]:
80
- return filter(lambda c: isinstance(c, ClientComSpec), self.required_com_specs)
81
-
82
- def getNonqueuedReceiverComSpecs(self) -> List[NonqueuedReceiverComSpec]:
83
- return filter(lambda c: isinstance(c, NonqueuedReceiverComSpec), self.required_com_specs)
84
-
85
-
86
- class PPortPrototype(AbstractProvidedPortPrototype):
87
- def __init__(self, parent: ARObject, short_name: str):
88
- super().__init__(parent, short_name)
89
-
90
- self.provided_interface_tref = TRefType()
91
- class RPortPrototype(AbstractRequiredPortPrototype):
92
- def __init__(self, parent: ARObject, short_name: str):
93
- super().__init__(parent, short_name)
94
-
95
- self.required_interface_tref = TRefType()
@@ -1,7 +1,9 @@
1
1
 
2
2
  from abc import ABCMeta
3
+
4
+ from .m2.autosar_templates.sw_component_template.swc_internal_behavior.instance_refs_usage import AutosarParameterRef, AutosarVariableRef
3
5
  from .general_structure import Identifiable
4
- from .ar_ref import AutosarVariableRef, AutosarParameterRef, RefType
6
+ from .ar_ref import RefType
5
7
  from .ar_object import ARBoolean, ARLiteral, ARObject
6
8
 
7
9
 
@@ -1,6 +1,8 @@
1
1
  from typing import List
2
2
  from abc import ABCMeta
3
3
 
4
+ from .m2.autosar_templates.sw_component_template.components import SwComponentType
5
+ from .m2.autosar_templates.sw_component_template.composition.instance_refs import POperationInAtomicSwcInstanceRef
4
6
  from .m2.autosar_templates.sw_component_template.components.instance_refs import RModeInAtomicSwcInstanceRef, RVariableInAtomicSwcInstanceRef
5
7
  from .m2.autosar_templates.sw_component_template.swc_internal_behavior import RunnableEntity
6
8
  from .internal_behavior import IncludedDataTypeSet, InternalBehavior
@@ -8,11 +10,10 @@ from .service_mapping import RoleBasedPortAssignment
8
10
  from .per_instance_memory import PerInstanceMemory
9
11
  from .service_needs import NvBlockNeeds, RoleBasedDataAssignment, ServiceNeeds
10
12
  from .ar_object import ARBoolean, ARLiteral
11
- from .general_structure import ARElement, Identifiable, ARObject
12
- from .ar_ref import InnerPortGroupInCompositionInstanceRef, POperationInAtomicSwcInstanceRef, TRefType
13
- from .ar_ref import RefType, PortInCompositionTypeInstanceRef, PPortInCompositionInstanceRef, RPortInCompositionInstanceRef
14
- from .port_prototype import RPortPrototype, PPortPrototype, PortPrototype
15
- from .data_prototype import ParameterDataPrototype, VariableDataPrototype
13
+ from .general_structure import Identifiable, ARObject
14
+ from .ar_ref import TRefType
15
+ from .ar_ref import RefType
16
+ from .m2.autosar_templates.sw_component_template.data_type.data_prototypes import ParameterDataPrototype, VariableDataPrototype
16
17
  from .m2.autosar_templates.common_structure import ValueSpecification
17
18
 
18
19
  class AbstractEvent(Identifiable):
@@ -333,60 +334,7 @@ class SwcInternalBehavior(InternalBehavior):
333
334
  def getRunnableEntity(self, short_name) -> RunnableEntity:
334
335
  return self.elements[short_name]
335
336
 
336
- class PortGroup(Identifiable):
337
- def __init__(self, parent: ARObject, short_name: str):
338
- super().__init__(parent, short_name)
339
-
340
- self._inner_group_iref = [] # type: List[InnerPortGroupInCompositionInstanceRef]
341
- self._outer_port_ref = [] # type: List[RefType]
342
337
 
343
- def addInnerGroupIRef(self, iref: InnerPortGroupInCompositionInstanceRef):
344
- self._inner_group_iref.append(iref)
345
-
346
- def getInnerGroupIRefs(self) -> List[InnerPortGroupInCompositionInstanceRef]:
347
- return self._inner_group_iref
348
-
349
- def addOuterPortRef(self, ref: RefType):
350
- self._outer_port_ref.append(ref)
351
-
352
- def getOuterPortRefs(self) -> List[RefType]:
353
- return self._outer_port_ref
354
-
355
- class SwComponentType(ARElement):
356
- __metaclass__ = ABCMeta
357
-
358
- def __init__(self, parent: ARObject, short_name: str):
359
- super().__init__(parent, short_name)
360
-
361
- def createPPortPrototype(self, short_name: str) -> PPortPrototype:
362
- prototype = PPortPrototype(self, short_name)
363
- if (short_name not in self.elements):
364
- self.elements[short_name] = prototype
365
- return self.elements[short_name]
366
-
367
- def createRPortPrototype(self, short_name) -> RPortPrototype:
368
- prototype = RPortPrototype(self, short_name)
369
- if (short_name not in self.elements):
370
- self.elements[short_name] = prototype
371
- return self.elements[short_name]
372
-
373
- def createPortGroup(self, short_name) -> PortGroup:
374
- port_group = PortGroup(self, short_name)
375
- if (short_name not in self.elements):
376
- self.elements[short_name] = port_group
377
- return self.elements[short_name]
378
-
379
- def getPPortPrototypes(self) -> List[PPortPrototype]:
380
- return list(sorted(filter(lambda c: isinstance(c, PPortPrototype), self.elements.values()), key= lambda o: o.short_name))
381
-
382
- def getRPortPrototypes(self) -> List[RPortPrototype]:
383
- return list(sorted(filter(lambda c: isinstance(c, RPortPrototype), self.elements.values()), key= lambda o: o.short_name))
384
-
385
- def getPortPrototypes(self) -> List[PortPrototype]:
386
- return list(sorted(filter(lambda c: isinstance(c, PortPrototype), self.elements.values()), key= lambda o: o.short_name))
387
-
388
- def getPortGroups(self) -> List[PortGroup]:
389
- return list(sorted(filter(lambda c: isinstance(c, PortGroup), self.elements.values()), key= lambda o: o.short_name))
390
338
 
391
339
  class AtomicSwComponentType(SwComponentType):
392
340
  __metaclass__ = ABCMeta
@@ -434,89 +382,4 @@ class ServiceSwComponentType(AtomicSwComponentType):
434
382
  def __init__(self, parent: ARObject, short_name: str):
435
383
  super().__init__(parent, short_name)
436
384
 
437
- class SwConnector(Identifiable):
438
- __metaclass__ = ABCMeta
439
-
440
- def __init__(self, parent: ARObject, short_name: str):
441
- super().__init__(parent, short_name)
442
-
443
- self.mapping_ref = None # type: RefType
444
-
445
- class AssemblySwConnector(SwConnector):
446
- def __init__(self, parent: ARObject, short_name: str):
447
- super().__init__(parent, short_name)
448
-
449
- self.provider_iref = None # type: PPortInCompositionInstanceRef
450
- self.requester_iref = None # type: RPortInCompositionInstanceRef
451
-
452
- class DelegationSwConnector(SwConnector):
453
- def __init__(self, parent: ARObject, short_name: str):
454
- super().__init__(parent, short_name)
455
-
456
- self.inner_port_iref = None # type: PortInCompositionTypeInstanceRef
457
- self.outer_port_ref = None # type: RefType
458
-
459
- class PassThroughSwConnector(SwConnector):
460
- def __init__(self, parent: ARObject, short_name: str):
461
- super().__init__(parent, short_name)
462
-
463
- self.provided_outer_port_ref = None # type: RefType
464
- self.required_outer_port_ref = None # type: RefType
465
-
466
- class SwComponentPrototype(Identifiable):
467
- def __init__(self, parent: ARObject, short_name: str):
468
- super().__init__(parent, short_name)
469
-
470
- self.type_tref = RefType()
471
-
472
- class CompositionSwComponentType(SwComponentType):
473
- def __init__(self, parent: ARObject, short_name: str):
474
- super().__init__(parent, short_name)
475
-
476
- self.constant_value_mapping_refs = [] # type: List[RefType]
477
- self._data_type_mapping_refs = [] # type: List[RefType]
478
- self.instantiation_rte_event_props = [] # type: List[InstantiationRTEEventProps]
479
-
480
- def removeAllAssemblySwConnector(self):
481
- for sw_connector in self.getAssemblySwConnectors():
482
- self.elements.pop(sw_connector.short_name)
483
-
484
- def removeAllDelegationSwConnector(self):
485
- for sw_connector in self.getDelegationSwConnectors():
486
- self.elements.pop(sw_connector.short_name)
487
-
488
- def createAssemblySwConnector(self, short_name: str) -> AssemblySwConnector:
489
- if (short_name not in self.elements):
490
- connector = AssemblySwConnector(self, short_name)
491
- self.elements[short_name] = connector
492
- return self.elements[short_name]
493
-
494
- def createDelegationSwConnector(self, short_name: str) -> DelegationSwConnector:
495
- if short_name not in self.elements:
496
- connector = DelegationSwConnector(self, short_name)
497
- self.elements[short_name] = connector
498
- return self.elements[short_name]
499
-
500
- def getAssemblySwConnectors(self) -> List[AssemblySwConnector]:
501
- return list(sorted(filter(lambda e: isinstance(e, AssemblySwConnector), self.elements.values()), key = lambda c: c.short_name))
502
-
503
- def getDelegationSwConnectors(self) -> List[DelegationSwConnector]:
504
- return list(sorted(filter(lambda e: isinstance(e, DelegationSwConnector), self.elements.values()), key = lambda c: c.short_name))
505
-
506
- def getSwConnectors(self) -> List[SwConnector]:
507
- return list(sorted(filter(lambda e: isinstance(e, SwConnector), self.elements.values()), key = lambda c: c.short_name))
508
-
509
- def createSwComponentPrototype(self, short_name: str) -> SwComponentPrototype:
510
- if (short_name not in self.elements):
511
- connector = SwComponentPrototype(self, short_name)
512
- self.elements[short_name] = connector
513
- return self.elements[short_name]
514
-
515
- def getSwComponentPrototypes(self) -> List[SwComponentPrototype]:
516
- return list(filter(lambda e: isinstance(e, SwComponentPrototype), self.elements.values()))
517
-
518
- def addDataTypeMapping(self, data_type_mapping_ref: RefType):
519
- self._data_type_mapping_refs.append(data_type_mapping_ref)
520
385
 
521
- def getDataTypeMappings(self) -> List[RefType]:
522
- return self._data_type_mapping_refs
@@ -1 +1,2 @@
1
- from .arxml_parser import ARXMLParser
1
+ from .arxml_parser import ARXMLParser
2
+ from .file_parser import FileListParser
@@ -7,7 +7,7 @@ import re
7
7
  import logging
8
8
  import xml.etree.ElementTree as ET
9
9
 
10
- from ..models.ar_package import AUTOSAR
10
+ from ..models.m2.autosar_templates.autosar_top_level_structure import AUTOSAR
11
11
  from ..models.ar_ref import RefType
12
12
  from ..models.ar_object import ARBoolean, ARFloat, ARLiteral, ARNumerical, ARObject
13
13
  from ..models.general_structure import Limit