opensysml 0.10.2.dev20261022__tar.gz → 0.10.2.dev20261023__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.
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/PKG-INFO +1 -1
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/_version.py +1 -1
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/release-digests.json +6 -6
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/symbol.py +8 -1
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml.egg-info/PKG-INFO +1 -1
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml.egg-info/SOURCES.txt +1 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_conversion.py +8 -3
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_edit.py +20 -5
- opensysml-0.10.2.dev20261023/tests/test_variation_metadata.py +78 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/README.md +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/__init__.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/_dist.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/action_run.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/binary.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/capabilities.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/check.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/connection.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/conversion.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/diagnostic.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/document.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/edit.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/engines.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/enumeration.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/errors.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/exploration.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/fmi_runner.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/generate.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/importcompare.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/instance.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/metamodel/__init__.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/metamodel/_generated.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/metamodel/_reader.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/metamodel/_runtime.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/model.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/proto/__init__.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/proto/sysml_pb2.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/proto/sysml_pb2.pyi +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/proto/sysml_pb2_grpc.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/py.typed +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/query.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/runs.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/signing.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/sources.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/typed.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/typefacts.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/values.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/verdict.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml.egg-info/dependency_links.txt +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml.egg-info/entry_points.txt +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml.egg-info/requires.txt +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml.egg-info/top_level.txt +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/pyproject.toml +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/setup.cfg +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_analysis_integration.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_api.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_api_reference.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_big_integer.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_binary.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_capabilities.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_check.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_check_version.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_complex.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_connection.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_diagnostic.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_document.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_engines.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_enumeration.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_errors.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_evaluate_subject.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_explore.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_feature_values.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_feature_values_capability.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_fmi_runner.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_function.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_generate.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_generate_golden.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_import_compare.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_infinity.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_instance.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_integration.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_legacy_pysysml_placeholder.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_lifecycle.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_measurement_ref.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_metamodel.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_metamodel_reader.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_metamodel_toolkit.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_metamodel_typing.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_metaobject.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_migration.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_model.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_model_surface_integration.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_parse_sources.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_parser_warnings.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_performed_action_pin_shape.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_performed_action_unbound_input.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_performer.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_pin_release_checksums.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_quantity.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_query.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_rational.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_refresh_diagnostics.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_response_compression.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_runs.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_runtime.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_runtime_integration.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_schedule.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_set_tensor.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_signing.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_snapshot_version.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_stale_service.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_strict_and_lookup.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_strict_conformance.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_structured.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_sweep_integration.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_symbol.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_target.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_tool_dry_run.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_typed.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_undetermined.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_unset.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_verification.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_verification_arguments.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_verification_questions.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_version.py +0 -0
- {opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_wire_compat.py +0 -0
{opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/release-digests.json
RENAMED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"Open-MBEE/OpenSysML": {
|
|
3
|
-
"nightly-
|
|
4
|
-
"sysml-grpc-darwin-amd64": "
|
|
5
|
-
"sysml-grpc-darwin-arm64": "
|
|
6
|
-
"sysml-grpc-linux-amd64": "
|
|
7
|
-
"sysml-grpc-linux-arm64": "
|
|
8
|
-
"sysml-grpc-windows-amd64.exe": "
|
|
3
|
+
"nightly-20261023-47a8251a8": {
|
|
4
|
+
"sysml-grpc-darwin-amd64": "ebb09c4f7010008fc60a363bd239be6cf6757ac53a93c8d011627710d7baf64c",
|
|
5
|
+
"sysml-grpc-darwin-arm64": "b8a905863e3bbe568a22275479a19d096cafa6c2753741206241872ffeb00bcf",
|
|
6
|
+
"sysml-grpc-linux-amd64": "e4b57b960b41b494e4913a03f113b906b04b9aa1806e49c325a72a16badd5521",
|
|
7
|
+
"sysml-grpc-linux-arm64": "b46f4074f8c7b051edf86dca1a235a6cb647ea8b99296e8a244aa63847bf6a17",
|
|
8
|
+
"sysml-grpc-windows-amd64.exe": "ed83e50d23eccaa985317736863bb0f49870d405289b5ef5d764fd75da8ed1bb"
|
|
9
9
|
},
|
|
10
10
|
"v0.0.5": {
|
|
11
11
|
"sysml-grpc-darwin-amd64": "ab2933f168341bed3157bac0026d2c5a51bdb1c4629618178123f7ca8e071e72",
|
|
@@ -99,7 +99,14 @@ class Symbol:
|
|
|
99
99
|
|
|
100
100
|
@property
|
|
101
101
|
def metadata(self) -> dict:
|
|
102
|
-
"""Return copy of symbol metadata dictionary.
|
|
102
|
+
"""Return copy of symbol metadata dictionary.
|
|
103
|
+
|
|
104
|
+
Keys present only when they hold: ``visibility``, ``type``,
|
|
105
|
+
``multiplicity``, ``direction``, ``specializes``, ``abstract``,
|
|
106
|
+
``variation`` (a variation definition or usage, or an enumeration
|
|
107
|
+
definition; always ``abstract`` too) and ``variant`` (a variant usage
|
|
108
|
+
or an enumerated value), each flag ``"true"``.
|
|
109
|
+
"""
|
|
103
110
|
return dict(self._pb.metadata)
|
|
104
111
|
|
|
105
112
|
@property
|
{opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml.egg-info/SOURCES.txt
RENAMED
|
@@ -115,6 +115,7 @@ tests/test_tool_dry_run.py
|
|
|
115
115
|
tests/test_typed.py
|
|
116
116
|
tests/test_undetermined.py
|
|
117
117
|
tests/test_unset.py
|
|
118
|
+
tests/test_variation_metadata.py
|
|
118
119
|
tests/test_verification.py
|
|
119
120
|
tests/test_verification_arguments.py
|
|
120
121
|
tests/test_verification_questions.py
|
|
@@ -416,7 +416,8 @@ class TestRoundTripAgainstRealService:
|
|
|
416
416
|
]
|
|
417
417
|
assert len(defs) == 2
|
|
418
418
|
assert defs[0]["@id"] != defs[1]["@id"]
|
|
419
|
-
assert
|
|
419
|
+
assert defs[0]["qualifiedName"] == "P::A"
|
|
420
|
+
assert "qualifiedName" not in defs[1]
|
|
420
421
|
|
|
421
422
|
def test_positional_looking_name_and_position_export_separately(self, real_service):
|
|
422
423
|
"""A name spelling a position does not share its element identity."""
|
|
@@ -436,12 +437,16 @@ class TestRoundTripAgainstRealService:
|
|
|
436
437
|
defs = [
|
|
437
438
|
el for el in elements
|
|
438
439
|
if el.get("@type") == "PartDefinition"
|
|
439
|
-
and el.get("
|
|
440
|
+
and el.get("declaredName") in {"A", "@2"}
|
|
440
441
|
]
|
|
441
442
|
|
|
442
443
|
assert len(defs) == 3
|
|
443
444
|
assert len({el["@id"] for el in defs}) == 3
|
|
444
|
-
|
|
445
|
+
duplicates = [el for el in defs if el["declaredName"] == "A"]
|
|
446
|
+
positional_name = next(el for el in defs if el["declaredName"] == "@2")
|
|
447
|
+
assert duplicates[0]["qualifiedName"] == "P::A"
|
|
448
|
+
assert "qualifiedName" not in duplicates[1]
|
|
449
|
+
assert positional_name["qualifiedName"] == "P::'@2'"
|
|
445
450
|
|
|
446
451
|
def test_unreadable_notation_fails_with_spans(self, real_service):
|
|
447
452
|
with Connection(port=real_service, auto_start=False) as conn:
|
|
@@ -2781,11 +2781,26 @@ class TestEditRoundTripAgainstRealService:
|
|
|
2781
2781
|
)
|
|
2782
2782
|
)
|
|
2783
2783
|
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
"
|
|
2784
|
+
elements = json.loads(str(built.to_api_json()))
|
|
2785
|
+
by_id = {element["@id"]: element for element in elements}
|
|
2786
|
+
|
|
2787
|
+
def resolve(reference):
|
|
2788
|
+
reference_id = reference.get("@id") if isinstance(reference, dict) else reference
|
|
2789
|
+
return by_id.get(reference_id)
|
|
2790
|
+
|
|
2791
|
+
documentation_owners = []
|
|
2792
|
+
for element in elements:
|
|
2793
|
+
if element.get("@type") != "Documentation":
|
|
2794
|
+
continue
|
|
2795
|
+
relationship = resolve(element.get("owningRelationship"))
|
|
2796
|
+
owner = resolve(
|
|
2797
|
+
relationship.get("owningRelatedElement") or relationship.get("owner")
|
|
2798
|
+
)
|
|
2799
|
+
documentation_owners.append(owner["qualifiedName"])
|
|
2800
|
+
assert sorted(documentation_owners) == [
|
|
2801
|
+
"ToasterDemo::ApplyHeat::duration",
|
|
2802
|
+
"ToasterDemo::Bread",
|
|
2803
|
+
"ToasterDemo::ToastBread",
|
|
2789
2804
|
]
|
|
2790
2805
|
assert construct(built) == construct(expected)
|
|
2791
2806
|
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"""A variation point and its variants are told apart through symbol metadata.
|
|
2
|
+
|
|
3
|
+
The service reports ``variation`` (and ``abstract``, since a variation is
|
|
4
|
+
always abstract) on a variation definition or usage, ``variant`` on a variant,
|
|
5
|
+
and an enumeration definition and its values likewise; an ordinary part carries
|
|
6
|
+
none of the three. The keys travel the metadata map unchanged.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
import pytest
|
|
10
|
+
|
|
11
|
+
from opensysml import Connection
|
|
12
|
+
|
|
13
|
+
MODEL_SOURCE = """
|
|
14
|
+
package PLE {
|
|
15
|
+
part def Engine;
|
|
16
|
+
part def Transmission;
|
|
17
|
+
part fourCyl : Engine;
|
|
18
|
+
part manual : Transmission;
|
|
19
|
+
|
|
20
|
+
variation part def EngineChoices :> Engine {
|
|
21
|
+
variant fourCyl;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
part family {
|
|
25
|
+
part engine : EngineChoices;
|
|
26
|
+
variation part transmission : Transmission {
|
|
27
|
+
variant manual;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
enum def Color { red; blue; }
|
|
32
|
+
}
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
@pytest.mark.integration
|
|
37
|
+
class TestVariationMetadata:
|
|
38
|
+
def setup_method(self):
|
|
39
|
+
self.conn = Connection()
|
|
40
|
+
self.model = self.conn.load_from_content(MODEL_SOURCE)
|
|
41
|
+
|
|
42
|
+
def teardown_method(self):
|
|
43
|
+
self.conn.close()
|
|
44
|
+
|
|
45
|
+
def metadata(self, name):
|
|
46
|
+
symbol = self.model.find(name)
|
|
47
|
+
assert symbol is not None, name
|
|
48
|
+
return symbol.metadata
|
|
49
|
+
|
|
50
|
+
def test_a_variation_definition_is_a_variation_and_abstract(self):
|
|
51
|
+
meta = self.metadata("PLE::EngineChoices")
|
|
52
|
+
assert meta["variation"] == "true"
|
|
53
|
+
assert meta["abstract"] == "true"
|
|
54
|
+
assert "variant" not in meta
|
|
55
|
+
|
|
56
|
+
def test_a_variation_usage_is_a_variation_and_abstract(self):
|
|
57
|
+
meta = self.metadata("PLE::family::transmission")
|
|
58
|
+
assert meta["variation"] == "true"
|
|
59
|
+
assert meta["abstract"] == "true"
|
|
60
|
+
assert "variant" not in meta
|
|
61
|
+
|
|
62
|
+
def test_a_variant_is_a_variant(self):
|
|
63
|
+
for name in ("PLE::EngineChoices::fourCyl", "PLE::family::transmission::manual"):
|
|
64
|
+
meta = self.metadata(name)
|
|
65
|
+
assert meta["variant"] == "true", name
|
|
66
|
+
assert "variation" not in meta, name
|
|
67
|
+
assert "abstract" not in meta, name
|
|
68
|
+
|
|
69
|
+
def test_an_enumeration_is_a_variation_of_its_values(self):
|
|
70
|
+
assert self.metadata("PLE::Color")["variation"] == "true"
|
|
71
|
+
assert self.metadata("PLE::Color")["abstract"] == "true"
|
|
72
|
+
assert self.metadata("PLE::Color::red")["variant"] == "true"
|
|
73
|
+
|
|
74
|
+
def test_an_ordinary_part_is_neither(self):
|
|
75
|
+
meta = self.metadata("PLE::fourCyl")
|
|
76
|
+
assert "variation" not in meta
|
|
77
|
+
assert "variant" not in meta
|
|
78
|
+
assert "abstract" not in meta
|
|
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
|
{opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/metamodel/__init__.py
RENAMED
|
File without changes
|
{opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/metamodel/_generated.py
RENAMED
|
File without changes
|
{opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/metamodel/_reader.py
RENAMED
|
File without changes
|
{opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/metamodel/_runtime.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml/proto/sysml_pb2_grpc.py
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
|
{opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml.egg-info/requires.txt
RENAMED
|
File without changes
|
{opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/opensysml.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_analysis_integration.py
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
|
{opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_evaluate_subject.py
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
|
{opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_metamodel_reader.py
RENAMED
|
File without changes
|
{opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_metamodel_toolkit.py
RENAMED
|
File without changes
|
{opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_metamodel_typing.py
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
|
{opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_pin_release_checksums.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_refresh_diagnostics.py
RENAMED
|
File without changes
|
{opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_response_compression.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_runtime_integration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_snapshot_version.py
RENAMED
|
File without changes
|
|
File without changes
|
{opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_strict_and_lookup.py
RENAMED
|
File without changes
|
{opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_strict_conformance.py
RENAMED
|
File without changes
|
|
File without changes
|
{opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_sweep_integration.py
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
|
{opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_verification_arguments.py
RENAMED
|
File without changes
|
{opensysml-0.10.2.dev20261022 → opensysml-0.10.2.dev20261023}/tests/test_verification_questions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|