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
(grafted from bb96325e829df570aac1f7624c862a660c0be286)

--HG--
branch : 8.0
This commit is contained in:
Cédric Krier
2026-06-26 15:17:14 +02:00
parent 96eb7071f7
commit f78eb154ee
+9 -2
View File
@@ -177,8 +177,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: