Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
9418548
feat: adding changeproperty context manager
germa89 Feb 24, 2025
66fccd3
chore: adding changelog file 3760.miscellaneous.md [dependabot-skip]
pyansys-ci-bot Feb 24, 2025
95bf60a
Merge branch 'main' into feat/adding-change-property-context-manager
germa89 Feb 24, 2025
877d3d0
test: add assertions to ensure MAPDL is running and not muted before …
germa89 Feb 24, 2025
fde0c34
Merge branch 'feat/adding-change-property-context-manager' of https:/…
germa89 Feb 24, 2025
d0b616e
feat: caching platform calls
germa89 Feb 24, 2025
fd98b70
ci: removing all calls to filter action and caching in docs
germa89 Feb 24, 2025
7b85c4d
chore: adding changelog file 3760.maintenance.md [dependabot-skip]
pyansys-ci-bot Feb 24, 2025
662a9cf
test: adding logging to setter
germa89 Feb 24, 2025
c04d275
refactor: rename private variable for time step stream and update log…
germa89 Feb 24, 2025
395575f
fix: change log level from info to debug for mute setter
germa89 Feb 24, 2025
184b11b
fix: test
germa89 Feb 24, 2025
1a9d266
feat: remove unnecessary code
germa89 Feb 24, 2025
ef20757
feat: avoid muting on alternative *GET
germa89 Feb 24, 2025
f4ff125
fix: update variable names for clarity in gRPC response handling
germa89 Feb 24, 2025
f18b733
test: printing traceback
germa89 Feb 24, 2025
35d0a37
fix: parenthesis
germa89 Feb 24, 2025
73c2b3f
fix: simplify logging of mute value change by directly using tracebac…
germa89 Feb 24, 2025
f9c684c
feat: implementing muted
germa89 Feb 24, 2025
e38c699
refactor: to use `muted` context manager
germa89 Feb 24, 2025
4a6250a
revert: "ci: removing all calls to filter action and caching in docs"
germa89 Feb 24, 2025
5901bbb
chore: adding changelog file 3760.documentation.md [dependabot-skip]
pyansys-ci-bot Feb 24, 2025
d9e7de5
feat: update log call
germa89 Feb 24, 2025
b9c979b
Merge branch 'feat/adding-change-property-context-manager' of https:/…
germa89 Feb 24, 2025
2b4c056
fix: context manager
germa89 Feb 25, 2025
680a4c8
fix: change log level for mute setter to debug
germa89 Feb 25, 2025
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
28 changes: 12 additions & 16 deletions src/ansys/mapdl/core/mapdl_core.py
Original file line number Diff line number Diff line change
Expand Up @@ -1181,28 +1181,24 @@ def _mesh(self) -> "Archive":
``ansys.mapdl.core.Archive``"""
from ansys.mapdl.reader import Archive

from ansys.mapdl.core.misc import ChangeProperty

if self._archive_cache is None:
# write database to an archive file
arch_filename = os.path.join(self.directory, "_tmp.cdb")
nblock_filename = os.path.join(self.directory, "nblock.cdb")

# must have all nodes elements are using selected
if hasattr(self, "mute"):
old_mute = self.mute
self.mute = True

self.cm("__NODE__", "NODE", mute=True)
self.nsle("S", mute=True)
self.cdwrite("db", arch_filename, mute=True)
self.cmsel("S", "__NODE__", "NODE", mute=True)

self.cm("__ELEM__", "ELEM", mute=True)
self.esel("NONE", mute=True)
self.cdwrite("db", nblock_filename, mute=True)
self.cmsel("S", "__ELEM__", "ELEM", mute=True)

if hasattr(self, "mute"):
self.mute = old_mute
with ChangeProperty(mapdl, "mute", True):
self.cm("__NODE__", "NODE", mute=True)
self.nsle("S", mute=True)
self.cdwrite("db", arch_filename, mute=True)
self.cmsel("S", "__NODE__", "NODE", mute=True)

self.cm("__ELEM__", "ELEM", mute=True)
self.esel("NONE", mute=True)
self.cdwrite("db", nblock_filename, mute=True)
self.cmsel("S", "__ELEM__", "ELEM", mute=True)

self._archive_cache = Archive(arch_filename, parse_vtk=False, name="Mesh")
grid = self._archive_cache._parse_vtk(additional_checking=True)
Expand Down
16 changes: 16 additions & 0 deletions src/ansys/mapdl/core/misc.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
from threading import Thread
from typing import Callable, Dict, Iterable, List, Tuple, Union
from warnings import warn
import weakref

import numpy as np

Expand Down Expand Up @@ -623,3 +624,18 @@ def deco(f):
return f

return deco


class ChangeProperty:
def __init__(self, obj, prop, new_value):
self.obj = weakref.ref(obj)
self.property = prop
self.new_value = new_value
self.old_value = None

def __enter__(self, *args, **kwargs):
self.old_value = getattr(self.obj(), self.property)
setattr(self.obj(), self.property, self.new_value)

def __exit__(self, *args, **kwargs):
setattr(self.obj(), self.property, self.old_value)
20 changes: 20 additions & 0 deletions tests/test_misc.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import pytest

from ansys.mapdl.core.misc import (
ChangeProperty,
check_valid_ip,
check_valid_port,
check_valid_routine,
Expand Down Expand Up @@ -272,3 +273,22 @@ def test_create_temp_dir():
dir_ = path.parts[-1]

assert str(path) != create_temp_dir(parent, dir_)


@pytest.mark.parametrize("prop", ["mute"])
def test_change_property_context(mapdl, prop):
assert not mapdl.mute
with ChangeProperty(mapdl, prop, True):
assert getattr(mapdl, prop) is True

assert not mapdl.mute


def test_change_property_context_method(mapdl):
type_ = type(mapdl._log)
assert mapdl._log
with ChangeProperty(mapdl, "_log", True):
assert getattr(mapdl, "_log") is True

assert mapdl._log
assert isinstance(mapdl._log, type_)
Loading