sysmlpy 0.30.0__tar.gz → 0.30.1__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.30.0 → sysmlpy-0.30.1}/PKG-INFO +1 -1
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/pyproject.toml +2 -2
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/__init__.py +19 -14
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/definition.py +48 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/navigate.py +72 -20
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/semantic.py +45 -4
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/usage.py +9 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/LICENSE +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/README.md +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/__main__.py +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/antlr/README.md +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/antlr/SysMLv2Lexer.interp +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/antlr/SysMLv2Lexer.py +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/antlr/SysMLv2Lexer.tokens +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/antlr/SysMLv2Parser.interp +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/antlr/SysMLv2Parser.py +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/antlr/SysMLv2Parser.tokens +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/antlr/SysMLv2ParserListener.py +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/antlr/SysMLv2ParserVisitor.py +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.tokens +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/antlr_parser.py +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/antlr_visitor.py +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/examples/attribute_values.py +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/examples/part_attributes.py +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/examples/tuples_sequences.py +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/formatting.py +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/grammar/antlr4/README.md +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.g4 +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.tokens +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.g4 +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.interp +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.py +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.tokens +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/grammar/antlr4/SysMLv2ParserListener.py +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/grammar/antlr4/SysMLv2ParserVisitor.py +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/grammar/antlr4/desc.xml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/grammar/antlr4/examples/camera.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/grammar/antlr4/examples/toaster-system.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/grammar/antlr4/examples/vehicle-model.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/grammar/antlr4/pom.xml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/grammar/classes.py +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/LICENSE +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/README.md +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/__init__.py +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Analysis/AnalysisTooling.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Analysis/SampledFunctions.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Analysis/StateSpaceRepresentation.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Analysis/TradeStudies.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Cause and Effect/CausationConnections.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Cause and Effect/CauseAndEffect.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Geometry/ShapeItems.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Geometry/SpatialItems.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Metadata/ImageMetadata.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Metadata/ModelingMetadata.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Metadata/ParametersOfInterestMetadata.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Metadata/RiskMetadata.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/ISQ.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/ISQAcoustics.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/ISQAtomicNuclear.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/ISQBase.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/ISQCharacteristicNumbers.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/ISQChemistryMolecular.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/ISQCondensedMatter.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/ISQElectromagnetism.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/ISQInformation.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/ISQLight.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/ISQMechanics.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/ISQSpaceTime.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/ISQThermodynamics.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/MeasurementRefCalculations.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/MeasurementReferences.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/Quantities.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/QuantityCalculations.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/SI.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/SIPrefixes.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/TensorCalculations.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/Time.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/USCustomaryUnits.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/VectorCalculations.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Requirement Derivation/DerivationConnections.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Requirement Derivation/RequirementDerivation.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/Base.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/BaseFunctions.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/BooleanFunctions.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/Clocks.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/CollectionFunctions.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/Collections.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/ComplexFunctions.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/ControlFunctions.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/ControlPerformances.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/DataFunctions.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/FeatureReferencingPerformances.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/IntegerFunctions.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/KerML.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/Links.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/Metaobjects.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/NaturalFunctions.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/NumericalFunctions.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/Objects.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/Observation.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/OccurrenceFunctions.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/Occurrences.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/Performances.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/RationalFunctions.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/RealFunctions.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/ScalarFunctions.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/ScalarValues.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/SequenceFunctions.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/SpatialFrames.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/StatePerformances.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/StringFunctions.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/Transfers.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/TransitionPerformances.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/TrigFunctions.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/Triggers.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/VectorFunctions.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/kernel/VectorValues.kerml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/systems/Actions.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/systems/Allocations.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/systems/AnalysisCases.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/systems/Attributes.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/systems/Calculations.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/systems/Cases.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/systems/Connections.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/systems/Constraints.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/systems/Flows.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/systems/Interfaces.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/systems/Items.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/systems/Metadata.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/systems/Parts.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/systems/Ports.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/systems/Requirements.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/systems/StandardViewDefinitions.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/systems/States.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/systems/SysML.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/systems/UseCases.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/systems/VerificationCases.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/systems/Views.sysml +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/plantuml.py +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/project.py +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/store.py +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/us_customary_units.txt +0 -0
- {sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/validator.py +0 -0
|
@@ -6,7 +6,7 @@ build-backend = "poetry.core.masonry.api"
|
|
|
6
6
|
|
|
7
7
|
[project]
|
|
8
8
|
name = "sysmlpy"
|
|
9
|
-
version = "0.30.
|
|
9
|
+
version = "0.30.1"
|
|
10
10
|
description = "SysML v2.0 Parser"
|
|
11
11
|
authors = [
|
|
12
12
|
{ name="Jon R. Fox (mycr0ft)", email="jon.fox@drfox.com" },
|
|
@@ -114,7 +114,7 @@ build_command = "pip install poetry && poetry build"
|
|
|
114
114
|
|
|
115
115
|
[tool.poetry]
|
|
116
116
|
name = "sysmlpy"
|
|
117
|
-
version = "0.30.
|
|
117
|
+
version = "0.30.1"
|
|
118
118
|
description = ""
|
|
119
119
|
authors = ["Jon R. Fox (mycr0ft) <jon.fox@drfox.com>"]
|
|
120
120
|
readme = "README.md"
|
|
@@ -17,10 +17,11 @@ __all__ = [
|
|
|
17
17
|
"as_general_view", "as_package_view", "as_package_diagram_view", "as_block_definition_view", "as_internal_block_diagram",
|
|
18
18
|
"as_parametric_view", "as_requirement_view",
|
|
19
19
|
"as_tabular_view", "as_data_value_tabular_view", "as_relationship_matrix_view",
|
|
20
|
-
"analyze", "SemanticIssue", "SemanticAnalyzer",
|
|
20
|
+
"analyze", "AnalysisResult", "SemanticIssue", "SemanticAnalyzer",
|
|
21
|
+
"SysMLSyntaxError",
|
|
21
22
|
]
|
|
22
23
|
__author__ = "Jon Fox"
|
|
23
|
-
__version__ = "0.30.
|
|
24
|
+
__version__ = "0.30.1"
|
|
24
25
|
|
|
25
26
|
from sysmlpy.usage import (
|
|
26
27
|
Item, Attribute, Part, Port, Action, Reference, UseCase, Requirement, Interface, Message,
|
|
@@ -35,6 +36,7 @@ from sysmlpy.navigate import Searchable
|
|
|
35
36
|
from sysmlpy.store import Store, InMemoryStore, NetworkXStore, KuzuStore, CayleyStore, create_store, new_id
|
|
36
37
|
|
|
37
38
|
from sysmlpy.usage import ureg
|
|
39
|
+
from sysmlpy.antlr_parser import SysMLSyntaxError
|
|
38
40
|
|
|
39
41
|
|
|
40
42
|
def load_grammar(s, debug=False):
|
|
@@ -95,15 +97,14 @@ def load_grammar(s, debug=False):
|
|
|
95
97
|
|
|
96
98
|
return result
|
|
97
99
|
except antlr_parser.SysMLSyntaxError as e:
|
|
98
|
-
print("ANTLR4 returned the following error: {}".format(e))
|
|
99
100
|
raise
|
|
100
101
|
|
|
101
102
|
|
|
102
|
-
def load(fp):
|
|
103
|
+
def load(fp) -> Model:
|
|
103
104
|
"""SysML load from file pointer
|
|
104
105
|
|
|
105
106
|
Deserialize ``fp`` (a ``.read()``-supporting file-like object containing
|
|
106
|
-
a SysML v2.0 document) to a
|
|
107
|
+
a SysML v2.0 document) to a Model object.
|
|
107
108
|
|
|
108
109
|
Parameters
|
|
109
110
|
----------
|
|
@@ -112,8 +113,8 @@ def load(fp):
|
|
|
112
113
|
|
|
113
114
|
Returns
|
|
114
115
|
-------
|
|
115
|
-
|
|
116
|
-
|
|
116
|
+
Model
|
|
117
|
+
Model instance structured utilizing SysML v2.0 grammar
|
|
117
118
|
|
|
118
119
|
Raises
|
|
119
120
|
------
|
|
@@ -131,7 +132,7 @@ def load(fp):
|
|
|
131
132
|
return loads(fp.read())
|
|
132
133
|
|
|
133
134
|
|
|
134
|
-
def loads(s: str, library=None):
|
|
135
|
+
def loads(s: str, library=None) -> Model:
|
|
135
136
|
"""Loads a model from string.
|
|
136
137
|
|
|
137
138
|
This shortcut function allows a user to build a model from a string by
|
|
@@ -146,6 +147,11 @@ def loads(s: str, library=None):
|
|
|
146
147
|
The SysML v2 source code to parse.
|
|
147
148
|
library : str or Path, optional
|
|
148
149
|
Path to SysML v2 library files for resolving imports.
|
|
150
|
+
|
|
151
|
+
Returns
|
|
152
|
+
-------
|
|
153
|
+
Model
|
|
154
|
+
Model instance built from the SysML source.
|
|
149
155
|
"""
|
|
150
156
|
return Model().load(s, library=library)
|
|
151
157
|
|
|
@@ -195,15 +201,14 @@ def load_grammar_antlr(fp, debug=False, library=None):
|
|
|
195
201
|
try:
|
|
196
202
|
return antlr_visitor.parse_to_dict(s, library=library)
|
|
197
203
|
except antlr_parser.SysMLSyntaxError as e:
|
|
198
|
-
print("ANTLR4 returned the following error: {}".format(e))
|
|
199
204
|
raise
|
|
200
205
|
|
|
201
206
|
|
|
202
|
-
def load_antlr(fp):
|
|
207
|
+
def load_antlr(fp) -> Model:
|
|
203
208
|
"""SysML load from file pointer using ANTLR4 parser.
|
|
204
209
|
|
|
205
210
|
Deserialize ``fp`` (a ``.read()``-supporting file-like object containing
|
|
206
|
-
a SysML v2.0 document) to a
|
|
211
|
+
a SysML v2.0 document) to a Model object.
|
|
207
212
|
|
|
208
213
|
Parameters
|
|
209
214
|
----------
|
|
@@ -212,8 +217,8 @@ def load_antlr(fp):
|
|
|
212
217
|
|
|
213
218
|
Returns
|
|
214
219
|
-------
|
|
215
|
-
|
|
216
|
-
|
|
220
|
+
Model
|
|
221
|
+
Model instance structured utilizing SysML v2.0 grammar
|
|
217
222
|
|
|
218
223
|
Raises
|
|
219
224
|
------
|
|
@@ -237,7 +242,7 @@ from sysmlpy.plantuml import (to_plantuml, PlantUMLGenerator,
|
|
|
237
242
|
as_parametric_view, as_requirement_view,
|
|
238
243
|
as_tabular_view, as_data_value_tabular_view, as_relationship_matrix_view)
|
|
239
244
|
|
|
240
|
-
from sysmlpy.semantic import analyze, SemanticIssue, SemanticAnalyzer
|
|
245
|
+
from sysmlpy.semantic import analyze, AnalysisResult, SemanticIssue, SemanticAnalyzer
|
|
241
246
|
|
|
242
247
|
from sysmlpy.project import load_files, load_project, load_with_dependencies
|
|
243
248
|
|
|
@@ -230,6 +230,13 @@ class Model(Searchable):
|
|
|
230
230
|
self._ensure_body()
|
|
231
231
|
return classtree(self._get_definition()).dump()
|
|
232
232
|
|
|
233
|
+
def __str__(self) -> str:
|
|
234
|
+
"""Return the SysML v2 text representation of the model."""
|
|
235
|
+
try:
|
|
236
|
+
return self.dump()
|
|
237
|
+
except Exception:
|
|
238
|
+
return repr(self)
|
|
239
|
+
|
|
233
240
|
def _set_child(self, child):
|
|
234
241
|
"""Add a child package or element to the model.
|
|
235
242
|
|
|
@@ -247,6 +254,23 @@ class Model(Searchable):
|
|
|
247
254
|
child.parent = self
|
|
248
255
|
return self
|
|
249
256
|
|
|
257
|
+
add_child = _set_child
|
|
258
|
+
|
|
259
|
+
def _get_child(self, featurechain):
|
|
260
|
+
"""Retrieve a nested child by dot-separated name path.
|
|
261
|
+
|
|
262
|
+
Parameters
|
|
263
|
+
----------
|
|
264
|
+
featurechain : str
|
|
265
|
+
Dot-separated path like "pkg.element".
|
|
266
|
+
|
|
267
|
+
Returns
|
|
268
|
+
-------
|
|
269
|
+
element or None
|
|
270
|
+
The matching child element, or None if not found.
|
|
271
|
+
"""
|
|
272
|
+
return self
|
|
273
|
+
|
|
250
274
|
def _get_child(self, featurechain):
|
|
251
275
|
"""Retrieve a nested child by dot-separated name path.
|
|
252
276
|
|
|
@@ -479,6 +503,23 @@ class Package(Searchable):
|
|
|
479
503
|
child.parent = self
|
|
480
504
|
return self
|
|
481
505
|
|
|
506
|
+
add_child = _set_child
|
|
507
|
+
|
|
508
|
+
def _get_child(self, featurechain):
|
|
509
|
+
"""Retrieve a nested child by dot-separated name path.
|
|
510
|
+
|
|
511
|
+
Parameters
|
|
512
|
+
----------
|
|
513
|
+
featurechain : str
|
|
514
|
+
Dot-separated path like "pkg.element".
|
|
515
|
+
|
|
516
|
+
Returns
|
|
517
|
+
-------
|
|
518
|
+
element or None
|
|
519
|
+
The matching child element, or None if not found.
|
|
520
|
+
"""
|
|
521
|
+
return self
|
|
522
|
+
|
|
482
523
|
def _get_child(self, featurechain):
|
|
483
524
|
"""Retrieve a nested child by dot-separated name path.
|
|
484
525
|
|
|
@@ -587,6 +628,13 @@ class Package(Searchable):
|
|
|
587
628
|
"""
|
|
588
629
|
return classtree(self._get_definition(child=False)).dump()
|
|
589
630
|
|
|
631
|
+
def __str__(self) -> str:
|
|
632
|
+
"""Return the SysML v2 text representation of the package."""
|
|
633
|
+
try:
|
|
634
|
+
return self.dump()
|
|
635
|
+
except Exception:
|
|
636
|
+
return repr(self)
|
|
637
|
+
|
|
590
638
|
def add_import(self, namespace, visibility="private", recursive=False, membership=None):
|
|
591
639
|
"""Add an import declaration to this package.
|
|
592
640
|
|
|
@@ -16,12 +16,12 @@ After parsing, every node in the public-API tree supports::
|
|
|
16
16
|
model.actions # direct Action children
|
|
17
17
|
|
|
18
18
|
model.find('Focus') # by name, any depth
|
|
19
|
-
model.find(
|
|
20
|
-
model.find('Focus',
|
|
21
|
-
model.find(
|
|
22
|
-
model.find('Focus', recursive=False)
|
|
19
|
+
model.find(sysml_type='action') # by type keyword, any depth
|
|
20
|
+
model.find('Focus', sysml_type='action') # name + type
|
|
21
|
+
model.find(sysml_type=Action) # by class
|
|
22
|
+
model.find('Focus', recursive=False) # direct children only
|
|
23
23
|
|
|
24
|
-
model.all('part') # shorthand for find(
|
|
24
|
+
model.all('part') # shorthand for find(sysml_type='part')
|
|
25
25
|
|
|
26
26
|
Type strings
|
|
27
27
|
------------
|
|
@@ -188,17 +188,19 @@ class Searchable:
|
|
|
188
188
|
# Search methods
|
|
189
189
|
# ------------------------------------------------------------------
|
|
190
190
|
|
|
191
|
-
def find(self, name=None, *, type=None, recursive=True):
|
|
191
|
+
def find(self, name=None, *, sysml_type=None, type=None, recursive=True):
|
|
192
192
|
"""Find model elements by name and/or SysML type.
|
|
193
193
|
|
|
194
194
|
Parameters
|
|
195
195
|
----------
|
|
196
196
|
name : str, optional
|
|
197
197
|
Declared element name to match exactly. ``None`` matches any name.
|
|
198
|
-
|
|
198
|
+
sysml_type : str or class, optional
|
|
199
199
|
SysML type to filter by. Pass a string keyword (``'part'``,
|
|
200
200
|
``'action'``, …) or the corresponding class (``Part``,
|
|
201
201
|
``Action``, …). ``None`` matches any type.
|
|
202
|
+
type : str or class, optional
|
|
203
|
+
Deprecated alias for ``sysml_type``.
|
|
202
204
|
recursive : bool
|
|
203
205
|
When ``True`` (default) the search descends recursively into
|
|
204
206
|
every child that itself exposes a ``find`` method.
|
|
@@ -216,17 +218,25 @@ class Searchable:
|
|
|
216
218
|
|
|
217
219
|
Find every action, top-level only::
|
|
218
220
|
|
|
219
|
-
model.find(
|
|
221
|
+
model.find(sysml_type='action', recursive=False)
|
|
220
222
|
|
|
221
223
|
Find by class instead of string::
|
|
222
224
|
|
|
223
225
|
from sysmlpy import Part
|
|
224
|
-
model.find(
|
|
226
|
+
model.find(sysml_type=Part)
|
|
225
227
|
|
|
226
228
|
Combine name and type::
|
|
227
229
|
|
|
228
|
-
model.find('engine',
|
|
230
|
+
model.find('engine', sysml_type='part')
|
|
229
231
|
"""
|
|
232
|
+
if type is not None and sysml_type is None:
|
|
233
|
+
import warnings
|
|
234
|
+
warnings.warn(
|
|
235
|
+
"find(type=...) is deprecated; use find(sysml_type=...) instead",
|
|
236
|
+
DeprecationWarning, stacklevel=2
|
|
237
|
+
)
|
|
238
|
+
sysml_type = type
|
|
239
|
+
|
|
230
240
|
results = []
|
|
231
241
|
for child in getattr(self, "children", []):
|
|
232
242
|
# --- name gate ---
|
|
@@ -236,32 +246,34 @@ class Searchable:
|
|
|
236
246
|
name_ok = True
|
|
237
247
|
|
|
238
248
|
# --- type gate ---
|
|
239
|
-
if
|
|
249
|
+
if sysml_type is None:
|
|
240
250
|
type_ok = True
|
|
241
|
-
elif isinstance(
|
|
242
|
-
type_ok = getattr(child, "sysml_type", None) ==
|
|
251
|
+
elif isinstance(sysml_type, str):
|
|
252
|
+
type_ok = getattr(child, "sysml_type", None) == sysml_type
|
|
243
253
|
else:
|
|
244
|
-
type_ok = isinstance(child,
|
|
254
|
+
type_ok = isinstance(child, sysml_type)
|
|
245
255
|
|
|
246
256
|
if name_ok and type_ok:
|
|
247
257
|
results.append(child)
|
|
248
258
|
|
|
249
259
|
# --- recurse ---
|
|
250
260
|
if recursive and hasattr(child, "find"):
|
|
251
|
-
results.extend(child.find(name=name,
|
|
261
|
+
results.extend(child.find(name=name, sysml_type=sysml_type, recursive=True))
|
|
252
262
|
|
|
253
263
|
return results
|
|
254
264
|
|
|
255
|
-
def all(self, type, recursive=True):
|
|
256
|
-
"""Return all elements of *
|
|
265
|
+
def all(self, sysml_type, type=None, recursive=True):
|
|
266
|
+
"""Return all elements of *sysml_type*, searching recursively by default.
|
|
257
267
|
|
|
258
|
-
This is a convenience alias for ``find(
|
|
268
|
+
This is a convenience alias for ``find(sysml_type=sysml_type, recursive=recursive)``.
|
|
259
269
|
|
|
260
270
|
Parameters
|
|
261
271
|
----------
|
|
262
|
-
|
|
272
|
+
sysml_type : str or class
|
|
263
273
|
SysML type string (``'part'``, ``'action'``, …) or the
|
|
264
274
|
corresponding class.
|
|
275
|
+
type : str or class, optional
|
|
276
|
+
Deprecated alias for ``sysml_type``.
|
|
265
277
|
recursive : bool
|
|
266
278
|
When ``True`` (default) the search descends into every child.
|
|
267
279
|
|
|
@@ -269,4 +281,44 @@ class Searchable:
|
|
|
269
281
|
-------
|
|
270
282
|
list
|
|
271
283
|
"""
|
|
272
|
-
|
|
284
|
+
if type is not None and sysml_type is None:
|
|
285
|
+
import warnings
|
|
286
|
+
warnings.warn(
|
|
287
|
+
"all(type=...) is deprecated; use all(sysml_type=...) instead",
|
|
288
|
+
DeprecationWarning, stacklevel=2
|
|
289
|
+
)
|
|
290
|
+
sysml_type = type
|
|
291
|
+
return self.find(sysml_type=sysml_type, recursive=recursive)
|
|
292
|
+
|
|
293
|
+
def find_one(self, name=None, *, sysml_type=None):
|
|
294
|
+
"""Return the single matching element, or None if not found.
|
|
295
|
+
|
|
296
|
+
Raises LookupError if more than one match is found.
|
|
297
|
+
Use find() if you expect multiple results.
|
|
298
|
+
"""
|
|
299
|
+
results = self.find(name, sysml_type=sysml_type)
|
|
300
|
+
if not results:
|
|
301
|
+
return None
|
|
302
|
+
if len(results) > 1:
|
|
303
|
+
raise LookupError(
|
|
304
|
+
f"find_one: {len(results)} matches for {name!r}, expected at most 1"
|
|
305
|
+
)
|
|
306
|
+
return results[0]
|
|
307
|
+
|
|
308
|
+
# ------------------------------------------------------------------
|
|
309
|
+
# Container protocol (__iter__, __len__, __contains__)
|
|
310
|
+
# ------------------------------------------------------------------
|
|
311
|
+
|
|
312
|
+
def __iter__(self):
|
|
313
|
+
"""Iterate over direct children."""
|
|
314
|
+
return iter(self.children)
|
|
315
|
+
|
|
316
|
+
def __len__(self) -> int:
|
|
317
|
+
"""Return the number of direct children."""
|
|
318
|
+
return len(self.children)
|
|
319
|
+
|
|
320
|
+
def __contains__(self, item) -> bool:
|
|
321
|
+
"""True if item is a direct child, or if a string matches any child's name."""
|
|
322
|
+
if isinstance(item, str):
|
|
323
|
+
return any(getattr(c, 'name', None) == item for c in self.children)
|
|
324
|
+
return item in self.children
|
|
@@ -28,6 +28,38 @@ class SemanticIssue:
|
|
|
28
28
|
reference: str = ""
|
|
29
29
|
|
|
30
30
|
|
|
31
|
+
class AnalysisResult(list):
|
|
32
|
+
"""A list of SemanticIssue with convenience accessors.
|
|
33
|
+
|
|
34
|
+
Backward-compatible with ``list[SemanticIssue]`` — existing code that
|
|
35
|
+
iterates or checks ``isinstance(result, list)`` continues to work.
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
@property
|
|
39
|
+
def errors(self) -> list[SemanticIssue]:
|
|
40
|
+
"""Return only error-severity issues."""
|
|
41
|
+
return [i for i in self if i.severity == "error"]
|
|
42
|
+
|
|
43
|
+
@property
|
|
44
|
+
def warnings(self) -> list[SemanticIssue]:
|
|
45
|
+
"""Return only warning-severity issues."""
|
|
46
|
+
return [i for i in self if i.severity == "warning"]
|
|
47
|
+
|
|
48
|
+
def raise_on_errors(self, message: str = "Semantic errors found") -> "AnalysisResult":
|
|
49
|
+
"""Raise ValueError if any error-severity issues exist.
|
|
50
|
+
|
|
51
|
+
Returns self for chaining when no errors are present.
|
|
52
|
+
"""
|
|
53
|
+
if self.errors:
|
|
54
|
+
details = "\n".join(f" [{i.code}] {i.message}" for i in self.errors)
|
|
55
|
+
raise ValueError(f"{message}:\n{details}")
|
|
56
|
+
return self
|
|
57
|
+
|
|
58
|
+
def __bool__(self) -> bool:
|
|
59
|
+
"""True when there are no errors (warnings are acceptable)."""
|
|
60
|
+
return len(self.errors) == 0
|
|
61
|
+
|
|
62
|
+
|
|
31
63
|
# ---------------------------------------------------------------------------
|
|
32
64
|
# Library Symbol Index
|
|
33
65
|
# ---------------------------------------------------------------------------
|
|
@@ -2096,7 +2128,8 @@ def analyze(
|
|
|
2096
2128
|
library: Path | Sequence[Path] | str | Sequence[str] | None = None,
|
|
2097
2129
|
filename: str | Path | None = None,
|
|
2098
2130
|
style_checks: bool = True,
|
|
2099
|
-
|
|
2131
|
+
strict: bool = False,
|
|
2132
|
+
) -> AnalysisResult:
|
|
2100
2133
|
"""Run semantic analysis on *model* and return issues.
|
|
2101
2134
|
|
|
2102
2135
|
Parameters
|
|
@@ -2111,12 +2144,20 @@ def analyze(
|
|
|
2111
2144
|
style_checks : bool
|
|
2112
2145
|
If True (default), run stylistic checks (naming conventions,
|
|
2113
2146
|
file-package matching). Set to False to skip warnings.
|
|
2147
|
+
strict : bool
|
|
2148
|
+
If True, raises ValueError when any error-severity issues are found.
|
|
2149
|
+
Default False.
|
|
2114
2150
|
|
|
2115
2151
|
Returns
|
|
2116
2152
|
-------
|
|
2117
|
-
|
|
2118
|
-
List of semantic issues found
|
|
2153
|
+
AnalysisResult
|
|
2154
|
+
List of semantic issues found, wrapped in AnalysisResult for
|
|
2155
|
+
convenient access to ``.errors`` and ``.warnings`` properties.
|
|
2119
2156
|
"""
|
|
2120
|
-
|
|
2157
|
+
issues = SemanticAnalyzer().analyze(
|
|
2121
2158
|
model, library=library, filename=filename, style_checks=style_checks
|
|
2122
2159
|
)
|
|
2160
|
+
result = AnalysisResult(issues)
|
|
2161
|
+
if strict:
|
|
2162
|
+
result.raise_on_errors()
|
|
2163
|
+
return result
|
|
@@ -313,6 +313,13 @@ class Usage(Searchable):
|
|
|
313
313
|
"""
|
|
314
314
|
return classtree(self._get_definition(child)).dump()
|
|
315
315
|
|
|
316
|
+
def __str__(self) -> str:
|
|
317
|
+
"""Return the SysML v2 text representation of this element."""
|
|
318
|
+
try:
|
|
319
|
+
return self.dump()
|
|
320
|
+
except Exception:
|
|
321
|
+
return repr(self)
|
|
322
|
+
|
|
316
323
|
def __repr__(self):
|
|
317
324
|
"""Return a constructor-mirroring string representation.
|
|
318
325
|
|
|
@@ -429,6 +436,8 @@ class Usage(Searchable):
|
|
|
429
436
|
child.parent = self
|
|
430
437
|
return self
|
|
431
438
|
|
|
439
|
+
add_child = _set_child
|
|
440
|
+
|
|
432
441
|
def _get_child(self, featurechain):
|
|
433
442
|
"""Retrieve a nested child by dot-separated name path.
|
|
434
443
|
|
|
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.30.0 → sysmlpy-0.30.1}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp
RENAMED
|
File without changes
|
{sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py
RENAMED
|
File without changes
|
{sysmlpy-0.30.0 → sysmlpy-0.30.1}/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
|
{sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Analysis/SampledFunctions.sysml
RENAMED
|
File without changes
|
{sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Analysis/StateSpaceRepresentation.sysml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Cause and Effect/CauseAndEffect.sysml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Metadata/ModelingMetadata.sysml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/ISQAcoustics.sysml
RENAMED
|
File without changes
|
|
File without changes
|
{sysmlpy-0.30.0 → sysmlpy-0.30.1}/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.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/ISQLight.sysml
RENAMED
|
File without changes
|
{sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/ISQMechanics.sysml
RENAMED
|
File without changes
|
{sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/ISQSpaceTime.sysml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/Quantities.sysml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sysmlpy-0.30.0 → sysmlpy-0.30.1}/src/sysmlpy/library/domain/Quantities and Units/SIPrefixes.sysml
RENAMED
|
File without changes
|
|
File without changes
|
{sysmlpy-0.30.0 → sysmlpy-0.30.1}/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.30.0 → sysmlpy-0.30.1}/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
|