Skip to content

Commit

Permalink
Update dependencies for UI (#1697)
Browse files Browse the repository at this point in the history
* Update dependencies for UI

* Restructuring.

* Include is_active

* Resolve conflict.

* show_as_separate_object -> show_border.
  • Loading branch information
prmukherj authored Jul 31, 2023
1 parent e083fc7 commit b491690
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 40 deletions.
36 changes: 24 additions & 12 deletions src/ansys/fluent/core/meta.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,9 @@ class Attribute:
"allowed_values",
"help_str",
"is_valid",
"is_active",
"help_context",
"show_as_separate_object",
"show_border",
"display_text",
"layout",
"previous",
Expand Down Expand Up @@ -140,46 +141,58 @@ def wrapper(attribute):

class PyLocalBaseMeta(type):
@classmethod
def __create_get_parent_by_type(cls):
def __create_get_ancestors_by_type(cls):
def wrapper(self, obj_type, obj=None):
obj = self if obj is None else obj
parent = None
if getattr(obj, "_parent", None):
if isinstance(obj._parent, obj_type):
return obj._parent
parent = self._get_parent_by_type(obj_type, obj._parent)
parent = self._get_ancestors_by_type(obj_type, obj._parent)
return parent

return wrapper

@classmethod
def __create_get_parent_by_name(cls):
def __create_get_ancestors_by_name(cls):
def wrapper(self, obj_type, obj=None):
obj = self if obj is None else obj
parent = None
if getattr(obj, "_parent", None):
if obj._parent.__class__.__name__ == obj_type:
return obj._parent
parent = self._get_parent_by_name(obj_type, obj._parent)
parent = self._get_ancestors_by_name(obj_type, obj._parent)
return parent

return wrapper

@classmethod
def __create_get_top_most_parent(cls):
def __create_get_root(cls):
def wrapper(self, obj=None):
obj = self if obj is None else obj
parent = obj
if getattr(obj, "_parent", None):
parent = self._get_top_most_parent(obj._parent)
parent = self.get_root(obj._parent)
return parent

return wrapper

@classmethod
def __create_get_session(cls):
def wrapper(self, obj=None):
obj = self if obj is None else obj
parent = obj
if getattr(obj, "_parent", None):
parent = self.get_root(obj._parent)
return parent.session

return wrapper

def __new__(cls, name, bases, attrs):
attrs["_get_parent_by_type"] = cls.__create_get_parent_by_type()
attrs["_get_parent_by_name"] = cls.__create_get_parent_by_name()
attrs["_get_top_most_parent"] = cls.__create_get_top_most_parent()
attrs["_get_ancestors_by_type"] = cls.__create_get_ancestors_by_type()
attrs["_get_ancestors_by_name"] = cls.__create_get_ancestors_by_name()
attrs["get_root"] = cls.__create_get_root()
attrs["get_session"] = cls.__create_get_session()
return super(PyLocalBaseMeta, cls).__new__(cls, name, bases, attrs)


Expand Down Expand Up @@ -337,8 +350,7 @@ def wrapper(self, path, location, session_id):
def __create_getattr(cls):
def wrapper(self, item):
if item == "_object":
# import pdb; pdb.set_trace()
top_most_parent = self._get_top_most_parent(self)
top_most_parent = self.get_root(self)

if self.session_id is None:
self.session_id = top_most_parent.session.id
Expand Down
20 changes: 9 additions & 11 deletions src/ansys/fluent/core/post_objects/post_helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ def surface_name_on_server(local_surface_name):
return "_dummy_surface_for_pyfluent:" + local_surface_name.lower()

def _get_api_handle(self):
return self.obj._get_top_most_parent().session.tui.surface
return self.obj.get_root().session.tui.surface

def _delete_if_exist_on_server(self):
field_info = self.obj._api_helper.field_info()
Expand Down Expand Up @@ -92,20 +92,18 @@ def delete_surface_on_server(self):
def __init__(self, obj):
"""__init__ method of PostAPIHelper class."""
self.obj = obj
self.field_info = lambda: obj._get_top_most_parent().session.field_info
self.field_data = lambda: obj._get_top_most_parent().session.field_data
self.monitors_manager = (
lambda: obj._get_top_most_parent().session.monitors_manager
)
self.id = lambda: obj._get_top_most_parent().session.id
self.field_info = lambda: obj.get_root().session.field_info
self.field_data = lambda: obj.get_root().session.field_data
self.monitors_manager = lambda: obj.get_root().session.monitors_manager
self.id = lambda: obj.get_root().session.id
if obj.__class__.__name__ == "Surface":
self.surface_api = PostAPIHelper._SurfaceAPI(obj)

def remote_surface_name(self, local_surface_name):
"""Returns the surface name."""
local_surfaces_provider = (
self.obj._get_top_most_parent()._local_surfaces_provider()
)

local_surfaces_provider = self.obj.get_root()._local_surfaces_provider()

if local_surface_name in list(local_surfaces_provider):
return PostAPIHelper._SurfaceAPI.surface_name_on_server(local_surface_name)
else:
Expand Down Expand Up @@ -151,6 +149,6 @@ def to_float(number):
return unit_info

def _scheme_str_to_py_list(self, scheme_eval_str):
session = self.obj._get_top_most_parent().session
session = self.obj.get_root().session
str_val = session.scheme_eval.string_eval(scheme_eval_str)
return list(filter(None, re.split(r'[\s()"\']', str_val)))
36 changes: 19 additions & 17 deletions src/ansys/fluent/core/post_objects/post_object_definitions.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@ class BasePostObjectDefn:
"""Base class for visualization objects."""

def _pre_display(self):
local_surfaces_provider = self._get_top_most_parent()._local_surfaces_provider()
local_surfaces_provider = self.get_root()._local_surfaces_provider()
for surf_name in self.surfaces_list():
if surf_name in list(local_surfaces_provider):
surf_obj = local_surfaces_provider[surf_name]
surf_api = surf_obj._api_helper.surface_api
surf_api.create_surface_on_server()

def _post_display(self):
local_surfaces_provider = self._get_top_most_parent()._local_surfaces_provider()
local_surfaces_provider = self.get_root()._local_surfaces_provider()
for surf_name in self.surfaces_list():
if surf_name in list(local_surfaces_provider):
surf_obj = local_surfaces_provider[surf_name]
Expand Down Expand Up @@ -137,7 +137,7 @@ def allowed_values(self):
"""Surface list allowed values."""
return list(
self._api_helper.field_info().get_surfaces_info().keys()
) + list(self._get_top_most_parent()._local_surfaces_provider())
) + list(self.get_root()._local_surfaces_provider())


class MeshDefn(GraphicsDefn):
Expand All @@ -155,7 +155,7 @@ def allowed_values(self):
"""Surface list allowed values."""
return list(
(self._api_helper.field_info().get_surfaces_info().keys())
) + list(self._get_top_most_parent()._local_surfaces_provider())
) + list(self.get_root()._local_surfaces_provider())

class show_edges(metaclass=PyLocalPropertyMeta):
"""Show edges for mesh."""
Expand Down Expand Up @@ -198,7 +198,7 @@ def allowed_values(self):
"""Surface list allowed values."""
return list(
(self._api_helper.field_info().get_surfaces_info().keys())
) + list(self._get_top_most_parent()._local_surfaces_provider())
) + list(self.get_root()._local_surfaces_provider())


class SurfaceDefn(GraphicsDefn):
Expand Down Expand Up @@ -376,7 +376,7 @@ def allowed_values(self):
"""Surfaces list allowed values."""
return list(
self._api_helper.field_info().get_surfaces_info().keys()
) + list(self._get_top_most_parent()._local_surfaces_provider())
) + list(self.get_root()._local_surfaces_provider())

class filled(metaclass=PyLocalPropertyMeta):
"""Draw filled contour."""
Expand All @@ -391,8 +391,10 @@ class node_values(metaclass=PyLocalPropertyMeta):
@property
def value(self):
"""Node value property setter."""
filled = self._get_parent_by_type(ContourDefn).filled()
auto_range_off = self._get_parent_by_type(ContourDefn).range.auto_range_off
filled = self._get_ancestors_by_type(ContourDefn).filled()
auto_range_off = self._get_ancestors_by_type(
ContourDefn
).range.auto_range_off
if not filled or (auto_range_off and auto_range_off.clip_to_range()):
logger.warning(
"For unfilled and clipped contours node values are displayed."
Expand Down Expand Up @@ -462,20 +464,20 @@ class minimum(metaclass=PyLocalPropertyMeta):

def _reset_on_change(self):
return [
self._get_parent_by_type(ContourDefn).field,
self._get_parent_by_type(ContourDefn).node_values,
self._get_ancestors_by_type(ContourDefn).field,
self._get_ancestors_by_type(ContourDefn).node_values,
]

@property
def value(self):
"""Range minimum property setter."""
if getattr(self, "_value", None) is None:
field = self._get_parent_by_type(ContourDefn).field()
field = self._get_ancestors_by_type(ContourDefn).field()
if field:
field_info = self._api_helper.field_info()
field_range = field_info.get_scalar_field_range(
field,
self._get_parent_by_type(ContourDefn).node_values(),
self._get_ancestors_by_type(ContourDefn).node_values(),
)
self._value = field_range[0]
return self._value
Expand All @@ -491,20 +493,20 @@ class maximum(metaclass=PyLocalPropertyMeta):

def _reset_on_change(self):
return [
self._get_parent_by_type(ContourDefn).field,
self._get_parent_by_type(ContourDefn).node_values,
self._get_ancestors_by_type(ContourDefn).field,
self._get_ancestors_by_type(ContourDefn).node_values,
]

@property
def value(self):
"""Range maximum property setter."""
if getattr(self, "_value", None) is None:
field = self._get_parent_by_type(ContourDefn).field()
field = self._get_ancestors_by_type(ContourDefn).field()
if field:
field_info = self._api_helper.field_info()
field_range = field_info.get_scalar_field_range(
field,
self._get_parent_by_type(ContourDefn).node_values(),
self._get_ancestors_by_type(ContourDefn).node_values(),
)
self._value = field_range[1]

Expand Down Expand Up @@ -550,7 +552,7 @@ def allowed_values(self):
"""Surface list allowed values."""
return list(
self._api_helper.field_info().get_surfaces_info().keys()
) + list(self._get_top_most_parent()._local_surfaces_provider())
) + list(self.get_root()._local_surfaces_provider())

class scale(metaclass=PyLocalPropertyMeta):
"""Vector scale."""
Expand Down

0 comments on commit b491690

Please sign in to comment.