Coverage for sources/agentsmgr/resolver.py: 100%
13 statements
« prev ^ index » next coverage.py v7.15.0, created at 2026-07-08 06:57 +0000
« prev ^ index » next coverage.py v7.15.0, created at 2026-07-08 06:57 +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''' Coder resolution utilities.
23 Provides helpers for resolving coder names to their registered
24 renderers, with optional mode filtering and unknown-coder warnings.
25'''
28from . import __
29from . import renderers as _renderers
32_scribe = __.provide_scribe( __name__ )
35def resolve_coders(
36 coders: __.cabc.Sequence[ str ],
37 mode: __.Absential[ _renderers.ExplicitTargetMode ] = __.absent,
38) -> __.typx.Iterator[ tuple[ str, _renderers.RendererBase ] ]:
39 ''' Resolves coder names to registered renderers.
41 Yields (coder_name, renderer) pairs for known coders. Skips
42 unknown coders with a warning. When mode is provided, skips
43 coders whose mode_default does not match with a debug message.
44 '''
45 for coder_name in coders:
46 try: renderer = _renderers.RENDERERS[ coder_name ]
47 except KeyError:
48 _scribe.warning(
49 f"Skipping unknown coder: {coder_name}" )
50 continue
51 if ( not __.is_absent( mode )
52 and renderer.mode_default != mode ):
53 _scribe.debug(
54 f"Skipping {coder_name} for {mode} mode: "
55 f"default mode is {renderer.mode_default}" )
56 continue
57 yield coder_name, renderer