sysmlpy 0.20.1__tar.gz → 0.25.2__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 (149) hide show
  1. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/LICENSE +2 -1
  2. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/PKG-INFO +39 -5
  3. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/README.md +34 -1
  4. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/pyproject.toml +4 -4
  5. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/__init__.py +4 -1
  6. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/antlr/SysMLv2Lexer.py +1 -1
  7. sysmlpy-0.25.2/src/sysmlpy/antlr/SysMLv2Parser.interp +960 -0
  8. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/antlr/SysMLv2Parser.py +4273 -4280
  9. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/antlr/SysMLv2ParserListener.py +1 -1
  10. {sysmlpy-0.20.1/src/sysmlpy/grammar/antlr4 → sysmlpy-0.25.2/src/sysmlpy/antlr}/SysMLv2ParserVisitor.py +1 -1
  11. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py +2 -2
  12. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.g4 +1 -1
  13. sysmlpy-0.25.2/src/sysmlpy/grammar/antlr4/SysMLv2Parser.interp +960 -0
  14. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.py +4273 -4280
  15. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/SysMLv2ParserListener.py +1 -1
  16. {sysmlpy-0.20.1/src/sysmlpy/antlr → sysmlpy-0.25.2/src/sysmlpy/grammar/antlr4}/SysMLv2ParserVisitor.py +1 -1
  17. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/plantuml.py +772 -76
  18. sysmlpy-0.25.2/src/sysmlpy/project.py +351 -0
  19. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/semantic.py +119 -27
  20. sysmlpy-0.20.1/src/sysmlpy/antlr/SysMLv2Parser.interp +0 -960
  21. sysmlpy-0.20.1/src/sysmlpy/grammar/antlr4/SysMLv2Parser.interp +0 -960
  22. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/__main__.py +0 -0
  23. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/antlr/README.md +0 -0
  24. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/antlr/SysMLv2Lexer.interp +0 -0
  25. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/antlr/SysMLv2Lexer.tokens +0 -0
  26. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/antlr/SysMLv2Parser.tokens +0 -0
  27. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp +0 -0
  28. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py +0 -0
  29. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.tokens +0 -0
  30. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/antlr_parser.py +0 -0
  31. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/antlr_visitor.py +0 -0
  32. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/definition.py +0 -0
  33. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/examples/attribute_values.py +0 -0
  34. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/examples/part_attributes.py +0 -0
  35. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/examples/tuples_sequences.py +0 -0
  36. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/formatting.py +0 -0
  37. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/README.md +0 -0
  38. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.g4 +0 -0
  39. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp +0 -0
  40. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.tokens +0 -0
  41. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.tokens +0 -0
  42. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/desc.xml +0 -0
  43. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/examples/camera.sysml +0 -0
  44. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/examples/toaster-system.sysml +0 -0
  45. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/examples/vehicle-model.sysml +0 -0
  46. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/pom.xml +0 -0
  47. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/classes.py +0 -0
  48. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/LICENSE +0 -0
  49. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/README.md +0 -0
  50. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/__init__.py +0 -0
  51. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Analysis/AnalysisTooling.sysml +0 -0
  52. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Analysis/SampledFunctions.sysml +0 -0
  53. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Analysis/StateSpaceRepresentation.sysml +0 -0
  54. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Analysis/TradeStudies.sysml +0 -0
  55. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Cause and Effect/CausationConnections.sysml +0 -0
  56. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Cause and Effect/CauseAndEffect.sysml +0 -0
  57. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Geometry/ShapeItems.sysml +0 -0
  58. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Geometry/SpatialItems.sysml +0 -0
  59. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Metadata/ImageMetadata.sysml +0 -0
  60. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Metadata/ModelingMetadata.sysml +0 -0
  61. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Metadata/ParametersOfInterestMetadata.sysml +0 -0
  62. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Metadata/RiskMetadata.sysml +0 -0
  63. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/ISQ.sysml +0 -0
  64. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/ISQAcoustics.sysml +0 -0
  65. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/ISQAtomicNuclear.sysml +0 -0
  66. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/ISQBase.sysml +0 -0
  67. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/ISQCharacteristicNumbers.sysml +0 -0
  68. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/ISQChemistryMolecular.sysml +0 -0
  69. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/ISQCondensedMatter.sysml +0 -0
  70. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/ISQElectromagnetism.sysml +0 -0
  71. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/ISQInformation.sysml +0 -0
  72. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/ISQLight.sysml +0 -0
  73. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/ISQMechanics.sysml +0 -0
  74. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/ISQSpaceTime.sysml +0 -0
  75. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/ISQThermodynamics.sysml +0 -0
  76. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/MeasurementRefCalculations.sysml +0 -0
  77. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/MeasurementReferences.sysml +0 -0
  78. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/Quantities.sysml +0 -0
  79. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/QuantityCalculations.sysml +0 -0
  80. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/SI.sysml +0 -0
  81. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/SIPrefixes.sysml +0 -0
  82. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/TensorCalculations.sysml +0 -0
  83. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/Time.sysml +0 -0
  84. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/USCustomaryUnits.sysml +0 -0
  85. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/VectorCalculations.sysml +0 -0
  86. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Requirement Derivation/DerivationConnections.sysml +0 -0
  87. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Requirement Derivation/RequirementDerivation.sysml +0 -0
  88. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/Base.kerml +0 -0
  89. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/BaseFunctions.kerml +0 -0
  90. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/BooleanFunctions.kerml +0 -0
  91. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/Clocks.kerml +0 -0
  92. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/CollectionFunctions.kerml +0 -0
  93. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/Collections.kerml +0 -0
  94. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/ComplexFunctions.kerml +0 -0
  95. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/ControlFunctions.kerml +0 -0
  96. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/ControlPerformances.kerml +0 -0
  97. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/DataFunctions.kerml +0 -0
  98. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/FeatureReferencingPerformances.kerml +0 -0
  99. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/IntegerFunctions.kerml +0 -0
  100. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/KerML.kerml +0 -0
  101. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/Links.kerml +0 -0
  102. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/Metaobjects.kerml +0 -0
  103. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/NaturalFunctions.kerml +0 -0
  104. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/NumericalFunctions.kerml +0 -0
  105. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/Objects.kerml +0 -0
  106. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/Observation.kerml +0 -0
  107. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/OccurrenceFunctions.kerml +0 -0
  108. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/Occurrences.kerml +0 -0
  109. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/Performances.kerml +0 -0
  110. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/RationalFunctions.kerml +0 -0
  111. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/RealFunctions.kerml +0 -0
  112. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/ScalarFunctions.kerml +0 -0
  113. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/ScalarValues.kerml +0 -0
  114. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/SequenceFunctions.kerml +0 -0
  115. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/SpatialFrames.kerml +0 -0
  116. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/StatePerformances.kerml +0 -0
  117. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/StringFunctions.kerml +0 -0
  118. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/Transfers.kerml +0 -0
  119. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/TransitionPerformances.kerml +0 -0
  120. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/TrigFunctions.kerml +0 -0
  121. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/Triggers.kerml +0 -0
  122. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/VectorFunctions.kerml +0 -0
  123. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/VectorValues.kerml +0 -0
  124. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Actions.sysml +0 -0
  125. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Allocations.sysml +0 -0
  126. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/AnalysisCases.sysml +0 -0
  127. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Attributes.sysml +0 -0
  128. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Calculations.sysml +0 -0
  129. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Cases.sysml +0 -0
  130. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Connections.sysml +0 -0
  131. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Constraints.sysml +0 -0
  132. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Flows.sysml +0 -0
  133. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Interfaces.sysml +0 -0
  134. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Items.sysml +0 -0
  135. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Metadata.sysml +0 -0
  136. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Parts.sysml +0 -0
  137. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Ports.sysml +0 -0
  138. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Requirements.sysml +0 -0
  139. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/StandardViewDefinitions.sysml +0 -0
  140. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/States.sysml +0 -0
  141. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/SysML.sysml +0 -0
  142. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/UseCases.sysml +0 -0
  143. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/VerificationCases.sysml +0 -0
  144. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Views.sysml +0 -0
  145. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/navigate.py +0 -0
  146. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/store.py +0 -0
  147. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/us_customary_units.txt +0 -0
  148. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/usage.py +0 -0
  149. {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/validator.py +0 -0
@@ -1,6 +1,7 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2023 Westfall-io
3
+ Copyright (c) 2023-2026 Westfall-io
4
+ Copyright (c) 2026 Jon R. Fox
4
5
 
5
6
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
7
  of this software and associated documentation files (the "Software"), to deal
@@ -1,10 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sysmlpy
3
- Version: 0.20.1
3
+ Version: 0.25.2
4
4
  Summary: SysML v2.0 Parser
5
5
  License: MIT License
6
6
 
7
- Copyright (c) 2023 Westfall-io
7
+ Copyright (c) 2023-2026 Westfall-io
8
+ Copyright (c) 2026 Jon R. Fox
8
9
 
9
10
  Permission is hereby granted, free of charge, to any person obtaining a copy
10
11
  of this software and associated documentation files (the "Software"), to deal
@@ -38,8 +39,8 @@ Requires-Dist: kuzu (>=0.7,<0.12) ; extra == "kuzu"
38
39
  Requires-Dist: networkx (>=3.0) ; extra == "graph"
39
40
  Requires-Dist: pint (>=0.24)
40
41
  Requires-Dist: pyyaml (>=6.0)
41
- Project-URL: Bug Tracker, https://github.com/Westfall-io/sysmlpy/issues
42
- Project-URL: Homepage, https://github.com/Westfall-io/sysmlpy
42
+ Project-URL: Bug Tracker, https://github.com/mycr0ft/sysmlpy/issues
43
+ Project-URL: Homepage, https://github.com/mycr0ft/sysmlpy
43
44
  Description-Content-Type: text/markdown
44
45
 
45
46
  # sysmlpy
@@ -58,7 +59,7 @@ The project had diverged so much from sysml2py that a new name, sysmlpy, was sel
58
59
 
59
60
  ![Lines of Code Over Time](loc_history.svg)
60
61
 
61
- **v0.20.0:** Full OCL well-formedness validation suite. Supertype/inheritance resolution for subsetting references. Standard library symbol index scans 88 `.kerml`/`.sysml` files (~1,417 symbols). Import visibility enforcement (`private`/`public`/`protected`). Multiplicity bounds validation. Feature chain compatibility checking. Port and part definition type validation. Duplicate name detection. Cyclic specialization detection. 90 semantic tests, 288 total tests passing.
62
+ **v0.25.2:** View rendering convenience functions: `as_graphical_rendering()`, `as_interconnection_diagram()`, `as_tree_diagram()`, `as_element_table()`, `as_textual_notation()`. Black-and-white default style for journal article rendering. Custom style support via `custom_style` parameter. Views render as folder elements. 39 PlantUML tests passing.
62
63
 
63
64
  **v0.19.0:** Semantic analysis engine with undefined symbol detection. Import resolution (namespace `::*`, membership, recursive `::*::**`). 530 tests passing. Symbol table with hierarchical scope resolution and qualified name lookup.
64
65
 
@@ -292,6 +293,39 @@ The analyzer resolves three import patterns with visibility enforcement:
292
293
  | `INVALID_MULTIPLICITY_BOUNDS` | Multiplicity.bounds_valid | Lower bound must be ≤ upper bound (`[5..2]` is invalid) |
293
294
  | `UNRESOLVED_IMPORT` | — | Import target does not exist in the model |
294
295
 
296
+ ## Multi-File Projects
297
+
298
+ sysmlpy supports loading multiple SysML files into a shared model with automatic cross-file import resolution:
299
+
300
+ ```python
301
+ from sysmlpy import load_files, load_project, load_with_dependencies, analyze
302
+
303
+ # Option 1: Load specific files (packages with same name are merged)
304
+ model = load_files([
305
+ 'models/Shared/Types.sysml',
306
+ 'models/SystemGateway/SystemGatewayMain.sysml',
307
+ ])
308
+
309
+ # Option 2: Load entire project directory
310
+ model = load_project('models/')
311
+
312
+ # Option 3: Load with automatic dependency resolution
313
+ model = load_with_dependencies(
314
+ 'models/SystemGateway/SystemGatewayMain.sysml',
315
+ search_paths=['models/SystemGateway', 'models/Shared'],
316
+ )
317
+
318
+ # Validate — cross-file references resolve correctly
319
+ issues = analyze(model)
320
+ ```
321
+
322
+ Standard library imports (`ScalarValues`, `ISQ`, etc.) are validated when a library path is provided:
323
+
324
+ ```python
325
+ import sysmlpy
326
+ model = load_files(['main.sysml'], library=sysmlpy.__path__[0] + '/library')
327
+ ```
328
+
295
329
  ## Storage Backends
296
330
 
297
331
  sysmlpy provides a unified `Store` protocol with multiple backend implementations. All backends support the same API: `put`, `get`, `delete`, `children`, `parents`, `relationships`, `query`, `has`, `ids`, `clear`, plus graph traversal methods (`descendants`, `ancestors`, `path`).
@@ -14,7 +14,7 @@ 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.20.0:** Full OCL well-formedness validation suite. Supertype/inheritance resolution for subsetting references. Standard library symbol index scans 88 `.kerml`/`.sysml` files (~1,417 symbols). Import visibility enforcement (`private`/`public`/`protected`). Multiplicity bounds validation. Feature chain compatibility checking. Port and part definition type validation. Duplicate name detection. Cyclic specialization detection. 90 semantic tests, 288 total tests passing.
17
+ **v0.25.2:** View rendering convenience functions: `as_graphical_rendering()`, `as_interconnection_diagram()`, `as_tree_diagram()`, `as_element_table()`, `as_textual_notation()`. Black-and-white default style for journal article rendering. Custom style support via `custom_style` parameter. Views render as folder elements. 39 PlantUML tests passing.
18
18
 
19
19
  **v0.19.0:** Semantic analysis engine with undefined symbol detection. Import resolution (namespace `::*`, membership, recursive `::*::**`). 530 tests passing. Symbol table with hierarchical scope resolution and qualified name lookup.
20
20
 
@@ -248,6 +248,39 @@ The analyzer resolves three import patterns with visibility enforcement:
248
248
  | `INVALID_MULTIPLICITY_BOUNDS` | Multiplicity.bounds_valid | Lower bound must be ≤ upper bound (`[5..2]` is invalid) |
249
249
  | `UNRESOLVED_IMPORT` | — | Import target does not exist in the model |
250
250
 
251
+ ## Multi-File Projects
252
+
253
+ sysmlpy supports loading multiple SysML files into a shared model with automatic cross-file import resolution:
254
+
255
+ ```python
256
+ from sysmlpy import load_files, load_project, load_with_dependencies, analyze
257
+
258
+ # Option 1: Load specific files (packages with same name are merged)
259
+ model = load_files([
260
+ 'models/Shared/Types.sysml',
261
+ 'models/SystemGateway/SystemGatewayMain.sysml',
262
+ ])
263
+
264
+ # Option 2: Load entire project directory
265
+ model = load_project('models/')
266
+
267
+ # Option 3: Load with automatic dependency resolution
268
+ model = load_with_dependencies(
269
+ 'models/SystemGateway/SystemGatewayMain.sysml',
270
+ search_paths=['models/SystemGateway', 'models/Shared'],
271
+ )
272
+
273
+ # Validate — cross-file references resolve correctly
274
+ issues = analyze(model)
275
+ ```
276
+
277
+ Standard library imports (`ScalarValues`, `ISQ`, etc.) are validated when a library path is provided:
278
+
279
+ ```python
280
+ import sysmlpy
281
+ model = load_files(['main.sysml'], library=sysmlpy.__path__[0] + '/library')
282
+ ```
283
+
251
284
  ## Storage Backends
252
285
 
253
286
  sysmlpy provides a unified `Store` protocol with multiple backend implementations. All backends support the same API: `put`, `get`, `delete`, `children`, `parents`, `relationships`, `query`, `has`, `ids`, `clear`, plus graph traversal methods (`descendants`, `ancestors`, `path`).
@@ -6,7 +6,7 @@ build-backend = "poetry.core.masonry.api"
6
6
 
7
7
  [project]
8
8
  name = "sysmlpy"
9
- version = "0.20.1"
9
+ version = "0.25.2"
10
10
  description = "SysML v2.0 Parser"
11
11
  authors = [
12
12
  { name="Jon R. Fox (mycr0ft)", email="jon.fox@drfox.com" },
@@ -22,8 +22,8 @@ classifiers = [
22
22
  ]
23
23
 
24
24
  [project.urls]
25
- "Homepage" = "https://github.com/Westfall-io/sysmlpy"
26
- "Bug Tracker" = "https://github.com/Westfall-io/sysmlpy/issues"
25
+ "Homepage" = "https://github.com/mycr0ft/sysmlpy"
26
+ "Bug Tracker" = "https://github.com/mycr0ft/sysmlpy/issues"
27
27
 
28
28
 
29
29
 
@@ -114,7 +114,7 @@ build_command = "pip install poetry && poetry build"
114
114
 
115
115
  [tool.poetry]
116
116
  name = "sysmlpy"
117
- version = "0.20.1"
117
+ version = "0.25.2"
118
118
  description = ""
119
119
  authors = ["Jon R. Fox (mycr0ft) <jon.fox@drfox.com>"]
120
120
  readme = "README.md"
@@ -9,13 +9,14 @@ Uses the ANTLR4 parser for full SysML v2 grammar support.
9
9
 
10
10
  __all__ = [
11
11
  "load", "loads", "load_grammar", "load_antlr", "load_grammar_antlr",
12
+ "load_files", "load_project", "load_with_dependencies",
12
13
  "Searchable",
13
14
  "Store", "InMemoryStore", "NetworkXStore", "KuzuStore", "CayleyStore", "create_store", "new_id",
14
15
  "to_plantuml", "PlantUMLGenerator",
15
16
  "analyze", "SemanticIssue", "SemanticAnalyzer",
16
17
  ]
17
18
  __author__ = "Jon Fox"
18
- __version__ = "0.20.1"
19
+ __version__ = "0.25.2"
19
20
 
20
21
  from sysmlpy.usage import (
21
22
  Item, Attribute, Part, Port, Action, Reference, UseCase, Requirement, Interface, Message,
@@ -230,3 +231,5 @@ from sysmlpy.plantuml import to_plantuml, PlantUMLGenerator
230
231
 
231
232
  from sysmlpy.semantic import analyze, SemanticIssue, SemanticAnalyzer
232
233
 
234
+ from sysmlpy.project import load_files, load_project, load_with_dependencies
235
+
@@ -1,4 +1,4 @@
1
- # Generated from SysMLv2Lexer.g4 by ANTLR 4.13.0
1
+ # Generated from /storage16/home/jfox/sysmlpy/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.g4 by ANTLR 4.13.0
2
2
  from antlr4 import *
3
3
  from io import StringIO
4
4
  import sys