sysmlpy 0.66.0__tar.gz → 0.68.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 (157) hide show
  1. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/PKG-INFO +1 -1
  2. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/pyproject.toml +1 -1
  3. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/__init__.py +8 -6
  4. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/antlr_visitor.py +50 -1
  5. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/boxes_view.py +676 -19
  6. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/plantuml.py +212 -39
  7. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/LICENSE +0 -0
  8. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/README.md +0 -0
  9. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/__main__.py +0 -0
  10. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/antlr/README.md +0 -0
  11. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/antlr/SysMLv2Lexer.interp +0 -0
  12. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/antlr/SysMLv2Lexer.py +0 -0
  13. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/antlr/SysMLv2Lexer.tokens +0 -0
  14. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/antlr/SysMLv2Parser.interp +0 -0
  15. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/antlr/SysMLv2Parser.py +0 -0
  16. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/antlr/SysMLv2Parser.tokens +0 -0
  17. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/antlr/SysMLv2ParserListener.py +0 -0
  18. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/antlr/SysMLv2ParserVisitor.py +0 -0
  19. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp +0 -0
  20. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py +0 -0
  21. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.tokens +0 -0
  22. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/antlr_parser.py +0 -0
  23. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/definition.py +0 -0
  24. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/evaluator.py +0 -0
  25. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/examples/attribute_values.py +0 -0
  26. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/examples/part_attributes.py +0 -0
  27. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/examples/tuples_sequences.py +0 -0
  28. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/formatting.py +0 -0
  29. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/grammar/antlr4/README.md +0 -0
  30. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.g4 +0 -0
  31. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp +0 -0
  32. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py +0 -0
  33. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.tokens +0 -0
  34. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.g4 +0 -0
  35. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.interp +0 -0
  36. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.py +0 -0
  37. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.tokens +0 -0
  38. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/grammar/antlr4/SysMLv2ParserListener.py +0 -0
  39. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/grammar/antlr4/SysMLv2ParserVisitor.py +0 -0
  40. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/grammar/antlr4/desc.xml +0 -0
  41. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/grammar/antlr4/examples/camera.sysml +0 -0
  42. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/grammar/antlr4/examples/toaster-system.sysml +0 -0
  43. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/grammar/antlr4/examples/vehicle-model.sysml +0 -0
  44. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/grammar/antlr4/pom.xml +0 -0
  45. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/grammar/classes.py +0 -0
  46. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/interchange.py +0 -0
  47. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/LICENSE +0 -0
  48. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/README.md +0 -0
  49. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/__init__.py +0 -0
  50. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Analysis/AnalysisTooling.sysml +0 -0
  51. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Analysis/SampledFunctions.sysml +0 -0
  52. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Analysis/StateSpaceRepresentation.sysml +0 -0
  53. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Analysis/TradeStudies.sysml +0 -0
  54. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Cause and Effect/CausationConnections.sysml +0 -0
  55. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Cause and Effect/CauseAndEffect.sysml +0 -0
  56. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Geometry/ShapeItems.sysml +0 -0
  57. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Geometry/SpatialItems.sysml +0 -0
  58. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Metadata/ImageMetadata.sysml +0 -0
  59. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Metadata/ModelingMetadata.sysml +0 -0
  60. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Metadata/ParametersOfInterestMetadata.sysml +0 -0
  61. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Metadata/RiskMetadata.sysml +0 -0
  62. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Quantities and Units/ISQ.sysml +0 -0
  63. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Quantities and Units/ISQAcoustics.sysml +0 -0
  64. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Quantities and Units/ISQAtomicNuclear.sysml +0 -0
  65. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Quantities and Units/ISQBase.sysml +0 -0
  66. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Quantities and Units/ISQCharacteristicNumbers.sysml +0 -0
  67. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Quantities and Units/ISQChemistryMolecular.sysml +0 -0
  68. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Quantities and Units/ISQCondensedMatter.sysml +0 -0
  69. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Quantities and Units/ISQElectromagnetism.sysml +0 -0
  70. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Quantities and Units/ISQInformation.sysml +0 -0
  71. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Quantities and Units/ISQLight.sysml +0 -0
  72. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Quantities and Units/ISQMechanics.sysml +0 -0
  73. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Quantities and Units/ISQSpaceTime.sysml +0 -0
  74. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Quantities and Units/ISQThermodynamics.sysml +0 -0
  75. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Quantities and Units/MeasurementRefCalculations.sysml +0 -0
  76. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Quantities and Units/MeasurementReferences.sysml +0 -0
  77. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Quantities and Units/Quantities.sysml +0 -0
  78. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Quantities and Units/QuantityCalculations.sysml +0 -0
  79. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Quantities and Units/SI.sysml +0 -0
  80. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Quantities and Units/SIPrefixes.sysml +0 -0
  81. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Quantities and Units/TensorCalculations.sysml +0 -0
  82. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Quantities and Units/Time.sysml +0 -0
  83. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Quantities and Units/USCustomaryUnits.sysml +0 -0
  84. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Quantities and Units/VectorCalculations.sysml +0 -0
  85. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Requirement Derivation/DerivationConnections.sysml +0 -0
  86. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/domain/Requirement Derivation/RequirementDerivation.sysml +0 -0
  87. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/Base.kerml +0 -0
  88. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/BaseFunctions.kerml +0 -0
  89. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/BooleanFunctions.kerml +0 -0
  90. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/Clocks.kerml +0 -0
  91. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/CollectionFunctions.kerml +0 -0
  92. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/Collections.kerml +0 -0
  93. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/ComplexFunctions.kerml +0 -0
  94. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/ControlFunctions.kerml +0 -0
  95. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/ControlPerformances.kerml +0 -0
  96. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/DataFunctions.kerml +0 -0
  97. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/FeatureReferencingPerformances.kerml +0 -0
  98. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/IntegerFunctions.kerml +0 -0
  99. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/KerML.kerml +0 -0
  100. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/Links.kerml +0 -0
  101. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/Metaobjects.kerml +0 -0
  102. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/NaturalFunctions.kerml +0 -0
  103. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/NumericalFunctions.kerml +0 -0
  104. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/Objects.kerml +0 -0
  105. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/Observation.kerml +0 -0
  106. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/OccurrenceFunctions.kerml +0 -0
  107. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/Occurrences.kerml +0 -0
  108. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/Performances.kerml +0 -0
  109. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/RationalFunctions.kerml +0 -0
  110. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/RealFunctions.kerml +0 -0
  111. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/ScalarFunctions.kerml +0 -0
  112. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/ScalarValues.kerml +0 -0
  113. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/SequenceFunctions.kerml +0 -0
  114. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/SpatialFrames.kerml +0 -0
  115. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/StatePerformances.kerml +0 -0
  116. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/StringFunctions.kerml +0 -0
  117. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/Transfers.kerml +0 -0
  118. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/TransitionPerformances.kerml +0 -0
  119. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/TrigFunctions.kerml +0 -0
  120. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/Triggers.kerml +0 -0
  121. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/VectorFunctions.kerml +0 -0
  122. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/kernel/VectorValues.kerml +0 -0
  123. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/systems/Actions.sysml +0 -0
  124. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/systems/Allocations.sysml +0 -0
  125. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/systems/AnalysisCases.sysml +0 -0
  126. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/systems/Attributes.sysml +0 -0
  127. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/systems/Calculations.sysml +0 -0
  128. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/systems/Cases.sysml +0 -0
  129. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/systems/Connections.sysml +0 -0
  130. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/systems/Constraints.sysml +0 -0
  131. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/systems/Flows.sysml +0 -0
  132. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/systems/Interfaces.sysml +0 -0
  133. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/systems/Items.sysml +0 -0
  134. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/systems/Metadata.sysml +0 -0
  135. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/systems/Parts.sysml +0 -0
  136. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/systems/Ports.sysml +0 -0
  137. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/systems/Requirements.sysml +0 -0
  138. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/systems/StandardViewDefinitions.sysml +0 -0
  139. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/systems/States.sysml +0 -0
  140. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/systems/SysML.sysml +0 -0
  141. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/systems/UseCases.sysml +0 -0
  142. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/systems/VerificationCases.sysml +0 -0
  143. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/library/systems/Views.sysml +0 -0
  144. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/lsp/__init__.py +0 -0
  145. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/lsp/__main__.py +0 -0
  146. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/lsp/protocol.py +0 -0
  147. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/lsp/server.py +0 -0
  148. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/lsp/stdio.py +0 -0
  149. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/navigate.py +0 -0
  150. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/project.py +0 -0
  151. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/semantic.py +0 -0
  152. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/spreadsheet.py +0 -0
  153. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/store.py +0 -0
  154. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/traceability.py +0 -0
  155. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/us_customary_units.txt +0 -0
  156. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/usage.py +0 -0
  157. {sysmlpy-0.66.0 → sysmlpy-0.68.0}/src/sysmlpy/validator.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sysmlpy
3
- Version: 0.66.0
3
+ Version: 0.68.0
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.66.0"
9
+ version = "0.68.0"
10
10
  description = ""
11
11
  authors = [{ name = "Jon R. Fox (mycr0ft)", email = "jon.fox@drfox.com" }]
12
12
  readme = "README.md"
@@ -28,12 +28,13 @@ __all__ = [
28
28
  "analyze", "AnalysisResult", "SemanticIssue", "SemanticAnalyzer",
29
29
  "SysMLSyntaxError", "PartialParseError",
30
30
  "loads_partial", "load_partial",
31
- # boxes-backed optional renderers (require pip install -e ../boxes)
31
+ # diagramboxes-backed optional renderers (the sibling package formerly
32
+ # named `boxes` — renamed in its v0.3.0; install with pip install -e ../boxes)
32
33
  "as_state_transition_view_boxes", "render_state_transition_view",
33
34
  "render_state_transition_view_svg", "boxes_view",
34
35
  ]
35
36
  __author__ = "Jon Fox"
36
- __version__ = "0.66.0"
37
+ __version__ = "0.68.0"
37
38
 
38
39
  from sysmlpy.usage import (
39
40
  Item, Attribute, Part, Port, Action, Reference, UseCase, Requirement, Interface, Message,
@@ -413,10 +414,11 @@ from sysmlpy.semantic import analyze, AnalysisResult, SemanticIssue, SemanticAna
413
414
 
414
415
  from sysmlpy.project import load_files, load_project, load_with_dependencies
415
416
 
416
- # Optional boxes-backed state-machine renderer (lazy import on first use so
417
- # `import sysmlpy` works without `boxes` installed). The first call to any of
418
- # the functions below triggers `import sysmlpy.boxes_view`, which itself
419
- # raises ImportError with installation instructions if `boxes` is missing.
417
+ # Optional diagramboxes-backed state-machine renderer (lazy import on first
418
+ # use so `import sysmlpy` works without `diagramboxes` installed). The first
419
+ # call to any of the functions below triggers `import sysmlpy.boxes_view`,
420
+ # which itself raises ImportError with installation instructions if the
421
+ # `diagramboxes` package is missing.
420
422
  def __getattr__(name):
421
423
  if name == "boxes_view":
422
424
  import sysmlpy.boxes_view as bv
@@ -6550,6 +6550,55 @@ def _make_requirement_usage_dict(ctx, prefix=None):
6550
6550
  def _make_connection_usage_dict(ctx, prefix=None):
6551
6551
  """Create a ConnectionUsage dictionary."""
6552
6552
  name, shortname = _get_usage_identification(ctx)
6553
+
6554
+ # Parse the connector part (``connect X to Y``) so endpoints survive
6555
+ # into the grammar object tree (v0.67.0 — fixes the "part": None stub)
6556
+ # connectionUsage: occurrenceUsagePrefix ( CONNECTION usageDeclaration?
6557
+ # valuePart? ( CONNECT connectorPart )? | CONNECT connectorPart ) usageBody
6558
+ # — the connectorPart sits directly on the connectionUsage ctx.
6559
+ conn_part_dict = None
6560
+ if ctx is not None:
6561
+ cp = None
6562
+ if hasattr(ctx, 'connectorPart') and ctx.connectorPart():
6563
+ cp = ctx.connectorPart()
6564
+ if isinstance(cp, list):
6565
+ cp = cp[0] if cp else None
6566
+ if cp:
6567
+ end_members = []
6568
+ if hasattr(cp, 'binaryConnectorPart') and cp.binaryConnectorPart():
6569
+ bcp = cp.binaryConnectorPart()
6570
+ if isinstance(bcp, list):
6571
+ bcp = bcp[0] if bcp else None
6572
+ if bcp and hasattr(bcp, 'connectorEndMember') and bcp.connectorEndMember():
6573
+ ems = bcp.connectorEndMember()
6574
+ if isinstance(ems, list):
6575
+ for em in ems:
6576
+ end = _visit_connector_end_member(em)
6577
+ if end:
6578
+ end_members.append(end)
6579
+ elif hasattr(cp, 'naryConnectorPart') and cp.naryConnectorPart():
6580
+ ncp = cp.naryConnectorPart()
6581
+ if isinstance(ncp, list):
6582
+ ncp = ncp[0] if ncp else None
6583
+ if ncp and hasattr(ncp, 'connectorEndMember') and ncp.connectorEndMember():
6584
+ ems = ncp.connectorEndMember()
6585
+ if isinstance(ems, list):
6586
+ for em in ems:
6587
+ end = _visit_connector_end_member(em)
6588
+ if end:
6589
+ end_members.append(end)
6590
+ if end_members:
6591
+ conn_part_dict = {
6592
+ "name": "ConnectorPart",
6593
+ "part": {
6594
+ "name": "BinaryConnectorPart",
6595
+ "ownedRelationship": end_members,
6596
+ },
6597
+ }
6598
+ else:
6599
+ conn_part_dict = None
6600
+ else:
6601
+ conn_part_dict = None
6553
6602
 
6554
6603
  return {
6555
6604
  "name": "PackageMember",
@@ -6575,7 +6624,7 @@ def _make_connection_usage_dict(ctx, prefix=None):
6575
6624
  "specialization": None
6576
6625
  }
6577
6626
  },
6578
- "part": None,
6627
+ "part": conn_part_dict,
6579
6628
  "body": {
6580
6629
  "name": "UsageBody",
6581
6630
  "body": {