aboutsummaryrefslogtreecommitdiff
path: root/src/mlia/cli/logging.py
diff options
context:
space:
mode:
authorDmitrii Agibov <dmitrii.agibov@arm.com>2022-10-24 15:08:08 +0100
committerDmitrii Agibov <dmitrii.agibov@arm.com>2022-10-26 17:08:13 +0100
commit58a65fee574c00329cf92b387a6d2513dcbf6100 (patch)
tree47e3185f78b4298ab029785ddee68456e44cac10 /src/mlia/cli/logging.py
parent9d34cb72d45a6d0a2ec1063ebf32536c1efdba75 (diff)
downloadmlia-58a65fee574c00329cf92b387a6d2513dcbf6100.tar.gz
MLIA-433 Add TensorFlow Lite compatibility check
- Add ability to intercept low level TensorFlow output - Produce advice for the models that could not be converted to the TensorFlow Lite format - Refactor utility functions for TensorFlow Lite conversion - Add TensorFlow Lite compatibility checker Change-Id: I47d120d2619ced7b143bc92c5184515b81c0220d
Diffstat (limited to 'src/mlia/cli/logging.py')
-rw-r--r--src/mlia/cli/logging.py35
1 files changed, 14 insertions, 21 deletions
diff --git a/src/mlia/cli/logging.py b/src/mlia/cli/logging.py
index e786394..5c5c4b8 100644
--- a/src/mlia/cli/logging.py
+++ b/src/mlia/cli/logging.py
@@ -6,6 +6,7 @@ from __future__ import annotations
import logging
import sys
from pathlib import Path
+from typing import Iterable
from mlia.utils.logging import attach_handlers
from mlia.utils.logging import create_log_handler
@@ -31,34 +32,33 @@ def setup_logging(
:param verbose: enable extended logging for the tools loggers
:param log_filename: name of the log file in the logs directory
"""
- mlia_logger, *tools_loggers = (
+ mlia_logger, tensorflow_logger, py_warnings_logger = (
logging.getLogger(logger_name)
for logger_name in ["mlia", "tensorflow", "py.warnings"]
)
# enable debug output, actual message filtering depends on
- # the provided parameters and being done on the handlers level
- mlia_logger.setLevel(logging.DEBUG)
+ # the provided parameters and being done at the handlers level
+ for logger in [mlia_logger, tensorflow_logger]:
+ logger.setLevel(logging.DEBUG)
mlia_handlers = _get_mlia_handlers(logs_dir, log_filename, verbose)
attach_handlers(mlia_handlers, [mlia_logger])
tools_handlers = _get_tools_handlers(logs_dir, log_filename, verbose)
- attach_handlers(tools_handlers, tools_loggers)
+ attach_handlers(tools_handlers, [tensorflow_logger, py_warnings_logger])
def _get_mlia_handlers(
logs_dir: str | Path | None,
log_filename: str,
verbose: bool,
-) -> list[logging.Handler]:
+) -> Iterable[logging.Handler]:
"""Get handlers for the MLIA loggers."""
- result = []
- stdout_handler = create_log_handler(
+ yield create_log_handler(
stream=sys.stdout,
log_level=logging.INFO,
)
- result.append(stdout_handler)
if verbose:
mlia_verbose_handler = create_log_handler(
@@ -67,50 +67,43 @@ def _get_mlia_handlers(
log_format=_CONSOLE_DEBUG_FORMAT,
log_filter=LogFilter.equals(logging.DEBUG),
)
- result.append(mlia_verbose_handler)
+ yield mlia_verbose_handler
if logs_dir:
- mlia_file_handler = create_log_handler(
+ yield create_log_handler(
file_path=_get_log_file(logs_dir, log_filename),
log_level=logging.DEBUG,
log_format=_FILE_DEBUG_FORMAT,
log_filter=LogFilter.skip(logging.INFO),
delay=True,
)
- result.append(mlia_file_handler)
-
- return result
def _get_tools_handlers(
logs_dir: str | Path | None,
log_filename: str,
verbose: bool,
-) -> list[logging.Handler]:
+) -> Iterable[logging.Handler]:
"""Get handler for the tools loggers."""
- result = []
if verbose:
- verbose_stdout_handler = create_log_handler(
+ yield create_log_handler(
stream=sys.stdout,
log_level=logging.DEBUG,
log_format=_CONSOLE_DEBUG_FORMAT,
)
- result.append(verbose_stdout_handler)
if logs_dir:
- file_handler = create_log_handler(
+ yield create_log_handler(
file_path=_get_log_file(logs_dir, log_filename),
log_level=logging.DEBUG,
log_format=_FILE_DEBUG_FORMAT,
delay=True,
)
- result.append(file_handler)
-
- return result
def _get_log_file(logs_dir: str | Path, log_filename: str) -> Path:
"""Get the log file path."""
logs_dir_path = Path(logs_dir)
logs_dir_path.mkdir(exist_ok=True)
+
return logs_dir_path / log_filename