sysmlpy 0.41.0__tar.gz → 0.44.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 (150) hide show
  1. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/PKG-INFO +3 -1
  2. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/README.md +2 -0
  3. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/pyproject.toml +1 -1
  4. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/__init__.py +1 -1
  5. sysmlpy-0.44.0/src/sysmlpy/antlr/SysMLv2Parser.interp +979 -0
  6. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/antlr/SysMLv2Parser.py +4773 -7941
  7. {sysmlpy-0.41.0/src/sysmlpy/grammar/antlr4 → sysmlpy-0.44.0/src/sysmlpy/antlr}/SysMLv2ParserListener.py +0 -18
  8. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/antlr/SysMLv2ParserVisitor.py +0 -10
  9. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/antlr_parser.py +1 -1
  10. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/antlr_visitor.py +135 -149
  11. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/grammar/antlr4/README.md +1 -1
  12. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.g4 +22 -15
  13. sysmlpy-0.44.0/src/sysmlpy/grammar/antlr4/SysMLv2Parser.interp +979 -0
  14. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.py +4773 -7941
  15. {sysmlpy-0.41.0/src/sysmlpy/antlr → sysmlpy-0.44.0/src/sysmlpy/grammar/antlr4}/SysMLv2ParserListener.py +0 -18
  16. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/grammar/antlr4/SysMLv2ParserVisitor.py +0 -10
  17. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/grammar/classes.py +28 -19
  18. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/semantic.py +42 -9
  19. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/usage.py +19 -47
  20. sysmlpy-0.41.0/src/sysmlpy/antlr/SysMLv2Parser.interp +0 -981
  21. sysmlpy-0.41.0/src/sysmlpy/grammar/antlr4/SysMLv2Parser.interp +0 -981
  22. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/LICENSE +0 -0
  23. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/__main__.py +0 -0
  24. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/antlr/README.md +0 -0
  25. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/antlr/SysMLv2Lexer.interp +0 -0
  26. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/antlr/SysMLv2Lexer.py +0 -0
  27. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/antlr/SysMLv2Lexer.tokens +0 -0
  28. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/antlr/SysMLv2Parser.tokens +0 -0
  29. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp +0 -0
  30. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py +0 -0
  31. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.tokens +0 -0
  32. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/boxes_view.py +0 -0
  33. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/definition.py +0 -0
  34. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/examples/attribute_values.py +0 -0
  35. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/examples/part_attributes.py +0 -0
  36. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/examples/tuples_sequences.py +0 -0
  37. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/formatting.py +0 -0
  38. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.g4 +0 -0
  39. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp +0 -0
  40. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py +0 -0
  41. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.tokens +0 -0
  42. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.tokens +0 -0
  43. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/grammar/antlr4/desc.xml +0 -0
  44. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/grammar/antlr4/examples/camera.sysml +0 -0
  45. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/grammar/antlr4/examples/toaster-system.sysml +0 -0
  46. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/grammar/antlr4/examples/vehicle-model.sysml +0 -0
  47. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/grammar/antlr4/pom.xml +0 -0
  48. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/LICENSE +0 -0
  49. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/README.md +0 -0
  50. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/__init__.py +0 -0
  51. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Analysis/AnalysisTooling.sysml +0 -0
  52. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Analysis/SampledFunctions.sysml +0 -0
  53. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Analysis/StateSpaceRepresentation.sysml +0 -0
  54. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Analysis/TradeStudies.sysml +0 -0
  55. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Cause and Effect/CausationConnections.sysml +0 -0
  56. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Cause and Effect/CauseAndEffect.sysml +0 -0
  57. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Geometry/ShapeItems.sysml +0 -0
  58. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Geometry/SpatialItems.sysml +0 -0
  59. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Metadata/ImageMetadata.sysml +0 -0
  60. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Metadata/ModelingMetadata.sysml +0 -0
  61. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Metadata/ParametersOfInterestMetadata.sysml +0 -0
  62. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Metadata/RiskMetadata.sysml +0 -0
  63. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Quantities and Units/ISQ.sysml +0 -0
  64. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Quantities and Units/ISQAcoustics.sysml +0 -0
  65. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Quantities and Units/ISQAtomicNuclear.sysml +0 -0
  66. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Quantities and Units/ISQBase.sysml +0 -0
  67. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Quantities and Units/ISQCharacteristicNumbers.sysml +0 -0
  68. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Quantities and Units/ISQChemistryMolecular.sysml +0 -0
  69. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Quantities and Units/ISQCondensedMatter.sysml +0 -0
  70. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Quantities and Units/ISQElectromagnetism.sysml +0 -0
  71. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Quantities and Units/ISQInformation.sysml +0 -0
  72. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Quantities and Units/ISQLight.sysml +0 -0
  73. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Quantities and Units/ISQMechanics.sysml +0 -0
  74. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Quantities and Units/ISQSpaceTime.sysml +0 -0
  75. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Quantities and Units/ISQThermodynamics.sysml +0 -0
  76. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Quantities and Units/MeasurementRefCalculations.sysml +0 -0
  77. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Quantities and Units/MeasurementReferences.sysml +0 -0
  78. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Quantities and Units/Quantities.sysml +0 -0
  79. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Quantities and Units/QuantityCalculations.sysml +0 -0
  80. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Quantities and Units/SI.sysml +0 -0
  81. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Quantities and Units/SIPrefixes.sysml +0 -0
  82. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Quantities and Units/TensorCalculations.sysml +0 -0
  83. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Quantities and Units/Time.sysml +0 -0
  84. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Quantities and Units/USCustomaryUnits.sysml +0 -0
  85. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Quantities and Units/VectorCalculations.sysml +0 -0
  86. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Requirement Derivation/DerivationConnections.sysml +0 -0
  87. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/domain/Requirement Derivation/RequirementDerivation.sysml +0 -0
  88. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/Base.kerml +0 -0
  89. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/BaseFunctions.kerml +0 -0
  90. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/BooleanFunctions.kerml +0 -0
  91. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/Clocks.kerml +0 -0
  92. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/CollectionFunctions.kerml +0 -0
  93. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/Collections.kerml +0 -0
  94. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/ComplexFunctions.kerml +0 -0
  95. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/ControlFunctions.kerml +0 -0
  96. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/ControlPerformances.kerml +0 -0
  97. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/DataFunctions.kerml +0 -0
  98. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/FeatureReferencingPerformances.kerml +0 -0
  99. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/IntegerFunctions.kerml +0 -0
  100. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/KerML.kerml +0 -0
  101. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/Links.kerml +0 -0
  102. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/Metaobjects.kerml +0 -0
  103. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/NaturalFunctions.kerml +0 -0
  104. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/NumericalFunctions.kerml +0 -0
  105. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/Objects.kerml +0 -0
  106. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/Observation.kerml +0 -0
  107. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/OccurrenceFunctions.kerml +0 -0
  108. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/Occurrences.kerml +0 -0
  109. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/Performances.kerml +0 -0
  110. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/RationalFunctions.kerml +0 -0
  111. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/RealFunctions.kerml +0 -0
  112. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/ScalarFunctions.kerml +0 -0
  113. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/ScalarValues.kerml +0 -0
  114. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/SequenceFunctions.kerml +0 -0
  115. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/SpatialFrames.kerml +0 -0
  116. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/StatePerformances.kerml +0 -0
  117. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/StringFunctions.kerml +0 -0
  118. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/Transfers.kerml +0 -0
  119. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/TransitionPerformances.kerml +0 -0
  120. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/TrigFunctions.kerml +0 -0
  121. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/Triggers.kerml +0 -0
  122. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/VectorFunctions.kerml +0 -0
  123. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/kernel/VectorValues.kerml +0 -0
  124. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/systems/Actions.sysml +0 -0
  125. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/systems/Allocations.sysml +0 -0
  126. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/systems/AnalysisCases.sysml +0 -0
  127. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/systems/Attributes.sysml +0 -0
  128. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/systems/Calculations.sysml +0 -0
  129. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/systems/Cases.sysml +0 -0
  130. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/systems/Connections.sysml +0 -0
  131. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/systems/Constraints.sysml +0 -0
  132. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/systems/Flows.sysml +0 -0
  133. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/systems/Interfaces.sysml +0 -0
  134. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/systems/Items.sysml +0 -0
  135. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/systems/Metadata.sysml +0 -0
  136. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/systems/Parts.sysml +0 -0
  137. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/systems/Ports.sysml +0 -0
  138. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/systems/Requirements.sysml +0 -0
  139. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/systems/StandardViewDefinitions.sysml +0 -0
  140. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/systems/States.sysml +0 -0
  141. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/systems/SysML.sysml +0 -0
  142. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/systems/UseCases.sysml +0 -0
  143. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/systems/VerificationCases.sysml +0 -0
  144. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/library/systems/Views.sysml +0 -0
  145. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/navigate.py +0 -0
  146. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/plantuml.py +0 -0
  147. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/project.py +0 -0
  148. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/store.py +0 -0
  149. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/us_customary_units.txt +0 -0
  150. {sysmlpy-0.41.0 → sysmlpy-0.44.0}/src/sysmlpy/validator.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sysmlpy
3
- Version: 0.41.0
3
+ Version: 0.44.0
4
4
  Summary:
5
5
  License-File: LICENSE
6
6
  Author: Jon R. Fox (mycr0ft)
@@ -39,6 +39,8 @@ The project had diverged so much from sysml2py that a new name, sysmlpy, was sel
39
39
 
40
40
  ![Lines of Code Over Time](loc_history.svg)
41
41
 
42
+ **v0.42.0:** Two deep fixes in the specialization layer. (1) `satisfy R : T by p;` and `assert someConstraint : CType;` crashed with `NameError` — the makers called a helper that was never defined; all three sites now use `_build_full_specialization_from_fsp`. (2) Chained re-declarations (`attribute :> base.x;`) dropped every segment after the first, at both visitor and grammar layers — new visitor helpers emit one Owned* dict per source chain (head + `OwnedFeatureChain`), grammar classes keep both parts, `redefined_name` resolves to the leaf segment, and the semantic analyzer now reports/resolves full dotted names (`Undefined symbol 'missing.chain'`). 14 tests in `tests/redefined_name_test.py`.
43
+
42
44
  **v0.41.0:** Full-specialization capture across all usage kinds — v0.40.0 fixed `attributeUsage` only; actions, calculations, constraints, requirements, use cases, interfaces and nested occurrences still dropped `:>`, `:>>`, `::>` specializations. New `_full_specialization_for_ctx` helper walks any usage-like context to its featureSpecializationPart; twelve visitor sites now use it (typed-by kept as fallback). `Action.load_from_grammar` captures all four kinds and the hand-rolled dumps on Action/Interface/UseCase/Requirement render them (`action a2 ::> RefType;`). `Usage.redefined_name` now works on deeper declaration nestings too. 10 tests in `tests/redefined_name_test.py`.
43
45
 
44
46
  **v0.40.0:** `References` (`::>` / `references` keyword) implemented end-to-end — previously the grammar-side `FeatureSpecialization` had a silent "not yet implemented" stub and the visitor never emitted dicts for it, so `ref attribute ::> X;` lost its specialization on round-trip (dump emitted `attribute ;`). New `References` grammar class mirrors `Redefinitions`; visitor branches in both full-specialization builders now cover the operator and keyword forms. The top-level `attributeUsage` path was the only one still using the typed-by-only helper; it now uses `_build_full_specialization_from_ctx` so all four kinds (Typings, Subsettings, Redefinitions, References) round-trip. `redefined_name` / `display_name` already handled this case. New `test_attribute_ref_references_operator_roundtrip` in `tests/grammar_test.py`; two new cases in `tests/redefined_name_test.py`. 97/97 grammar round-trip tests pass.
@@ -14,6 +14,8 @@ The project had diverged so much from sysml2py that a new name, sysmlpy, was sel
14
14
 
15
15
  ![Lines of Code Over Time](loc_history.svg)
16
16
 
17
+ **v0.42.0:** Two deep fixes in the specialization layer. (1) `satisfy R : T by p;` and `assert someConstraint : CType;` crashed with `NameError` — the makers called a helper that was never defined; all three sites now use `_build_full_specialization_from_fsp`. (2) Chained re-declarations (`attribute :> base.x;`) dropped every segment after the first, at both visitor and grammar layers — new visitor helpers emit one Owned* dict per source chain (head + `OwnedFeatureChain`), grammar classes keep both parts, `redefined_name` resolves to the leaf segment, and the semantic analyzer now reports/resolves full dotted names (`Undefined symbol 'missing.chain'`). 14 tests in `tests/redefined_name_test.py`.
18
+
17
19
  **v0.41.0:** Full-specialization capture across all usage kinds — v0.40.0 fixed `attributeUsage` only; actions, calculations, constraints, requirements, use cases, interfaces and nested occurrences still dropped `:>`, `:>>`, `::>` specializations. New `_full_specialization_for_ctx` helper walks any usage-like context to its featureSpecializationPart; twelve visitor sites now use it (typed-by kept as fallback). `Action.load_from_grammar` captures all four kinds and the hand-rolled dumps on Action/Interface/UseCase/Requirement render them (`action a2 ::> RefType;`). `Usage.redefined_name` now works on deeper declaration nestings too. 10 tests in `tests/redefined_name_test.py`.
18
20
 
19
21
  **v0.40.0:** `References` (`::>` / `references` keyword) implemented end-to-end — previously the grammar-side `FeatureSpecialization` had a silent "not yet implemented" stub and the visitor never emitted dicts for it, so `ref attribute ::> X;` lost its specialization on round-trip (dump emitted `attribute ;`). New `References` grammar class mirrors `Redefinitions`; visitor branches in both full-specialization builders now cover the operator and keyword forms. The top-level `attributeUsage` path was the only one still using the typed-by-only helper; it now uses `_build_full_specialization_from_ctx` so all four kinds (Typings, Subsettings, Redefinitions, References) round-trip. `redefined_name` / `display_name` already handled this case. New `test_attribute_ref_references_operator_roundtrip` in `tests/grammar_test.py`; two new cases in `tests/redefined_name_test.py`. 97/97 grammar round-trip tests pass.
@@ -6,7 +6,7 @@ build-backend = "poetry.core.masonry.api"
6
6
 
7
7
  [project]
8
8
  name = "sysmlpy"
9
- version = "0.41.0"
9
+ version = "0.44.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.41.0"
28
+ __version__ = "0.44.0"
29
29
 
30
30
  from sysmlpy.usage import (
31
31
  Item, Attribute, Part, Port, Action, Reference, UseCase, Requirement, Interface, Message,