Files
blender-portable-repo/extensions/.local/lib/python3.11/site-packages/phonemizer/logger.py
T
2026-03-17 14:58:51 -06:00

64 lines
2.1 KiB
Python

# Copyright 2015-2021 Mathieu Bernard
#
# This file is part of phonemizer: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# Phonemizer is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with phonemizer. If not, see <http://www.gnu.org/licenses/>.
"""Logging facilities for the phonemizer"""
import logging
import sys
from logging import Logger
def get_logger(verbosity: str = 'quiet', name: str = 'phonemizer') -> Logger:
"""Returns a configured logging.Logger instance
The logger is configured to output messages on the standard error stream
(stderr).
Parameters
----------
verbosity (str) : The level of verbosity, must be 'verbose' (displays
debug/info and warning messages), 'normal' (warnings only) or 'quiet' (do
not display anything).
name (str) : The logger name, default to 'phonemizer'
Raises
------
RuntimeError if `verbosity` is not 'normal', 'verbose', or 'quiet'.
"""
# make sure the verbosity argument is valid
valid_verbosity = ['normal', 'verbose', 'quiet']
if verbosity not in valid_verbosity:
raise RuntimeError(
f'verbosity is {verbosity} but must be in '
f'{", ".join(valid_verbosity)}')
logger = logging.getLogger(name)
# setup output to stderr
logger.handlers = []
handler = logging.StreamHandler(sys.stderr)
# setup verbosity level
logger.setLevel(logging.WARNING)
if verbosity == 'verbose':
logger.setLevel(logging.DEBUG)
elif verbosity == 'quiet':
handler = logging.NullHandler()
# setup messages format
handler.setFormatter(logging.Formatter('[%(levelname)s] %(message)s'))
logger.addHandler(handler)
return logger