sysmlpy 0.44.0__tar.gz → 0.45.0__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.44.0 → sysmlpy-0.45.0}/PKG-INFO +7 -1
  2. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/README.md +6 -0
  3. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/pyproject.toml +1 -1
  4. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/__init__.py +1 -1
  5. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/antlr_visitor.py +21 -3
  6. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/grammar/classes.py +5 -1
  7. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/LICENSE +0 -0
  8. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/__main__.py +0 -0
  9. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/antlr/README.md +0 -0
  10. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/antlr/SysMLv2Lexer.interp +0 -0
  11. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/antlr/SysMLv2Lexer.py +0 -0
  12. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/antlr/SysMLv2Lexer.tokens +0 -0
  13. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/antlr/SysMLv2Parser.interp +0 -0
  14. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/antlr/SysMLv2Parser.py +0 -0
  15. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/antlr/SysMLv2Parser.tokens +0 -0
  16. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/antlr/SysMLv2ParserListener.py +0 -0
  17. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/antlr/SysMLv2ParserVisitor.py +0 -0
  18. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp +0 -0
  19. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py +0 -0
  20. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.tokens +0 -0
  21. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/antlr_parser.py +0 -0
  22. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/boxes_view.py +0 -0
  23. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/definition.py +0 -0
  24. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/examples/attribute_values.py +0 -0
  25. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/examples/part_attributes.py +0 -0
  26. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/examples/tuples_sequences.py +0 -0
  27. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/formatting.py +0 -0
  28. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/grammar/antlr4/README.md +0 -0
  29. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.g4 +0 -0
  30. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp +0 -0
  31. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py +0 -0
  32. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.tokens +0 -0
  33. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.g4 +0 -0
  34. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.interp +0 -0
  35. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.py +0 -0
  36. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.tokens +0 -0
  37. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/grammar/antlr4/SysMLv2ParserListener.py +0 -0
  38. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/grammar/antlr4/SysMLv2ParserVisitor.py +0 -0
  39. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/grammar/antlr4/desc.xml +0 -0
  40. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/grammar/antlr4/examples/camera.sysml +0 -0
  41. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/grammar/antlr4/examples/toaster-system.sysml +0 -0
  42. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/grammar/antlr4/examples/vehicle-model.sysml +0 -0
  43. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/grammar/antlr4/pom.xml +0 -0
  44. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/LICENSE +0 -0
  45. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/README.md +0 -0
  46. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/__init__.py +0 -0
  47. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Analysis/AnalysisTooling.sysml +0 -0
  48. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Analysis/SampledFunctions.sysml +0 -0
  49. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Analysis/StateSpaceRepresentation.sysml +0 -0
  50. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Analysis/TradeStudies.sysml +0 -0
  51. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Cause and Effect/CausationConnections.sysml +0 -0
  52. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Cause and Effect/CauseAndEffect.sysml +0 -0
  53. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Geometry/ShapeItems.sysml +0 -0
  54. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Geometry/SpatialItems.sysml +0 -0
  55. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Metadata/ImageMetadata.sysml +0 -0
  56. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Metadata/ModelingMetadata.sysml +0 -0
  57. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Metadata/ParametersOfInterestMetadata.sysml +0 -0
  58. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Metadata/RiskMetadata.sysml +0 -0
  59. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Quantities and Units/ISQ.sysml +0 -0
  60. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Quantities and Units/ISQAcoustics.sysml +0 -0
  61. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Quantities and Units/ISQAtomicNuclear.sysml +0 -0
  62. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Quantities and Units/ISQBase.sysml +0 -0
  63. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Quantities and Units/ISQCharacteristicNumbers.sysml +0 -0
  64. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Quantities and Units/ISQChemistryMolecular.sysml +0 -0
  65. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Quantities and Units/ISQCondensedMatter.sysml +0 -0
  66. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Quantities and Units/ISQElectromagnetism.sysml +0 -0
  67. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Quantities and Units/ISQInformation.sysml +0 -0
  68. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Quantities and Units/ISQLight.sysml +0 -0
  69. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Quantities and Units/ISQMechanics.sysml +0 -0
  70. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Quantities and Units/ISQSpaceTime.sysml +0 -0
  71. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Quantities and Units/ISQThermodynamics.sysml +0 -0
  72. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Quantities and Units/MeasurementRefCalculations.sysml +0 -0
  73. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Quantities and Units/MeasurementReferences.sysml +0 -0
  74. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Quantities and Units/Quantities.sysml +0 -0
  75. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Quantities and Units/QuantityCalculations.sysml +0 -0
  76. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Quantities and Units/SI.sysml +0 -0
  77. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Quantities and Units/SIPrefixes.sysml +0 -0
  78. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Quantities and Units/TensorCalculations.sysml +0 -0
  79. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Quantities and Units/Time.sysml +0 -0
  80. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Quantities and Units/USCustomaryUnits.sysml +0 -0
  81. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Quantities and Units/VectorCalculations.sysml +0 -0
  82. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Requirement Derivation/DerivationConnections.sysml +0 -0
  83. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/domain/Requirement Derivation/RequirementDerivation.sysml +0 -0
  84. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/Base.kerml +0 -0
  85. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/BaseFunctions.kerml +0 -0
  86. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/BooleanFunctions.kerml +0 -0
  87. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/Clocks.kerml +0 -0
  88. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/CollectionFunctions.kerml +0 -0
  89. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/Collections.kerml +0 -0
  90. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/ComplexFunctions.kerml +0 -0
  91. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/ControlFunctions.kerml +0 -0
  92. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/ControlPerformances.kerml +0 -0
  93. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/DataFunctions.kerml +0 -0
  94. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/FeatureReferencingPerformances.kerml +0 -0
  95. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/IntegerFunctions.kerml +0 -0
  96. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/KerML.kerml +0 -0
  97. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/Links.kerml +0 -0
  98. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/Metaobjects.kerml +0 -0
  99. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/NaturalFunctions.kerml +0 -0
  100. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/NumericalFunctions.kerml +0 -0
  101. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/Objects.kerml +0 -0
  102. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/Observation.kerml +0 -0
  103. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/OccurrenceFunctions.kerml +0 -0
  104. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/Occurrences.kerml +0 -0
  105. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/Performances.kerml +0 -0
  106. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/RationalFunctions.kerml +0 -0
  107. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/RealFunctions.kerml +0 -0
  108. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/ScalarFunctions.kerml +0 -0
  109. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/ScalarValues.kerml +0 -0
  110. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/SequenceFunctions.kerml +0 -0
  111. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/SpatialFrames.kerml +0 -0
  112. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/StatePerformances.kerml +0 -0
  113. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/StringFunctions.kerml +0 -0
  114. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/Transfers.kerml +0 -0
  115. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/TransitionPerformances.kerml +0 -0
  116. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/TrigFunctions.kerml +0 -0
  117. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/Triggers.kerml +0 -0
  118. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/VectorFunctions.kerml +0 -0
  119. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/kernel/VectorValues.kerml +0 -0
  120. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/systems/Actions.sysml +0 -0
  121. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/systems/Allocations.sysml +0 -0
  122. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/systems/AnalysisCases.sysml +0 -0
  123. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/systems/Attributes.sysml +0 -0
  124. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/systems/Calculations.sysml +0 -0
  125. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/systems/Cases.sysml +0 -0
  126. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/systems/Connections.sysml +0 -0
  127. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/systems/Constraints.sysml +0 -0
  128. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/systems/Flows.sysml +0 -0
  129. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/systems/Interfaces.sysml +0 -0
  130. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/systems/Items.sysml +0 -0
  131. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/systems/Metadata.sysml +0 -0
  132. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/systems/Parts.sysml +0 -0
  133. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/systems/Ports.sysml +0 -0
  134. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/systems/Requirements.sysml +0 -0
  135. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/systems/StandardViewDefinitions.sysml +0 -0
  136. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/systems/States.sysml +0 -0
  137. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/systems/SysML.sysml +0 -0
  138. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/systems/UseCases.sysml +0 -0
  139. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/systems/VerificationCases.sysml +0 -0
  140. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/library/systems/Views.sysml +0 -0
  141. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/navigate.py +0 -0
  142. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/plantuml.py +0 -0
  143. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/project.py +0 -0
  144. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/semantic.py +0 -0
  145. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/store.py +0 -0
  146. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/us_customary_units.txt +0 -0
  147. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/usage.py +0 -0
  148. {sysmlpy-0.44.0 → sysmlpy-0.45.0}/src/sysmlpy/validator.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sysmlpy
3
- Version: 0.44.0
3
+ Version: 0.45.0
4
4
  Summary:
5
5
  License-File: LICENSE
6
6
  Author: Jon R. Fox (mycr0ft)
@@ -104,6 +104,12 @@ Multiple installation methods are supported by sysmlpy, including:
104
104
 
105
105
  Documentation can be found [here.](https://mycr0ft.github.io/sysmlpy/)
106
106
 
107
+ > **Scope reminder** — a green parse result means the file **parsed
108
+ > syntactically**. Names inside constraint bodies and other OCL-style
109
+ > expressions are not yet resolved by the semantic analyzer, so a
110
+ > document that names an undefined symbol inside an `assert constraint
111
+ > { ... }` will still parse cleanly. See [STATUS.md §Known Issues](STATUS.md#known-issues).
112
+
107
113
  ### Basic Usage
108
114
 
109
115
  Build models programmatically using the public API:
@@ -79,6 +79,12 @@ Multiple installation methods are supported by sysmlpy, including:
79
79
 
80
80
  Documentation can be found [here.](https://mycr0ft.github.io/sysmlpy/)
81
81
 
82
+ > **Scope reminder** — a green parse result means the file **parsed
83
+ > syntactically**. Names inside constraint bodies and other OCL-style
84
+ > expressions are not yet resolved by the semantic analyzer, so a
85
+ > document that names an undefined symbol inside an `assert constraint
86
+ > { ... }` will still parse cleanly. See [STATUS.md §Known Issues](STATUS.md#known-issues).
87
+
82
88
  ### Basic Usage
83
89
 
84
90
  Build models programmatically using the public API:
@@ -6,7 +6,7 @@ build-backend = "poetry.core.masonry.api"
6
6
 
7
7
  [project]
8
8
  name = "sysmlpy"
9
- version = "0.44.0"
9
+ version = "0.45.0"
10
10
  description = ""
11
11
  authors = [{ name = "Jon R. Fox (mycr0ft)", email = "jon.fox@drfox.com" }]
12
12
  readme = "README.md"
@@ -25,7 +25,7 @@ __all__ = [
25
25
  "render_state_transition_view_svg", "boxes_view",
26
26
  ]
27
27
  __author__ = "Jon Fox"
28
- __version__ = "0.44.0"
28
+ __version__ = "0.45.0"
29
29
 
30
30
  from sysmlpy.usage import (
31
31
  Item, Attribute, Part, Port, Action, Reference, UseCase, Requirement, Interface, Message,
@@ -314,8 +314,15 @@ def _visit_metadata_feature_dict(ctx):
314
314
  })
315
315
 
316
316
  body = ""
317
- if ctx.metadataBody() and ctx.metadataBody().SEMI():
318
- body = ";"
317
+ if ctx.metadataBody():
318
+ if ctx.metadataBody().SEMI():
319
+ body = ";"
320
+ else:
321
+ # Braced body: preserve the raw text so the body content
322
+ # (field assignments, nested usage members, etc.) survives
323
+ # the round-trip. Without this, every `key = value;` inside
324
+ # a metadata application is silently dropped at visit time.
325
+ body = ctx.metadataBody().getText()
319
326
 
320
327
  return {
321
328
  "name": "MetadataFeature",
@@ -813,6 +820,12 @@ def _visit_definition_element_dict(def_elem_ctx, prefix=None):
813
820
  if hasattr(def_elem_ctx, 'package') and def_elem_ctx.package():
814
821
  ctx = def_elem_ctx.package()
815
822
  return _make_nested_package_dict(ctx, prefix)
823
+ elif hasattr(def_elem_ctx, 'libraryPackage') and def_elem_ctx.libraryPackage():
824
+ # `standard library package Foo { ... }` shares the declaration/body
825
+ # structure of `package Foo { ... }`. Pass is_standard_library=True so
826
+ # the round-trip dict preserves the `standard library` keywords.
827
+ ctx = def_elem_ctx.libraryPackage()
828
+ return _make_nested_package_dict(ctx, prefix, is_standard_library=True)
816
829
  elif hasattr(def_elem_ctx, 'itemDefinition') and def_elem_ctx.itemDefinition():
817
830
  ctx = def_elem_ctx.itemDefinition()
818
831
  return _make_item_definition_dict(ctx, prefix)
@@ -948,10 +961,14 @@ def _make_item_definition_dict(ctx, member_prefix=None):
948
961
  }
949
962
 
950
963
 
951
- def _make_nested_package_dict(ctx, prefix=None):
964
+ def _make_nested_package_dict(ctx, prefix=None, is_standard_library=False):
952
965
  """Create a Package dictionary for a nested package.
953
966
 
954
967
  Similar to _visit_package_dict but returns a PackageMember wrapped result.
968
+
969
+ ``is_standard_library`` is True when the source was a
970
+ ``standard library package`` declaration; in that case the
971
+ ``standard library`` keyword is preserved through the round-trip.
955
972
  """
956
973
  pkg_name = None
957
974
  pkg_shortname = None
@@ -981,6 +998,7 @@ def _make_nested_package_dict(ctx, prefix=None):
981
998
  "ownedRelatedElement": {
982
999
  "name": "Package",
983
1000
  "ownedRelationship": [],
1001
+ "isStandardLibrary": is_standard_library,
984
1002
  "declaration": {
985
1003
  "name": "PackageDeclaration",
986
1004
  "identification": {
@@ -8634,6 +8634,7 @@ class MemberPrefix:
8634
8634
 
8635
8635
  class Package:
8636
8636
  def __init__(self, definition=None):
8637
+ self.is_standard_library = False
8637
8638
  if definition is not None:
8638
8639
  if valid_definition(definition, self.__class__.__name__):
8639
8640
  # Elements inside of a package
@@ -8645,13 +8646,15 @@ class Package:
8645
8646
  self.relationships.append(json.dumps(rel))
8646
8647
  self.declaration = PackageDeclaration(definition["declaration"])
8647
8648
  self.body = PackageBody(definition["body"])
8649
+ self.is_standard_library = bool(definition.get("isStandardLibrary", False))
8648
8650
  else:
8649
8651
  self.relationships = []
8650
8652
  self.declaration = PackageDeclaration()
8651
8653
  self.body = PackageBody()
8652
8654
 
8653
8655
  def dump(self):
8654
- return "".join([self.declaration.dump(), self.body.dump()])
8656
+ prefix = "standard library " if self.is_standard_library else ""
8657
+ return prefix + "".join([self.declaration.dump(), self.body.dump()])
8655
8658
 
8656
8659
  def get_definition(self):
8657
8660
  output = {"name": self.__class__.__name__, "ownedRelationship": []}
@@ -8659,6 +8662,7 @@ class Package:
8659
8662
  output["ownedRelationship"] = rel.get_definition()
8660
8663
  output["declaration"] = self.declaration.get_definition()
8661
8664
  output["body"] = self.body.get_definition()
8665
+ output["isStandardLibrary"] = self.is_standard_library
8662
8666
 
8663
8667
  return output
8664
8668
 
File without changes
File without changes
File without changes