Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

removing oMessenger and replace with aedt_logger from remaining methods #858

Merged
merged 4 commits into from
Feb 15, 2022
Merged
Show file tree
Hide file tree
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
8 changes: 4 additions & 4 deletions _unittest/test_14_AedtLogger.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ def test_02_output_file_with_app_filter(self):
if not os.path.exists(logging_dir):
os.makedirs(logging_dir)
path = os.path.join(logging_dir, "test02.txt")
logger = AedtLogger(self.aedtapp._messenger, filename=path)
logger = AedtLogger(filename=path)
logger.info("Info for Global")
logger.debug("Debug for Global")
logger.warning("Warning for Global")
Expand Down Expand Up @@ -167,7 +167,7 @@ def test_02_output_file_with_app_filter(self):
def test_03_stdout_with_app_filter(self):
capture = CaptureStdOut()
with capture:
logger = AedtLogger(self.aedtapp._messenger, to_stdout=True)
logger = AedtLogger(to_stdout=True)
logger.info("Info for Global")
logger.warning("Warning for Global")
logger.error("Error for Global")
Expand All @@ -186,7 +186,7 @@ def test_04_disable_output_file_handler(self):
path = os.path.join(logging_dir, "test04.txt")
if os.path.exists(path):
os.remove(path)
logger = AedtLogger(self.aedtapp._messenger, filename=path)
logger = AedtLogger(filename=path)
logger.info("Info for Global before disabling the log file handler.")
project_logger = logger.add_logger("Project")
project_logger.info("Info for Project before disabling the log file handler.")
Expand Down Expand Up @@ -255,7 +255,7 @@ def test_05_disable_stdout(self):
stream.write.side_effect = fp.write
sys.stdout = stream

logger = AedtLogger(self.aedtapp._messenger, to_stdout=True)
logger = AedtLogger(to_stdout=True)
logger.info("Info for Global")
logger.disable_stdout_log()
logger.info("Info after disabling the stdout handler.")
Expand Down
10 changes: 5 additions & 5 deletions doc/source/Resources/Code_Guidelines.rst
Original file line number Diff line number Diff line change
Expand Up @@ -739,17 +739,17 @@ write both to the internal AEDT message windows and the log file:

.. code:: python

self.messenger.add_error_message("This is an error message.")
self.messenger.add_warning_message("This is a warning message.")
self.messenger.add_info_message("This is an info message.")
self.logger.error("This is an error message.")
self.logger.warning("This is a warning message.")
self.logger.info("This is an info message.")

These examples demonstrate how to to write messages only to the log file:

.. code:: python

self.logger.error("This is an error message.")
self.messenger.warning("This is a warning message.")
self.messenger.info("This is an info message.")
self.logger.warning("This is a warning message.")
self.logger.info("This is an info message.")


Exception Handling
Expand Down
5 changes: 3 additions & 2 deletions pyaedt/aedt_logger.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import sys

from pyaedt import log_handler
from pyaedt.application.MessageManager import AEDTMessageManager

ENABLE_LOGGER = True
# if LOGGER_FILE is defined, it will be taken as output log file
Expand Down Expand Up @@ -64,12 +65,12 @@ class AedtLogger(object):
Write log message into the standard output. The default is ``False``.
"""

def __init__(self, messenger, level=logging.DEBUG, filename=None, to_stdout=False):
def __init__(self, level=logging.DEBUG, filename=None, to_stdout=False):
main = sys.modules["__main__"]

self.level = level
self.filename = filename
self._messenger = messenger
self._messenger = AEDTMessageManager()
self._global = logging.getLogger("Global")
self._file_handler = None
self._std_out_handler = None
Expand Down
20 changes: 8 additions & 12 deletions pyaedt/desktop.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
else:
import subprocess

from pyaedt.application.MessageManager import AEDTMessageManager
from pyaedt.misc import list_installed_ansysem
from pyaedt import aedt_exception_handler
from pyaedt.generic.general_methods import is_ironpython, _pythonver, inside_desktop
Expand Down Expand Up @@ -67,7 +66,7 @@
raise Exception("Error. No win32com.client or Pythonnet modules found. Please install them.")


def exception_to_desktop(ex_value, tb_data):
def exception_to_desktop(ex_value, tb_data): # pragma: no cover
"""Writes the trace stack to the desktop when a Python error occurs.

The message is added to the AEDT global Message Manager and to the log file (if present).
Expand All @@ -80,13 +79,13 @@ def exception_to_desktop(ex_value, tb_data):
Traceback information.

"""
if "oMessenger" in dir(sys.modules["__main__"]):
messenger = sys.modules["__main__"].oMessenger
if "aedt_logger" in dir(sys.modules["__main__"]):
messenger = sys.modules["__main__"].aedt_logger
tb_trace = traceback.format_tb(tb_data)
tblist = tb_trace[0].split("\n")
messenger.add_error_message(str(ex_value), "Global")
messenger.error(str(ex_value), "Global")
for el in tblist:
messenger.add_error_message(el, "Global")
messenger.error(el, "Global")
else:
tb_trace = traceback.format_tb(tb_data)
tblist = tb_trace[0].split("\n")
Expand All @@ -101,8 +100,6 @@ def _delete_objects():
del module.COMUtil
if "aedt_logger" in dir(module):
del module.aedt_logger
if "oMessenger" in dir(module):
del module.oMessenger
if "oDesktop" in dir(module):
del module.oDesktop
if "pyaedt_initialized" in dir(module):
Expand Down Expand Up @@ -196,7 +193,7 @@ def force_close_desktop():
del Module.oDesktop
successfully_closed = True
except:
Module.oMessenger.add_error_message("Something went wrong in Closing AEDT.")
Module.aedt_logger.error("Something went wrong in Closing AEDT.")
successfully_closed = False
finally:
log = logging.getLogger(__name__)
Expand Down Expand Up @@ -388,8 +385,7 @@ def current_version_student(self):
def _init_desktop(self):
self._main.AEDTVersion = self._main.oDesktop.GetVersion()[0:6]
self._main.oDesktop.RestoreWindow()
self._main.oMessenger = AEDTMessageManager()
self._logger = aedt_logger.AedtLogger(self._main.oMessenger, filename=self.logfile, level=logging.DEBUG)
self._logger = aedt_logger.AedtLogger(filename=self.logfile, level=logging.DEBUG)
self._logger.info("Logger Started on %s", self.logfile)
self._main.aedt_logger = self._logger
self._main.sDesktopinstallDirectory = self._main.oDesktop.GetExeDir()
Expand Down Expand Up @@ -548,7 +544,7 @@ def _set_logger_file(self):
@property
def messenger(self):
"""Messenger manager for AEDT Log."""
return self._main.oMessenger
return self._main.aedt_logger

@property
def logger(self):
Expand Down
7 changes: 2 additions & 5 deletions pyaedt/edb.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
except ImportError:
if os.name != "posix":
warnings.warn("Pythonnet is needed to run pyaedt")
from pyaedt.application.MessageManager import AEDTMessageManager
from pyaedt.edb_core import Components, EdbNets, EdbPadstacks, EdbLayout, EdbHfss, EdbSiwave, EdbStackup
from pyaedt.edb_core.EDB_Data import EdbBuilder
from pyaedt.generic.general_methods import (
Expand Down Expand Up @@ -112,8 +111,7 @@ def __init__(
if edb_initialized:
self.oproject = oproject
self._main = sys.modules["__main__"]
if isaedtowned and "oMessenger" in dir(sys.modules["__main__"]):
_messenger = self._main.oMessenger
if isaedtowned and "aedt_logger" in dir(sys.modules["__main__"]):
self._logger = self._main.aedt_logger
else:
if not edbpath or not os.path.exists(os.path.dirname(edbpath)):
Expand All @@ -123,8 +121,7 @@ def __init__(
logfile = os.path.join(
project_dir, "pyaedt{}.log".format(datetime.datetime.now().strftime("%Y%m%d_%H%M%S"))
)
self._main.oMessenger = AEDTMessageManager()
self._logger = AedtLogger(self._main.oMessenger, filename=logfile, level=logging.DEBUG)
self._logger = AedtLogger(filename=logfile, level=logging.DEBUG)
self._logger.info("Logger Started on %s", logfile)
self._main.aedt_logger = self._logger

Expand Down
4 changes: 1 addition & 3 deletions pyaedt/siwave.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,13 +72,12 @@ def current_version(self):
"""Current version of AEDT."""
return self.version_keys[0]

def __init__(self, specified_version=None):
def __init__(self, specified_version=None): # pragma: no cover
self._main = sys.modules["__main__"]
print("Launching Siwave Init")
if "oSiwave" in dir(self._main) and self._main.oSiwave is not None:
self._main.AEDTVersion = self._main.oSiwave.GetVersion()[0:6]
self._main.oSiwave.RestoreWindow()
# self._main.oMessenger = AEDTMessageManager()
specified_version = self.current_version
assert specified_version in self.version_keys, "Specified version {} not known.".format(specified_version)
version_key = specified_version
Expand Down Expand Up @@ -115,7 +114,6 @@ def __init__(self, specified_version=None):
self._main.AEDTVersion = version_key
self.oSiwave = self._main.oSiwave
self._main.oSiwave.RestoreWindow()
# self._main.oMessenger = AEDTMessageManager()
self._main.siwave_initialized = True
self._oproject = self.oSiwave.GetActiveProject()
pass
Expand Down