sysmlpy 0.69.1__tar.gz → 0.70.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.
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/PKG-INFO +1 -1
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/pyproject.toml +1 -1
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/__init__.py +1 -1
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/semantic.py +96 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/LICENSE +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/README.md +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/__main__.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/antlr/README.md +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/antlr/SysMLv2Lexer.interp +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/antlr/SysMLv2Lexer.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/antlr/SysMLv2Lexer.tokens +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/antlr/SysMLv2Parser.interp +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/antlr/SysMLv2Parser.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/antlr/SysMLv2Parser.tokens +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/antlr/SysMLv2ParserListener.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/antlr/SysMLv2ParserVisitor.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.tokens +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/antlr_parser.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/antlr_visitor.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/boxes_view.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/definition.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/evaluator.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/examples/attribute_values.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/examples/part_attributes.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/examples/tuples_sequences.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/formatting.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/grammar/antlr4/README.md +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.g4 +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.tokens +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.g4 +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.interp +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.tokens +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/grammar/antlr4/SysMLv2ParserListener.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/grammar/antlr4/SysMLv2ParserVisitor.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/grammar/antlr4/desc.xml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/grammar/antlr4/examples/camera.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/grammar/antlr4/examples/toaster-system.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/grammar/antlr4/examples/vehicle-model.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/grammar/antlr4/pom.xml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/grammar/classes.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/interchange.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/LICENSE +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/README.md +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/__init__.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Analysis/AnalysisTooling.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Analysis/SampledFunctions.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Analysis/StateSpaceRepresentation.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Analysis/TradeStudies.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Cause and Effect/CausationConnections.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Cause and Effect/CauseAndEffect.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Geometry/ShapeItems.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Geometry/SpatialItems.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Metadata/ImageMetadata.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Metadata/ModelingMetadata.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Metadata/ParametersOfInterestMetadata.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Metadata/RiskMetadata.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/ISQ.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/ISQAcoustics.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/ISQAtomicNuclear.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/ISQBase.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/ISQCharacteristicNumbers.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/ISQChemistryMolecular.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/ISQCondensedMatter.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/ISQElectromagnetism.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/ISQInformation.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/ISQLight.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/ISQMechanics.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/ISQSpaceTime.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/ISQThermodynamics.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/MeasurementRefCalculations.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/MeasurementReferences.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/Quantities.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/QuantityCalculations.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/SI.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/SIPrefixes.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/TensorCalculations.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/Time.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/USCustomaryUnits.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/VectorCalculations.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Requirement Derivation/DerivationConnections.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Requirement Derivation/RequirementDerivation.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/Base.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/BaseFunctions.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/BooleanFunctions.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/Clocks.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/CollectionFunctions.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/Collections.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/ComplexFunctions.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/ControlFunctions.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/ControlPerformances.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/DataFunctions.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/FeatureReferencingPerformances.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/IntegerFunctions.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/KerML.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/Links.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/Metaobjects.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/NaturalFunctions.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/NumericalFunctions.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/Objects.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/Observation.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/OccurrenceFunctions.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/Occurrences.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/Performances.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/RationalFunctions.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/RealFunctions.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/ScalarFunctions.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/ScalarValues.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/SequenceFunctions.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/SpatialFrames.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/StatePerformances.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/StringFunctions.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/Transfers.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/TransitionPerformances.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/TrigFunctions.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/Triggers.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/VectorFunctions.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/VectorValues.kerml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/systems/Actions.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/systems/Allocations.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/systems/AnalysisCases.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/systems/Attributes.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/systems/Calculations.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/systems/Cases.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/systems/Connections.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/systems/Constraints.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/systems/Flows.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/systems/Interfaces.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/systems/Items.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/systems/Metadata.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/systems/Parts.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/systems/Ports.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/systems/Requirements.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/systems/StandardViewDefinitions.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/systems/States.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/systems/SysML.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/systems/UseCases.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/systems/VerificationCases.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/systems/Views.sysml +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/lsp/__init__.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/lsp/__main__.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/lsp/protocol.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/lsp/server.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/lsp/stdio.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/navigate.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/plantuml.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/project.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/sim.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/spreadsheet.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/store.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/traceability.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/us_customary_units.txt +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/usage.py +0 -0
- {sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/validator.py +0 -0
|
@@ -34,7 +34,7 @@ __all__ = [
|
|
|
34
34
|
"render_state_transition_view_svg", "boxes_view",
|
|
35
35
|
]
|
|
36
36
|
__author__ = "Jon Fox"
|
|
37
|
-
__version__ = "0.
|
|
37
|
+
__version__ = "0.70.0"
|
|
38
38
|
|
|
39
39
|
from sysmlpy.usage import (
|
|
40
40
|
Item, Attribute, Part, Port, Action, Reference, UseCase, Requirement, Interface, Message,
|
|
@@ -2380,6 +2380,7 @@ class SemanticAnalyzer:
|
|
|
2380
2380
|
issues.extend(self._check_state_machines(model))
|
|
2381
2381
|
issues.extend(self._check_trigger_payloads(model, symtab, lib_roots))
|
|
2382
2382
|
issues.extend(self._check_requirement_coverage(model))
|
|
2383
|
+
issues.extend(self._check_trace_targets(model, symtab, lib_roots))
|
|
2383
2384
|
|
|
2384
2385
|
# Step 6: Stylistic checks (warnings, not errors)
|
|
2385
2386
|
if style_checks:
|
|
@@ -3083,6 +3084,101 @@ class SemanticAnalyzer:
|
|
|
3083
3084
|
))
|
|
3084
3085
|
return issues
|
|
3085
3086
|
|
|
3087
|
+
def _check_trace_targets(
|
|
3088
|
+
self,
|
|
3089
|
+
model: Any,
|
|
3090
|
+
symtab: "SymbolTable",
|
|
3091
|
+
lib_roots: list,
|
|
3092
|
+
) -> list[SemanticIssue]:
|
|
3093
|
+
"""Resolve ``satisfy <req> by <part>`` targets (Goal 9).
|
|
3094
|
+
|
|
3095
|
+
A typo'd satisfy target is silent today — worse, the Goal 2
|
|
3096
|
+
traceability extractor materializes the dangling edge as a
|
|
3097
|
+
*phantom requirement* in coverage reports, so the real
|
|
3098
|
+
requirement reads uncovered while a fake one appears traced.
|
|
3099
|
+
Each satisfy target reference is resolved against the symbol
|
|
3100
|
+
table in the satisfying part's scope; unresolved targets
|
|
3101
|
+
produce UNRESOLVED_TRACE_TARGET errors.
|
|
3102
|
+
"""
|
|
3103
|
+
issues: list[SemanticIssue] = []
|
|
3104
|
+
for element, scope_path in self._walk_usages(model):
|
|
3105
|
+
grammar = getattr(element, "grammar", None)
|
|
3106
|
+
if grammar is None or \
|
|
3107
|
+
grammar.__class__.__name__ != "SatisfyRequirementUsage":
|
|
3108
|
+
continue
|
|
3109
|
+
ors = getattr(grammar, "ors", None)
|
|
3110
|
+
if ors is None:
|
|
3111
|
+
continue
|
|
3112
|
+
try:
|
|
3113
|
+
ref = ors.dump().strip().rstrip(";").strip()
|
|
3114
|
+
except Exception:
|
|
3115
|
+
continue
|
|
3116
|
+
if not ref:
|
|
3117
|
+
continue
|
|
3118
|
+
if self._is_resolved(ref, symtab, scope_path, lib_roots):
|
|
3119
|
+
# Kind check: the target must be a requirement.
|
|
3120
|
+
# (Library-resolved targets yield no element here and
|
|
3121
|
+
# are left alone — conservative by design.)
|
|
3122
|
+
found = self._resolve_element(ref, symtab, scope_path)
|
|
3123
|
+
if found is not None and \
|
|
3124
|
+
type(found).__name__ != "Requirement":
|
|
3125
|
+
issues.append(SemanticIssue(
|
|
3126
|
+
severity="warning",
|
|
3127
|
+
code="TRACE_TARGET_NOT_REQUIREMENT",
|
|
3128
|
+
message=(
|
|
3129
|
+
f"satisfy target '{ref}' resolves to a "
|
|
3130
|
+
f"{type(found).__name__}, not a "
|
|
3131
|
+
"requirement"),
|
|
3132
|
+
element=element,
|
|
3133
|
+
reference=ref,
|
|
3134
|
+
))
|
|
3135
|
+
continue
|
|
3136
|
+
issues.append(SemanticIssue(
|
|
3137
|
+
severity="error",
|
|
3138
|
+
code="UNRESOLVED_TRACE_TARGET",
|
|
3139
|
+
message=(
|
|
3140
|
+
f"satisfy target '{ref}' in "
|
|
3141
|
+
f"{type(element).__name__} "
|
|
3142
|
+
f"'{getattr(element, 'name', '<anonymous>')}' does "
|
|
3143
|
+
"not resolve to a defined requirement"),
|
|
3144
|
+
element=element,
|
|
3145
|
+
reference=ref,
|
|
3146
|
+
))
|
|
3147
|
+
return issues
|
|
3148
|
+
|
|
3149
|
+
@staticmethod
|
|
3150
|
+
def _resolve_element(
|
|
3151
|
+
ref_str: str,
|
|
3152
|
+
symtab: "SymbolTable",
|
|
3153
|
+
scope_path: list[str],
|
|
3154
|
+
):
|
|
3155
|
+
"""The model element *ref_str* resolves to, if any.
|
|
3156
|
+
|
|
3157
|
+
Mirrors the symbol-table walk of :meth:`_is_resolved` (without
|
|
3158
|
+
the library-index shortcuts, which resolve to no model
|
|
3159
|
+
element).
|
|
3160
|
+
"""
|
|
3161
|
+
current = symtab
|
|
3162
|
+
for scope_name in scope_path:
|
|
3163
|
+
child = current._children.get(scope_name)
|
|
3164
|
+
if child is not None:
|
|
3165
|
+
current = child
|
|
3166
|
+
else:
|
|
3167
|
+
break
|
|
3168
|
+
found = current.lookup(ref_str)
|
|
3169
|
+
if found is not None:
|
|
3170
|
+
return found
|
|
3171
|
+
if "::" in ref_str:
|
|
3172
|
+
parts = ref_str.split("::")
|
|
3173
|
+
table = current
|
|
3174
|
+
for part in parts[:-1]:
|
|
3175
|
+
found = table.lookup(part)
|
|
3176
|
+
if found is None:
|
|
3177
|
+
return None
|
|
3178
|
+
table = table._children.get(part, table)
|
|
3179
|
+
return table.lookup(parts[-1])
|
|
3180
|
+
return None
|
|
3181
|
+
|
|
3086
3182
|
def _check_state_machines(self, model: Any) -> list[SemanticIssue]:
|
|
3087
3183
|
"""OCL well-formedness for ``state def`` machines (Goal 9).
|
|
3088
3184
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp
RENAMED
|
File without changes
|
{sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py
RENAMED
|
File without changes
|
{sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.tokens
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Analysis/SampledFunctions.sysml
RENAMED
|
File without changes
|
{sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Analysis/StateSpaceRepresentation.sysml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Cause and Effect/CauseAndEffect.sysml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Metadata/ModelingMetadata.sysml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/ISQAcoustics.sysml
RENAMED
|
File without changes
|
|
File without changes
|
{sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/ISQBase.sysml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/ISQLight.sysml
RENAMED
|
File without changes
|
{sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/ISQMechanics.sysml
RENAMED
|
File without changes
|
{sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/ISQSpaceTime.sysml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/Quantities.sysml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/SIPrefixes.sysml
RENAMED
|
File without changes
|
|
File without changes
|
{sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/domain/Quantities and Units/Time.sysml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sysmlpy-0.69.1 → sysmlpy-0.70.0}/src/sysmlpy/library/kernel/FeatureReferencingPerformances.kerml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|