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.
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/LICENSE +2 -1
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/PKG-INFO +39 -5
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/README.md +34 -1
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/pyproject.toml +4 -4
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/__init__.py +4 -1
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/antlr/SysMLv2Lexer.py +1 -1
- sysmlpy-0.25.2/src/sysmlpy/antlr/SysMLv2Parser.interp +960 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/antlr/SysMLv2Parser.py +4273 -4280
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/antlr/SysMLv2ParserListener.py +1 -1
- {sysmlpy-0.20.1/src/sysmlpy/grammar/antlr4 → sysmlpy-0.25.2/src/sysmlpy/antlr}/SysMLv2ParserVisitor.py +1 -1
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py +2 -2
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.g4 +1 -1
- sysmlpy-0.25.2/src/sysmlpy/grammar/antlr4/SysMLv2Parser.interp +960 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.py +4273 -4280
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/SysMLv2ParserListener.py +1 -1
- {sysmlpy-0.20.1/src/sysmlpy/antlr → sysmlpy-0.25.2/src/sysmlpy/grammar/antlr4}/SysMLv2ParserVisitor.py +1 -1
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/plantuml.py +772 -76
- sysmlpy-0.25.2/src/sysmlpy/project.py +351 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/semantic.py +119 -27
- sysmlpy-0.20.1/src/sysmlpy/antlr/SysMLv2Parser.interp +0 -960
- sysmlpy-0.20.1/src/sysmlpy/grammar/antlr4/SysMLv2Parser.interp +0 -960
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/__main__.py +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/antlr/README.md +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/antlr/SysMLv2Lexer.interp +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/antlr/SysMLv2Lexer.tokens +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/antlr/SysMLv2Parser.tokens +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.tokens +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/antlr_parser.py +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/antlr_visitor.py +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/definition.py +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/examples/attribute_values.py +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/examples/part_attributes.py +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/examples/tuples_sequences.py +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/formatting.py +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/README.md +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.g4 +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.tokens +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.tokens +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/desc.xml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/examples/camera.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/examples/toaster-system.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/examples/vehicle-model.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/antlr4/pom.xml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/grammar/classes.py +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/LICENSE +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/README.md +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/__init__.py +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Analysis/AnalysisTooling.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Analysis/SampledFunctions.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Analysis/StateSpaceRepresentation.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Analysis/TradeStudies.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Cause and Effect/CausationConnections.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Cause and Effect/CauseAndEffect.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Geometry/ShapeItems.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Geometry/SpatialItems.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Metadata/ImageMetadata.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Metadata/ModelingMetadata.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Metadata/ParametersOfInterestMetadata.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Metadata/RiskMetadata.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/ISQ.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/ISQAcoustics.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/ISQAtomicNuclear.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/ISQBase.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/ISQCharacteristicNumbers.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/ISQChemistryMolecular.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/ISQCondensedMatter.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/ISQElectromagnetism.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/ISQInformation.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/ISQLight.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/ISQMechanics.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/ISQSpaceTime.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/ISQThermodynamics.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/MeasurementRefCalculations.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/MeasurementReferences.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/Quantities.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/QuantityCalculations.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/SI.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/SIPrefixes.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/TensorCalculations.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/Time.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/USCustomaryUnits.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Quantities and Units/VectorCalculations.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Requirement Derivation/DerivationConnections.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/domain/Requirement Derivation/RequirementDerivation.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/Base.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/BaseFunctions.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/BooleanFunctions.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/Clocks.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/CollectionFunctions.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/Collections.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/ComplexFunctions.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/ControlFunctions.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/ControlPerformances.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/DataFunctions.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/FeatureReferencingPerformances.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/IntegerFunctions.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/KerML.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/Links.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/Metaobjects.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/NaturalFunctions.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/NumericalFunctions.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/Objects.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/Observation.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/OccurrenceFunctions.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/Occurrences.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/Performances.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/RationalFunctions.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/RealFunctions.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/ScalarFunctions.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/ScalarValues.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/SequenceFunctions.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/SpatialFrames.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/StatePerformances.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/StringFunctions.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/Transfers.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/TransitionPerformances.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/TrigFunctions.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/Triggers.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/VectorFunctions.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/kernel/VectorValues.kerml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Actions.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Allocations.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/AnalysisCases.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Attributes.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Calculations.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Cases.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Connections.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Constraints.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Flows.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Interfaces.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Items.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Metadata.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Parts.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Ports.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Requirements.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/StandardViewDefinitions.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/States.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/SysML.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/UseCases.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/VerificationCases.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/library/systems/Views.sysml +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/navigate.py +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/store.py +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/us_customary_units.txt +0 -0
- {sysmlpy-0.20.1 → sysmlpy-0.25.2}/src/sysmlpy/usage.py +0 -0
- {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.
|
|
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/
|
|
42
|
-
Project-URL: Homepage, https://github.com/
|
|
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
|

|
|
60
61
|
|
|
61
|
-
**v0.
|
|
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
|

|
|
16
16
|
|
|
17
|
-
**v0.
|
|
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.
|
|
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/
|
|
26
|
-
"Bug Tracker" = "https://github.com/
|
|
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.
|
|
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.
|
|
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
|
+
|