rest-framework icon indicating copy to clipboard operation
rest-framework copied to clipboard

Fxing circular imports causing 'FastapiEndpoint' not recognized

Open moctarjallo opened this issue 2 months ago • 3 comments

When trying to install fastapi module we get this error:

2025-12-06 19:16:30,375 306 CRITICAL odoo odoo.modules.module: Couldn't load module fastapi 2025-12-06 19:16:30,379 306 WARNING odoo odoo.modules.loading: Transient module states were reset 2025-12-06 19:16:30,381 306 ERROR odoo odoo.modules.registry: Failed to load registry 2025-12-06 19:16:30,381 306 CRITICAL odoo odoo.service.server: Failed to initialize database odoo. Traceback (most recent call last): File "/usr/lib/python3/dist-packages/odoo/service/server.py", line 1366, in preload_registries registry = Registry.new(dbname, update_module=update_module) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/decorator.py", line 235, in fun return caller(func, *(extras + args), **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/odoo/tools/func.py", line 97, in locked return func(inst, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/odoo/modules/registry.py", line 129, in new odoo.modules.load_modules(registry, force_demo, status, update_module) File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 489, in load_modules processed_modules += load_marked_modules(env, graph, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 365, in load_marked_modules loaded, processed = load_module_graph( ^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 186, in load_module_graph load_openerp_module(package.name) File "/usr/lib/python3/dist-packages/odoo/modules/module.py", line 384, in load_openerp_module __import__(qualname) File "/mnt/oca-rest-framework/fastapi/__init__.py", line 1, in <module> from . import models File "/mnt/oca-rest-framework/fastapi/models/__init__.py", line 2, in <module> from . import fastapi_endpoint_demo File "/mnt/oca-rest-framework/fastapi/models/fastapi_endpoint_demo.py", line 19, in <module> from ..routers import demo_router, demo_router_doc File "/mnt/oca-rest-framework/fastapi/routers/__init__.py", line 1, in <module> from .demo_router import router as demo_router File "/mnt/oca-rest-framework/fastapi/routers/demo_router.py", line 81, in <module> @router.get( ^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/fastapi/routing.py", line 1072, in decorator self.add_api_route( File "/usr/local/lib/python3.12/dist-packages/fastapi/routing.py", line 1011, in add_api_route route = route_class( ^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/fastapi/routing.py", line 630, in __init__ self.dependant = get_dependant( ^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/fastapi/dependencies/utils.py", line 303, in get_dependant sub_dependant = get_dependant( ^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/fastapi/dependencies/utils.py", line 277, in get_dependant endpoint_signature = get_typed_signature(call) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/fastapi/dependencies/utils.py", line 214, in get_typed_signature signature = inspect.signature(call, eval_str=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/inspect.py", line 3310, in signature return Signature.from_callable(obj, follow_wrapped=follow_wrapped, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/inspect.py", line 3054, in from_callable return _signature_from_callable(obj, sigcls=cls, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/inspect.py", line 2566, in _signature_from_callable return _signature_from_function(sigcls, obj, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/inspect.py", line 2393, in _signature_from_function annotations = get_annotations(func, globals=globals, locals=locals, eval_str=eval_str) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/inspect.py", line 285, in get_annotations value if not isinstance(value, str) else eval(value, globals, locals) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<string>", line 1, in <module> NameError: name 'FastapiEndpoint' is not defined. Did you mean: 'fastapi_endpoint'?

moctarjallo avatar Dec 06 '25 22:12 moctarjallo