Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[18.0] [FIX] fastapi: Change circular import fix to avoid crash with fastapi>=0.123.7#574

Merged
OCA-git-bot merged 1 commit into
OCA:18.0from
akretion:18.0-fix-fastapi-TYPE_CHECKING-crash
Dec 8, 2025
Merged

[18.0] [FIX] fastapi: Change circular import fix to avoid crash with fastapi>=0.123.7#574
OCA-git-bot merged 1 commit into
OCA:18.0from
akretion:18.0-fix-fastapi-TYPE_CHECKING-crash

Conversation

@paradoxxxzero

@paradoxxxzero paradoxxxzero commented Dec 5, 2025

Copy link
Copy Markdown
Contributor

Since fastapi 0.123.7, due to fastapi/fastapi#11355 the fastapi odoo module crash at start with:

  File "/odoo/links/fastapi/routers/demo_router.py", line 81, in <module>
    @router.get(
     ^^^^^^^^^^^
  File "/odoo/lib/python3.12/site-packages/fastapi/routing.py", line 1072, in decorator
    self.add_api_route(
  File "/odoo/lib/python3.12/site-packages/fastapi/routing.py", line 1011, in add_api_route
    route = route_class(
            ^^^^^^^^^^^^
  File "/odoo/lib/python3.12/site-packages/fastapi/routing.py", line 630, in __init__
    self.dependant = get_dependant(
                     ^^^^^^^^^^^^^^
  File "/odoo/lib/python3.12/site-packages/fastapi/dependencies/utils.py", line 290, in get_dependant
    sub_dependant = get_dependant(
                    ^^^^^^^^^^^^^^
  File "/odoo/lib/python3.12/site-packages/fastapi/dependencies/utils.py", line 259, in get_dependant
    endpoint_signature = get_typed_signature(call)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/odoo/lib/python3.12/site-packages/fastapi/dependencies/utils.py", line 196, 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'?

This PR removes the TYPE_CHECKING import condition and solves the circular import by delaying the other side import instead.

Backport to 16.0 in https://github.com/akretion/rest-framework/tree/16.0-fix-fastapi-TYPE_CHECKING-crash

…>=0.123.7

Remove TYPE_CHECKING import condition and delay dependencies import to solve the circular import
@OCA-git-bot

Copy link
Copy Markdown
Contributor

Hi @lmignon,
some modules you are maintaining are being modified, check this out!

@quirino95 quirino95 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code and functional review: LGTM

@lmignon

lmignon commented Dec 8, 2025

Copy link
Copy Markdown
Contributor

/ocabot merge patch

@OCA-git-bot

Copy link
Copy Markdown
Contributor

What a great day to merge this nice PR. Let's do it!
Prepared branch 18.0-ocabot-merge-pr-574-by-lmignon-bump-patch, awaiting test results.

@OCA-git-bot OCA-git-bot merged commit 9b59ac0 into OCA:18.0 Dec 8, 2025
7 checks passed
@OCA-git-bot

Copy link
Copy Markdown
Contributor

Congratulations, your PR was merged at 6abdd7a. Thanks a lot for contributing to OCA. ❤️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants