Skip to content

@inject breaks inspect.iscoroutinefunction #574

Closed
@burritoatspoton

Description

@burritoatspoton

After upgrade to 4.39.0, while asyncio.coroutines.iscoroutinefunction is preserved, inspect.iscoroutinefunction is not -- tested on Python 3.10.4:

from dependency_injector.wiring import inject
import inspect

async def foo(): pass

@inject
async def bar(): pass

print(inspect.iscoroutinefunction(foo))
print(inspect.iscoroutinefunction(bar))

This e.g. makes FastAPI incorrectly recognize bar as a "normal" function when used with dep = fastapi.Depends(bar) syntax in router dependencies.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions