sysmlpy 0.31.3__tar.gz → 0.32.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 (147) hide show
  1. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/PKG-INFO +9 -1
  2. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/README.md +7 -0
  3. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/pyproject.toml +2 -1
  4. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/__init__.py +1 -1
  5. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/definition.py +19 -0
  6. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/LICENSE +0 -0
  7. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/__main__.py +0 -0
  8. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/antlr/README.md +0 -0
  9. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/antlr/SysMLv2Lexer.interp +0 -0
  10. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/antlr/SysMLv2Lexer.py +0 -0
  11. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/antlr/SysMLv2Lexer.tokens +0 -0
  12. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/antlr/SysMLv2Parser.interp +0 -0
  13. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/antlr/SysMLv2Parser.py +0 -0
  14. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/antlr/SysMLv2Parser.tokens +0 -0
  15. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/antlr/SysMLv2ParserListener.py +0 -0
  16. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/antlr/SysMLv2ParserVisitor.py +0 -0
  17. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp +0 -0
  18. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py +0 -0
  19. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.tokens +0 -0
  20. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/antlr_parser.py +0 -0
  21. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/antlr_visitor.py +0 -0
  22. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/examples/attribute_values.py +0 -0
  23. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/examples/part_attributes.py +0 -0
  24. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/examples/tuples_sequences.py +0 -0
  25. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/formatting.py +0 -0
  26. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/grammar/antlr4/README.md +0 -0
  27. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.g4 +0 -0
  28. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp +0 -0
  29. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py +0 -0
  30. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.tokens +0 -0
  31. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.g4 +0 -0
  32. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.interp +0 -0
  33. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.py +0 -0
  34. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.tokens +0 -0
  35. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/grammar/antlr4/SysMLv2ParserListener.py +0 -0
  36. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/grammar/antlr4/SysMLv2ParserVisitor.py +0 -0
  37. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/grammar/antlr4/desc.xml +0 -0
  38. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/grammar/antlr4/examples/camera.sysml +0 -0
  39. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/grammar/antlr4/examples/toaster-system.sysml +0 -0
  40. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/grammar/antlr4/examples/vehicle-model.sysml +0 -0
  41. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/grammar/antlr4/pom.xml +0 -0
  42. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/grammar/classes.py +0 -0
  43. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/LICENSE +0 -0
  44. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/README.md +0 -0
  45. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/__init__.py +0 -0
  46. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Analysis/AnalysisTooling.sysml +0 -0
  47. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Analysis/SampledFunctions.sysml +0 -0
  48. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Analysis/StateSpaceRepresentation.sysml +0 -0
  49. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Analysis/TradeStudies.sysml +0 -0
  50. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Cause and Effect/CausationConnections.sysml +0 -0
  51. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Cause and Effect/CauseAndEffect.sysml +0 -0
  52. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Geometry/ShapeItems.sysml +0 -0
  53. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Geometry/SpatialItems.sysml +0 -0
  54. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Metadata/ImageMetadata.sysml +0 -0
  55. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Metadata/ModelingMetadata.sysml +0 -0
  56. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Metadata/ParametersOfInterestMetadata.sysml +0 -0
  57. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Metadata/RiskMetadata.sysml +0 -0
  58. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Quantities and Units/ISQ.sysml +0 -0
  59. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Quantities and Units/ISQAcoustics.sysml +0 -0
  60. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Quantities and Units/ISQAtomicNuclear.sysml +0 -0
  61. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Quantities and Units/ISQBase.sysml +0 -0
  62. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Quantities and Units/ISQCharacteristicNumbers.sysml +0 -0
  63. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Quantities and Units/ISQChemistryMolecular.sysml +0 -0
  64. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Quantities and Units/ISQCondensedMatter.sysml +0 -0
  65. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Quantities and Units/ISQElectromagnetism.sysml +0 -0
  66. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Quantities and Units/ISQInformation.sysml +0 -0
  67. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Quantities and Units/ISQLight.sysml +0 -0
  68. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Quantities and Units/ISQMechanics.sysml +0 -0
  69. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Quantities and Units/ISQSpaceTime.sysml +0 -0
  70. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Quantities and Units/ISQThermodynamics.sysml +0 -0
  71. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Quantities and Units/MeasurementRefCalculations.sysml +0 -0
  72. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Quantities and Units/MeasurementReferences.sysml +0 -0
  73. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Quantities and Units/Quantities.sysml +0 -0
  74. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Quantities and Units/QuantityCalculations.sysml +0 -0
  75. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Quantities and Units/SI.sysml +0 -0
  76. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Quantities and Units/SIPrefixes.sysml +0 -0
  77. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Quantities and Units/TensorCalculations.sysml +0 -0
  78. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Quantities and Units/Time.sysml +0 -0
  79. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Quantities and Units/USCustomaryUnits.sysml +0 -0
  80. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Quantities and Units/VectorCalculations.sysml +0 -0
  81. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Requirement Derivation/DerivationConnections.sysml +0 -0
  82. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/domain/Requirement Derivation/RequirementDerivation.sysml +0 -0
  83. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/Base.kerml +0 -0
  84. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/BaseFunctions.kerml +0 -0
  85. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/BooleanFunctions.kerml +0 -0
  86. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/Clocks.kerml +0 -0
  87. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/CollectionFunctions.kerml +0 -0
  88. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/Collections.kerml +0 -0
  89. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/ComplexFunctions.kerml +0 -0
  90. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/ControlFunctions.kerml +0 -0
  91. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/ControlPerformances.kerml +0 -0
  92. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/DataFunctions.kerml +0 -0
  93. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/FeatureReferencingPerformances.kerml +0 -0
  94. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/IntegerFunctions.kerml +0 -0
  95. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/KerML.kerml +0 -0
  96. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/Links.kerml +0 -0
  97. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/Metaobjects.kerml +0 -0
  98. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/NaturalFunctions.kerml +0 -0
  99. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/NumericalFunctions.kerml +0 -0
  100. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/Objects.kerml +0 -0
  101. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/Observation.kerml +0 -0
  102. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/OccurrenceFunctions.kerml +0 -0
  103. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/Occurrences.kerml +0 -0
  104. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/Performances.kerml +0 -0
  105. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/RationalFunctions.kerml +0 -0
  106. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/RealFunctions.kerml +0 -0
  107. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/ScalarFunctions.kerml +0 -0
  108. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/ScalarValues.kerml +0 -0
  109. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/SequenceFunctions.kerml +0 -0
  110. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/SpatialFrames.kerml +0 -0
  111. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/StatePerformances.kerml +0 -0
  112. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/StringFunctions.kerml +0 -0
  113. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/Transfers.kerml +0 -0
  114. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/TransitionPerformances.kerml +0 -0
  115. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/TrigFunctions.kerml +0 -0
  116. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/Triggers.kerml +0 -0
  117. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/VectorFunctions.kerml +0 -0
  118. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/kernel/VectorValues.kerml +0 -0
  119. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/systems/Actions.sysml +0 -0
  120. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/systems/Allocations.sysml +0 -0
  121. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/systems/AnalysisCases.sysml +0 -0
  122. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/systems/Attributes.sysml +0 -0
  123. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/systems/Calculations.sysml +0 -0
  124. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/systems/Cases.sysml +0 -0
  125. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/systems/Connections.sysml +0 -0
  126. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/systems/Constraints.sysml +0 -0
  127. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/systems/Flows.sysml +0 -0
  128. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/systems/Interfaces.sysml +0 -0
  129. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/systems/Items.sysml +0 -0
  130. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/systems/Metadata.sysml +0 -0
  131. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/systems/Parts.sysml +0 -0
  132. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/systems/Ports.sysml +0 -0
  133. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/systems/Requirements.sysml +0 -0
  134. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/systems/StandardViewDefinitions.sysml +0 -0
  135. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/systems/States.sysml +0 -0
  136. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/systems/SysML.sysml +0 -0
  137. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/systems/UseCases.sysml +0 -0
  138. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/systems/VerificationCases.sysml +0 -0
  139. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/library/systems/Views.sysml +0 -0
  140. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/navigate.py +0 -0
  141. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/plantuml.py +0 -0
  142. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/project.py +0 -0
  143. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/semantic.py +0 -0
  144. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/store.py +0 -0
  145. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/us_customary_units.txt +0 -0
  146. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/usage.py +0 -0
  147. {sysmlpy-0.31.3 → sysmlpy-0.32.0}/src/sysmlpy/validator.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sysmlpy
3
- Version: 0.31.3
3
+ Version: 0.32.0
4
4
  Summary:
5
5
  License-File: LICENSE
6
6
  Author: Jon R. Fox (mycr0ft)
@@ -16,6 +16,7 @@ Classifier: Programming Language :: Python :: 3.14
16
16
  Provides-Extra: graph
17
17
  Provides-Extra: kuzu
18
18
  Requires-Dist: antlr4-python3-runtime (>=4.13)
19
+ Requires-Dist: arrow (>=1.4.0,<2.0.0)
19
20
  Requires-Dist: kuzu (>=0.7,<0.12) ; extra == "kuzu"
20
21
  Requires-Dist: networkx (>=3.0) ; extra == "graph"
21
22
  Requires-Dist: pint (>=0.24)
@@ -800,6 +801,13 @@ See [`docs/plantuml-examples/`](docs/plantuml-examples/) for all rendered exampl
800
801
 
801
802
  **100% of 123 OMG XPect conformance tests pass** (123/123).
802
803
 
804
+ ## Companion Projects
805
+
806
+ Two companion tools for the SysML v2 community, created by the same author:
807
+
808
+ - **[sysml-style](https://github.com/mycr0ft/sysml-style)** — A SysML v2 code formatter with configurable indentation, line width, and bracket style. Can be used standalone or integrated as a pre-commit hook.
809
+ - **[sysml-vim](https://github.com/mycr0ft/sysml-vim)** — Vim syntax highlighting and indentation support for SysML v2 textual notation (`.sysml` and `.kerml` files).
810
+
803
811
  ## License
804
812
  sysmlpy is released under the MIT license, hence allowing commercial use of the library.
805
813
 
@@ -776,5 +776,12 @@ See [`docs/plantuml-examples/`](docs/plantuml-examples/) for all rendered exampl
776
776
 
777
777
  **100% of 123 OMG XPect conformance tests pass** (123/123).
778
778
 
779
+ ## Companion Projects
780
+
781
+ Two companion tools for the SysML v2 community, created by the same author:
782
+
783
+ - **[sysml-style](https://github.com/mycr0ft/sysml-style)** — A SysML v2 code formatter with configurable indentation, line width, and bracket style. Can be used standalone or integrated as a pre-commit hook.
784
+ - **[sysml-vim](https://github.com/mycr0ft/sysml-vim)** — Vim syntax highlighting and indentation support for SysML v2 textual notation (`.sysml` and `.kerml` files).
785
+
779
786
  ## License
780
787
  sysmlpy is released under the MIT license, hence allowing commercial use of the library.
@@ -6,7 +6,7 @@ build-backend = "poetry.core.masonry.api"
6
6
 
7
7
  [project]
8
8
  name = "sysmlpy"
9
- version = "0.31.3"
9
+ version = "0.32.0"
10
10
  description = ""
11
11
  authors = [{ name = "Jon R. Fox (mycr0ft)", email = "jon.fox@drfox.com" }]
12
12
  readme = "README.md"
@@ -19,6 +19,7 @@ pyyaml = ">=6.0"
19
19
  antlr4-python3-runtime = ">=4.13"
20
20
  networkx = { version = ">=3.0", optional = true }
21
21
  kuzu = { version = ">=0.7,<0.12", optional = true }
22
+ arrow = "^1.4.0"
22
23
 
23
24
  [tool.poetry.extras]
24
25
  graph = ["networkx"]
@@ -21,7 +21,7 @@ __all__ = [
21
21
  "SysMLSyntaxError",
22
22
  ]
23
23
  __author__ = "Jon Fox"
24
- __version__ = "0.31.3"
24
+ __version__ = "0.32.0"
25
25
 
26
26
  from sysmlpy.usage import (
27
27
  Item, Attribute, Part, Port, Action, Reference, UseCase, Requirement, Interface, Message,
@@ -415,6 +415,7 @@ class Package(Searchable):
415
415
  """
416
416
  self.name = str(uuidlib.uuid4())
417
417
  self.children = []
418
+ self._imports = []
418
419
  self.typedby = None
419
420
  self.grammar = PackageGrammar()
420
421
  self.parent = None
@@ -773,8 +774,20 @@ class Package(Searchable):
773
774
  self.grammar.body = PackageBody({"name": "PackageBody", "ownedRelationship": []})
774
775
 
775
776
  self.grammar.body.children.append(import_rel)
777
+ self._imports.append(import_rel)
776
778
  return self
777
779
 
780
+ @property
781
+ def imports(self):
782
+ """Import and AliasMember declarations in this package.
783
+
784
+ Returns
785
+ -------
786
+ list
787
+ Grammar objects (Import or AliasMember) that belong to this package.
788
+ """
789
+ return list(self._imports)
790
+
778
791
  def load_from_grammar(self, grammar):
779
792
  """Load package structure from a parsed grammar object.
780
793
 
@@ -1283,6 +1296,12 @@ class Package(Searchable):
1283
1296
  else:
1284
1297
  print(f"[Package.load_from_grammar] Unknown class: {inner_class} - skipping") # pragma: no cover
1285
1298
 
1299
+ # Collect Import and AliasMember grammar objects for public API access
1300
+ self._imports = []
1301
+ for child in grammar.body.children:
1302
+ if child.__class__.__name__ in ('Import', 'AliasMember'):
1303
+ self._imports.append(child)
1304
+
1286
1305
  return self
1287
1306
 
1288
1307
  def _get_grammar(self):
File without changes
File without changes
File without changes