opensysml 0.10.2.dev20261020__tar.gz → 0.10.2.dev20261022__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.
Files changed (124) hide show
  1. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/PKG-INFO +1 -1
  2. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/_version.py +1 -1
  3. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/release-digests.json +6 -6
  4. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml.egg-info/PKG-INFO +1 -1
  5. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_analysis_integration.py +6 -6
  6. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_complex.py +1 -1
  7. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_edit.py +1 -1
  8. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_function.py +5 -5
  9. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_measurement_ref.py +2 -2
  10. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_metaobject.py +2 -2
  11. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_quantity.py +2 -2
  12. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_rational.py +1 -1
  13. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_set_tensor.py +2 -2
  14. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_structured.py +2 -2
  15. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_sweep_integration.py +4 -4
  16. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/README.md +0 -0
  17. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/__init__.py +0 -0
  18. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/_dist.py +0 -0
  19. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/action_run.py +0 -0
  20. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/binary.py +0 -0
  21. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/capabilities.py +0 -0
  22. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/check.py +0 -0
  23. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/connection.py +0 -0
  24. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/conversion.py +0 -0
  25. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/diagnostic.py +0 -0
  26. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/document.py +0 -0
  27. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/edit.py +0 -0
  28. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/engines.py +0 -0
  29. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/enumeration.py +0 -0
  30. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/errors.py +0 -0
  31. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/exploration.py +0 -0
  32. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/fmi_runner.py +0 -0
  33. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/generate.py +0 -0
  34. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/importcompare.py +0 -0
  35. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/instance.py +0 -0
  36. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/metamodel/__init__.py +0 -0
  37. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/metamodel/_generated.py +0 -0
  38. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/metamodel/_reader.py +0 -0
  39. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/metamodel/_runtime.py +0 -0
  40. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/model.py +0 -0
  41. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/proto/__init__.py +0 -0
  42. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/proto/sysml_pb2.py +0 -0
  43. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/proto/sysml_pb2.pyi +0 -0
  44. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/proto/sysml_pb2_grpc.py +0 -0
  45. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/py.typed +0 -0
  46. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/query.py +0 -0
  47. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/runs.py +0 -0
  48. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/signing.py +0 -0
  49. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/sources.py +0 -0
  50. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/symbol.py +0 -0
  51. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/typed.py +0 -0
  52. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/typefacts.py +0 -0
  53. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/values.py +0 -0
  54. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml/verdict.py +0 -0
  55. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml.egg-info/SOURCES.txt +0 -0
  56. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml.egg-info/dependency_links.txt +0 -0
  57. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml.egg-info/entry_points.txt +0 -0
  58. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml.egg-info/requires.txt +0 -0
  59. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/opensysml.egg-info/top_level.txt +0 -0
  60. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/pyproject.toml +0 -0
  61. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/setup.cfg +0 -0
  62. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_api.py +0 -0
  63. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_api_reference.py +0 -0
  64. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_big_integer.py +0 -0
  65. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_binary.py +0 -0
  66. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_capabilities.py +0 -0
  67. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_check.py +0 -0
  68. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_check_version.py +0 -0
  69. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_connection.py +0 -0
  70. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_conversion.py +0 -0
  71. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_diagnostic.py +0 -0
  72. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_document.py +0 -0
  73. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_engines.py +0 -0
  74. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_enumeration.py +0 -0
  75. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_errors.py +0 -0
  76. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_evaluate_subject.py +0 -0
  77. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_explore.py +0 -0
  78. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_feature_values.py +0 -0
  79. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_feature_values_capability.py +0 -0
  80. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_fmi_runner.py +0 -0
  81. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_generate.py +0 -0
  82. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_generate_golden.py +0 -0
  83. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_import_compare.py +0 -0
  84. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_infinity.py +0 -0
  85. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_instance.py +0 -0
  86. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_integration.py +0 -0
  87. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_legacy_pysysml_placeholder.py +0 -0
  88. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_lifecycle.py +0 -0
  89. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_metamodel.py +0 -0
  90. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_metamodel_reader.py +0 -0
  91. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_metamodel_toolkit.py +0 -0
  92. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_metamodel_typing.py +0 -0
  93. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_migration.py +0 -0
  94. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_model.py +0 -0
  95. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_model_surface_integration.py +0 -0
  96. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_parse_sources.py +0 -0
  97. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_parser_warnings.py +0 -0
  98. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_performed_action_pin_shape.py +0 -0
  99. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_performed_action_unbound_input.py +0 -0
  100. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_performer.py +0 -0
  101. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_pin_release_checksums.py +0 -0
  102. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_query.py +0 -0
  103. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_refresh_diagnostics.py +0 -0
  104. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_response_compression.py +0 -0
  105. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_runs.py +0 -0
  106. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_runtime.py +0 -0
  107. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_runtime_integration.py +0 -0
  108. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_schedule.py +0 -0
  109. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_signing.py +0 -0
  110. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_snapshot_version.py +0 -0
  111. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_stale_service.py +0 -0
  112. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_strict_and_lookup.py +0 -0
  113. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_strict_conformance.py +0 -0
  114. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_symbol.py +0 -0
  115. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_target.py +0 -0
  116. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_tool_dry_run.py +0 -0
  117. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_typed.py +0 -0
  118. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_undetermined.py +0 -0
  119. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_unset.py +0 -0
  120. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_verification.py +0 -0
  121. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_verification_arguments.py +0 -0
  122. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_verification_questions.py +0 -0
  123. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_version.py +0 -0
  124. {opensysml-0.10.2.dev20261020 → opensysml-0.10.2.dev20261022}/tests/test_wire_compat.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: opensysml
3
- Version: 0.10.2.dev20261020
3
+ Version: 0.10.2.dev20261022
4
4
  Summary: Python client library for OpenSysML, a SysML v2 parser and execution runtime
5
5
  Author: Open-MBEE
6
6
  License-Expression: Apache-2.0
@@ -6,4 +6,4 @@ neither is a second copy that can drift. `scripts/check_version.py` compares
6
6
  this value with the release tag before anything is uploaded.
7
7
  """
8
8
 
9
- VERSION = "0.10.2.dev20261020"
9
+ VERSION = "0.10.2.dev20261022"
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "Open-MBEE/OpenSysML": {
3
- "nightly-20261020-188f22205": {
4
- "sysml-grpc-darwin-amd64": "b4f00df92bb9eb652d1f3ff46fac70aa5d98ead84b7de4dd8b5342ac5fc44539",
5
- "sysml-grpc-darwin-arm64": "8d4605d4815c4a3aa55f608f8d2c2d07ac899f68e96d7af68dc0900b4745c4df",
6
- "sysml-grpc-linux-amd64": "586563e9225161ba4e1370b5c6d45d2015c67daa69a88bbd6af70e16d0945449",
7
- "sysml-grpc-linux-arm64": "46ef9e036b5fff5f77f3e24be8fde3466ffae1dec0c719f9bb8b454901b7f52a",
8
- "sysml-grpc-windows-amd64.exe": "756179f73b1537c83646a1193b292c0345d7d37c09a8578566fec94fcdecf725"
3
+ "nightly-20261022-0a5fa2d94": {
4
+ "sysml-grpc-darwin-amd64": "ce2f2879146ab9f8db0e47ef442d37f6764cd520c1cc898c595e74e56154fda1",
5
+ "sysml-grpc-darwin-arm64": "ca37c054216a9030143a472aafebcc7aa7cac39c480d5745a59ad484863a55d5",
6
+ "sysml-grpc-linux-amd64": "098daf2919add07105d68dda3727cc6a4e46c0f38f5612bc79751f66eec9ab4d",
7
+ "sysml-grpc-linux-arm64": "032d1a8b0b7b523d3d6308c836e99a57cee08536f7958d755886daf2e7a46121",
8
+ "sysml-grpc-windows-amd64.exe": "542c50ac47fca26f603ea98d4f85911866ee2030f63cb824246173498497f8f1"
9
9
  },
10
10
  "v0.0.5": {
11
11
  "sysml-grpc-darwin-amd64": "ab2933f168341bed3157bac0026d2c5a51bdb1c4629618178123f7ca8e071e72",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: opensysml
3
- Version: 0.10.2.dev20261020
3
+ Version: 0.10.2.dev20261022
4
4
  Summary: Python client library for OpenSysML, a SysML v2 parser and execution runtime
5
5
  Author: Open-MBEE
6
6
  License-Expression: Apache-2.0
@@ -23,13 +23,13 @@ package An {
23
23
  calc def Sum {
24
24
  in a : Real;
25
25
  in b : Real;
26
- return : Real = a + b;
26
+ return : Real[1] = a + b;
27
27
  }
28
28
 
29
29
  analysis def CostAnalysis {
30
30
  subject s : Ship;
31
31
  in limit : Real = 20.0;
32
- out total : Real = Sum(s.cost, s.other);
32
+ out total : Real[1] = Sum(s.cost, s.other);
33
33
  objective affordable {
34
34
  require constraint { total <= limit }
35
35
  }
@@ -45,7 +45,7 @@ package An {
45
45
  }
46
46
 
47
47
  analysis plain {
48
- out x : Real = 1.0 + 2.0;
48
+ out x : Real[1] = 1.0 + 2.0;
49
49
  }
50
50
  }
51
51
  '''
@@ -184,7 +184,7 @@ class TestTradeStudyIntegration:
184
184
  result = self.model.run_analysis("Trade::lightest")
185
185
  assert result.satisfied
186
186
  assert [v.element for v in result.verdicts] == ["tradeStudyObjective"]
187
- selected = result.outputs["selectedAlternative"]
187
+ selected = result.outputs["selectedAlternative"][0]
188
188
  assert selected.type_symbol_id == "Trade::b"
189
189
  assert [e.arguments[0].type_symbol_id for e in result.evaluations] == [
190
190
  "Trade::a", "Trade::b", "Trade::c",
@@ -215,11 +215,11 @@ class TestTradeStudyIntegration:
215
215
  assert not table
216
216
 
217
217
  ok = table.rows[0]
218
- assert ok.outputs["selectedAlternative"].type_symbol_id == "Trade::a"
218
+ assert ok.outputs["selectedAlternative"][0].type_symbol_id == "Trade::a"
219
219
  assert [e.result for e in ok.evaluations] == [10.0, 10.0]
220
220
  assert [e.selected for e in ok.evaluations] == [True, False]
221
221
  assert [e.tied for e in ok.evaluations] == [False, True]
222
- assert ok.selected[0].arguments[0].id == ok.outputs["selectedAlternative"].id
222
+ assert ok.selected[0].arguments[0].id == ok.outputs["selectedAlternative"][0].id
223
223
 
224
224
  failed = table.rows[1]
225
225
  assert "division by zero" in failed.error
@@ -193,7 +193,7 @@ package C {
193
193
  attribute z : Complex = rect(1.5, -2.0);
194
194
  attribute zs : Complex[2] = (rect(1.0, 2.0), rect(3.0, 4.0));
195
195
  }
196
- calc def Echo { in z : Complex; return : Complex = z; }
196
+ calc def Echo { in z : Complex; return : Complex[1] = z; }
197
197
  calc echo : Echo;
198
198
  }
199
199
  """
@@ -2185,7 +2185,7 @@ class TestEditRoundTripAgainstRealService:
2185
2185
  )
2186
2186
  again = conn.load_from_content(edited)
2187
2187
  assert again.ok, [str(d) for d in again.errors]
2188
- assert again.calc("P::D", arguments=[3]).value == 6
2188
+ assert again.calc("P::D", arguments=[3]).value == [6]
2189
2189
 
2190
2190
  def test_add_parameter_to_action_definition(self, real_service):
2191
2191
  with Connection(port=real_service, auto_start=False) as conn:
@@ -168,11 +168,11 @@ FUNCTION_MODEL = """
168
168
  package Demo {
169
169
  private import ScalarValues::*;
170
170
 
171
- calc def Sq { in v : Real; return : Real = v * v; }
172
- calc def Cube { in v : Real; return : Real = v * v * v; }
173
- calc def Fn { in calc f { in v : Real; return : Real; } in a : Real; return : Real = f(a); }
171
+ calc def Sq { in v : Real; return : Real[1] = v * v; }
172
+ calc def Cube { in v : Real; return : Real[1] = v * v * v; }
173
+ calc def Fn { in calc f { in v : Real; return : Real; } in a : Real; return : Real[1] = f(a); }
174
174
  calc fn : Fn;
175
- calc def UseFn { return : Real = Fn(Sq, 3.0); }
175
+ calc def UseFn { return : Real[1] = Fn(Sq, 3.0); }
176
176
  calc useFn : UseFn;
177
177
 
178
178
  calc def Identity { in calc f { in v : Real; return : Real; } return r = f; }
@@ -181,7 +181,7 @@ package Demo {
181
181
 
182
182
  part def Scaler {
183
183
  attribute k : Real = 2.0;
184
- calc scale { in x : Real; return : Real = x * k; }
184
+ calc scale { in x : Real; return : Real[1] = x * k; }
185
185
  }
186
186
  part holder : Scaler;
187
187
  attribute scaler = holder.scale;
@@ -251,9 +251,9 @@ package M {
251
251
  attribute speed = m / s;
252
252
  attribute units : MeasurementUnit[*] = (m, s);
253
253
 
254
- calc def ToUnit { in x : ScalarQuantityValue; in target : MeasurementUnit; return : ScalarQuantityValue = ConvertQuantity(x, target); }
254
+ calc def ToUnit { in x : ScalarQuantityValue; in target : MeasurementUnit; return : ScalarQuantityValue[1] = ConvertQuantity(x, target); }
255
255
  calc toUnit : ToUnit;
256
- calc def UnitOf { in x : ScalarQuantityValue; return : MeasurementUnit = x.mRef; }
256
+ calc def UnitOf { in x : ScalarQuantityValue; return : MeasurementUnit[1] = x.mRef; }
257
257
  calc unitOf : UnitOf;
258
258
  }
259
259
  """
@@ -184,11 +184,11 @@ package Demo {
184
184
  attribute everything [*] = seatBelt.metadata;
185
185
  attribute notADefinition [*] = seatBelt meta SysML::PartDefinition;
186
186
 
187
- calc def NameOf { in m : Metaobjects::Metaobject; return : String = m.declaredName; }
187
+ calc def NameOf { in m : Metaobjects::Metaobject; return : String[1] = m.declaredName; }
188
188
  calc nameOf : NameOf;
189
189
  calc def SameAs {
190
190
  in m : Metaobjects::Metaobject;
191
- return : Boolean = m === (seatBelt meta KerML::Type)#(1);
191
+ return : Boolean[1] = m === (seatBelt meta KerML::Type)#(1);
192
192
  }
193
193
  calc sameAs : SameAs;
194
194
  }
@@ -397,12 +397,12 @@ package Q {
397
397
 
398
398
  calc echo {
399
399
  in q;
400
- q
400
+ return : Quantities::ScalarQuantityValue[1] = q;
401
401
  }
402
402
 
403
403
  calc overHalfATonne {
404
404
  in q;
405
- q > 500.0 [SI::kg]
405
+ return : ScalarValues::Boolean[1] = q > 500.0 [SI::kg];
406
406
  }
407
407
 
408
408
  action addHalfATonne {
@@ -208,7 +208,7 @@ def test_a_document_binding_a_double_holds_reaches_an_older_service_as_that_doub
208
208
  RATIONAL_MODEL = """
209
209
  package R {
210
210
  private import ScalarValues::*;
211
- calc def Third { in x : Rational; return : Rational = x / 3; }
211
+ calc def Third { in x : Rational; return : Rational[1] = x / 3; }
212
212
  calc third : Third;
213
213
  action addThird {
214
214
  in x;
@@ -635,9 +635,9 @@ package W {
635
635
  }
636
636
  attribute cube : TensorQuantityValue = TensorCalculations::'['((1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0), cubeRef);
637
637
 
638
- calc def SizeOf { in c : Integer[0..*]; return : Natural = SequenceFunctions::size(c); }
638
+ calc def SizeOf { in c : Integer[0..*]; return : Natural[1] = SequenceFunctions::size(c); }
639
639
  calc sizeOf : SizeOf;
640
- calc def Corner { in t : TensorQuantityValue; return : ScalarQuantityValue = t#(2, 2, 2); }
640
+ calc def Corner { in t : TensorQuantityValue; return : ScalarQuantityValue[1] = t#(2, 2, 2); }
641
641
  calc corner : Corner;
642
642
  }
643
643
  """
@@ -425,9 +425,9 @@ package S {
425
425
  attribute grid : Array { :>> dimensions = (2, 3); :>> elements = (1, 2, 3, 4, 5, 6); }
426
426
  attribute v : CartesianVectorValue = VectorOf((3.0, 4.0));
427
427
  attribute d : VectorQuantityValue = VectorOf((3.0, 4.0)) [m];
428
- calc def Length { in x : CartesianVectorValue; return : Real = norm(x); }
428
+ calc def Length { in x : CartesianVectorValue; return : Real[1] = norm(x); }
429
429
  calc length : Length;
430
- calc def Doubled { in x : CartesianVectorValue; return : CartesianVectorValue = cartesianVectorScalarMult(x, 2.0); }
430
+ calc def Doubled { in x : CartesianVectorValue; return : CartesianVectorValue[1] = cartesianVectorScalarMult(x, 2.0); }
431
431
  calc doubled : Doubled;
432
432
  }
433
433
  """
@@ -21,25 +21,25 @@ package Sw {
21
21
 
22
22
  calc def Twice {
23
23
  in n : Integer;
24
- return : Integer = n * 2;
24
+ return : Integer[1] = n * 2;
25
25
  }
26
26
 
27
27
  calc def Ratio {
28
28
  in a : Real;
29
29
  in b : Real;
30
- return : Real = a / b;
30
+ return : Real[1] = a / b;
31
31
  }
32
32
 
33
33
  calc def Plus {
34
34
  in a : Integer;
35
35
  in b : Integer;
36
- return : Integer = a + b;
36
+ return : Integer[1] = a + b;
37
37
  }
38
38
 
39
39
  analysis def CostAnalysis {
40
40
  subject s : Ship;
41
41
  in limit : Real = 20.0;
42
- out total : Real = s.cost * limit;
42
+ out total : Real[1] = s.cost * limit;
43
43
  objective affordable {
44
44
  require constraint { total <= 100.0 }
45
45
  }