diff --git a/src/ansys/fluent/core/solver/flobject.py b/src/ansys/fluent/core/solver/flobject.py index 5eea573dc1be..b5058d4a7860 100644 --- a/src/ansys/fluent/core/solver/flobject.py +++ b/src/ansys/fluent/core/solver/flobject.py @@ -163,6 +163,38 @@ def _setattr(self, name, value): StateT = TypeVar("StateT") +class Property(Base): + """Exposes attribute accessor on settings object.""" + + def default_value(self): + """Gets the default value of the object.""" + return self.get_attr("default") + + def is_read_only(self) -> bool: + """Whether the object is read-only.""" + return self.get_attr("read-only?") + + +class Numerical(Property): + """Exposes attribute accessor on settings object - specific to numerical objects.""" + + def min(self): + """Gets the minimum value of the object.""" + return self.get_attr("min") + + def max(self): + """Gets the maximum value of the object.""" + return self.get_attr("max") + + +class Textual(Property): + """Exposes attribute accessor on settings object - specific to string objects.""" + + def allowed_values(self): + """Gets the allowed values of the object.""" + return self.get_attr("allowed-values") + + class SettingsBase(Base, Generic[StateT]): """Base class for settings objects. @@ -228,13 +260,13 @@ def print_state(self, out=sys.stdout, indent_factor=2): self._print_state_helper(self.get_state(), out, indent_factor=indent_factor) -class Integer(SettingsBase[int]): +class Integer(SettingsBase[int], Numerical): """An ``Integer`` object representing an integer value setting.""" _state_type = int -class Real(SettingsBase[RealType]): +class Real(SettingsBase[RealType], Numerical): """A ``Real`` object representing a real value setting. Some ``Real`` objects also accept string arguments representing @@ -244,37 +276,43 @@ class Real(SettingsBase[RealType]): _state_type = RealType -class String(SettingsBase[str]): +class String(SettingsBase[str], Textual): """A ``String`` object representing a string value setting.""" _state_type = str -class Filename(SettingsBase[str]): +class Filename(SettingsBase[str], Textual): """A ``Filename`` object representing a file name.""" _state_type = str -class Boolean(SettingsBase[bool]): +class FilenameList(SettingsBase[StringListType], Textual): + """A FilenameList object represents a list of file names.""" + + _state_type = StringListType + + +class Boolean(SettingsBase[bool], Property): """A ``Boolean`` object representing a Boolean value setting.""" _state_type = bool -class RealList(SettingsBase[RealListType]): +class RealList(SettingsBase[RealListType], Numerical): """A ``RealList`` object representing a real list setting.""" _state_type = RealListType -class IntegerList(SettingsBase[IntListType]): +class IntegerList(SettingsBase[IntListType], Numerical): """An ``Integer`` object representing an integer list setting.""" _state_type = IntListType -class RealVector(SettingsBase[RealVectorType]): +class RealVector(SettingsBase[RealVectorType], Numerical): """An object representing a 3D vector. A ``RealVector`` object representing a real vector setting @@ -284,13 +322,13 @@ class RealVector(SettingsBase[RealVectorType]): _state_type = RealVectorType -class StringList(SettingsBase[StringListType]): +class StringList(SettingsBase[StringListType], Textual): """A ``StringList`` object representing a string list setting.""" _state_type = StringListType -class BooleanList(SettingsBase[BoolListType]): +class BooleanList(SettingsBase[BoolListType], Property): """A ``BooleanList`` object representing a Boolean list setting.""" _state_type = BoolListType @@ -664,6 +702,7 @@ def __call__(self, **kwds): "thread-var": String, "list-object": ListObject, "file": Filename, + "file-list": FilenameList, "map": Map, }