mirror of
https://github.com/fastapi/fastapi.git
synced 2026-01-05 12:38:54 -05:00
* ➕ Add development/testing dependencies for Python 3.6 * ✨ Add concurrency submodule with contextmanager_in_threadpool * ✨ Add AsyncExitStack to ASGI scope in FastAPI app call * ✨ Use async stack for contextmanager-able dependencies including running in threadpool sync dependencies * ✅ Add tests for contextmanager dependencies including internal raise checks when exceptions should be handled and when not * ✅ Add test for fake asynccontextmanager raiser * 🐛 Fix mypy errors and coverage * 🔇 Remove development logs and prints * ✅ Add tests for sub-contextmanagers, background tasks, and sync functions * 🐛 Fix mypy errors for Python 3.7 * 💬 Fix error texts for clarity * 📝 Add docs for dependencies with yield * ✨ Update SQL with SQLAlchemy tutorial to use dependencies with yield and add an alternative with a middleware (from the old tutorial) * ✅ Update SQL tests to remove DB file during the same tests * ✅ Add tests for example with middleware as a copy from the tests with dependencies with yield, removing the DB in the tests * ✏️ Fix typos with suggestions from code review Co-Authored-By: dmontagu <35119617+dmontagu@users.noreply.github.com>
26 lines
455 B
Python
26 lines
455 B
Python
from fastapi import Depends
|
|
|
|
|
|
async def dependency_a():
|
|
dep_a = generate_dep_a()
|
|
try:
|
|
yield dep_a
|
|
finally:
|
|
dep_a.close()
|
|
|
|
|
|
async def dependency_b(dep_a=Depends(dependency_a)):
|
|
dep_b = generate_dep_b()
|
|
try:
|
|
yield dep_b
|
|
finally:
|
|
dep_b.close(dep_a)
|
|
|
|
|
|
async def dependency_c(dep_b=Depends(dependency_b)):
|
|
dep_c = generate_dep_c()
|
|
try:
|
|
yield dep_c
|
|
finally:
|
|
dep_c.close(dep_b)
|