Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 49 additions & 10 deletions src/ansys/fluent/core/solver/flobject.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -664,6 +702,7 @@ def __call__(self, **kwds):
"thread-var": String,
"list-object": ListObject,
"file": Filename,
"file-list": FilenameList,
"map": Map,
}

Expand Down