sysmlpy 0.30.1__tar.gz → 0.30.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.30.1 → sysmlpy-0.30.2}/PKG-INFO +1 -1
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/pyproject.toml +2 -2
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/__init__.py +23 -2
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/definition.py +8 -2
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/navigate.py +22 -3
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/usage.py +35 -5
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/LICENSE +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/README.md +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/__main__.py +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/antlr/README.md +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/antlr/SysMLv2Lexer.interp +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/antlr/SysMLv2Lexer.py +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/antlr/SysMLv2Lexer.tokens +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/antlr/SysMLv2Parser.interp +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/antlr/SysMLv2Parser.py +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/antlr/SysMLv2Parser.tokens +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/antlr/SysMLv2ParserListener.py +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/antlr/SysMLv2ParserVisitor.py +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.tokens +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/antlr_parser.py +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/antlr_visitor.py +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/examples/attribute_values.py +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/examples/part_attributes.py +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/examples/tuples_sequences.py +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/formatting.py +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/grammar/antlr4/README.md +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.g4 +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.tokens +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.g4 +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.interp +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.py +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/grammar/antlr4/SysMLv2Parser.tokens +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/grammar/antlr4/SysMLv2ParserListener.py +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/grammar/antlr4/SysMLv2ParserVisitor.py +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/grammar/antlr4/desc.xml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/grammar/antlr4/examples/camera.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/grammar/antlr4/examples/toaster-system.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/grammar/antlr4/examples/vehicle-model.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/grammar/antlr4/pom.xml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/grammar/classes.py +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/LICENSE +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/README.md +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/__init__.py +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Analysis/AnalysisTooling.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Analysis/SampledFunctions.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Analysis/StateSpaceRepresentation.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Analysis/TradeStudies.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Cause and Effect/CausationConnections.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Cause and Effect/CauseAndEffect.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Geometry/ShapeItems.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Geometry/SpatialItems.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Metadata/ImageMetadata.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Metadata/ModelingMetadata.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Metadata/ParametersOfInterestMetadata.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Metadata/RiskMetadata.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/ISQ.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/ISQAcoustics.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/ISQAtomicNuclear.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/ISQBase.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/ISQCharacteristicNumbers.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/ISQChemistryMolecular.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/ISQCondensedMatter.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/ISQElectromagnetism.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/ISQInformation.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/ISQLight.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/ISQMechanics.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/ISQSpaceTime.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/ISQThermodynamics.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/MeasurementRefCalculations.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/MeasurementReferences.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/Quantities.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/QuantityCalculations.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/SI.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/SIPrefixes.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/TensorCalculations.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/Time.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/USCustomaryUnits.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/VectorCalculations.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Requirement Derivation/DerivationConnections.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Requirement Derivation/RequirementDerivation.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/Base.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/BaseFunctions.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/BooleanFunctions.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/Clocks.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/CollectionFunctions.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/Collections.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/ComplexFunctions.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/ControlFunctions.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/ControlPerformances.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/DataFunctions.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/FeatureReferencingPerformances.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/IntegerFunctions.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/KerML.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/Links.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/Metaobjects.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/NaturalFunctions.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/NumericalFunctions.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/Objects.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/Observation.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/OccurrenceFunctions.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/Occurrences.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/Performances.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/RationalFunctions.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/RealFunctions.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/ScalarFunctions.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/ScalarValues.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/SequenceFunctions.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/SpatialFrames.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/StatePerformances.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/StringFunctions.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/Transfers.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/TransitionPerformances.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/TrigFunctions.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/Triggers.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/VectorFunctions.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/kernel/VectorValues.kerml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/systems/Actions.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/systems/Allocations.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/systems/AnalysisCases.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/systems/Attributes.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/systems/Calculations.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/systems/Cases.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/systems/Connections.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/systems/Constraints.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/systems/Flows.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/systems/Interfaces.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/systems/Items.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/systems/Metadata.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/systems/Parts.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/systems/Ports.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/systems/Requirements.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/systems/StandardViewDefinitions.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/systems/States.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/systems/SysML.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/systems/UseCases.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/systems/VerificationCases.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/systems/Views.sysml +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/plantuml.py +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/project.py +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/semantic.py +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/store.py +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/us_customary_units.txt +0 -0
- {sysmlpy-0.30.1 → sysmlpy-0.30.2}/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.2"
|
|
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.2"
|
|
118
118
|
description = ""
|
|
119
119
|
authors = ["Jon R. Fox (mycr0ft) <jon.fox@drfox.com>"]
|
|
120
120
|
readme = "README.md"
|
|
@@ -8,7 +8,7 @@ Uses the ANTLR4 parser for full SysML v2 grammar support.
|
|
|
8
8
|
"""
|
|
9
9
|
|
|
10
10
|
__all__ = [
|
|
11
|
-
"load", "loads", "load_grammar", "load_antlr", "load_grammar_antlr",
|
|
11
|
+
"load", "loads", "parse", "load_grammar", "load_antlr", "load_grammar_antlr",
|
|
12
12
|
"load_files", "load_project", "load_with_dependencies",
|
|
13
13
|
"Searchable",
|
|
14
14
|
"Store", "InMemoryStore", "NetworkXStore", "KuzuStore", "CayleyStore", "create_store", "new_id",
|
|
@@ -21,7 +21,7 @@ __all__ = [
|
|
|
21
21
|
"SysMLSyntaxError",
|
|
22
22
|
]
|
|
23
23
|
__author__ = "Jon Fox"
|
|
24
|
-
__version__ = "0.30.
|
|
24
|
+
__version__ = "0.30.2"
|
|
25
25
|
|
|
26
26
|
from sysmlpy.usage import (
|
|
27
27
|
Item, Attribute, Part, Port, Action, Reference, UseCase, Requirement, Interface, Message,
|
|
@@ -156,6 +156,27 @@ def loads(s: str, library=None) -> Model:
|
|
|
156
156
|
return Model().load(s, library=library)
|
|
157
157
|
|
|
158
158
|
|
|
159
|
+
def parse(s: str, library=None):
|
|
160
|
+
"""Parse SysML source, returning (model, errors) rather than raising.
|
|
161
|
+
|
|
162
|
+
Parameters
|
|
163
|
+
----------
|
|
164
|
+
s : str
|
|
165
|
+
The SysML v2 source code to parse.
|
|
166
|
+
library : str or Path, optional
|
|
167
|
+
Path to SysML v2 library files for resolving imports.
|
|
168
|
+
|
|
169
|
+
Returns
|
|
170
|
+
-------
|
|
171
|
+
tuple[Model | None, list[str]]
|
|
172
|
+
``(Model, [])`` on success, ``(None, [error_lines])`` on syntax error.
|
|
173
|
+
"""
|
|
174
|
+
try:
|
|
175
|
+
return loads(s, library=library), []
|
|
176
|
+
except SysMLSyntaxError as e:
|
|
177
|
+
return None, str(e).splitlines()
|
|
178
|
+
|
|
179
|
+
|
|
159
180
|
def load_grammar_antlr(fp, debug=False, library=None):
|
|
160
181
|
"""SysML load from file pointer using ANTLR4 parser.
|
|
161
182
|
|
|
@@ -203,7 +203,7 @@ class Model(Searchable):
|
|
|
203
203
|
"""
|
|
204
204
|
return self.grammar.get_definition()
|
|
205
205
|
|
|
206
|
-
def dump(self):
|
|
206
|
+
def dump(self) -> str:
|
|
207
207
|
"""Serialize the model to SysML v2 textual notation.
|
|
208
208
|
|
|
209
209
|
Returns
|
|
@@ -300,6 +300,8 @@ class Model(Searchable):
|
|
|
300
300
|
else:
|
|
301
301
|
return child._get_child(featurechain)
|
|
302
302
|
|
|
303
|
+
get_child = _get_child
|
|
304
|
+
|
|
303
305
|
# ── Convenience functions ───────────────────────────────────────────
|
|
304
306
|
|
|
305
307
|
def find_all(self, type=None, name=None):
|
|
@@ -476,6 +478,8 @@ class Package(Searchable):
|
|
|
476
478
|
|
|
477
479
|
return self
|
|
478
480
|
|
|
481
|
+
set_name = _set_name
|
|
482
|
+
|
|
479
483
|
def _get_name(self):
|
|
480
484
|
"""Retrieve the declared name from the package grammar.
|
|
481
485
|
|
|
@@ -550,6 +554,8 @@ class Package(Searchable):
|
|
|
550
554
|
else:
|
|
551
555
|
return child._get_child(featurechain)
|
|
552
556
|
|
|
557
|
+
get_child = _get_child
|
|
558
|
+
|
|
553
559
|
def _ensure_body(self):
|
|
554
560
|
"""Rebuild the package grammar body from current children and imports.
|
|
555
561
|
|
|
@@ -613,7 +619,7 @@ class Package(Searchable):
|
|
|
613
619
|
|
|
614
620
|
return package
|
|
615
621
|
|
|
616
|
-
def dump(self, child=None):
|
|
622
|
+
def dump(self, child=None) -> str:
|
|
617
623
|
"""Serialize the package to SysML v2 textual notation.
|
|
618
624
|
|
|
619
625
|
Parameters
|
|
@@ -188,7 +188,7 @@ class Searchable:
|
|
|
188
188
|
# Search methods
|
|
189
189
|
# ------------------------------------------------------------------
|
|
190
190
|
|
|
191
|
-
def find(self, name=None, *, sysml_type=None, type=None, recursive=True):
|
|
191
|
+
def find(self, name=None, *, sysml_type=None, type=None, recursive=True) -> "list[Searchable]":
|
|
192
192
|
"""Find model elements by name and/or SysML type.
|
|
193
193
|
|
|
194
194
|
Parameters
|
|
@@ -262,7 +262,7 @@ class Searchable:
|
|
|
262
262
|
|
|
263
263
|
return results
|
|
264
264
|
|
|
265
|
-
def all(self, sysml_type, type=None, recursive=True):
|
|
265
|
+
def all(self, sysml_type, type=None, recursive=True) -> "list[Searchable]":
|
|
266
266
|
"""Return all elements of *sysml_type*, searching recursively by default.
|
|
267
267
|
|
|
268
268
|
This is a convenience alias for ``find(sysml_type=sysml_type, recursive=recursive)``.
|
|
@@ -290,7 +290,7 @@ class Searchable:
|
|
|
290
290
|
sysml_type = type
|
|
291
291
|
return self.find(sysml_type=sysml_type, recursive=recursive)
|
|
292
292
|
|
|
293
|
-
def find_one(self, name=None, *, sysml_type=None):
|
|
293
|
+
def find_one(self, name=None, *, sysml_type=None) -> "Searchable | None":
|
|
294
294
|
"""Return the single matching element, or None if not found.
|
|
295
295
|
|
|
296
296
|
Raises LookupError if more than one match is found.
|
|
@@ -322,3 +322,22 @@ class Searchable:
|
|
|
322
322
|
if isinstance(item, str):
|
|
323
323
|
return any(getattr(c, 'name', None) == item for c in self.children)
|
|
324
324
|
return item in self.children
|
|
325
|
+
|
|
326
|
+
# ------------------------------------------------------------------
|
|
327
|
+
# Jupyter HTML representation
|
|
328
|
+
# ------------------------------------------------------------------
|
|
329
|
+
|
|
330
|
+
def _repr_html_(self) -> str:
|
|
331
|
+
"""Jupyter-friendly collapsible HTML tree."""
|
|
332
|
+
def _render(elem, depth=0):
|
|
333
|
+
name = getattr(elem, 'name', '?')
|
|
334
|
+
stype = getattr(elem, 'sysml_type', type(elem).__name__)
|
|
335
|
+
is_def = getattr(elem, 'is_definition', False)
|
|
336
|
+
badge = f'<code style="color:#888;font-size:0.8em">{stype}{"_def" if is_def else ""}</code>'
|
|
337
|
+
children = getattr(elem, 'children', [])
|
|
338
|
+
if children:
|
|
339
|
+
inner = ''.join(_render(c, depth + 1) for c in children)
|
|
340
|
+
return (f'<details open><summary>{badge} <b>{name}</b></summary>'
|
|
341
|
+
f'<div style="margin-left:1em">{inner}</div></details>')
|
|
342
|
+
return f'<div>{badge} {name}</div>'
|
|
343
|
+
return f'<div style="font-family:monospace">{_render(self)}</div>'
|
|
@@ -298,7 +298,7 @@ class Usage(Searchable):
|
|
|
298
298
|
|
|
299
299
|
return package
|
|
300
300
|
|
|
301
|
-
def dump(self, child=None):
|
|
301
|
+
def dump(self, child=None) -> str:
|
|
302
302
|
"""Serialize this element to SysML v2 textual notation.
|
|
303
303
|
|
|
304
304
|
Parameters
|
|
@@ -409,6 +409,8 @@ class Usage(Searchable):
|
|
|
409
409
|
|
|
410
410
|
return self
|
|
411
411
|
|
|
412
|
+
set_name = _set_name
|
|
413
|
+
|
|
412
414
|
def _get_name(self):
|
|
413
415
|
"""Retrieve the declared name from the grammar element.
|
|
414
416
|
|
|
@@ -468,6 +470,8 @@ class Usage(Searchable):
|
|
|
468
470
|
else:
|
|
469
471
|
return child._get_child(featurechain)
|
|
470
472
|
|
|
473
|
+
get_child = _get_child
|
|
474
|
+
|
|
471
475
|
def _set_typed_by(self, typed):
|
|
472
476
|
"""Set the typing relationship for this usage element.
|
|
473
477
|
|
|
@@ -531,6 +535,8 @@ class Usage(Searchable):
|
|
|
531
535
|
raise ValueError("Typed by element was not a definition.")
|
|
532
536
|
return self
|
|
533
537
|
|
|
538
|
+
set_typed_by = _set_typed_by
|
|
539
|
+
|
|
534
540
|
def _set_specializes(self, *parents):
|
|
535
541
|
"""Set specialization (`:>`) for definitions.
|
|
536
542
|
|
|
@@ -565,6 +571,8 @@ class Usage(Searchable):
|
|
|
565
571
|
)
|
|
566
572
|
return self
|
|
567
573
|
|
|
574
|
+
set_specializes = _set_specializes
|
|
575
|
+
|
|
568
576
|
def _set_subsets(self, *parents):
|
|
569
577
|
"""Set subsetting (`:>`) for usage elements.
|
|
570
578
|
|
|
@@ -611,6 +619,8 @@ class Usage(Searchable):
|
|
|
611
619
|
)
|
|
612
620
|
return self
|
|
613
621
|
|
|
622
|
+
set_subsets = _set_subsets
|
|
623
|
+
|
|
614
624
|
def _set_redefines(self, parent):
|
|
615
625
|
"""Set redefinition (`:>>`) for usage elements.
|
|
616
626
|
|
|
@@ -652,6 +662,8 @@ class Usage(Searchable):
|
|
|
652
662
|
)
|
|
653
663
|
return self
|
|
654
664
|
|
|
665
|
+
set_redefines = _set_redefines
|
|
666
|
+
|
|
655
667
|
def _get_grammar(self):
|
|
656
668
|
"""Ensure the grammar tree is up to date and return it.
|
|
657
669
|
|
|
@@ -1517,7 +1529,7 @@ class Interface(Usage):
|
|
|
1517
1529
|
self.children = []
|
|
1518
1530
|
self.typedby = None
|
|
1519
1531
|
self.parent = None
|
|
1520
|
-
self.grammar =
|
|
1532
|
+
self.grammar = None
|
|
1521
1533
|
self.iface_shortname = shortname
|
|
1522
1534
|
self.ends = [] # list of (name, type_name, multiplicity, children)
|
|
1523
1535
|
self.iface_connections = [] # list of (from_path, to_path)
|
|
@@ -1553,6 +1565,8 @@ class Interface(Usage):
|
|
|
1553
1565
|
self._typed_by_name = typed.name if hasattr(typed, 'name') else str(typed)
|
|
1554
1566
|
return self
|
|
1555
1567
|
|
|
1568
|
+
set_typed_by = _set_typed_by
|
|
1569
|
+
|
|
1556
1570
|
def _set_specializes(self, *parents):
|
|
1557
1571
|
"""Set specialization (`:>`) for interface definitions."""
|
|
1558
1572
|
self._specializes_names = [
|
|
@@ -1560,6 +1574,8 @@ class Interface(Usage):
|
|
|
1560
1574
|
]
|
|
1561
1575
|
return self
|
|
1562
1576
|
|
|
1577
|
+
set_specializes = _set_specializes
|
|
1578
|
+
|
|
1563
1579
|
def dump(self):
|
|
1564
1580
|
name_str = getattr(self, 'name', "") or ""
|
|
1565
1581
|
keyword = getattr(self, 'keyword', 'interface')
|
|
@@ -2190,6 +2206,8 @@ class Action(Usage):
|
|
|
2190
2206
|
self._typed_by_name = typed.name if hasattr(typed, 'name') else str(typed)
|
|
2191
2207
|
return self
|
|
2192
2208
|
|
|
2209
|
+
set_typed_by = _set_typed_by
|
|
2210
|
+
|
|
2193
2211
|
def _set_specializes(self, *parents):
|
|
2194
2212
|
"""Set specialization (`:>`) for action definitions."""
|
|
2195
2213
|
self._specializes_names = [
|
|
@@ -2197,6 +2215,8 @@ class Action(Usage):
|
|
|
2197
2215
|
]
|
|
2198
2216
|
return self
|
|
2199
2217
|
|
|
2218
|
+
set_specializes = _set_specializes
|
|
2219
|
+
|
|
2200
2220
|
|
|
2201
2221
|
class UseCase(Usage):
|
|
2202
2222
|
"""SysML v2 UseCase usage/definition.
|
|
@@ -2215,7 +2235,7 @@ class UseCase(Usage):
|
|
|
2215
2235
|
self.grammar = UseCaseDefinition()
|
|
2216
2236
|
self.grammar.declaration.identification.declaredName = name if name else None
|
|
2217
2237
|
else:
|
|
2218
|
-
self.grammar =
|
|
2238
|
+
self.grammar = None
|
|
2219
2239
|
|
|
2220
2240
|
self.is_definition = definition
|
|
2221
2241
|
self.name = name if name else str(uuidlib.uuid4())
|
|
@@ -2310,6 +2330,8 @@ class UseCase(Usage):
|
|
|
2310
2330
|
self._typed_by_name = typed.name if hasattr(typed, 'name') else str(typed)
|
|
2311
2331
|
return self
|
|
2312
2332
|
|
|
2333
|
+
set_typed_by = _set_typed_by
|
|
2334
|
+
|
|
2313
2335
|
def _set_specializes(self, *parents):
|
|
2314
2336
|
"""Set specialization (`:>`) for use case definitions."""
|
|
2315
2337
|
self._specializes_names = [
|
|
@@ -2317,6 +2339,8 @@ class UseCase(Usage):
|
|
|
2317
2339
|
]
|
|
2318
2340
|
return self
|
|
2319
2341
|
|
|
2342
|
+
set_specializes = _set_specializes
|
|
2343
|
+
|
|
2320
2344
|
def dump(self):
|
|
2321
2345
|
name_str = getattr(self, 'name', "") or ""
|
|
2322
2346
|
keyword = getattr(self, 'keyword', 'use case')
|
|
@@ -2409,7 +2433,7 @@ class Requirement(Usage):
|
|
|
2409
2433
|
if self.grammar.declaration is not None and hasattr(self.grammar.declaration, 'identification'):
|
|
2410
2434
|
self.grammar.declaration.identification.declaredName = name if name else None
|
|
2411
2435
|
else:
|
|
2412
|
-
self.grammar =
|
|
2436
|
+
self.grammar = None
|
|
2413
2437
|
|
|
2414
2438
|
self.is_definition = definition
|
|
2415
2439
|
self.name = name if name else str(uuidlib.uuid4())
|
|
@@ -2522,6 +2546,8 @@ class Requirement(Usage):
|
|
|
2522
2546
|
self._typed_by_name = typed.name if hasattr(typed, 'name') else str(typed)
|
|
2523
2547
|
return self
|
|
2524
2548
|
|
|
2549
|
+
set_typed_by = _set_typed_by
|
|
2550
|
+
|
|
2525
2551
|
def _set_specializes(self, *parents):
|
|
2526
2552
|
"""Set specialization (`:>`) for requirement definitions."""
|
|
2527
2553
|
self._specializes_names = [
|
|
@@ -2529,6 +2555,8 @@ class Requirement(Usage):
|
|
|
2529
2555
|
]
|
|
2530
2556
|
return self
|
|
2531
2557
|
|
|
2558
|
+
set_specializes = _set_specializes
|
|
2559
|
+
|
|
2532
2560
|
def dump(self):
|
|
2533
2561
|
name_str = getattr(self, 'name', "") or ""
|
|
2534
2562
|
keyword = getattr(self, 'keyword', 'requirement')
|
|
@@ -2653,7 +2681,7 @@ class Message(Usage):
|
|
|
2653
2681
|
self.children = []
|
|
2654
2682
|
self.typedby = None
|
|
2655
2683
|
self.parent = None
|
|
2656
|
-
self.grammar =
|
|
2684
|
+
self.grammar = None
|
|
2657
2685
|
self.from_port = from_port
|
|
2658
2686
|
self.to_port = to_port
|
|
2659
2687
|
self.of_type = of_type
|
|
@@ -3804,6 +3832,8 @@ class Reference(Usage):
|
|
|
3804
3832
|
"""Alias for set_type for consistency with other classes."""
|
|
3805
3833
|
return self.set_type(type_obj)
|
|
3806
3834
|
|
|
3835
|
+
set_typed_by = _set_typed_by
|
|
3836
|
+
|
|
3807
3837
|
def dump(self):
|
|
3808
3838
|
name_str = getattr(self, 'name', "") or ""
|
|
3809
3839
|
type_str = ""
|
|
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.1 → sysmlpy-0.30.2}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp
RENAMED
|
File without changes
|
{sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py
RENAMED
|
File without changes
|
{sysmlpy-0.30.1 → sysmlpy-0.30.2}/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.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Analysis/SampledFunctions.sysml
RENAMED
|
File without changes
|
{sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Analysis/StateSpaceRepresentation.sysml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sysmlpy-0.30.1 → sysmlpy-0.30.2}/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.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Metadata/ModelingMetadata.sysml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/ISQAcoustics.sysml
RENAMED
|
File without changes
|
|
File without changes
|
{sysmlpy-0.30.1 → sysmlpy-0.30.2}/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.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/ISQLight.sysml
RENAMED
|
File without changes
|
{sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/ISQMechanics.sysml
RENAMED
|
File without changes
|
{sysmlpy-0.30.1 → sysmlpy-0.30.2}/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.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/Quantities.sysml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sysmlpy-0.30.1 → sysmlpy-0.30.2}/src/sysmlpy/library/domain/Quantities and Units/SIPrefixes.sysml
RENAMED
|
File without changes
|
|
File without changes
|
{sysmlpy-0.30.1 → sysmlpy-0.30.2}/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.1 → sysmlpy-0.30.2}/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
|