File tree Expand file tree Collapse file tree 1 file changed +16
-0
lines changed
src/nonebot_plugin_alconna/uniseg/adapters Expand file tree Collapse file tree 1 file changed +16
-0
lines changed Original file line number Diff line number Diff line change 66from typing import TYPE_CHECKING , cast
77
88from nonebot import get_adapters
9+ from importlib_metadata import entry_points
910
1011from ..constraint import SupportAdapter
1112
2627 except Exception as e : # noqa: PERF203
2728 warn (f"Failed to import uniseg adapter { name } : { e } " , RuntimeWarning , 15 )
2829
30+ # Load adapters from entry points
31+ points = entry_points ().select (group = "n-p-alc.uniseg.adapters" )
32+ for entry_point in points .names :
33+ try :
34+ module = points [entry_point ].load ()
35+ if isinstance (module , type ):
36+ loader = cast ("BaseLoader" , module ())
37+ loaders [loader .get_adapter ().value ] = loader
38+ else :
39+ loader = cast ("BaseLoader" , module .Loader ())
40+ loaders [loader .get_adapter ().value ] = loader
41+ except Exception as e : # noqa: PERF203
42+ warn (f"Failed to import uniseg adapter { entry_point } : { e } " , RuntimeWarning , 15 )
43+
44+
2945EXPORTER_MAPPING : dict [str , "MessageExporter" ] = {
3046 SupportAdapter .nonebug .value : loaders [SupportAdapter .nonebug .value ].get_exporter ()
3147}
You can’t perform that action at this time.
0 commit comments