sysmlpy 0.36.2__tar.gz → 0.36.3__tar.gz

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 (148) hide show
  1. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/PKG-INFO +1 -1
  2. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/pyproject.toml +1 -1
  3. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/__init__.py +1 -1
  4. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/definition.py +2 -14
  5. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/usage.py +34 -3
  6. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/LICENSE +0 -0
  7. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/README.md +0 -0
  8. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/__main__.py +0 -0
  9. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/antlr/README.md +0 -0
  10. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/antlr/SysMLv2Lexer.interp +0 -0
  11. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/antlr/SysMLv2Lexer.py +0 -0
  12. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/antlr/SysMLv2Lexer.tokens +0 -0
  13. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/antlr/SysMLv2Parser.interp +0 -0
  14. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/antlr/SysMLv2Parser.py +0 -0
  15. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/antlr/SysMLv2Parser.tokens +0 -0
  16. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/antlr/SysMLv2ParserListener.py +0 -0
  17. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/antlr/SysMLv2ParserVisitor.py +0 -0
  18. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp +0 -0
  19. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py +0 -0
  20. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.tokens +0 -0
  21. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/antlr_parser.py +0 -0
  22. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/antlr_visitor.py +0 -0
  23. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/boxes_view.py +0 -0
  24. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/examples/attribute_values.py +0 -0
  25. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/examples/part_attributes.py +0 -0
  26. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/examples/tuples_sequences.py +0 -0
  27. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/formatting.py +0 -0
  28. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/grammar/antlr4/README.md +0 -0
  29. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.g4 +0 -0
  30. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp +0 -0
  31. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py +0 -0
  32. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.tokens +0 -0
  33. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.g4 +0 -0
  34. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.interp +0 -0
  35. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.py +0 -0
  36. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.tokens +0 -0
  37. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/grammar/antlr4/SysMLv2ParserListener.py +0 -0
  38. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/grammar/antlr4/SysMLv2ParserVisitor.py +0 -0
  39. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/grammar/antlr4/desc.xml +0 -0
  40. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/grammar/antlr4/examples/camera.sysml +0 -0
  41. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/grammar/antlr4/examples/toaster-system.sysml +0 -0
  42. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/grammar/antlr4/examples/vehicle-model.sysml +0 -0
  43. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/grammar/antlr4/pom.xml +0 -0
  44. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/grammar/classes.py +0 -0
  45. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/LICENSE +0 -0
  46. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/README.md +0 -0
  47. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/__init__.py +0 -0
  48. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Analysis/AnalysisTooling.sysml +0 -0
  49. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Analysis/SampledFunctions.sysml +0 -0
  50. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Analysis/StateSpaceRepresentation.sysml +0 -0
  51. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Analysis/TradeStudies.sysml +0 -0
  52. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Cause and Effect/CausationConnections.sysml +0 -0
  53. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Cause and Effect/CauseAndEffect.sysml +0 -0
  54. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Geometry/ShapeItems.sysml +0 -0
  55. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Geometry/SpatialItems.sysml +0 -0
  56. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Metadata/ImageMetadata.sysml +0 -0
  57. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Metadata/ModelingMetadata.sysml +0 -0
  58. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Metadata/ParametersOfInterestMetadata.sysml +0 -0
  59. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Metadata/RiskMetadata.sysml +0 -0
  60. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Quantities and Units/ISQ.sysml +0 -0
  61. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Quantities and Units/ISQAcoustics.sysml +0 -0
  62. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Quantities and Units/ISQAtomicNuclear.sysml +0 -0
  63. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Quantities and Units/ISQBase.sysml +0 -0
  64. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Quantities and Units/ISQCharacteristicNumbers.sysml +0 -0
  65. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Quantities and Units/ISQChemistryMolecular.sysml +0 -0
  66. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Quantities and Units/ISQCondensedMatter.sysml +0 -0
  67. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Quantities and Units/ISQElectromagnetism.sysml +0 -0
  68. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Quantities and Units/ISQInformation.sysml +0 -0
  69. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Quantities and Units/ISQLight.sysml +0 -0
  70. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Quantities and Units/ISQMechanics.sysml +0 -0
  71. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Quantities and Units/ISQSpaceTime.sysml +0 -0
  72. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Quantities and Units/ISQThermodynamics.sysml +0 -0
  73. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Quantities and Units/MeasurementRefCalculations.sysml +0 -0
  74. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Quantities and Units/MeasurementReferences.sysml +0 -0
  75. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Quantities and Units/Quantities.sysml +0 -0
  76. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Quantities and Units/QuantityCalculations.sysml +0 -0
  77. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Quantities and Units/SI.sysml +0 -0
  78. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Quantities and Units/SIPrefixes.sysml +0 -0
  79. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Quantities and Units/TensorCalculations.sysml +0 -0
  80. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Quantities and Units/Time.sysml +0 -0
  81. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Quantities and Units/USCustomaryUnits.sysml +0 -0
  82. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Quantities and Units/VectorCalculations.sysml +0 -0
  83. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Requirement Derivation/DerivationConnections.sysml +0 -0
  84. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/domain/Requirement Derivation/RequirementDerivation.sysml +0 -0
  85. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/Base.kerml +0 -0
  86. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/BaseFunctions.kerml +0 -0
  87. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/BooleanFunctions.kerml +0 -0
  88. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/Clocks.kerml +0 -0
  89. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/CollectionFunctions.kerml +0 -0
  90. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/Collections.kerml +0 -0
  91. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/ComplexFunctions.kerml +0 -0
  92. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/ControlFunctions.kerml +0 -0
  93. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/ControlPerformances.kerml +0 -0
  94. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/DataFunctions.kerml +0 -0
  95. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/FeatureReferencingPerformances.kerml +0 -0
  96. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/IntegerFunctions.kerml +0 -0
  97. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/KerML.kerml +0 -0
  98. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/Links.kerml +0 -0
  99. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/Metaobjects.kerml +0 -0
  100. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/NaturalFunctions.kerml +0 -0
  101. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/NumericalFunctions.kerml +0 -0
  102. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/Objects.kerml +0 -0
  103. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/Observation.kerml +0 -0
  104. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/OccurrenceFunctions.kerml +0 -0
  105. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/Occurrences.kerml +0 -0
  106. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/Performances.kerml +0 -0
  107. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/RationalFunctions.kerml +0 -0
  108. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/RealFunctions.kerml +0 -0
  109. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/ScalarFunctions.kerml +0 -0
  110. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/ScalarValues.kerml +0 -0
  111. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/SequenceFunctions.kerml +0 -0
  112. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/SpatialFrames.kerml +0 -0
  113. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/StatePerformances.kerml +0 -0
  114. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/StringFunctions.kerml +0 -0
  115. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/Transfers.kerml +0 -0
  116. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/TransitionPerformances.kerml +0 -0
  117. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/TrigFunctions.kerml +0 -0
  118. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/Triggers.kerml +0 -0
  119. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/VectorFunctions.kerml +0 -0
  120. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/kernel/VectorValues.kerml +0 -0
  121. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/systems/Actions.sysml +0 -0
  122. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/systems/Allocations.sysml +0 -0
  123. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/systems/AnalysisCases.sysml +0 -0
  124. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/systems/Attributes.sysml +0 -0
  125. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/systems/Calculations.sysml +0 -0
  126. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/systems/Cases.sysml +0 -0
  127. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/systems/Connections.sysml +0 -0
  128. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/systems/Constraints.sysml +0 -0
  129. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/systems/Flows.sysml +0 -0
  130. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/systems/Interfaces.sysml +0 -0
  131. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/systems/Items.sysml +0 -0
  132. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/systems/Metadata.sysml +0 -0
  133. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/systems/Parts.sysml +0 -0
  134. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/systems/Ports.sysml +0 -0
  135. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/systems/Requirements.sysml +0 -0
  136. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/systems/StandardViewDefinitions.sysml +0 -0
  137. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/systems/States.sysml +0 -0
  138. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/systems/SysML.sysml +0 -0
  139. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/systems/UseCases.sysml +0 -0
  140. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/systems/VerificationCases.sysml +0 -0
  141. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/library/systems/Views.sysml +0 -0
  142. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/navigate.py +0 -0
  143. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/plantuml.py +0 -0
  144. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/project.py +0 -0
  145. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/semantic.py +0 -0
  146. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/store.py +0 -0
  147. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/us_customary_units.txt +0 -0
  148. {sysmlpy-0.36.2 → sysmlpy-0.36.3}/src/sysmlpy/validator.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sysmlpy
3
- Version: 0.36.2
3
+ Version: 0.36.3
4
4
  Summary:
5
5
  License-File: LICENSE
6
6
  Author: Jon R. Fox (mycr0ft)
@@ -6,7 +6,7 @@ build-backend = "poetry.core.masonry.api"
6
6
 
7
7
  [project]
8
8
  name = "sysmlpy"
9
- version = "0.36.2"
9
+ version = "0.36.3"
10
10
  description = ""
11
11
  authors = [{ name = "Jon R. Fox (mycr0ft)", email = "jon.fox@drfox.com" }]
12
12
  readme = "README.md"
@@ -24,7 +24,7 @@ __all__ = [
24
24
  "render_state_transition_view_svg", "boxes_view",
25
25
  ]
26
26
  __author__ = "Jon Fox"
27
- __version__ = "0.36.2"
27
+ __version__ = "0.36.3"
28
28
 
29
29
  from sysmlpy.usage import (
30
30
  Item, Attribute, Part, Port, Action, Reference, UseCase, Requirement, Interface, Message,
@@ -1168,23 +1168,11 @@ class Package(Searchable):
1168
1168
  f.parent = self
1169
1169
  self.children.append(f)
1170
1170
  elif inner_class == "ViewDefinition":
1171
- v = View(definition=True)
1172
- v.grammar = inner_element
1173
- if hasattr(inner_element, 'declaration') and inner_element.declaration:
1174
- decl = inner_element.declaration
1175
- if hasattr(decl, 'identification') and decl.identification:
1176
- v.name = decl.identification.declaredName
1171
+ v = View(definition=True).load_from_grammar(inner_element)
1177
1172
  v.parent = self
1178
1173
  self.children.append(v)
1179
1174
  elif inner_class == "ViewUsage":
1180
- v = View()
1181
- v.grammar = inner_element
1182
- if hasattr(inner_element, 'declaration') and inner_element.declaration:
1183
- decl = inner_element.declaration
1184
- if hasattr(decl, 'declaration') and decl.declaration:
1185
- feat_decl = decl.declaration
1186
- if hasattr(feat_decl, 'identification') and feat_decl.identification:
1187
- v.name = feat_decl.identification.declaredName
1175
+ v = View().load_from_grammar(inner_element)
1188
1176
  v.parent = self
1189
1177
  self.children.append(v)
1190
1178
  elif inner_class == "ViewpointDefinition":
@@ -151,15 +151,24 @@ class Usage(Searchable):
151
151
  )
152
152
 
153
153
  if len(body) > 0:
154
- target = getattr(self.grammar, subgrammar)
155
- if hasattr(target, 'completion'):
154
+ # Most usages (Part, Item, Attribute, ...) nest their body under
155
+ # ``grammar.usage.completion.body.body`` (a DefinitionBody). Prefixed
156
+ # usages such as ViewUsage carry the body directly on ``grammar.body``
157
+ # (a ViewBody / ViewDefinitionBody) whose ``children`` are the
158
+ # DefinitionBodyItem objects themselves.
159
+ target = getattr(self.grammar, subgrammar, None)
160
+ if target is not None and hasattr(target, 'completion'):
156
161
  target.completion.body.body = DefinitionBody(
157
162
  {"name": "DefinitionBody", "ownedRelatedElement": body}
158
163
  )
159
- else:
164
+ elif target is not None and hasattr(target, 'body'):
160
165
  target.body = DefinitionBody(
161
166
  {"name": "DefinitionBody", "ownedRelatedElement": body}
162
167
  )
168
+ elif hasattr(self.grammar, 'body') and hasattr(self.grammar.body, 'children'):
169
+ self.grammar.body.children = [
170
+ DefinitionBodyItem(item) for item in body
171
+ ]
163
172
  return self
164
173
 
165
174
  def usage_dump(self, child):
@@ -780,7 +789,29 @@ class Usage(Searchable):
780
789
  # Check direct identification (for RequirementDefinition, UseCaseDefinition)
781
790
  elif hasattr(decl, 'identification') and decl.identification:
782
791
  u_name = decl.identification.declaredName
792
+ # Prefixed usages (e.g. ViewUsage, ViewDefinition) and other
793
+ # declaration-based types carry their body directly on
794
+ # ``grammar.body`` rather than nested under
795
+ # ``grammar.usage.completion.body.body``. Extract children the
796
+ # same way the usage path does when the body exposes a
797
+ # ``children`` list (ViewBody / ViewDefinitionBody /
798
+ # DefinitionBody). Bodies that use ``items`` instead
799
+ # (RequirementBody, CaseBody) are left untouched here.
783
800
  children = []
801
+ body = getattr(grammar, 'body', None)
802
+ if body is not None and hasattr(body, 'children') and body.children:
803
+ children_list = []
804
+ for body_item in body.children:
805
+ if hasattr(body_item, 'children') and body_item.children:
806
+ member = body_item.children[0]
807
+ mc = member.children if isinstance(member.children, list) else [member.children]
808
+ for inner in mc:
809
+ if inner is None:
810
+ continue
811
+ if inner.__class__.__name__ == 'DefinitionElement' and hasattr(inner, 'children') and inner.children:
812
+ inner = inner.children[0]
813
+ children_list.append(inner)
814
+ children = children_list
784
815
  else:
785
816
  u_name = None
786
817
  children = []
File without changes
File without changes
File without changes