Skip to content

Commit

Permalink
Simplify names and deprecate old class rather than removing
Browse files Browse the repository at this point in the history
  • Loading branch information
mcarans committed Jan 10, 2025
1 parent 24cc45f commit 492ac4e
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 15 deletions.
15 changes: 8 additions & 7 deletions src/hdx/utilities/error_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def __init__(
"warning": {},
}

def add_message(
def add(
self, message: str, category: str = "", message_type: str = "error"
) -> None:
"""Add error to be logged. Prepend category if supplied. Output format:
Expand All @@ -46,13 +46,14 @@ def add_message(
Returns:
None
"""
message = message.strip()
if category:
output = f"{category} - {message}"
else:
output = message
dict_of_sets_add(self.shared_errors[message_type], category, output)

def add_missing_value_message(
def add_missing_value(
self,
value_type: str,
value: str,
Expand All @@ -73,9 +74,9 @@ def add_missing_value_message(
None
"""
text = f"{value_type} {value} not found"
self.add_message(text, category, message_type)
self.add(text, category, message_type)

def add_multi_valued_message(
def add_multi_valued(
self,
text: str,
values: ListTuple,
Expand Down Expand Up @@ -106,10 +107,10 @@ def add_multi_valued_message(
else:
msg = ""
text = f"{no_values} {text}{msg}: {', '.join(map(str, values))}"
self.add_message(text, category, message_type)
self.add(text, category, message_type)
return True

def output(self) -> None:
def log(self) -> None:
"""
Log errors and warning by category and sorted
Expand Down Expand Up @@ -140,6 +141,6 @@ def __enter__(self) -> "ErrorHandler":
return self

def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any) -> None:
self.output()
self.log()
if exc_type is None:
self.exit_on_error()
17 changes: 17 additions & 0 deletions src/hdx/utilities/errors_on_exit.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
"""Collect and log errors on exit."""

import logging
import warnings

from hdx.utilities.error_handler import ErrorHandler

logger = logging.getLogger(__name__)


class ErrorsOnExit(ErrorHandler): # pragma: no cover
def __init__(self) -> None:
warnings.warn(
"The ErrorsOnExit class was renamed ErrorHandler and will be removed in future!",
DeprecationWarning,
)
super().__init__()
14 changes: 6 additions & 8 deletions tests/hdx/utilities/test_error_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,29 +18,27 @@ def test_error_handler(self, caplog):
with pytest.raises(SystemExit):
with caplog.at_level(logging.ERROR):
with ErrorHandler() as errors:
errors.add_message("this is a error!")
errors.add_message(
"this is a warning!", "warning 1", "warning"
)
errors.add_missing_value_message(
errors.add("this is a error!")
errors.add("this is a warning!", "warning 1", "warning")
errors.add_missing_value(
"this is a missing value error!",
"problem value",
"error 1",
"error",
)
errors.add_multi_valued_message(
errors.add_multi_valued(
"this is a multi valued warning!",
(1, 2, 3, 4),
"warning 1",
"warning",
)
errors.add_multi_valued_message(
errors.add_multi_valued(
"this is a multi valued error!",
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14),
"error 1",
"error",
)
errors.add_multi_valued_message(
errors.add_multi_valued(
"this is another multi valued warning!",
(),
"warning 1",
Expand Down

0 comments on commit 492ac4e

Please sign in to comment.