sysmlpy 0.34.1__tar.gz → 0.36.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.34.1 → sysmlpy-0.36.2}/PKG-INFO +3 -1
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/README.md +2 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/pyproject.toml +1 -1
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/__init__.py +22 -1
- sysmlpy-0.36.2/src/sysmlpy/boxes_view.py +841 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/grammar/classes.py +1 -1
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/plantuml.py +12 -7
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/semantic.py +19 -2
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/usage.py +111 -5
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/LICENSE +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/__main__.py +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/antlr/README.md +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/antlr/SysMLv2Lexer.interp +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/antlr/SysMLv2Lexer.py +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/antlr/SysMLv2Lexer.tokens +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/antlr/SysMLv2Parser.interp +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/antlr/SysMLv2Parser.py +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/antlr/SysMLv2Parser.tokens +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/antlr/SysMLv2ParserListener.py +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/antlr/SysMLv2ParserVisitor.py +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.tokens +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/antlr_parser.py +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/antlr_visitor.py +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/definition.py +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/examples/attribute_values.py +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/examples/part_attributes.py +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/examples/tuples_sequences.py +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/formatting.py +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/grammar/antlr4/README.md +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.g4 +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.tokens +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.g4 +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.interp +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.py +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.tokens +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/grammar/antlr4/SysMLv2ParserListener.py +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/grammar/antlr4/SysMLv2ParserVisitor.py +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/grammar/antlr4/desc.xml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/grammar/antlr4/examples/camera.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/grammar/antlr4/examples/toaster-system.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/grammar/antlr4/examples/vehicle-model.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/grammar/antlr4/pom.xml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/LICENSE +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/README.md +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/__init__.py +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Analysis/AnalysisTooling.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Analysis/SampledFunctions.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Analysis/StateSpaceRepresentation.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Analysis/TradeStudies.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Cause and Effect/CausationConnections.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Cause and Effect/CauseAndEffect.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Geometry/ShapeItems.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Geometry/SpatialItems.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Metadata/ImageMetadata.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Metadata/ModelingMetadata.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Metadata/ParametersOfInterestMetadata.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Metadata/RiskMetadata.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Quantities and Units/ISQ.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Quantities and Units/ISQAcoustics.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Quantities and Units/ISQAtomicNuclear.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Quantities and Units/ISQBase.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Quantities and Units/ISQCharacteristicNumbers.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Quantities and Units/ISQChemistryMolecular.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Quantities and Units/ISQCondensedMatter.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Quantities and Units/ISQElectromagnetism.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Quantities and Units/ISQInformation.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Quantities and Units/ISQLight.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Quantities and Units/ISQMechanics.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Quantities and Units/ISQSpaceTime.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Quantities and Units/ISQThermodynamics.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Quantities and Units/MeasurementRefCalculations.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Quantities and Units/MeasurementReferences.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Quantities and Units/Quantities.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Quantities and Units/QuantityCalculations.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Quantities and Units/SI.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Quantities and Units/SIPrefixes.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Quantities and Units/TensorCalculations.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Quantities and Units/Time.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Quantities and Units/USCustomaryUnits.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Quantities and Units/VectorCalculations.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Requirement Derivation/DerivationConnections.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/domain/Requirement Derivation/RequirementDerivation.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/Base.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/BaseFunctions.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/BooleanFunctions.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/Clocks.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/CollectionFunctions.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/Collections.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/ComplexFunctions.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/ControlFunctions.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/ControlPerformances.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/DataFunctions.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/FeatureReferencingPerformances.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/IntegerFunctions.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/KerML.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/Links.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/Metaobjects.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/NaturalFunctions.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/NumericalFunctions.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/Objects.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/Observation.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/OccurrenceFunctions.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/Occurrences.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/Performances.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/RationalFunctions.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/RealFunctions.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/ScalarFunctions.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/ScalarValues.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/SequenceFunctions.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/SpatialFrames.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/StatePerformances.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/StringFunctions.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/Transfers.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/TransitionPerformances.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/TrigFunctions.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/Triggers.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/VectorFunctions.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/kernel/VectorValues.kerml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/systems/Actions.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/systems/Allocations.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/systems/AnalysisCases.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/systems/Attributes.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/systems/Calculations.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/systems/Cases.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/systems/Connections.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/systems/Constraints.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/systems/Flows.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/systems/Interfaces.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/systems/Items.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/systems/Metadata.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/systems/Parts.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/systems/Ports.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/systems/Requirements.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/systems/StandardViewDefinitions.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/systems/States.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/systems/SysML.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/systems/UseCases.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/systems/VerificationCases.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/library/systems/Views.sysml +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/navigate.py +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/project.py +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/store.py +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/us_customary_units.txt +0 -0
- {sysmlpy-0.34.1 → sysmlpy-0.36.2}/src/sysmlpy/validator.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sysmlpy
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.36.2
|
|
4
4
|
Summary:
|
|
5
5
|
License-File: LICENSE
|
|
6
6
|
Author: Jon R. Fox (mycr0ft)
|
|
@@ -39,6 +39,8 @@ The project had diverged so much from sysml2py that a new name, sysmlpy, was sel
|
|
|
39
39
|
|
|
40
40
|

|
|
41
41
|
|
|
42
|
+
**v0.36.0:** Boxes-backed state-machine visualizer — `as_state_transition_view_boxes()`, `render_state_transition_view()`, `render_state_transition_view_svg()` produce native UML `«state»` shapes, initial pseudostate, final bullseye, and orthogonal routing via the optional [`boxes`](https://github.com/mycr0ft/boxes) package. Handles `done`, guards, shorthand `accept X then Y`, dotted feature chains (`S2.S3`), composite states, `parallel` regions, entry/do/exit attributes. 19 new boxes_view tests. Also fixes the INCOSE flashlight `interface … connect … { perform …; }` parse crash in `grammar/classes.py`.
|
|
43
|
+
|
|
42
44
|
**v0.31.0:** Documentation overhaul — all docs rewritten to showcase the modern public API. New Model Parsing and Model Navigation sections. Semantic Analysis updated with `AnalysisResult`. Grammar round-trip: 77/77 (100%). 211 core tests passing.
|
|
43
45
|
|
|
44
46
|
**v0.32.4:** Fixed `Attribute.usage_dump()` calling `dump(child=True)` (returns str) when it should call `_get_definition(child="DefinitionBody")` (returns dict). Broke inline anonymous attribute usages with nested children.
|
|
@@ -14,6 +14,8 @@ The project had diverged so much from sysml2py that a new name, sysmlpy, was sel
|
|
|
14
14
|
|
|
15
15
|

|
|
16
16
|
|
|
17
|
+
**v0.36.0:** Boxes-backed state-machine visualizer — `as_state_transition_view_boxes()`, `render_state_transition_view()`, `render_state_transition_view_svg()` produce native UML `«state»` shapes, initial pseudostate, final bullseye, and orthogonal routing via the optional [`boxes`](https://github.com/mycr0ft/boxes) package. Handles `done`, guards, shorthand `accept X then Y`, dotted feature chains (`S2.S3`), composite states, `parallel` regions, entry/do/exit attributes. 19 new boxes_view tests. Also fixes the INCOSE flashlight `interface … connect … { perform …; }` parse crash in `grammar/classes.py`.
|
|
18
|
+
|
|
17
19
|
**v0.31.0:** Documentation overhaul — all docs rewritten to showcase the modern public API. New Model Parsing and Model Navigation sections. Semantic Analysis updated with `AnalysisResult`. Grammar round-trip: 77/77 (100%). 211 core tests passing.
|
|
18
20
|
|
|
19
21
|
**v0.32.4:** Fixed `Attribute.usage_dump()` calling `dump(child=True)` (returns str) when it should call `_get_definition(child="DefinitionBody")` (returns dict). Broke inline anonymous attribute usages with nested children.
|
|
@@ -19,9 +19,12 @@ __all__ = [
|
|
|
19
19
|
"as_sequence_view", "as_case_view", "as_browser_view",
|
|
20
20
|
"analyze", "AnalysisResult", "SemanticIssue", "SemanticAnalyzer",
|
|
21
21
|
"SysMLSyntaxError",
|
|
22
|
+
# boxes-backed optional renderers (require pip install -e ../boxes)
|
|
23
|
+
"as_state_transition_view_boxes", "render_state_transition_view",
|
|
24
|
+
"render_state_transition_view_svg", "boxes_view",
|
|
22
25
|
]
|
|
23
26
|
__author__ = "Jon Fox"
|
|
24
|
-
__version__ = "0.
|
|
27
|
+
__version__ = "0.36.2"
|
|
25
28
|
|
|
26
29
|
from sysmlpy.usage import (
|
|
27
30
|
Item, Attribute, Part, Port, Action, Reference, UseCase, Requirement, Interface, Message,
|
|
@@ -267,3 +270,21 @@ from sysmlpy.semantic import analyze, AnalysisResult, SemanticIssue, SemanticAna
|
|
|
267
270
|
|
|
268
271
|
from sysmlpy.project import load_files, load_project, load_with_dependencies
|
|
269
272
|
|
|
273
|
+
# Optional boxes-backed state-machine renderer (lazy import on first use so
|
|
274
|
+
# `import sysmlpy` works without `boxes` installed). The first call to any of
|
|
275
|
+
# the functions below triggers `import sysmlpy.boxes_view`, which itself
|
|
276
|
+
# raises ImportError with installation instructions if `boxes` is missing.
|
|
277
|
+
def __getattr__(name):
|
|
278
|
+
if name == "boxes_view":
|
|
279
|
+
import sysmlpy.boxes_view as bv
|
|
280
|
+
globals()[name] = bv
|
|
281
|
+
return bv
|
|
282
|
+
if name in ("as_state_transition_view_boxes",
|
|
283
|
+
"render_state_transition_view",
|
|
284
|
+
"render_state_transition_view_svg"):
|
|
285
|
+
from sysmlpy import boxes_view as bv
|
|
286
|
+
fn = getattr(bv, name)
|
|
287
|
+
globals()[name] = fn
|
|
288
|
+
return fn
|
|
289
|
+
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
|
290
|
+
|