aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/mlog.py30
1 files changed, 19 insertions, 11 deletions
diff --git a/mesonbuild/mlog.py b/mesonbuild/mlog.py
index a1b249a..e23091e 100644
--- a/mesonbuild/mlog.py
+++ b/mesonbuild/mlog.py
@@ -13,6 +13,7 @@
# limitations under the License.
from __future__ import annotations
+import enum
import os
import io
import sys
@@ -315,7 +316,16 @@ def log_once(*args: TV_Loggable, is_error: bool = False,
def get_error_location_string(fname: str, lineno: int) -> str:
return f'{fname}:{lineno}:'
-def _log_error(severity: str, *rargs: TV_Loggable,
+
+class _Severity(enum.Enum):
+
+ NOTICE = enum.auto()
+ WARNING = enum.auto()
+ ERROR = enum.auto()
+ DEPRECATION = enum.auto()
+
+
+def _log_error(severity: _Severity, *rargs: TV_Loggable,
once: bool = False, fatal: bool = True,
location: T.Optional[BaseNode] = None,
nested: bool = True, sep: T.Optional[str] = None,
@@ -325,16 +335,14 @@ def _log_error(severity: str, *rargs: TV_Loggable,
# The typing requirements here are non-obvious. Lists are invariant,
# therefore T.List[A] and T.List[T.Union[A, B]] are not able to be joined
- if severity == 'notice':
+ if severity is _Severity.NOTICE:
label = [bold('NOTICE:')] # type: TV_LoggableList
- elif severity == 'warning':
+ elif severity is _Severity.WARNING:
label = [yellow('WARNING:')]
- elif severity == 'error':
+ elif severity is _Severity.ERROR:
label = [red('ERROR:')]
- elif severity == 'deprecation':
+ elif severity is _Severity.DEPRECATION:
label = [red('DEPRECATION:')]
- else:
- raise MesonException('Invalid severity ' + severity)
# rargs is a tuple, not a list
args = label + list(rargs)
@@ -359,7 +367,7 @@ def error(*args: TV_Loggable,
location: T.Optional[BaseNode] = None,
nested: bool = True, sep: T.Optional[str] = None,
end: T.Optional[str] = None) -> None:
- return _log_error('error', *args, once=once, fatal=fatal, location=location,
+ return _log_error(_Severity.ERROR, *args, once=once, fatal=fatal, location=location,
nested=nested, sep=sep, end=end, is_error=True)
def warning(*args: TV_Loggable,
@@ -367,7 +375,7 @@ def warning(*args: TV_Loggable,
location: T.Optional[BaseNode] = None,
nested: bool = True, sep: T.Optional[str] = None,
end: T.Optional[str] = None) -> None:
- return _log_error('warning', *args, once=once, fatal=fatal, location=location,
+ return _log_error(_Severity.WARNING, *args, once=once, fatal=fatal, location=location,
nested=nested, sep=sep, end=end, is_error=True)
def deprecation(*args: TV_Loggable,
@@ -375,7 +383,7 @@ def deprecation(*args: TV_Loggable,
location: T.Optional[BaseNode] = None,
nested: bool = True, sep: T.Optional[str] = None,
end: T.Optional[str] = None) -> None:
- return _log_error('deprecation', *args, once=once, fatal=fatal, location=location,
+ return _log_error(_Severity.DEPRECATION, *args, once=once, fatal=fatal, location=location,
nested=nested, sep=sep, end=end, is_error=True)
def notice(*args: TV_Loggable,
@@ -383,7 +391,7 @@ def notice(*args: TV_Loggable,
location: T.Optional[BaseNode] = None,
nested: bool = True, sep: T.Optional[str] = None,
end: T.Optional[str] = None) -> None:
- return _log_error('notice', *args, once=once, fatal=fatal, location=location,
+ return _log_error(_Severity.NOTICE, *args, once=once, fatal=fatal, location=location,
nested=nested, sep=sep, end=end, is_error=False)
def get_relative_path(target: Path, current: Path) -> Path: