diff --git a/doc/changelog.d/4567.fixed.md b/doc/changelog.d/4567.fixed.md new file mode 100644 index 00000000000..e695e3620b2 --- /dev/null +++ b/doc/changelog.d/4567.fixed.md @@ -0,0 +1 @@ +Set-state via call diff --git a/src/ansys/fluent/core/solver/flobject.py b/src/ansys/fluent/core/solver/flobject.py index 3495fde77df..5e89c93189d 100644 --- a/src/ansys/fluent/core/solver/flobject.py +++ b/src/ansys/fluent/core/solver/flobject.py @@ -822,7 +822,13 @@ def to_python_keys(cls, value: StateT) -> StateT: def __call__(self, *args, **kwargs): """Get or set the state of the object.""" if kwargs: - self.set_state(kwargs) + # Send value of the first key only + if len(kwargs) > 1: + warnings.warn( + f"Only the first keyword argument is used when setting state at {self.python_path}.", + PyFluentUserWarning, + ) + self.set_state(next(iter(kwargs.values()))) elif args: self.set_state(args) else: @@ -1070,6 +1076,14 @@ def __init__(self, name: str | None = None, parent=None): cls = self.__class__._child_classes[query] self._setattr(query, _create_child(cls, None, self)) + def __call__(self, *args, **kwargs): + if kwargs: + self.set_state(kwargs) + elif args: + self.set_state(args) + else: + return self.get_state() + @classmethod def to_scheme_keys(cls, value, root_cls, path: list[str]): """Convert value to have keys with scheme names. diff --git a/tests/test_settings_api.py b/tests/test_settings_api.py index 98c6fce0c6e..6f09b3de6ce 100644 --- a/tests/test_settings_api.py +++ b/tests/test_settings_api.py @@ -841,3 +841,8 @@ def test_migration_adapter_for_strings(mixing_elbow_settings_session): solver.settings.setup.models.discrete_phase.general_settings.unsteady_tracking.create_particles_at() == "particle-time-step" ) + + +def test_set_state_via_call(mixing_elbow_settings_session): + solver = mixing_elbow_settings_session + solver.settings.results.graphics.views.camera.position(xyz=[1.70, 1.14, 0.29])