sysmlpy 0.90.0__tar.gz → 0.91.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 (161) hide show
  1. sysmlpy-0.90.0/README.md → sysmlpy-0.91.0/PKG-INFO +81 -0
  2. sysmlpy-0.90.0/PKG-INFO → sysmlpy-0.91.0/README.md +47 -32
  3. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/pyproject.toml +3 -1
  4. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/__init__.py +1 -1
  5. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/antlr_parser.py +0 -9
  6. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/boxes_view.py +1 -1
  7. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/definition.py +3 -34
  8. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/dfa_cache.py +0 -1
  9. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/evaluator.py +1 -12
  10. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/examples/attribute_values.py +1 -1
  11. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/examples/tuples_sequences.py +2 -3
  12. sysmlpy-0.91.0/src/sysmlpy/ipython_magic.py +251 -0
  13. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/plantuml.py +0 -1
  14. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/project.py +1 -2
  15. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/semantic.py +1 -1
  16. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/spreadsheet.py +1 -1
  17. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/store.py +1 -1
  18. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/traceability.py +0 -1
  19. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/usage.py +0 -50
  20. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/LICENSE +0 -0
  21. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/__main__.py +0 -0
  22. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/antlr/README.md +0 -0
  23. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/antlr/SysMLv2Lexer.interp +0 -0
  24. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/antlr/SysMLv2Lexer.py +0 -0
  25. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/antlr/SysMLv2Lexer.tokens +0 -0
  26. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/antlr/SysMLv2Parser.interp +0 -0
  27. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/antlr/SysMLv2Parser.py +0 -0
  28. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/antlr/SysMLv2Parser.tokens +0 -0
  29. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/antlr/SysMLv2ParserListener.py +0 -0
  30. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/antlr/SysMLv2ParserVisitor.py +0 -0
  31. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp +0 -0
  32. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py +0 -0
  33. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.tokens +0 -0
  34. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/antlr_visitor.py +0 -0
  35. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/diff.py +0 -0
  36. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/examples/part_attributes.py +0 -0
  37. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/formatting.py +0 -0
  38. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/grammar/antlr4/README.md +0 -0
  39. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.g4 +0 -0
  40. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp +0 -0
  41. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py +0 -0
  42. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.tokens +0 -0
  43. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.g4 +0 -0
  44. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.interp +0 -0
  45. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.py +0 -0
  46. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.tokens +0 -0
  47. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/grammar/antlr4/SysMLv2ParserListener.py +0 -0
  48. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/grammar/antlr4/SysMLv2ParserVisitor.py +0 -0
  49. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/grammar/antlr4/desc.xml +0 -0
  50. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/grammar/antlr4/examples/camera.sysml +0 -0
  51. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/grammar/antlr4/examples/toaster-system.sysml +0 -0
  52. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/grammar/antlr4/examples/vehicle-model.sysml +0 -0
  53. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/grammar/antlr4/pom.xml +0 -0
  54. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/grammar/classes.py +0 -0
  55. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/interchange.py +0 -0
  56. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/LICENSE +0 -0
  57. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/README.md +0 -0
  58. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/__init__.py +0 -0
  59. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Analysis/AnalysisTooling.sysml +0 -0
  60. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Analysis/SampledFunctions.sysml +0 -0
  61. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Analysis/StateSpaceRepresentation.sysml +0 -0
  62. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Analysis/TradeStudies.sysml +0 -0
  63. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Cause and Effect/CausationConnections.sysml +0 -0
  64. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Cause and Effect/CauseAndEffect.sysml +0 -0
  65. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Geometry/ShapeItems.sysml +0 -0
  66. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Geometry/SpatialItems.sysml +0 -0
  67. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Metadata/ImageMetadata.sysml +0 -0
  68. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Metadata/ModelingMetadata.sysml +0 -0
  69. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Metadata/ParametersOfInterestMetadata.sysml +0 -0
  70. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Metadata/RiskMetadata.sysml +0 -0
  71. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Quantities and Units/ISQ.sysml +0 -0
  72. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Quantities and Units/ISQAcoustics.sysml +0 -0
  73. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Quantities and Units/ISQAtomicNuclear.sysml +0 -0
  74. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Quantities and Units/ISQBase.sysml +0 -0
  75. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Quantities and Units/ISQCharacteristicNumbers.sysml +0 -0
  76. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Quantities and Units/ISQChemistryMolecular.sysml +0 -0
  77. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Quantities and Units/ISQCondensedMatter.sysml +0 -0
  78. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Quantities and Units/ISQElectromagnetism.sysml +0 -0
  79. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Quantities and Units/ISQInformation.sysml +0 -0
  80. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Quantities and Units/ISQLight.sysml +0 -0
  81. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Quantities and Units/ISQMechanics.sysml +0 -0
  82. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Quantities and Units/ISQSpaceTime.sysml +0 -0
  83. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Quantities and Units/ISQThermodynamics.sysml +0 -0
  84. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Quantities and Units/MeasurementRefCalculations.sysml +0 -0
  85. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Quantities and Units/MeasurementReferences.sysml +0 -0
  86. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Quantities and Units/Quantities.sysml +0 -0
  87. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Quantities and Units/QuantityCalculations.sysml +0 -0
  88. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Quantities and Units/SI.sysml +0 -0
  89. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Quantities and Units/SIPrefixes.sysml +0 -0
  90. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Quantities and Units/TensorCalculations.sysml +0 -0
  91. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Quantities and Units/Time.sysml +0 -0
  92. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Quantities and Units/USCustomaryUnits.sysml +0 -0
  93. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Quantities and Units/VectorCalculations.sysml +0 -0
  94. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Requirement Derivation/DerivationConnections.sysml +0 -0
  95. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/domain/Requirement Derivation/RequirementDerivation.sysml +0 -0
  96. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/Base.kerml +0 -0
  97. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/BaseFunctions.kerml +0 -0
  98. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/BooleanFunctions.kerml +0 -0
  99. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/Clocks.kerml +0 -0
  100. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/CollectionFunctions.kerml +0 -0
  101. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/Collections.kerml +0 -0
  102. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/ComplexFunctions.kerml +0 -0
  103. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/ControlFunctions.kerml +0 -0
  104. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/ControlPerformances.kerml +0 -0
  105. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/DataFunctions.kerml +0 -0
  106. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/FeatureReferencingPerformances.kerml +0 -0
  107. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/IntegerFunctions.kerml +0 -0
  108. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/KerML.kerml +0 -0
  109. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/Links.kerml +0 -0
  110. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/Metaobjects.kerml +0 -0
  111. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/NaturalFunctions.kerml +0 -0
  112. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/NumericalFunctions.kerml +0 -0
  113. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/Objects.kerml +0 -0
  114. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/Observation.kerml +0 -0
  115. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/OccurrenceFunctions.kerml +0 -0
  116. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/Occurrences.kerml +0 -0
  117. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/Performances.kerml +0 -0
  118. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/RationalFunctions.kerml +0 -0
  119. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/RealFunctions.kerml +0 -0
  120. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/ScalarFunctions.kerml +0 -0
  121. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/ScalarValues.kerml +0 -0
  122. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/SequenceFunctions.kerml +0 -0
  123. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/SpatialFrames.kerml +0 -0
  124. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/StatePerformances.kerml +0 -0
  125. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/StringFunctions.kerml +0 -0
  126. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/Transfers.kerml +0 -0
  127. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/TransitionPerformances.kerml +0 -0
  128. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/TrigFunctions.kerml +0 -0
  129. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/Triggers.kerml +0 -0
  130. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/VectorFunctions.kerml +0 -0
  131. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/kernel/VectorValues.kerml +0 -0
  132. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/systems/Actions.sysml +0 -0
  133. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/systems/Allocations.sysml +0 -0
  134. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/systems/AnalysisCases.sysml +0 -0
  135. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/systems/Attributes.sysml +0 -0
  136. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/systems/Calculations.sysml +0 -0
  137. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/systems/Cases.sysml +0 -0
  138. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/systems/Connections.sysml +0 -0
  139. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/systems/Constraints.sysml +0 -0
  140. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/systems/Flows.sysml +0 -0
  141. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/systems/Interfaces.sysml +0 -0
  142. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/systems/Items.sysml +0 -0
  143. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/systems/Metadata.sysml +0 -0
  144. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/systems/Parts.sysml +0 -0
  145. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/systems/Ports.sysml +0 -0
  146. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/systems/Requirements.sysml +0 -0
  147. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/systems/StandardViewDefinitions.sysml +0 -0
  148. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/systems/States.sysml +0 -0
  149. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/systems/SysML.sysml +0 -0
  150. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/systems/UseCases.sysml +0 -0
  151. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/systems/VerificationCases.sysml +0 -0
  152. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/library/systems/Views.sysml +0 -0
  153. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/lsp/__init__.py +0 -0
  154. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/lsp/__main__.py +0 -0
  155. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/lsp/protocol.py +0 -0
  156. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/lsp/server.py +0 -0
  157. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/lsp/stdio.py +0 -0
  158. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/navigate.py +0 -0
  159. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/sim.py +0 -0
  160. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/us_customary_units.txt +0 -0
  161. {sysmlpy-0.90.0 → sysmlpy-0.91.0}/src/sysmlpy/validator.py +0 -0
@@ -1,3 +1,36 @@
1
+ Metadata-Version: 2.4
2
+ Name: sysmlpy
3
+ Version: 0.91.0
4
+ Summary:
5
+ License-File: LICENSE
6
+ Author: Jon R. Fox (mycr0ft)
7
+ Author-email: jon.fox@drfox.com
8
+ Requires-Python: >=3.9,<4.0
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Programming Language :: Python :: 3.9
11
+ Classifier: Programming Language :: Python :: 3.10
12
+ Classifier: Programming Language :: Python :: 3.11
13
+ Classifier: Programming Language :: Python :: 3.12
14
+ Classifier: Programming Language :: Python :: 3.13
15
+ Classifier: Programming Language :: Python :: 3.14
16
+ Provides-Extra: cayley
17
+ Provides-Extra: graph
18
+ Provides-Extra: jupyter
19
+ Provides-Extra: kuzu
20
+ Provides-Extra: sim
21
+ Provides-Extra: xlsx
22
+ Requires-Dist: antlr4-python3-runtime (>=4.13)
23
+ Requires-Dist: arrow (>=1.4.0,<2.0.0)
24
+ Requires-Dist: ipython (>=8.0) ; extra == "jupyter"
25
+ Requires-Dist: kuzu (>=0.7,<0.12) ; extra == "kuzu"
26
+ Requires-Dist: networkx (>=3.0) ; extra == "graph"
27
+ Requires-Dist: openpyxl (>=3.1) ; extra == "xlsx"
28
+ Requires-Dist: pint (>=0.24)
29
+ Requires-Dist: pyyaml (>=6.0)
30
+ Requires-Dist: requests (>=2.31) ; extra == "cayley"
31
+ Requires-Dist: transitions (>=0.9,<0.10) ; extra == "sim"
32
+ Description-Content-Type: text/markdown
33
+
1
34
  # sysmlpy
2
35
  [![PyPI version](https://badge.fury.io/py/sysmlpy.svg)](https://badge.fury.io/py/sysmlpy)[![PyPI status](https://img.shields.io/pypi/status/sysmlpy.svg)](https://pypi.python.org/pypi/sysmlpy/)[![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-license.org/)
3
36
 
@@ -41,6 +74,7 @@ sysmlpy requires the following Python packages:
41
74
  - [kuzu](https://kuzudb.com/) — embedded graph database with disk persistence and Cypher queries (install with `pip install sysmlpy[kuzu]`)
42
75
  - [cayley](https://cayley.io/) — graph database via HTTP API, supports BoltDB/LevelDB backends (install with `pip install sysmlpy[cayley]`)
43
76
  - [PlantUML](https://plantuml.com/) **v1.2020.0+** — diagram rendering (requires Java + PlantUML JAR or [PlantUML server](https://www.plantuml.com/plantuml)). The generator uses `<style>` blocks and `skinparam` stereotype selectors introduced in v1.2020.
77
+ - [IPython](https://ipython.org/) **v8.0+** — the `%%sysml` Jupyter cell magic (install with `pip install sysmlpy[jupyter]`; see [Jupyter integration](#jupyter-integration))
44
78
 
45
79
  ## Installation
46
80
 
@@ -53,6 +87,52 @@ Multiple installation methods are supported by sysmlpy, including:
53
87
  | ![PyPI logo](https://simpleicons.org/icons/pypi.svg) | PyPI | ``python -m pip install sysmlpy[cayley]`` (with Cayley graph DB) |
54
88
  | ![GitHub logo](https://simpleicons.org/icons/github.svg) | GitHub | ``python -m pip install https://github.com/mycr0ft/sysmlpy/archive/refs/heads/main.zip`` |
55
89
 
90
+ ## Jupyter integration
91
+
92
+ With the `jupyter` extra installed (`pip install sysmlpy[jupyter]`), the
93
+ `%%sysml` cell magic lets you write SysML v2 textual notation directly in
94
+ notebook cells, parsed and accumulated into a persistent session `Model`
95
+ exposed in the notebook namespace as `model` (alias `_sysml`):
96
+
97
+ ```python
98
+ # once per notebook
99
+ %load_ext sysmlpy.ipython_magic
100
+ ```
101
+
102
+ ```sysml
103
+ %%sysml
104
+ package Vehicle {
105
+ part def Engine {
106
+ attribute fuelRate : Real;
107
+ }
108
+ part def Vehicle {
109
+ part engine : Vehicle::Engine;
110
+ }
111
+ }
112
+ ```
113
+
114
+ Re-declaring a package merges at *package-member* granularity: elements
115
+ with the same `name` and `sysml_type` replace prior definitions; sibling
116
+ members are preserved. Line magics mirror the OMG Pilot Implementation
117
+ Jupyter kernel's command set:
118
+
119
+ | Magic | Purpose |
120
+ |-------|---------|
121
+ | `%sysml_reset` | Discard the session model |
122
+ | `%sysml_list [NAME]` | List packages, or find elements by exact declared name |
123
+ | `%sysml_show NAME [--json]` | `dump()` of the AST rooted at a named element |
124
+ | `%sysml_viz NAME... [--view V]` | PlantUML view (general\|interconnection\|action\|package\|tree) |
125
+
126
+ Cell options: `%%sysml --reset` (fresh model), `--file PATH` (parse from a
127
+ file; use `-` as the cell body), `--show` (print the round-tripped model).
128
+ Parse errors report to stderr with line/column and never discard the
129
+ session model. The full magic-command reference — the complete set of the
130
+ official [OMG Pilot Implementation Jupyter
131
+ kernel](https://github.com/Systems-Modeling/SysML-v2-Pilot-Implementation/tree/master/org.omg.sysml.jupyter.kernel)
132
+ and the mapping to this implementation — is in the
133
+ [sysml-copier](https://github.com/mycr0ft/sysml-copier) template's
134
+ `docs/sysml-magics.md`.
135
+
56
136
  ## Command-Line Tools
57
137
 
58
138
  sysmlpy ships a CLI (`sysmlpy`, plus `sysmlpy-lsp` for editor support).
@@ -797,3 +877,4 @@ Two companion tools for the SysML v2 community, created by the same author:
797
877
 
798
878
  ## License
799
879
  sysmlpy is released under the MIT license, hence allowing commercial use of the library.
880
+
@@ -1,34 +1,3 @@
1
- Metadata-Version: 2.4
2
- Name: sysmlpy
3
- Version: 0.90.0
4
- Summary:
5
- License-File: LICENSE
6
- Author: Jon R. Fox (mycr0ft)
7
- Author-email: jon.fox@drfox.com
8
- Requires-Python: >=3.9,<4.0
9
- Classifier: Programming Language :: Python :: 3
10
- Classifier: Programming Language :: Python :: 3.9
11
- Classifier: Programming Language :: Python :: 3.10
12
- Classifier: Programming Language :: Python :: 3.11
13
- Classifier: Programming Language :: Python :: 3.12
14
- Classifier: Programming Language :: Python :: 3.13
15
- Classifier: Programming Language :: Python :: 3.14
16
- Provides-Extra: cayley
17
- Provides-Extra: graph
18
- Provides-Extra: kuzu
19
- Provides-Extra: sim
20
- Provides-Extra: xlsx
21
- Requires-Dist: antlr4-python3-runtime (>=4.13)
22
- Requires-Dist: arrow (>=1.4.0,<2.0.0)
23
- Requires-Dist: kuzu (>=0.7,<0.12) ; extra == "kuzu"
24
- Requires-Dist: networkx (>=3.0) ; extra == "graph"
25
- Requires-Dist: openpyxl (>=3.1) ; extra == "xlsx"
26
- Requires-Dist: pint (>=0.24)
27
- Requires-Dist: pyyaml (>=6.0)
28
- Requires-Dist: requests (>=2.31) ; extra == "cayley"
29
- Requires-Dist: transitions (>=0.9,<0.10) ; extra == "sim"
30
- Description-Content-Type: text/markdown
31
-
32
1
  # sysmlpy
33
2
  [![PyPI version](https://badge.fury.io/py/sysmlpy.svg)](https://badge.fury.io/py/sysmlpy)[![PyPI status](https://img.shields.io/pypi/status/sysmlpy.svg)](https://pypi.python.org/pypi/sysmlpy/)[![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-license.org/)
34
3
 
@@ -72,6 +41,7 @@ sysmlpy requires the following Python packages:
72
41
  - [kuzu](https://kuzudb.com/) — embedded graph database with disk persistence and Cypher queries (install with `pip install sysmlpy[kuzu]`)
73
42
  - [cayley](https://cayley.io/) — graph database via HTTP API, supports BoltDB/LevelDB backends (install with `pip install sysmlpy[cayley]`)
74
43
  - [PlantUML](https://plantuml.com/) **v1.2020.0+** — diagram rendering (requires Java + PlantUML JAR or [PlantUML server](https://www.plantuml.com/plantuml)). The generator uses `<style>` blocks and `skinparam` stereotype selectors introduced in v1.2020.
44
+ - [IPython](https://ipython.org/) **v8.0+** — the `%%sysml` Jupyter cell magic (install with `pip install sysmlpy[jupyter]`; see [Jupyter integration](#jupyter-integration))
75
45
 
76
46
  ## Installation
77
47
 
@@ -84,6 +54,52 @@ Multiple installation methods are supported by sysmlpy, including:
84
54
  | ![PyPI logo](https://simpleicons.org/icons/pypi.svg) | PyPI | ``python -m pip install sysmlpy[cayley]`` (with Cayley graph DB) |
85
55
  | ![GitHub logo](https://simpleicons.org/icons/github.svg) | GitHub | ``python -m pip install https://github.com/mycr0ft/sysmlpy/archive/refs/heads/main.zip`` |
86
56
 
57
+ ## Jupyter integration
58
+
59
+ With the `jupyter` extra installed (`pip install sysmlpy[jupyter]`), the
60
+ `%%sysml` cell magic lets you write SysML v2 textual notation directly in
61
+ notebook cells, parsed and accumulated into a persistent session `Model`
62
+ exposed in the notebook namespace as `model` (alias `_sysml`):
63
+
64
+ ```python
65
+ # once per notebook
66
+ %load_ext sysmlpy.ipython_magic
67
+ ```
68
+
69
+ ```sysml
70
+ %%sysml
71
+ package Vehicle {
72
+ part def Engine {
73
+ attribute fuelRate : Real;
74
+ }
75
+ part def Vehicle {
76
+ part engine : Vehicle::Engine;
77
+ }
78
+ }
79
+ ```
80
+
81
+ Re-declaring a package merges at *package-member* granularity: elements
82
+ with the same `name` and `sysml_type` replace prior definitions; sibling
83
+ members are preserved. Line magics mirror the OMG Pilot Implementation
84
+ Jupyter kernel's command set:
85
+
86
+ | Magic | Purpose |
87
+ |-------|---------|
88
+ | `%sysml_reset` | Discard the session model |
89
+ | `%sysml_list [NAME]` | List packages, or find elements by exact declared name |
90
+ | `%sysml_show NAME [--json]` | `dump()` of the AST rooted at a named element |
91
+ | `%sysml_viz NAME... [--view V]` | PlantUML view (general\|interconnection\|action\|package\|tree) |
92
+
93
+ Cell options: `%%sysml --reset` (fresh model), `--file PATH` (parse from a
94
+ file; use `-` as the cell body), `--show` (print the round-tripped model).
95
+ Parse errors report to stderr with line/column and never discard the
96
+ session model. The full magic-command reference — the complete set of the
97
+ official [OMG Pilot Implementation Jupyter
98
+ kernel](https://github.com/Systems-Modeling/SysML-v2-Pilot-Implementation/tree/master/org.omg.sysml.jupyter.kernel)
99
+ and the mapping to this implementation — is in the
100
+ [sysml-copier](https://github.com/mycr0ft/sysml-copier) template's
101
+ `docs/sysml-magics.md`.
102
+
87
103
  ## Command-Line Tools
88
104
 
89
105
  sysmlpy ships a CLI (`sysmlpy`, plus `sysmlpy-lsp` for editor support).
@@ -828,4 +844,3 @@ Two companion tools for the SysML v2 community, created by the same author:
828
844
 
829
845
  ## License
830
846
  sysmlpy is released under the MIT license, hence allowing commercial use of the library.
831
-
@@ -6,7 +6,7 @@ build-backend = "poetry.core.masonry.api"
6
6
 
7
7
  [project]
8
8
  name = "sysmlpy"
9
- version = "0.90.0"
9
+ version = "0.91.0"
10
10
  description = ""
11
11
  authors = [{ name = "Jon R. Fox (mycr0ft)", email = "jon.fox@drfox.com" }]
12
12
  readme = "README.md"
@@ -23,6 +23,7 @@ openpyxl = { version = ">=3.1", optional = true }
23
23
  arrow = "^1.4.0"
24
24
  transitions = {version = "^0.9", optional = true}
25
25
  requests = { version = ">=2.31", optional = true }
26
+ ipython = { version = ">=8.0", optional = true }
26
27
 
27
28
  [tool.poetry.extras]
28
29
  graph = ["networkx"]
@@ -30,6 +31,7 @@ kuzu = ["kuzu"]
30
31
  xlsx = ["openpyxl"]
31
32
  sim = ["transitions"]
32
33
  cayley = ["requests"]
34
+ jupyter = ["ipython"]
33
35
 
34
36
  [tool.poetry.scripts]
35
37
  sysmlpy = "sysmlpy.__main__:main"
@@ -34,7 +34,7 @@ __all__ = [
34
34
  "render_state_transition_view_svg", "boxes_view",
35
35
  ]
36
36
  __author__ = "Jon Fox"
37
- __version__ = "0.90.0"
37
+ __version__ = "0.91.0"
38
38
 
39
39
  from sysmlpy.usage import (
40
40
  Item, Attribute, Part, Port, Action, Reference, UseCase, Requirement, Interface, Message,
@@ -5,8 +5,6 @@ ANTLR4-based SysML v2.0 parser module.
5
5
  This module provides an alternative parser to textX, using ANTLR4 grammar
6
6
  generated from the OMG SysML v2 specification (2026-05 release).
7
7
  """
8
- import sys
9
- import os
10
8
  import warnings
11
9
 
12
10
  from antlr4 import InputStream, CommonTokenStream
@@ -96,9 +94,6 @@ def parse(source, library=None, recover=False, prediction_mode="sll",
96
94
  If ``recover`` is False and the source contains syntax errors
97
95
  (after both parse stages).
98
96
  """
99
- from pathlib import Path
100
-
101
- # Handle string or file input
102
97
  if hasattr(source, 'read'):
103
98
  content = source.read()
104
99
  else:
@@ -155,13 +150,11 @@ def _parse_tree(content, recover=False, prediction_mode="sll"):
155
150
  # any error means we redo the whole parse in LL mode.
156
151
  from antlr4.error.ErrorStrategy import BailErrorStrategy
157
152
  tree = None
158
- sll_errors = []
159
153
  try:
160
154
  parser._errHandler = BailErrorStrategy()
161
155
  tree = parser.rootNamespace()
162
156
  except Exception:
163
157
  tree = None
164
- sll_errors = ["<sll>"]
165
158
  if tree is not None and not error_listener.errors:
166
159
  # ── fast path succeeded ──────────────────────────────────
167
160
  _maybe_save_dfa_cache()
@@ -226,8 +219,6 @@ def _rescue_constraint_bodies(content, language="English"):
226
219
  Constraints whose body contains ``*/`` cannot be wrapped in a comment
227
220
  and are left untouched (the original error stands).
228
221
  """
229
- import re as _re
230
-
231
222
  spans = []
232
223
  try:
233
224
  lexer = SysMLv2Lexer(InputStream(content))
@@ -36,7 +36,7 @@ from typing import Any, Optional, Union
36
36
 
37
37
  try:
38
38
  from diagramboxes import (
39
- Diagram, Node, Edge, Port,
39
+ Diagram, Node, Edge,
40
40
  InitialPseudostate, JunctionPseudostate,
41
41
  ChoicePseudostate, ForkPseudostate, JoinPseudostate,
42
42
  FinalState, TerminatePseudostate,
@@ -293,21 +293,6 @@ class Model(Searchable):
293
293
 
294
294
  add_child = _set_child
295
295
 
296
- def _get_child(self, featurechain):
297
- """Retrieve a nested child by dot-separated name path.
298
-
299
- Parameters
300
- ----------
301
- featurechain : str
302
- Dot-separated path like "pkg.element".
303
-
304
- Returns
305
- -------
306
- element or None
307
- The matching child element, or None if not found.
308
- """
309
- return self
310
-
311
296
  def _get_child(self, featurechain):
312
297
  """Retrieve a nested child by dot-separated name path.
313
298
 
@@ -671,21 +656,6 @@ class Package(Searchable):
671
656
 
672
657
  add_child = _set_child
673
658
 
674
- def _get_child(self, featurechain):
675
- """Retrieve a nested child by dot-separated name path.
676
-
677
- Parameters
678
- ----------
679
- featurechain : str
680
- Dot-separated path like "pkg.element".
681
-
682
- Returns
683
- -------
684
- element or None
685
- The matching child element, or None if not found.
686
- """
687
- return self
688
-
689
659
  def _get_child(self, featurechain):
690
660
  """Retrieve a nested child by dot-separated name path.
691
661
 
@@ -853,7 +823,7 @@ class Package(Searchable):
853
823
  """
854
824
  from sysmlpy.grammar.classes import (
855
825
  Import, NamespaceImport, MembershipImport, ImportPrefix,
856
- ImportedNamespace, ImportedMembership, VisibilityIndicator,
826
+ ImportedNamespace, ImportedMembership,
857
827
  RelationshipBody, QualifiedName
858
828
  )
859
829
 
@@ -882,7 +852,6 @@ class Package(Searchable):
882
852
  "protected": "protected" if visibility == "protected" else "",
883
853
  "public": "public" if visibility == "public" else "",
884
854
  }
885
- vis = VisibilityIndicator(vis_def)
886
855
 
887
856
  # Create import prefix
888
857
  prefix_def = {
@@ -1720,7 +1689,7 @@ class Package(Searchable):
1720
1689
  A graph store with elements as nodes and parent-child
1721
1690
  relationships as edges.
1722
1691
  """
1723
- from sysmlpy.store import NetworkXStore, new_id, REL_PARENT_CHILD
1692
+ from sysmlpy.store import NetworkXStore, new_id
1724
1693
 
1725
1694
  store = NetworkXStore()
1726
1695
  id_map = {}
@@ -1736,7 +1705,7 @@ class Package(Searchable):
1736
1705
  store.put(eid, data, parent_id=parent_id)
1737
1706
  if hasattr(elem, "children"):
1738
1707
  for child in elem.children:
1739
- child_id = _add_element(child, eid)
1708
+ _add_element(child, eid)
1740
1709
  return eid
1741
1710
 
1742
1711
  _add_element(self)
@@ -36,7 +36,6 @@ from __future__ import annotations
36
36
  import hashlib
37
37
  import os
38
38
  import pickle
39
- import sys
40
39
  import threading
41
40
  import warnings
42
41
  from typing import Any, Dict, Optional, Tuple
@@ -528,17 +528,6 @@ class _Evaluator:
528
528
  f"{sorted(self._available_names())}"
529
529
  )
530
530
 
531
- def _evaluate_glued(self, text):
532
- """Re-parse a glued expression text and evaluate it in scope."""
533
- try:
534
- expr_dict = _parse_expression_text(text)
535
- except EvaluationError:
536
- return None
537
- try:
538
- return self.evaluate(expr_dict)
539
- except EvaluationError:
540
- return None
541
-
542
531
  def _all_namespaces(self):
543
532
  seen = set()
544
533
  stack = [ns for ns in self.scope]
@@ -557,7 +546,7 @@ class _Evaluator:
557
546
  if seg in current.values:
558
547
  if i == len(rest) - 1:
559
548
  return self._materialize(current.values[seg], full_names)
560
- value = self._materialize(current.values[seg], names=None) # noqa
549
+ self._materialize(current.values[seg], names=None) # noqa
561
550
  raise UnknownNameError(
562
551
  f"Cannot chain into value '{seg}' "
563
552
  f"({'.'.join(str(n) for n in full_names)})"
@@ -99,7 +99,7 @@ for child in vehicle.children:
99
99
  if isinstance(child, Attribute):
100
100
  try:
101
101
  colors.append(child.get_value())
102
- except:
102
+ except Exception:
103
103
  pass
104
104
  print(f"\nColors as list: {colors}")
105
105
 
@@ -5,7 +5,6 @@ the syntax and current status in sysmlpy.
5
5
  """
6
6
 
7
7
  from sysmlpy import loads, Part, Attribute
8
- from sysmlpy.usage import ureg
9
8
 
10
9
  # =============================================================================
11
10
  # 1. Tuple Syntax in SysML v2
@@ -123,7 +122,7 @@ if vehicle:
123
122
  if isinstance(subchild, Attribute):
124
123
  try:
125
124
  print(f" {subchild.name} = {subchild.get_value()}")
126
- except:
125
+ except Exception:
127
126
  pass
128
127
 
129
128
  # =============================================================================
@@ -158,7 +157,7 @@ if sensor:
158
157
  if isinstance(attr, Attribute):
159
158
  try:
160
159
  print(f" {attr.name} = {attr.get_value()}")
161
- except:
160
+ except Exception:
162
161
  pass
163
162
 
164
163
  # =============================================================================