Skip to content

Commit 267a714

Browse files
authored
If object name matches existing property/method of class, rename it (#459)
1 parent 75a7c50 commit 267a714

File tree

2 files changed

+22
-7
lines changed

2 files changed

+22
-7
lines changed

src/ansys/fluent/core/services/settings.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
"""Wrapper to settings grpc service of Fluent."""
2+
import collections.abc
23
from typing import Any, List
34

45
import grpc
@@ -110,12 +111,14 @@ def _set_state_from_value(self, state, value):
110111
state.real = value
111112
elif isinstance(value, str):
112113
state.string = value
113-
elif isinstance(value, list):
114-
for v in value:
115-
self._set_state_from_value(state.value_list.lst.add(), v)
116-
elif isinstance(value, dict):
114+
elif isinstance(value, collections.abc.Mapping):
117115
for k, v in value.items():
118116
self._set_state_from_value(state.value_map.m[k], v)
117+
elif isinstance(value, collections.abc.Iterable):
118+
for v in value:
119+
self._set_state_from_value(state.value_list.lst.add(), v)
120+
else: # fall back to string (e.g. pathlib.Path)
121+
state.string = str(value)
119122

120123
@_trace
121124
def _get_state_from_value(self, state):

src/ansys/fluent/core/solver/flobject.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -692,35 +692,44 @@ def get_cls(name, info, parent=None):
692692
cls = type(pname, (base,), dct)
693693

694694
children = info.get("children")
695+
taboo = set(dir(cls))
696+
taboo |= set(
697+
["child_names", "command_names", "argument_names", "child_object_type"]
698+
)
695699
if children:
700+
taboo.add("child_names")
696701
cls.child_names = []
697702
for cname, cinfo in children.items():
698703
ccls = get_cls(cname, cinfo, cls)
699704
i = 0
700705
ccls_name = ccls.__name__
701-
while ccls_name in cls.child_names:
706+
while ccls_name in taboo:
702707
if i > 0:
703708
ccls_name = ccls_name[: ccls_name.rfind("_")]
704709
i += 1
705710
ccls_name += f"_{str(i)}"
706711
ccls.__name__ = ccls_name
707712
# pylint: disable=no-member
708713
cls.child_names.append(ccls.__name__)
714+
taboo.add(ccls_name)
709715
setattr(cls, ccls.__name__, ccls)
716+
710717
commands = info.get("commands")
711718
if commands:
712719
cls.command_names = []
713720
for cname, cinfo in commands.items():
714721
ccls = get_cls(cname, cinfo, cls)
722+
i = 0
715723
ccls_name = ccls.__name__
716-
while ccls_name in cls.command_names:
724+
while ccls_name in taboo:
717725
if i > 0:
718726
ccls_name = ccls_name[: ccls_name.rfind("_")]
719727
i += 1
720728
ccls_name += f"_{str(i)}"
721729
ccls.__name__ = ccls_name
722730
# pylint: disable=no-member
723731
cls.command_names.append(ccls.__name__)
732+
taboo.add(ccls_name)
724733
setattr(cls, ccls.__name__, ccls)
725734

726735
arguments = info.get("arguments")
@@ -732,20 +741,23 @@ def get_cls(name, info, parent=None):
732741
cls.argument_names = []
733742
for aname, ainfo in arguments.items():
734743
ccls = get_cls(aname, ainfo, cls)
744+
i = 0
735745
th = ccls._state_type
736746
th = th.__name__ if hasattr(th, "__name__") else str(th)
737747
doc += f" {ccls.__name__} : {th}\n"
738748
doc += f" {ccls.__doc__}\n"
739749
ccls_name = ccls.__name__
740-
while ccls_name in cls.argument_names:
750+
while ccls_name in taboo:
741751
if i > 0:
742752
ccls_name = ccls_name[: ccls_name.rfind("_")]
743753
i += 1
744754
ccls_name += f"_{str(i)}"
745755
ccls.__name__ = ccls_name
746756
# pylint: disable=no-member
747757
cls.argument_names.append(ccls.__name__)
758+
taboo.add(ccls_name)
748759
setattr(cls, ccls.__name__, ccls)
760+
749761
cls.__doc__ = doc
750762
object_type = info.get("object-type")
751763
if object_type:

0 commit comments

Comments
 (0)