Coverage for sources/librovore/__/inscription.py: 27%
7 statements
« prev ^ index » next coverage.py v7.10.7, created at 2025-09-28 22:09 +0000
« prev ^ index » next coverage.py v7.10.7, created at 2025-09-28 22:09 +0000
1# vim: set filetype=python fileencoding=utf-8:
2# -*- coding: utf-8 -*-
4#============================================================================#
5# #
6# Licensed under the Apache License, Version 2.0 (the "License"); #
7# you may not use this file except in compliance with the License. #
8# You may obtain a copy of the License at #
9# #
10# http://www.apache.org/licenses/LICENSE-2.0 #
11# #
12# Unless required by applicable law or agreed to in writing, software #
13# distributed under the License is distributed on an "AS IS" BASIS, #
14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
15# See the License for the specific language governing permissions and #
16# limitations under the License. #
17# #
18#============================================================================#
21''' Logging utilities. '''
24import logging as _logging
26from . import imports as __
29def report_exceptions(
30 exception: BaseException | __.excg.ExceptionGroup[ Exception ],
31 scribe: _logging.Logger,
32) -> None:
33 ''' Reports exception groups or individual exceptions to logger. '''
34 if isinstance( exception, __.excg.ExceptionGroup ):
35 for exc in exception.exceptions: # pyright: ignore
36 report_exceptions( exc, scribe ) # pyright: ignore
37 else:
38 scribe.error( "{exception_class}: {exception}".format(
39 exception_class = type( exception ), exception = exception ) )