ansys-systemcoupling-core 0.8.0__py3-none-any.whl → 0.9.1__py3-none-any.whl

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.

Potentially problematic release.


This version of ansys-systemcoupling-core might be problematic. Click here for more details.

Files changed (54) hide show
  1. ansys/systemcoupling/core/__init__.py +2 -2
  2. ansys/systemcoupling/core/_version.py +1 -1
  3. ansys/systemcoupling/core/adaptor/api_25_1/instancing.py +2 -0
  4. ansys/systemcoupling/core/adaptor/api_25_1/instancing_child.py +62 -10
  5. ansys/systemcoupling/core/adaptor/api_25_1/mapping_control.py +20 -0
  6. ansys/systemcoupling/core/adaptor/api_25_1/setup_root.py +1 -1
  7. ansys/systemcoupling/core/adaptor/api_25_1/update_participant.py +15 -15
  8. ansys/systemcoupling/core/adaptor/impl/get_status_messages.py +1 -1
  9. ansys/systemcoupling/core/adaptor/impl/get_syc_version.py +1 -1
  10. ansys/systemcoupling/core/adaptor/impl/injected_commands.py +1 -1
  11. ansys/systemcoupling/core/adaptor/impl/root_source.py +1 -1
  12. ansys/systemcoupling/core/adaptor/impl/static_info.py +13 -6
  13. ansys/systemcoupling/core/adaptor/impl/syc_proxy.py +35 -5
  14. ansys/systemcoupling/core/adaptor/impl/syc_proxy_interface.py +1 -1
  15. ansys/systemcoupling/core/adaptor/impl/types.py +1 -1
  16. ansys/systemcoupling/core/charts/chart_datatypes.py +1 -1
  17. ansys/systemcoupling/core/charts/csv_chartdata.py +18 -4
  18. ansys/systemcoupling/core/charts/live_csv_datasource.py +1 -1
  19. ansys/systemcoupling/core/charts/message_dispatcher.py +1 -1
  20. ansys/systemcoupling/core/charts/plot_functions.py +1 -1
  21. ansys/systemcoupling/core/charts/plotdefinition_manager.py +1 -1
  22. ansys/systemcoupling/core/charts/plotter.py +1 -1
  23. ansys/systemcoupling/core/client/grpc_client.py +11 -2
  24. ansys/systemcoupling/core/client/services/command_query.py +4 -13
  25. ansys/systemcoupling/core/client/services/handle_rpc_error.py +64 -0
  26. ansys/systemcoupling/core/client/services/output_stream.py +1 -1
  27. ansys/systemcoupling/core/client/services/process.py +1 -1
  28. ansys/systemcoupling/core/client/services/solution.py +4 -13
  29. ansys/systemcoupling/core/client/syc_container.py +4 -1
  30. ansys/systemcoupling/core/client/syc_process.py +5 -1
  31. ansys/systemcoupling/core/client/variant.py +1 -1
  32. ansys/systemcoupling/core/examples/__init__.py +1 -1
  33. ansys/systemcoupling/core/examples/downloads.py +1 -1
  34. ansys/systemcoupling/core/native_api/__init__.py +1 -1
  35. ansys/systemcoupling/core/native_api/command_metadata.py +1 -1
  36. ansys/systemcoupling/core/native_api/datamodel_metadata.py +1 -1
  37. ansys/systemcoupling/core/native_api/meta_wrapper.py +1 -1
  38. ansys/systemcoupling/core/native_api/native_api.py +1 -1
  39. ansys/systemcoupling/core/native_api/object_path.py +1 -1
  40. ansys/systemcoupling/core/participant/manager.py +1 -1
  41. ansys/systemcoupling/core/participant/mapdl.py +1 -1
  42. ansys/systemcoupling/core/participant/protocol.py +1 -1
  43. ansys/systemcoupling/core/session.py +1 -1
  44. ansys/systemcoupling/core/syc_version.py +3 -3
  45. ansys/systemcoupling/core/util/file_transfer.py +1 -1
  46. ansys/systemcoupling/core/util/logging.py +1 -1
  47. ansys/systemcoupling/core/util/name_util.py +1 -1
  48. ansys/systemcoupling/core/util/pathstr.py +1 -1
  49. ansys/systemcoupling/core/util/state_keys.py +12 -3
  50. ansys/systemcoupling/core/util/yaml_helper.py +1 -1
  51. {ansys_systemcoupling_core-0.8.0.dist-info → ansys_systemcoupling_core-0.9.1.dist-info}/METADATA +35 -21
  52. {ansys_systemcoupling_core-0.8.0.dist-info → ansys_systemcoupling_core-0.9.1.dist-info}/RECORD +54 -53
  53. {ansys_systemcoupling_core-0.8.0.dist-info → ansys_systemcoupling_core-0.9.1.dist-info}/WHEEL +1 -1
  54. {ansys_systemcoupling_core-0.8.0.dist-info → ansys_systemcoupling_core-0.9.1.dist-info/licenses}/LICENSE +1 -1
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -72,7 +72,7 @@ def launch(
72
72
  (The forms ``"24.1"`` and ``"24_1"`` are also acceptable.)
73
73
  The version will be sought in the standard installation location. The
74
74
  default is ``None``, which is equivalent to specifying
75
- ``"242"`` ("2024 R2" release), unless either of the environment
75
+ ``"251"`` ("2025 R1" release), unless either of the environment
76
76
  variables ``SYSC_ROOT`` or ``AWP_ROOT`` has been set. It is considered
77
77
  to be an error if either these is set *and* ``version`` is provided.
78
78
  start_output: bool, optional
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -13,6 +13,8 @@ class instancing(NamedContainer[instancing_child]):
13
13
 
14
14
  Available when cylindrical geometry instancing has been added to
15
15
  the data model.
16
+
17
+ ``RotationAxis`` controls how the axis of rotation is defined.
16
18
  """
17
19
 
18
20
  syc_name = "Instancing"
@@ -11,27 +11,31 @@ class instancing_child(Container):
11
11
 
12
12
  Available when cylindrical geometry instancing has been added to
13
13
  the data model.
14
+
15
+ ``RotationAxis`` controls how the axis of rotation is defined.
14
16
  """
15
17
 
16
18
  syc_name = "child_object_type"
17
19
 
18
20
  property_names_types = [
19
- ("reference_frame", "ReferenceFrame", "str"),
21
+ ("rotation_axis", "RotationAxis", "str"),
20
22
  ("instances_in_full_circle", "InstancesInFullCircle", "int"),
21
23
  ("instances_for_mapping", "InstancesForMapping", "int"),
24
+ ("reference_frame", "ReferenceFrame", "str"),
25
+ ("axis", "Axis", "str"),
26
+ ("axis_from", "AxisFrom", "RealVectorType"),
27
+ ("axis_to", "AxisTo", "RealVectorType"),
28
+ ("rotational_offset", "RotationalOffset", "RealType"),
22
29
  ]
23
30
 
24
31
  @property
25
- def reference_frame(self) -> str:
26
- """Reference frame that defines the orientation of the instancing.
27
-
28
- Rotation will be around the z-axis of the reference frame,
29
- following the right-hand rule."""
30
- return self.get_property_state("reference_frame")
32
+ def rotation_axis(self) -> str:
33
+ """UNDOCUMENTED"""
34
+ return self.get_property_state("rotation_axis")
31
35
 
32
- @reference_frame.setter
33
- def reference_frame(self, value: str):
34
- self.set_property_state("reference_frame", value)
36
+ @rotation_axis.setter
37
+ def rotation_axis(self, value: str):
38
+ self.set_property_state("rotation_axis", value)
35
39
 
36
40
  @property
37
41
  def instances_in_full_circle(self) -> int:
@@ -60,3 +64,51 @@ class instancing_child(Container):
60
64
  @instances_for_mapping.setter
61
65
  def instances_for_mapping(self, value: int):
62
66
  self.set_property_state("instances_for_mapping", value)
67
+
68
+ @property
69
+ def reference_frame(self) -> str:
70
+ """Reference frame that defines the orientation of the instancing.
71
+
72
+ Rotation will be around the z-axis of the reference frame,
73
+ following the right-hand rule."""
74
+ return self.get_property_state("reference_frame")
75
+
76
+ @reference_frame.setter
77
+ def reference_frame(self, value: str):
78
+ self.set_property_state("reference_frame", value)
79
+
80
+ @property
81
+ def axis(self) -> str:
82
+ """Principal axis of rotation for instancing"""
83
+ return self.get_property_state("axis")
84
+
85
+ @axis.setter
86
+ def axis(self, value: str):
87
+ self.set_property_state("axis", value)
88
+
89
+ @property
90
+ def axis_from(self) -> RealVectorType:
91
+ """Define the starting point of a user-defined axis."""
92
+ return self.get_property_state("axis_from")
93
+
94
+ @axis_from.setter
95
+ def axis_from(self, value: RealVectorType):
96
+ self.set_property_state("axis_from", value)
97
+
98
+ @property
99
+ def axis_to(self) -> RealVectorType:
100
+ """Define the end point of a user-defined axis."""
101
+ return self.get_property_state("axis_to")
102
+
103
+ @axis_to.setter
104
+ def axis_to(self, value: RealVectorType):
105
+ self.set_property_state("axis_to", value)
106
+
107
+ @property
108
+ def rotational_offset(self) -> RealType:
109
+ """Offset (in radians) about the rotation axis for the first instance"""
110
+ return self.get_property_state("rotational_offset")
111
+
112
+ @rotational_offset.setter
113
+ def rotational_offset(self, value: RealType):
114
+ self.set_property_state("rotational_offset", value)
@@ -42,6 +42,8 @@ class mapping_control(Container):
42
42
  ("rbf_shape_parameter", "RBFShapeParameter", "RealType"),
43
43
  ("rbf_linear_correction", "RBFLinearCorrection", "bool"),
44
44
  ("rbf_clipping_scale", "RBFClippingScale", "RealType"),
45
+ ("rbf_taper_init_factor", "RBFTaperInitFactor", "RealType"),
46
+ ("rbf_max_extrapolation_factor", "RBFMaxExtrapolationFactor", "RealType"),
45
47
  ("clipping", "Clipping", "bool"),
46
48
  ]
47
49
 
@@ -229,6 +231,24 @@ class mapping_control(Container):
229
231
  def rbf_clipping_scale(self, value: RealType):
230
232
  self.set_property_state("rbf_clipping_scale", value)
231
233
 
234
+ @property
235
+ def rbf_taper_init_factor(self) -> RealType:
236
+ """Length scale factor at which to start tapering the extrapolative effect for profile-preserving mapping."""
237
+ return self.get_property_state("rbf_taper_init_factor")
238
+
239
+ @rbf_taper_init_factor.setter
240
+ def rbf_taper_init_factor(self, value: RealType):
241
+ self.set_property_state("rbf_taper_init_factor", value)
242
+
243
+ @property
244
+ def rbf_max_extrapolation_factor(self) -> RealType:
245
+ """Maximum factor allowed to extrapolate for profile-preserving mapping."""
246
+ return self.get_property_state("rbf_max_extrapolation_factor")
247
+
248
+ @rbf_max_extrapolation_factor.setter
249
+ def rbf_max_extrapolation_factor(self, value: RealType):
250
+ self.set_property_state("rbf_max_extrapolation_factor", value)
251
+
232
252
  @property
233
253
  def clipping(self) -> bool:
234
254
  """Controls whether to clip target values to the min/max of the local source values for profile-preserving transfers."""
@@ -2,7 +2,7 @@
2
2
  # This is an auto-generated file. DO NOT EDIT!
3
3
  #
4
4
 
5
- SHASH = "6df721e79bf47d4600bcf0c989e98ae4f519fdb935ad1b104d4eb853d73a9ec6"
5
+ SHASH = "b2cdc470c64043e9f6c2aed2ca2c63cf2ada211ba396b1c9aa4ebadb357d3b91"
6
6
 
7
7
  from ansys.systemcoupling.core.adaptor.impl.types import *
8
8
 
@@ -7,19 +7,21 @@ from ansys.systemcoupling.core.adaptor.impl.types import *
7
7
 
8
8
  class update_participant(Command):
9
9
  """
10
- Given the name of a server participant, updates the state of the participant.
10
+ Given the name of a participant, updates the state of the participant.
11
11
 
12
- Available for server participants. Currently, only DEFAULT-SRV,
13
- CFD-SRV, MECH-SRV, and SCDT-SRV participants may be updated.
12
+ Available for DEFAULT-SRV, CFD-SRV, MECH-SRV, and SCDT-SRV and
13
+ AEDT participants.
14
14
 
15
- As part of the update, System Coupling updates all regions and
16
- variables defined in the participant, including all variable
17
- attributes. Variables and regions may be added to the participant but
18
- may not be removed.
15
+ As part of the update, System Coupling updates all regions, variables,
16
+ and parameters defined in the participant, including all variable
17
+ attributes. Regions, variables, and parameters may be added to the
18
+ participant but may not be removed.
19
19
 
20
20
  You may specify an input file using an optional argument. If an input
21
21
  file is not provided, then the original input file will be reimported.
22
22
 
23
+ Note: AEDT participants must be updated using an scp file.
24
+
23
25
  If the update process fails, System Coupling displays an error. In this
24
26
  case, you can either update the setup in the participant application to
25
27
  remove any issues with the update process or delete the participant
@@ -29,12 +31,11 @@ class update_participant(Command):
29
31
  ----------
30
32
  participant_name : str
31
33
  Participant name. Must be the name of an existing participant.
32
- Participant type can be either DEFAULT-SRV, CFD-SRV, MECH-SRV, or SCDT-SRV.
33
34
  input_file : str, optional
34
35
  Name of the input file for the participant to be added.
35
- Currently supported formats are SCP files, Forte input (FTSIM)
36
- files, mechanical server (\*.rst) files, cfd server (\*.csv) files,
37
- FMU (\*.fmu) files (Beta), and system coupling data server (\*.scdt/axdt/csv) files.
36
+ Currently supported formats are SCP files, mechanical server
37
+ (\*.rst) files, cfd server (\*.csv) files, and system coupling
38
+ data server (\*.scdt/axdt/csv) files.
38
39
 
39
40
  """
40
41
 
@@ -45,7 +46,6 @@ class update_participant(Command):
45
46
  class participant_name(String):
46
47
  """
47
48
  Participant name. Must be the name of an existing participant.
48
- Participant type can be either DEFAULT-SRV, CFD-SRV, MECH-SRV, or SCDT-SRV.
49
49
  """
50
50
 
51
51
  syc_name = "ParticipantName"
@@ -53,9 +53,9 @@ class update_participant(Command):
53
53
  class input_file(String):
54
54
  """
55
55
  Name of the input file for the participant to be added.
56
- Currently supported formats are SCP files, Forte input (FTSIM)
57
- files, mechanical server (\*.rst) files, cfd server (\*.csv) files,
58
- FMU (\*.fmu) files (Beta), and system coupling data server (\*.scdt/axdt/csv) files.
56
+ Currently supported formats are SCP files, mechanical server
57
+ (\*.rst) files, cfd server (\*.csv) files, and system coupling
58
+ data server (\*.scdt/axdt/csv) files.
59
59
  """
60
60
 
61
61
  syc_name = "InputFile"
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -312,14 +312,21 @@ def get_extended_cmd_metadata(api) -> list:
312
312
  """
313
313
 
314
314
  def fix_up_doc(cmd_metadata):
315
- if get_syc_version(api) != "24.2":
315
+ version = get_syc_version(api)
316
+ if version not in ("24.2", "25.1"):
316
317
  return cmd_metadata
317
318
 
318
- # There is a bug in doc text queried from 24.2 SyC. The "*" need
319
- # to be escaped to avoid issues in Sphinx. This can be a surgical
320
- # fix because 24.2 is frozen now.
319
+ command_to_fix = None
320
+ if version == "24.2":
321
+ command_to_fix = "add_participant"
322
+ elif version == "25.1":
323
+ command_to_fix = "update_participant"
324
+
325
+ # There are bugs in doc text queried from 24.2 and 25.1 SyC.
326
+ # The "*" need to be escaped to avoid issues in Sphinx. This
327
+ # can be a surgical fix because these versions are frozen now.
321
328
  for cmd in cmd_metadata:
322
- if cmd["pyname"] == "add_participant":
329
+ if cmd["pyname"] == command_to_fix:
323
330
  add_part_cmd = cmd
324
331
  for arg_name, arg_info in add_part_cmd["args"]:
325
332
  if arg_name == "InputFile":
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -28,7 +28,10 @@ from ansys.systemcoupling.core.adaptor.impl.static_info import (
28
28
  make_combined_metadata,
29
29
  )
30
30
  from ansys.systemcoupling.core.adaptor.impl.syc_proxy_interface import SycProxyInterface
31
- from ansys.systemcoupling.core.util.state_keys import adapt_native_named_object_keys
31
+ from ansys.systemcoupling.core.util.state_keys import (
32
+ adapt_client_named_object_keys,
33
+ adapt_native_named_object_keys,
34
+ )
32
35
 
33
36
 
34
37
  class SycProxy(SycProxyInterface):
@@ -37,13 +40,16 @@ class SycProxy(SycProxyInterface):
37
40
  self.__injected_cmds = {}
38
41
  self.__version = None
39
42
  self.__defunct = False
43
+ self.__named_obj_level_map: Dict = {}
44
+ self.__datamodel_metadata = None
40
45
 
41
46
  def reset_rpc(self, rpc):
42
47
  """Reset the original ``rpc`` instance with a new one if the remote connection is lost.
43
48
 
44
49
  When a remote connection is lost, this method is called, providing an
45
50
  ``rpc`` instance that replaces the original one from the initializer.
46
- A sensible error is raised if any attempt is made to use this method.
51
+ The intent is that a sensible error will be raised if any attempt is
52
+ made to access any attributes on the replacement rpc.
47
53
 
48
54
  The motivating use case is to catch attempted uses of stale
49
55
  objects after the current session has ended.
@@ -66,8 +72,9 @@ class SycProxy(SycProxyInterface):
66
72
  if category == "setup":
67
73
  cmd_metadata = get_extended_cmd_metadata(self.__rpc)
68
74
  root_type = "SystemCoupling"
69
- dm_metadata = get_dm_metadata(self.__rpc, root_type)
70
- metadata = make_combined_metadata(dm_metadata, cmd_metadata, category)
75
+ metadata = make_combined_metadata(
76
+ self._get_datamodel_metadata(root_type), cmd_metadata, category
77
+ )
71
78
  elif category in ("case", "solution"):
72
79
  cmd_metadata = get_extended_cmd_metadata(self.__rpc)
73
80
  metadata, root_type = make_cmdonly_metadata(cmd_metadata, category)
@@ -81,6 +88,9 @@ class SycProxy(SycProxyInterface):
81
88
  return self.__version
82
89
 
83
90
  def set_state(self, path, state):
91
+ state = adapt_client_named_object_keys(
92
+ state, self._get_named_object_level_map(), path.count("/") - 1
93
+ )
84
94
  self.__rpc.SetState(ObjectPath=path, State=state)
85
95
 
86
96
  def get_state(self, path):
@@ -116,3 +126,23 @@ class SycProxy(SycProxyInterface):
116
126
  cmd_name = args[1]
117
127
  cmd = self.__injected_cmds.get(cmd_name, None)
118
128
  return cmd(**kwargs)
129
+
130
+ def _get_datamodel_metadata(self, root_type):
131
+ if self.__datamodel_metadata is None:
132
+ self.__datamodel_metadata = get_dm_metadata(self.__rpc, root_type)
133
+ return self.__datamodel_metadata
134
+
135
+ def _get_named_object_level_map(self):
136
+ if not self.__named_obj_level_map:
137
+ self._make_named_object_level_map(root_type="SystemCoupling")
138
+ return self.__named_obj_level_map
139
+
140
+ def _make_named_object_level_map(self, root_type):
141
+ def visit_children(metadata, level):
142
+ for k, v in metadata["__children"].items():
143
+ if v["isNamed"]:
144
+ self.__named_obj_level_map.setdefault(level, set()).add(k)
145
+ visit_children(v, level + 1)
146
+
147
+ dm_metadata = self._get_datamodel_metadata(root_type)
148
+ visit_children(dm_metadata[root_type], 0)
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -245,6 +245,17 @@ def parse_csv_metadata(interface_name: str, headers: list[str]) -> InterfaceInfo
245
245
  series_type, intf_or_part_disp_name, trans_disp_name = _parse_header(header)
246
246
  if series_type == SeriesType.CONVERGENCE:
247
247
  prev_part_name = ""
248
+
249
+ # If there are no convergence headings, transfer_disambig will
250
+ # remain unpopulated. In this case, assume for now that there
251
+ # is no ambiguity. Although not strictly correct, this is a
252
+ # reasonable assumption for the majority of cases.
253
+ # TODO: look for alternative method to determine a
254
+ # disambiguation index in the case of no convergence headers.
255
+ # If this is not possible, look for a way to detect that
256
+ # data transfers are ambiguous and raise an exception or
257
+ # warn and skip plotting.
258
+
248
259
  if trans_disp_name in transfer_disambig:
249
260
  transfer_disambig[trans_disp_name] += 1
250
261
  else:
@@ -258,7 +269,8 @@ def parse_csv_metadata(interface_name: str, headers: list[str]) -> InterfaceInfo
258
269
  data_index,
259
270
  series_type,
260
271
  transfer_display_name=trans_disp_name,
261
- disambiguation_index=transfer_disambig[trans_disp_name],
272
+ # get(..., 0) for case where transfer_disambig empty (see note above)
273
+ disambiguation_index=transfer_disambig.get(trans_disp_name, 0),
262
274
  )
263
275
  intf_info.transfer_info.append(series_info)
264
276
  else:
@@ -276,7 +288,9 @@ def parse_csv_metadata(interface_name: str, headers: list[str]) -> InterfaceInfo
276
288
  data_index,
277
289
  series_type,
278
290
  transfer_display_name=trans_disp_name,
279
- disambiguation_index=transfer_disambig[trans_disp_name],
291
+ disambiguation_index=transfer_disambig.get(
292
+ trans_disp_name, 0
293
+ ),
280
294
  participant_display_name=part_disp_name,
281
295
  line_suffixes=[suffix],
282
296
  )
@@ -292,7 +306,7 @@ def parse_csv_metadata(interface_name: str, headers: list[str]) -> InterfaceInfo
292
306
  data_index,
293
307
  series_type,
294
308
  transfer_display_name=trans_disp_name,
295
- disambiguation_index=transfer_disambig[trans_disp_name],
309
+ disambiguation_index=transfer_disambig.get(trans_disp_name, 0),
296
310
  participant_display_name=part_disp_name,
297
311
  )
298
312
  )
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -137,7 +137,16 @@ class SycGrpc(object):
137
137
  _LOCALHOST_IP, port, working_dir, version, **kwargs
138
138
  )
139
139
  LOG.debug("...started")
140
- self._connect(_LOCALHOST_IP, port)
140
+ try:
141
+ self._connect(_LOCALHOST_IP, port)
142
+ except Exception as e:
143
+ if "v251" in self.__process.path_to_system_coupling:
144
+ e.args += (
145
+ "Connection will fail if you are running an "
146
+ "unpatched version of System Coupling 25 R1. ",
147
+ )
148
+ raise
149
+
141
150
  if start_output:
142
151
  self.start_output()
143
152
 
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -21,9 +21,9 @@
21
21
  # SOFTWARE.
22
22
 
23
23
  import ansys.api.systemcoupling.v0.command_pb2_grpc as command_pb2_grpc
24
- import ansys.api.systemcoupling.v0.error_pb2 as syc_error_pb2
25
24
  import grpc
26
- from grpc_status.rpc_status import from_call
25
+
26
+ from ansys.systemcoupling.core.client.services.handle_rpc_error import handle_rpc_error
27
27
 
28
28
 
29
29
  class CommandQueryService:
@@ -35,14 +35,5 @@ class CommandQueryService:
35
35
  response, call = self.__stub.InvokeCommand.with_call(request)
36
36
  return response, call.trailing_metadata()
37
37
  except grpc.RpcError as rpc_error:
38
- status = from_call(rpc_error)
39
- msg = f"Command execution failed: {status.message} (code={status.code})"
40
- for detail in status.details:
41
- if detail.Is(syc_error_pb2.ErrorDetails.DESCRIPTOR):
42
- info = syc_error_pb2.ErrorDetails()
43
- detail.Unpack(info)
44
- msg += (
45
- f"\n\nServer exception details:\n"
46
- f"{info.exception_classname}\n{info.stack_trace}"
47
- )
38
+ msg = handle_rpc_error(rpc_error)
48
39
  raise RuntimeError(msg) from None
@@ -0,0 +1,64 @@
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
+ # SPDX-License-Identifier: MIT
3
+ #
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+
23
+ import ansys.api.systemcoupling.v0.error_pb2 as syc_error_pb2
24
+ import grpc
25
+ from grpc_status.rpc_status import from_call
26
+
27
+
28
+ def _error_details_msg(error_details: syc_error_pb2) -> str:
29
+ return (
30
+ f"Command or query execution failed with error: {error_details.exception_classname}"
31
+ f"\n\nServer stacktrace:\n{error_details.stack_trace}"
32
+ )
33
+
34
+
35
+ def _check_for_syc_exception(rpc_error):
36
+ # grpc_status is not available in some server versions so
37
+ # check for bespoke method of returning error details via
38
+ # trailing metadata.
39
+ meta = rpc_error.trailing_metadata()
40
+ if meta is not None:
41
+ for key, value in meta:
42
+ if key == "syc-exception-bin":
43
+ error_details = syc_error_pb2.ErrorDetails()
44
+ error_details.ParseFromString(value)
45
+ return _error_details_msg(error_details)
46
+ return None
47
+
48
+
49
+ def handle_rpc_error(rpc_error: grpc.RpcError):
50
+ msg = _check_for_syc_exception(rpc_error)
51
+ if msg is not None:
52
+ return msg
53
+
54
+ status = from_call(rpc_error)
55
+ if status is None:
56
+ return "Command or query execution failed. No details available."
57
+
58
+ msg = f"Command execution failed: {status.message} (code={status.code})"
59
+ for detail in status.details:
60
+ if detail.Is(syc_error_pb2.ErrorDetails.DESCRIPTOR):
61
+ error_details = syc_error_pb2.ErrorDetails()
62
+ detail.Unpack(error_details)
63
+ msg += _error_details_msg(error_details)
64
+ return msg
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -20,11 +20,11 @@
20
20
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  # SOFTWARE.
22
22
 
23
- import ansys.api.systemcoupling.v0.error_pb2 as syc_error_pb2
24
23
  import ansys.api.systemcoupling.v0.solution_pb2 as solution_pb2
25
24
  import ansys.api.systemcoupling.v0.solution_pb2_grpc as solution_pb2_grpc
26
25
  import grpc
27
- from grpc_status.rpc_status import from_call
26
+
27
+ from ansys.systemcoupling.core.client.services.handle_rpc_error import handle_rpc_error
28
28
 
29
29
 
30
30
  class SolutionService:
@@ -36,16 +36,7 @@ class SolutionService:
36
36
  try:
37
37
  self.__stub.Solve(request)
38
38
  except grpc.RpcError as rpc_error:
39
- status = from_call(rpc_error)
40
- msg = f"Command execution failed: {status.message} (code={status.code})"
41
- for detail in status.details:
42
- if detail.Is(syc_error_pb2.ErrorDetails.DESCRIPTOR):
43
- info = syc_error_pb2.ErrorDetails()
44
- detail.Unpack(info)
45
- msg += (
46
- f"\n\nServer exception details:\n"
47
- f"{info.exception_classname}\n{info.stack_trace}"
48
- )
39
+ msg = handle_rpc_error(rpc_error)
49
40
  raise RuntimeError(msg) from None
50
41
 
51
42
  def interrupt(self, reason):
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -81,6 +81,9 @@ def start_container(
81
81
  idx = run_args.index("-p")
82
82
  run_args.insert(idx, container_user)
83
83
  run_args.insert(idx, "--user")
84
+ # Licensing can't log to default location if user is not the default 'root'
85
+ run_args.insert(idx, f"ANSYSLC_APPLOGDIR={mounted_to}")
86
+ run_args.insert(idx, "-e")
84
87
 
85
88
  license_server = os.getenv("ANSYSLMD_LICENSE_FILE")
86
89
  if license_server:
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -50,6 +50,10 @@ class SycProcess: # pragma: no cover
50
50
  host, port, working_dir, version, **kwargs
51
51
  )
52
52
 
53
+ @property
54
+ def path_to_system_coupling(self) -> str:
55
+ return self.__process.args[0]
56
+
53
57
  def end(self):
54
58
  if self.__process and self.__process.poll() is None:
55
59
  pid = self.__process.pid
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -24,8 +24,8 @@ from typing import Tuple
24
24
 
25
25
  # Define constants relating to the default/current version of System Coupling
26
26
 
27
- SYC_MAJOR_VERSION = 24
28
- SYC_MINOR_VERSION = 2
27
+ SYC_MAJOR_VERSION = 25
28
+ SYC_MINOR_VERSION = 1
29
29
 
30
30
  SYC_VERSION_CONCAT = f"{SYC_MAJOR_VERSION}{SYC_MINOR_VERSION}"
31
31
  SYC_VERSION_DOT = f"{SYC_MAJOR_VERSION}.{SYC_MINOR_VERSION}"
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -21,6 +21,7 @@
21
21
  # SOFTWARE.
22
22
 
23
23
  import copy
24
+ from typing import Any, Dict, Set
24
25
 
25
26
 
26
27
  def adapt_native_named_object_keys(state):
@@ -74,7 +75,9 @@ def adapt_native_named_object_keys_in_place(state):
74
75
  del state[k]
75
76
 
76
77
 
77
- def adapt_client_named_object_keys(state, level_type_map):
78
+ def adapt_client_named_object_keys(
79
+ state: Dict[str, Any], level_type_map: Dict[int, Set[str]], start_level: int = 0
80
+ ) -> Dict[str, Any]:
78
81
  """Transform a System Coupling client-style nested state dictionary
79
82
  to an equivalent native format.
80
83
 
@@ -89,12 +92,18 @@ def adapt_client_named_object_keys(state, level_type_map):
89
92
 
90
93
  Parameters
91
94
  ----------
95
+ state: dict
96
+ The nested state dictionary to transform to the native format.
92
97
  level_type_map: dict
93
98
  Dictionary from the integer nest level (0-based) to sets of
94
99
  named object types at this level. Note that the level is
95
100
  the data model level. This means it does not include the extra
96
101
  levels introduced by the client-side format but more closely
97
102
  aligns with the target native format.
103
+ start_level: int, optional
104
+ If state is a sub-state of a larger state, and the level_type_map
105
+ is for the larger state, then this parameter can be used to
106
+ provide a starting level for the transformation.
98
107
  """
99
108
 
100
109
  def do_adapt(s, level=0):
@@ -110,4 +119,4 @@ def adapt_client_named_object_keys(state, level_type_map):
110
119
  state_out[id] = copy.copy(sub_state)
111
120
  return state_out
112
121
 
113
- return do_adapt(state)
122
+ return do_adapt(state, level=start_level)
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
1
+ # Copyright (C) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
2
2
  # SPDX-License-Identifier: MIT
3
3
  #
4
4
  #
@@ -1,10 +1,10 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: ansys-systemcoupling-core
3
- Version: 0.8.0
3
+ Version: 0.9.1
4
4
  Summary: A Python wrapper for Ansys System Coupling.
5
5
  Author-email: "ANSYS, Inc." <pyansys.support@ansys.com>
6
6
  Maintainer-email: PyAnsys developers <pyansys.maintainers@ansys.com>
7
- Requires-Python: >=3.10,<3.13
7
+ Requires-Python: >=3.10,<3.14
8
8
  Description-Content-Type: text/x-rst
9
9
  Classifier: Development Status :: 4 - Beta
10
10
  Classifier: Intended Audience :: Science/Research
@@ -16,10 +16,12 @@ Classifier: Operating System :: MacOS
16
16
  Classifier: Programming Language :: Python :: 3.10
17
17
  Classifier: Programming Language :: Python :: 3.11
18
18
  Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ License-File: LICENSE
19
21
  Requires-Dist: ansys-api-systemcoupling==0.2.0
20
22
  Requires-Dist: ansys-platform-instancemanagement~=1.0
21
23
  Requires-Dist: grpcio>=1.30.0
22
- Requires-Dist: grpcio-status>=1.30.0,<1.66.2
24
+ Requires-Dist: grpcio-status>=1.30.0
23
25
  Requires-Dist: googleapis-common-protos>=1.50.0
24
26
  Requires-Dist: psutil>=5.7.0
25
27
  Requires-Dist: pyyaml
@@ -27,27 +29,26 @@ Requires-Dist: appdirs>=1.4.0
27
29
  Requires-Dist: importlib-metadata>=4.0
28
30
  Requires-Dist: matplotlib>=3.8.2
29
31
  Requires-Dist: build ; extra == "build"
30
- Requires-Dist: black==24.8.0 ; extra == "classesgen"
31
- Requires-Dist: isort==5.13.2 ; extra == "classesgen"
32
- Requires-Dist: ansys-sphinx-theme==1.0.11 ; extra == "doc"
32
+ Requires-Dist: black==25.1.0 ; extra == "classesgen"
33
+ Requires-Dist: isort==6.0.1 ; extra == "classesgen"
34
+ Requires-Dist: ansys-sphinx-theme==1.4.2 ; extra == "doc"
33
35
  Requires-Dist: jupyter_sphinx==0.5.3 ; extra == "doc"
34
36
  Requires-Dist: matplotlib ; extra == "doc"
35
37
  Requires-Dist: numpydoc==1.8.0 ; extra == "doc"
36
- Requires-Dist: pypandoc==1.13 ; extra == "doc"
38
+ Requires-Dist: pypandoc==1.15 ; extra == "doc"
37
39
  Requires-Dist: pytest-sphinx==0.6.3 ; extra == "doc"
38
- Requires-Dist: Sphinx==8.0.2 ; extra == "doc"
39
- Requires-Dist: sphinx-autobuild==2024.9.19 ; extra == "doc"
40
- Requires-Dist: sphinx-autodoc-typehints==2.4.4 ; extra == "doc"
40
+ Requires-Dist: sphinx>=8.1.3 ; extra == "doc"
41
+ Requires-Dist: sphinx-autobuild==2024.10.3 ; extra == "doc"
42
+ Requires-Dist: sphinx-autodoc-typehints==3.1.0 ; extra == "doc"
41
43
  Requires-Dist: sphinx-copybutton==0.5.2 ; extra == "doc"
42
- Requires-Dist: sphinx-gallery==0.17.1 ; extra == "doc"
43
- Requires-Dist: sphinx-notfound-page==1.0.4 ; extra == "doc"
44
+ Requires-Dist: sphinx-gallery==0.19.0 ; extra == "doc"
45
+ Requires-Dist: sphinx-notfound-page==1.1.0 ; extra == "doc"
44
46
  Requires-Dist: sphinxcontrib-websupport==2.0.0 ; extra == "doc"
45
47
  Requires-Dist: sphinxemoji==0.3.1 ; extra == "doc"
46
- Requires-Dist: ansys-fluent-core==0.26.0 ; extra == "doc"
47
- Requires-Dist: ansys-dpf-core==0.13.0 ; extra == "doc"
48
- Requires-Dist: ansys-mapdl-core==0.68.4 ; extra == "doc"
49
- Requires-Dist: codespell==2.3.0 ; extra == "style"
50
- Requires-Dist: flake8==7.1.1 ; extra == "style"
48
+ Requires-Dist: ansys-fluent-core==0.29.0 ; extra == "doc"
49
+ Requires-Dist: ansys-mapdl-core==0.69.3 ; extra == "doc"
50
+ Requires-Dist: codespell==2.4.1 ; extra == "style"
51
+ Requires-Dist: flake8==7.2.0 ; extra == "style"
51
52
  Requires-Dist: pytest ; extra == "tests"
52
53
  Requires-Dist: pytest-cov ; extra == "tests"
53
54
  Requires-Dist: psutil>=5.7.0 ; extra == "tests"
@@ -136,16 +137,29 @@ in this order:
136
137
 
137
138
  * ``SYSC_ROOT``
138
139
  * ``AWP_ROOT``
139
- * ``AWP_ROOT242``
140
+ * ``AWP_ROOT251``
140
141
 
141
142
  If a variable is set but does not refer to a valid installation, PySystemCoupling
142
143
  fails at that point, rather than attempting to use the next variable.
143
144
 
144
- In a standard user installation, the expectation is that only ``AWP_ROOT242`` is set.
145
+ In a standard user installation, the expectation is that only ``AWP_ROOT251`` is set.
145
146
 
146
147
  (It is also possible to provide a different version number as an argument to the ``launch()``
147
148
  function. This will affect which ``AWP_ROOT<version>`` environment variable is examined.)
148
149
 
150
+ **WARNING**
151
+
152
+ There is an issue with the 25 R1 release of Ansys System Coupling that prevents it from
153
+ working in the gRPC server mode on which PySystemCoupling depends. A small patch
154
+ is available that may be applied to some of the Python files in the System Coupling
155
+ installation. This is provided in the ``patches/`` directory of this repository and will
156
+ allow System Coupling to work with the current release of PySystemCoupling.
157
+
158
+ Otherwise, PySystemCoupling should be used with an earlier release of System Coupling by
159
+ setting the environment variable ``AWP_ROOT`` or specifying the version number as an
160
+ argument to the ``launch()`` function.
161
+
162
+
149
163
  The System Coupling API is exposed to PySystemCoupling in two forms:
150
164
 
151
165
  * A documented interface based on concrete Python classes, following Pythonic conventions
@@ -157,7 +171,7 @@ familiar with System Coupling, adjusting to this form, which is the recommended
157
171
  However, if you are transitioning existing scripts, the native System Coupling API is made available
158
172
  as a convenience.
159
173
 
160
- .. note::
174
+ **Note**
161
175
 
162
176
  While most commands should work as expected via the native System Coupling API,
163
177
  no guarantees can be given because of the nature of how it is exposed.
@@ -1,7 +1,7 @@
1
- ansys/systemcoupling/core/__init__.py,sha256=9dek5li8pDDRA5oBI3mPeOwu784_qzwzse3lTNLyUWU,7404
2
- ansys/systemcoupling/core/_version.py,sha256=WDT4Te1BIWgZU3Gt3WrwVwiGFs4nolWZXbwX-Ubj_r4,1579
3
- ansys/systemcoupling/core/session.py,sha256=yjnZI-OFKLjnooVRg5e0M9MIJGV38Cm041mcdb6nMCs,10983
4
- ansys/systemcoupling/core/syc_version.py,sha256=dn1BRe9hzGD2QAsuk6OLjxNcznJlpyiPIZh9Zjrwdqc,3783
1
+ ansys/systemcoupling/core/__init__.py,sha256=vW228n23bD4XPS3_1FkqUe4us01WNz7T3BrhyF91FXE,7404
2
+ ansys/systemcoupling/core/_version.py,sha256=0O92dThGL6WonU1LHCRjVhowmSx2G6APw-gxOsSN9ME,1579
3
+ ansys/systemcoupling/core/session.py,sha256=gdUOivOdKOhOn7oA9Z2kqZKekFPcURwV_bIODBK1KO0,10983
4
+ ansys/systemcoupling/core/syc_version.py,sha256=rmizjaWrgraXXSWo7-CJs9S9Ed1iXli-DVy7ylaiLMs,3783
5
5
  ansys/systemcoupling/core/adaptor/api_23_1/_add_participant.py,sha256=_Wbmc-g3FyEyFodFjklI8IBJ3lLIWEIMHsMdAFlddsM,1198
6
6
  ansys/systemcoupling/core/adaptor/api_23_1/_clear_state.py,sha256=z13uOkk8M-Ue1_znQXEyGvYOYW1zHSV-MpZgEMDPlTg,215
7
7
  ansys/systemcoupling/core/adaptor/api_23_1/_solve.py,sha256=MOOadf9YEzjm67-3VUewym8bVJP7hcbuo6YuN_c6HTI,204
@@ -469,13 +469,13 @@ ansys/systemcoupling/core/adaptor/api_25_1/global_stabilization.py,sha256=GKoUGq
469
469
  ansys/systemcoupling/core/adaptor/api_25_1/has_input_file_changed.py,sha256=PU9djZCJvD8aX4LtA6MyfnqsVXqloitCp4gOTariLT0,909
470
470
  ansys/systemcoupling/core/adaptor/api_25_1/import_system_coupling_input_file.py,sha256=BY_zp9YObc2a-H4T_flTVZ95N3JwzH5Df50sT5bI2Mc,993
471
471
  ansys/systemcoupling/core/adaptor/api_25_1/initialize.py,sha256=YmTmUme4-tfRtv4XMxsUzIgw-XGyuJttuGxdbFfftns,1025
472
- ansys/systemcoupling/core/adaptor/api_25_1/instancing.py,sha256=3TW26HU9oiD0Px1kmhk-IfbF9op2GUeTiSCqOV1mf7I,507
473
- ansys/systemcoupling/core/adaptor/api_25_1/instancing_child.py,sha256=G_-ZpzN2S06EPvOZtYPrAcXn1nQ5_Ns9TxrJwX8A_kQ,2231
472
+ ansys/systemcoupling/core/adaptor/api_25_1/instancing.py,sha256=J_TJ50x8eU6zcGnrNzMTGUgP5_y2KDqivoKRINEZwss,575
473
+ ansys/systemcoupling/core/adaptor/api_25_1/instancing_child.py,sha256=PxmBCSWlVR45wZKhmf_3xjJ8M0Z-TBtHMN194cmf9N4,3968
474
474
  ansys/systemcoupling/core/adaptor/api_25_1/interrupt.py,sha256=r3rfTKTDykPKVWxLENv0xKLCLep_EQIFe6ZW4qPL9kQ,906
475
475
  ansys/systemcoupling/core/adaptor/api_25_1/library.py,sha256=woA6i5bJwuvX0rpwPvA037UcJQ68GRVSuEEFnwuKKFw,932
476
476
  ansys/systemcoupling/core/adaptor/api_25_1/live_visualization.py,sha256=3vBBtdVUaM5pZasN0wzIO-2Nx3Ei-qa9yLIvD2RM_jA,486
477
477
  ansys/systemcoupling/core/adaptor/api_25_1/live_visualization_child.py,sha256=1s-mZXROuCMnUTex47s5reCfwl5QPIftIuSUt63Bgcc,3217
478
- ansys/systemcoupling/core/adaptor/api_25_1/mapping_control.py,sha256=OTLC1mbtEepHGBvyT_Up52TYoi7jnfAMKO6eJ0OdZS4,8900
478
+ ansys/systemcoupling/core/adaptor/api_25_1/mapping_control.py,sha256=XoQi44FhUdG03B9HoR5GlADP1m35gLQVUDcrRn9ERQs,9851
479
479
  ansys/systemcoupling/core/adaptor/api_25_1/open.py,sha256=UaI7smLrHnzBULHTQPwlnc6YAFODxNwdCgh_bEE-YuQ,4810
480
480
  ansys/systemcoupling/core/adaptor/api_25_1/open_results_in_ensight.py,sha256=rJZgR1Hskl8qcwK1DMpVeMAxtFCM-w06o2W3FoGkCqA,1902
481
481
  ansys/systemcoupling/core/adaptor/api_25_1/open_snapshot.py,sha256=8XRCnVH8REZtLhzgzfzvoJlJDuMhTvGSvv8DIIESH-4,1153
@@ -493,7 +493,7 @@ ansys/systemcoupling/core/adaptor/api_25_1/reload_expression_function_modules.py
493
493
  ansys/systemcoupling/core/adaptor/api_25_1/results.py,sha256=t-uhPT5K6WpP6C4kNlo642gbS6mP5Wq5suL6pGkep1o,2658
494
494
  ansys/systemcoupling/core/adaptor/api_25_1/save.py,sha256=cf2Wtmr2j7tedleIXEZZJVloi5zH00vx7kCQalkNDW4,1684
495
495
  ansys/systemcoupling/core/adaptor/api_25_1/save_snapshot.py,sha256=ToFCyETB_v_nBMP2gs99U8-j2NoH4KYZyvmL5-zKN8g,1950
496
- ansys/systemcoupling/core/adaptor/api_25_1/setup_root.py,sha256=R8q0KzxGiiPknUNImbsrgu-_xj_4X-McS4bId-z-Qss,9055
496
+ ansys/systemcoupling/core/adaptor/api_25_1/setup_root.py,sha256=ancWutiFrgM5SKtwrYYH0csghLxQBhtMXa80e8a4BvE,9055
497
497
  ansys/systemcoupling/core/adaptor/api_25_1/show_plot.py,sha256=qGa4acJb2LU3CqytIFrWKQ59aQLtCQnUCs1HbOR6lDc,1887
498
498
  ansys/systemcoupling/core/adaptor/api_25_1/shutdown.py,sha256=piXJW0ZiGH-5WK-4dUWMymGR2iQeptCOK0a3yw980O0,808
499
499
  ansys/systemcoupling/core/adaptor/api_25_1/side.py,sha256=JofUJvD2LVcaKhcXtaH7WiUE71fi5c1_3jkMOsy_AZk,372
@@ -509,52 +509,53 @@ ansys/systemcoupling/core/adaptor/api_25_1/transformation_child.py,sha256=ny8wp4
509
509
  ansys/systemcoupling/core/adaptor/api_25_1/type.py,sha256=fC5twjCM-g2J3Q2s0Fzq33-xy6MKIrHUluBTx41LmvQ,886
510
510
  ansys/systemcoupling/core/adaptor/api_25_1/unmapped_value_options.py,sha256=hO4ZuCHx1Ym5EVm8oBRQL-bvZSv9ZfewVyEWSe30_cA,5626
511
511
  ansys/systemcoupling/core/adaptor/api_25_1/update_control.py,sha256=oXA2Bi_5OMOZ1JsF7aWtZQni9VAIzFLIIj8bcjxFSzY,1049
512
- ansys/systemcoupling/core/adaptor/api_25_1/update_participant.py,sha256=Hnan-3ehi3MH9IUFhHuIv3kq4B255pKaqyjSaRJFU-Q,2345
512
+ ansys/systemcoupling/core/adaptor/api_25_1/update_participant.py,sha256=JoaRINNMXUaPlbh6WNk7cRim6vMD4pIQtJIyHGQW6S8,2109
513
513
  ansys/systemcoupling/core/adaptor/api_25_1/variable.py,sha256=BJldfmMGuyO9riy6LwtRrqIaEUPD1Ztexf0CEVubCsE,411
514
514
  ansys/systemcoupling/core/adaptor/api_25_1/variable_child.py,sha256=aySH9jOK02RU8OCXyp61XKxvWsV7ZLkSa1yKEimZNas,7234
515
515
  ansys/systemcoupling/core/adaptor/api_25_1/write_csv_chart_files.py,sha256=32YlQ9t5bb1qzazVVM4fQOVb1EthrEmPHSXf3dzqv2Q,656
516
516
  ansys/systemcoupling/core/adaptor/api_25_1/write_ensight.py,sha256=cy1ZUL2Td2WCfuuWWIUigMmPdxwRKqV9msH0pJI624Y,1278
517
- ansys/systemcoupling/core/adaptor/impl/get_status_messages.py,sha256=3wSnWTUS3q4VdufmHZ7jxyVCZONITFtP_tUB-8NnQuU,4210
518
- ansys/systemcoupling/core/adaptor/impl/get_syc_version.py,sha256=CIq2J8h8Eapq_jrXpMMHAa9oqSSaNR5G7NAYZseVgJg,2489
519
- ansys/systemcoupling/core/adaptor/impl/injected_commands.py,sha256=5FlUQUr0fuPvUh1YPaU38eh_duRHeg6NzpvyxCND5SI,19177
520
- ansys/systemcoupling/core/adaptor/impl/root_source.py,sha256=d-NSP104VjR65qTiqp1rlST6VYJRUPf9YHcpR8ABssQ,12828
521
- ansys/systemcoupling/core/adaptor/impl/static_info.py,sha256=5U1CYNASPl4zNGjIw3Slwkhq-8v7GVKrih0HO_bIjSk,15691
522
- ansys/systemcoupling/core/adaptor/impl/syc_proxy.py,sha256=-jF5zSwwiyJXLxocWK01v5AYDDtLyZRiMPfcqeOvim8,4906
523
- ansys/systemcoupling/core/adaptor/impl/syc_proxy_interface.py,sha256=oEEo1hyCtV-HFml7p0LuDKtmb918XmrBejkwx3Y_rkk,2361
524
- ansys/systemcoupling/core/adaptor/impl/types.py,sha256=Q-19IykEuUYQA2yVx-wJkP2tO9Am1IWzg3pFquFgI1c,25132
525
- ansys/systemcoupling/core/charts/chart_datatypes.py,sha256=rlN9_rOaUGMLjEuxaSqpIBWcht3cnBpxm2uNYghbJU4,6711
526
- ansys/systemcoupling/core/charts/csv_chartdata.py,sha256=kmoglFJmAkZE8o5iV9GJNbOyL9CMVeLNLOVxfyS0D1M,11043
527
- ansys/systemcoupling/core/charts/live_csv_datasource.py,sha256=R8r1WGjKx0-VxwYq_MqnRQYEIqFeJTICOaDpd4QLMs0,3385
528
- ansys/systemcoupling/core/charts/message_dispatcher.py,sha256=zuNY3NthWag1yf7Rkj9CapaSyi0Bd0WSx8aMU1NfNgQ,2940
529
- ansys/systemcoupling/core/charts/plot_functions.py,sha256=Li5HYCWkRTAvFGqnI6p636qayTPqphHLOtWI861vtgA,3276
530
- ansys/systemcoupling/core/charts/plotdefinition_manager.py,sha256=UFQjYei3gk3GYVUksSPYbtcxFbcfepZscGg55ok5OQg,12446
531
- ansys/systemcoupling/core/charts/plotter.py,sha256=L_hIanq5sV6LVSu3dn3yjoeCPBpEccyxXk2fFCt85_s,11833
532
- ansys/systemcoupling/core/client/grpc_client.py,sha256=8g7oASjQ2FEfnxDJ6K4Wl9EOkUUAqq_fMuGVC3zxTXk,14947
533
- ansys/systemcoupling/core/client/syc_container.py,sha256=_EZRscY5iWyJPbqY-ep_e6Y-Nu1XKygduzVYjg5xJg8,3170
534
- ansys/systemcoupling/core/client/syc_process.py,sha256=udVsRxD5QaaL1n7MPjmpIvybv5dlPmXiO2KCPRNnWGE,5635
535
- ansys/systemcoupling/core/client/variant.py,sha256=di_eWRZnDQ69cknunYxRAOnbnwXnG6aZ_Se1VxOX7VQ,3064
536
- ansys/systemcoupling/core/client/services/command_query.py,sha256=3qd0qTQDMxW5qz2DuQIC30RKEPIwe8JWxJwSaRd_X8E,2256
537
- ansys/systemcoupling/core/client/services/output_stream.py,sha256=Tk2dzbqtY9zro-DQ_qRGqhaef1y0geBbXKxvKcTB_Ck,2148
538
- ansys/systemcoupling/core/client/services/process.py,sha256=u_gSQ14w5KVKIb_APjba-FOxv4u27YYUCN43CXjl6cM,1683
539
- ansys/systemcoupling/core/client/services/solution.py,sha256=W4QlrRIkt-YihpwZh2sIZWQOH2Eg2741F7s6kUKepGM,2518
540
- ansys/systemcoupling/core/examples/__init__.py,sha256=ENNPCQaRxb-NZsFsj-_eaMkLmJmbiwe_IhD5xNaXQFc,1223
541
- ansys/systemcoupling/core/examples/downloads.py,sha256=sp77UGBrel50wt5rbE_eaTSTSOaeAc2UObX19rNwkeQ,3708
542
- ansys/systemcoupling/core/native_api/__init__.py,sha256=2ZbeOsasqkAfqneB_iavb-qotNw3jtUCXWQAuBVQCuE,1188
543
- ansys/systemcoupling/core/native_api/command_metadata.py,sha256=hyjDSYNU77xsV7VB24wCa7SenS3PQ-FtYeuF7BzkmGQ,1734
544
- ansys/systemcoupling/core/native_api/datamodel_metadata.py,sha256=igFtxBTSh1VlN2Ni2ubzXHcV7Ca-DjjcCn9w5mqfJBk,4836
545
- ansys/systemcoupling/core/native_api/meta_wrapper.py,sha256=ddyT0ea2GBAQHu99BJw9SA9wz8f9Q1j1bOt3KVJG0cE,1462
546
- ansys/systemcoupling/core/native_api/native_api.py,sha256=3dP17JYzZa1PFP2jbCaEhzDi9B00ESlIcamxswRKcU0,7116
547
- ansys/systemcoupling/core/native_api/object_path.py,sha256=DAULeS_asHMf1O3PiFnLLF_ZinTBakmrBQcfie34eKs,4153
548
- ansys/systemcoupling/core/participant/manager.py,sha256=kJzfsTA1HquDQT-j3ib9OQMD0QRpvWGpnPMYDDvnYZU,9685
549
- ansys/systemcoupling/core/participant/mapdl.py,sha256=v9Ms6uVaPj1-AbZYsaAY9JR_WpkLD7xSOJ3kQRGgtT0,11166
550
- ansys/systemcoupling/core/participant/protocol.py,sha256=Kc90wvz-ZDJfhvL-SrlFymdb_mn2oqVucaRZW7BfFWM,2479
551
- ansys/systemcoupling/core/util/file_transfer.py,sha256=ZYRYAo6wDRVB7ihEMbK3JHYAoXiU5lxo6yzGTd830jo,6560
552
- ansys/systemcoupling/core/util/logging.py,sha256=dFj0migeyUGke7sYL-hN80amMnUvuIO1kkCsOH_8ipc,5059
553
- ansys/systemcoupling/core/util/name_util.py,sha256=AqALTBRe9hjS0SqbKk2BnN09pCq0M1irhd9illTTuwk,1470
554
- ansys/systemcoupling/core/util/pathstr.py,sha256=xfnBAee68WG1R8s2LkoO9fLYZsJ0Nrx84woVuQv9bVY,1941
555
- ansys/systemcoupling/core/util/state_keys.py,sha256=52gk88CJw1K3YIC6hg7Jc6_C2_EznQjrB1FrpcjhI1M,4545
556
- ansys/systemcoupling/core/util/yaml_helper.py,sha256=6j2VNGXSEiJ11GUsUn4Z3wbPB9Cw-5JBsb5gWHAVsYo,2982
557
- ansys_systemcoupling_core-0.8.0.dist-info/LICENSE,sha256=JgD60xBjdC80Y3_bDlvjsoWCc6vghcXDvbHvRTRmdY0,1098
558
- ansys_systemcoupling_core-0.8.0.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
559
- ansys_systemcoupling_core-0.8.0.dist-info/METADATA,sha256=ndbuY_i0J7WKo2ZMiZlB5YA0RhP4kTJK0wcQMEQicNs,10964
560
- ansys_systemcoupling_core-0.8.0.dist-info/RECORD,,
517
+ ansys/systemcoupling/core/adaptor/impl/get_status_messages.py,sha256=HFyhLn_Rw7mO23zGJsHq1XQ7Gnxh0ffHIXM5AxlGvqQ,4210
518
+ ansys/systemcoupling/core/adaptor/impl/get_syc_version.py,sha256=EBKu9q1OdIdLzKzi4MxTAZlCGm1MIJJ60FY-X40BGac,2489
519
+ ansys/systemcoupling/core/adaptor/impl/injected_commands.py,sha256=oE24dT8xY_BuZ3Z6K5fFTFL94Oc-jbjRcIWLWekbEDo,19177
520
+ ansys/systemcoupling/core/adaptor/impl/root_source.py,sha256=RIQlBtqnQEOlR8nXMfzNtdeNU3cIiciH-UW8StQoN8w,12828
521
+ ansys/systemcoupling/core/adaptor/impl/static_info.py,sha256=J1EN5rI0kaGPupUwxXfe3XlYuBHUWQwkbNy9s8U--QQ,15938
522
+ ansys/systemcoupling/core/adaptor/impl/syc_proxy.py,sha256=JXKYT0CWwm4CIADSwJsZJ48qXfhNLhEQqzCqA5fpLHA,6072
523
+ ansys/systemcoupling/core/adaptor/impl/syc_proxy_interface.py,sha256=pByFumJFde3LytQtRjuKWB0D7Qz9q51ivulEktTfwy4,2361
524
+ ansys/systemcoupling/core/adaptor/impl/types.py,sha256=LTzLPzEwSsDOtV-1fNiJDJP38UMOIMZ08ugdti68Ax4,25132
525
+ ansys/systemcoupling/core/charts/chart_datatypes.py,sha256=ml5uWQdC6zNpQzks-wjSV0GsEd8npU20Dc0qRibfxVM,6711
526
+ ansys/systemcoupling/core/charts/csv_chartdata.py,sha256=pL1SUc0ufprhGTbfQXx1lqqk0ESCZIXQ50YUx1H-LNU,11811
527
+ ansys/systemcoupling/core/charts/live_csv_datasource.py,sha256=b5VkE8fMSv-C6LQk0OUTc6FtbJ2tmHSkw1Imo2E6lyg,3385
528
+ ansys/systemcoupling/core/charts/message_dispatcher.py,sha256=Z5SQ7huo7-naQ37NzCSBH-cEnwZlUUyK2p_7jxWRnIw,2940
529
+ ansys/systemcoupling/core/charts/plot_functions.py,sha256=13KBPKpA_IpN5DQtWNZD6QTrdGp-FGxlQMUGOC1qIHo,3276
530
+ ansys/systemcoupling/core/charts/plotdefinition_manager.py,sha256=_rEc5FyqzgZXBAYM-ztbHT61IG8VJlHFu9-7gF5TLuE,12446
531
+ ansys/systemcoupling/core/charts/plotter.py,sha256=z01gIUsNVJM_z21Zolu390s1lhxTz0v5M8XLG2TKyRo,11833
532
+ ansys/systemcoupling/core/client/grpc_client.py,sha256=ABXxhY4hBjYb6SrWC0FMgZ3iwYKeaIXTP4OfcOOE97Y,15291
533
+ ansys/systemcoupling/core/client/syc_container.py,sha256=5m3LPMKfOfYkSIrdJOt5yxz2eHNf7389dsISdHUORz0,3353
534
+ ansys/systemcoupling/core/client/syc_process.py,sha256=Grui7KfXgzxIE-OJc1YJOVNjoIrr1VkLSrEbhal7cSA,5734
535
+ ansys/systemcoupling/core/client/variant.py,sha256=Py_0bfqcmqfHqqrsfkp7Q-K0NFf4lAZQuZKCzrNKGZ0,3064
536
+ ansys/systemcoupling/core/client/services/command_query.py,sha256=L2hM-dahtvwVWezh2Tnj0pkDJeiATBOnREG39pD27BY,1766
537
+ ansys/systemcoupling/core/client/services/handle_rpc_error.py,sha256=3nUNJ6enE1REnkCKH7dvkEPF01JLrxZw9Q0F_cpI0iI,2641
538
+ ansys/systemcoupling/core/client/services/output_stream.py,sha256=hnz6syI8f1FqYrfm3nQvNK577bi5rXLoNNKjY3Wh8lg,2148
539
+ ansys/systemcoupling/core/client/services/process.py,sha256=SsqBNjweebAS4WiZFj7hoPgP8Xunf7NXm_UXxt1X9vY,1683
540
+ ansys/systemcoupling/core/client/services/solution.py,sha256=bfcPyZ3a-H-itG2Xa5_xIfDNut733eXWZzJ7qkkrHaI,2028
541
+ ansys/systemcoupling/core/examples/__init__.py,sha256=bv0y1__s_vWioAMICbRbHIX9CSVLNVQczgZLe1hBek8,1223
542
+ ansys/systemcoupling/core/examples/downloads.py,sha256=L1M3M4bCv-POCoCZ4w18mAgz-JWBvVmXCg0y_87ngW8,3708
543
+ ansys/systemcoupling/core/native_api/__init__.py,sha256=AFAIdTi-UVI_UZXtAZ2tZUw-zglXBb4aPCBTokuNQn8,1188
544
+ ansys/systemcoupling/core/native_api/command_metadata.py,sha256=1rgid0cCwMNQf9pBXCluakw0ZObnh5R7Cd9byPK57-4,1734
545
+ ansys/systemcoupling/core/native_api/datamodel_metadata.py,sha256=htPI_l9dQdatT-ooyuO7amisOz0_sn_TTS3kp62mfdo,4836
546
+ ansys/systemcoupling/core/native_api/meta_wrapper.py,sha256=zvWrdZxx15ezJ_b4OZ0DVBytEaT_0Nrr6Si66mrpjjs,1462
547
+ ansys/systemcoupling/core/native_api/native_api.py,sha256=3uu6iRunf5ZrTCnNeERFsYepo5jPInhvqa-1NB_1psE,7116
548
+ ansys/systemcoupling/core/native_api/object_path.py,sha256=rxvt3zvgdbtlX5vmDccsAdJxWvVfTjbt2PpnuvJMNWg,4153
549
+ ansys/systemcoupling/core/participant/manager.py,sha256=xnRx_oG82mnk9trR1jqlb5CXtHwfbdwVt8jmcs4vKVQ,9685
550
+ ansys/systemcoupling/core/participant/mapdl.py,sha256=j6AWvFqUAbzBJMbDWILFxS6XVLP7NVYwDjeKSBbDA_s,11166
551
+ ansys/systemcoupling/core/participant/protocol.py,sha256=7c4_GejvtfsCRizTZgX4pDOp0VlEx9CVPCFxDbNvgIM,2479
552
+ ansys/systemcoupling/core/util/file_transfer.py,sha256=c_-w2kJUpdT4CK3b-3EzbcfcafFqqcXX21x40Is2J4g,6560
553
+ ansys/systemcoupling/core/util/logging.py,sha256=BMhDGQWucYjSNGrS3hYIiNxmvmj5chayo1djZcMwiM8,5059
554
+ ansys/systemcoupling/core/util/name_util.py,sha256=5p3dFIkPJheSX4r4hAcUaGrpmzGg385CruWo--sCCbc,1470
555
+ ansys/systemcoupling/core/util/pathstr.py,sha256=UVewX1DMeWpHgSAZDXX_p1TNs9O-fKDGT7G_38aC6JI,1941
556
+ ansys/systemcoupling/core/util/state_keys.py,sha256=d9TYahJFvafHfH900S4ELouK41hjKIBnRqunPZMzzSc,4998
557
+ ansys/systemcoupling/core/util/yaml_helper.py,sha256=_8ZrZeddnG_-QtdKP0WTxZPxneQkIHuWA229AT687QA,2982
558
+ ansys_systemcoupling_core-0.9.1.dist-info/licenses/LICENSE,sha256=EYDaskLuQxdNNOubsr9Xmgf_0bebDOEcd1ewKBOLCnQ,1098
559
+ ansys_systemcoupling_core-0.9.1.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
560
+ ansys_systemcoupling_core-0.9.1.dist-info/METADATA,sha256=LKw02PkHDwAnBVIslepc26M3qG7thGA2Shg5rZanemo,11648
561
+ ansys_systemcoupling_core-0.9.1.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: flit 3.9.0
2
+ Generator: flit 3.12.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
3
+ Copyright (c) 2023 - 2025 ANSYS, Inc. and/or its affiliates.
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy of
6
6
  this software and associated documentation files (the "Software"), to deal in