From c8b75d6c5e0a2d2cd8b7be6c2939b96000cdfdd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Fri, 26 Jun 2026 15:17:14 +0200 Subject: [PATCH] Resolve Tryton modules using entrypoints The Pool tries to resolve registered string using the path `trytond.modules.` which can not always be imported if the module is using an entry pointing to another package. Closes #14914 --- trytond/trytond/tools/misc.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/trytond/trytond/tools/misc.py b/trytond/trytond/tools/misc.py index c50c19e4b1..3666a9bb1f 100644 --- a/trytond/trytond/tools/misc.py +++ b/trytond/trytond/tools/misc.py @@ -192,8 +192,15 @@ def is_instance_method(cls, method): def resolve(name): "Resolve a dotted name to a global object." name = name.split('.') - used = name.pop(0) - found = importlib.import_module(used) + if name[:2] == ['trytond', 'modules']: + # import the Tryton module using entry point + name = name[2:] + used = name.pop(0) + found = import_module(used) + used = found.__name__ + else: + used = name.pop(0) + found = importlib.import_module(used) for n in name: used = used + '.' + n try: