dialoguemd / fastapi-sqla

SQLAlchemy extension for FastAPI with support for pagination, asyncio, SQLModel and pytest, ready for production.
MIT License
198 stars 12 forks source link

feat: Add support for FastAPI Lifespan DIA-69117 #132

Closed vtremblay closed 3 months ago

vtremblay commented 3 months ago

Problem

FastAPI SQLA Cannot be used with the FastAPI Lifespan, only with the deprecated startup/shutdown events.

Solution

Split the setup function into two smaller ones; the first one should be called in the Lifespan function and the second one is used to register the middlewares (which cannot be done in the lifespan)

Note that the previous setup function is still there for backward compatibility

Validation

Tested in ER: 1) The app boot correctly using a Lifespan instead of the events 2) The test are all passing

codecov[bot] commented 3 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (b0c9405) to head (5b6fa79). Report is 1 commits behind head on master.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #132 +/- ## ========================================= Coverage 100.00% 100.00% ========================================= Files 10 10 Lines 471 487 +16 Branches 64 71 +7 ========================================= + Hits 471 487 +16 ``` | [Flag](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | Coverage Δ | | |---|---|---| | [python_version3.10-sqlalchemy1.4-pydantic1-asyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `97.94% <100.00%> (+0.06%)` | :arrow_up: | | [python_version3.10-sqlalchemy1.4-pydantic1-asyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `96.91% <100.00%> (+0.10%)` | :arrow_up: | | [python_version3.10-sqlalchemy1.4-pydantic1-noasyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `76.18% <76.47%> (-0.05%)` | :arrow_down: | | [python_version3.10-sqlalchemy1.4-pydantic1-noasyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `75.15% <76.47%> (-0.01%)` | :arrow_down: | | [python_version3.10-sqlalchemy1.4-pydantic2-asyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `97.94% <100.00%> (+0.06%)` | :arrow_up: | | [python_version3.10-sqlalchemy1.4-pydantic2-asyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `96.91% <100.00%> (+0.10%)` | :arrow_up: | | [python_version3.10-sqlalchemy1.4-pydantic2-noasyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `76.18% <76.47%> (-0.05%)` | :arrow_down: | | [python_version3.10-sqlalchemy1.4-pydantic2-noasyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `75.15% <76.47%> (-0.01%)` | :arrow_down: | | [python_version3.10-sqlalchemy2.0-pydantic1-asyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `97.33% <100.00%> (+0.09%)` | :arrow_up: | | [python_version3.10-sqlalchemy2.0-pydantic1-asyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `96.30% <100.00%> (+0.12%)` | :arrow_up: | | [python_version3.10-sqlalchemy2.0-pydantic1-noasyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `75.56% <76.47%> (-0.02%)` | :arrow_down: | | [python_version3.10-sqlalchemy2.0-pydantic1-noasyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `74.53% <76.47%> (+0.01%)` | :arrow_up: | | [python_version3.10-sqlalchemy2.0-pydantic2-asyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `97.33% <100.00%> (+0.09%)` | :arrow_up: | | [python_version3.10-sqlalchemy2.0-pydantic2-asyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `96.30% <100.00%> (+0.12%)` | :arrow_up: | | [python_version3.10-sqlalchemy2.0-pydantic2-noasyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `75.56% <76.47%> (-0.02%)` | :arrow_down: | | [python_version3.10-sqlalchemy2.0-pydantic2-noasyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `74.53% <76.47%> (+0.01%)` | :arrow_up: | | [python_version3.10-sqlalchemy2.0-sqlmodel-pydantic1-asyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `96.91% <100.00%> (+0.10%)` | :arrow_up: | | [python_version3.10-sqlalchemy2.0-sqlmodel-pydantic1-asyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `95.89% <100.00%> (+0.13%)` | :arrow_up: | | [python_version3.10-sqlalchemy2.0-sqlmodel-pydantic1-noasyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `75.15% <76.47%> (-0.01%)` | :arrow_down: | | [python_version3.10-sqlalchemy2.0-sqlmodel-pydantic1-noasyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `74.12% <76.47%> (+0.02%)` | :arrow_up: | | [python_version3.10-sqlalchemy2.0-sqlmodel-pydantic2-asyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `96.91% <100.00%> (+0.10%)` | :arrow_up: | | [python_version3.10-sqlalchemy2.0-sqlmodel-pydantic2-asyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `95.89% <100.00%> (+0.13%)` | :arrow_up: | | [python_version3.10-sqlalchemy2.0-sqlmodel-pydantic2-noasyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `75.15% <76.47%> (-0.01%)` | :arrow_down: | | [python_version3.10-sqlalchemy2.0-sqlmodel-pydantic2-noasyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `74.12% <76.47%> (+0.02%)` | :arrow_up: | | [python_version3.11-sqlalchemy1.4-pydantic1-asyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `97.94% <100.00%> (+0.06%)` | :arrow_up: | | [python_version3.11-sqlalchemy1.4-pydantic1-asyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `96.91% <100.00%> (+0.10%)` | :arrow_up: | | [python_version3.11-sqlalchemy1.4-pydantic1-noasyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `76.18% <76.47%> (-0.05%)` | :arrow_down: | | [python_version3.11-sqlalchemy1.4-pydantic1-noasyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `75.15% <76.47%> (-0.01%)` | :arrow_down: | | [python_version3.11-sqlalchemy1.4-pydantic2-asyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `97.94% <100.00%> (+0.06%)` | :arrow_up: | | [python_version3.11-sqlalchemy1.4-pydantic2-asyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `96.91% <100.00%> (+0.10%)` | :arrow_up: | | [python_version3.11-sqlalchemy1.4-pydantic2-noasyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `76.18% <76.47%> (-0.05%)` | :arrow_down: | | [python_version3.11-sqlalchemy1.4-pydantic2-noasyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `75.15% <76.47%> (-0.01%)` | :arrow_down: | | [python_version3.11-sqlalchemy2.0-pydantic1-asyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `97.33% <100.00%> (+0.09%)` | :arrow_up: | | [python_version3.11-sqlalchemy2.0-pydantic1-asyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `96.30% <100.00%> (+0.12%)` | :arrow_up: | | [python_version3.11-sqlalchemy2.0-pydantic1-noasyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `75.56% <76.47%> (-0.02%)` | :arrow_down: | | [python_version3.11-sqlalchemy2.0-pydantic1-noasyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `74.53% <76.47%> (+0.01%)` | :arrow_up: | | [python_version3.11-sqlalchemy2.0-pydantic2-asyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `97.33% <100.00%> (+0.09%)` | :arrow_up: | | [python_version3.11-sqlalchemy2.0-pydantic2-asyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `96.30% <100.00%> (+0.12%)` | :arrow_up: | | [python_version3.11-sqlalchemy2.0-pydantic2-noasyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `75.56% <76.47%> (-0.02%)` | :arrow_down: | | [python_version3.11-sqlalchemy2.0-pydantic2-noasyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `74.53% <76.47%> (+0.01%)` | :arrow_up: | | [python_version3.11-sqlalchemy2.0-sqlmodel-pydantic1-asyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `96.91% <100.00%> (+0.10%)` | :arrow_up: | | [python_version3.11-sqlalchemy2.0-sqlmodel-pydantic1-asyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `95.89% <100.00%> (+0.13%)` | :arrow_up: | | [python_version3.11-sqlalchemy2.0-sqlmodel-pydantic1-noasyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `75.15% <76.47%> (-0.01%)` | :arrow_down: | | [python_version3.11-sqlalchemy2.0-sqlmodel-pydantic1-noasyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `74.12% <76.47%> (+0.02%)` | :arrow_up: | | [python_version3.11-sqlalchemy2.0-sqlmodel-pydantic2-asyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `96.91% <100.00%> (+0.10%)` | :arrow_up: | | [python_version3.11-sqlalchemy2.0-sqlmodel-pydantic2-asyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `95.89% <100.00%> (+0.13%)` | :arrow_up: | | [python_version3.11-sqlalchemy2.0-sqlmodel-pydantic2-noasyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `75.15% <76.47%> (-0.01%)` | :arrow_down: | | [python_version3.11-sqlalchemy2.0-sqlmodel-pydantic2-noasyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `74.12% <76.47%> (+0.02%)` | :arrow_up: | | [python_version3.12-sqlalchemy1.4-pydantic1-asyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `97.94% <100.00%> (+0.06%)` | :arrow_up: | | [python_version3.12-sqlalchemy1.4-pydantic1-asyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `96.91% <100.00%> (+0.10%)` | :arrow_up: | | [python_version3.12-sqlalchemy1.4-pydantic1-noasyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `76.18% <76.47%> (-0.05%)` | :arrow_down: | | [python_version3.12-sqlalchemy1.4-pydantic1-noasyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `75.15% <76.47%> (-0.01%)` | :arrow_down: | | [python_version3.12-sqlalchemy1.4-pydantic2-asyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `97.94% <100.00%> (+0.06%)` | :arrow_up: | | [python_version3.12-sqlalchemy1.4-pydantic2-asyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `96.91% <100.00%> (+0.10%)` | :arrow_up: | | [python_version3.12-sqlalchemy1.4-pydantic2-noasyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `76.18% <76.47%> (-0.05%)` | :arrow_down: | | [python_version3.12-sqlalchemy1.4-pydantic2-noasyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `75.15% <76.47%> (-0.01%)` | :arrow_down: | | [python_version3.12-sqlalchemy2.0-pydantic1-asyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `97.33% <100.00%> (+0.09%)` | :arrow_up: | | [python_version3.12-sqlalchemy2.0-pydantic1-asyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `96.30% <100.00%> (+0.12%)` | :arrow_up: | | [python_version3.12-sqlalchemy2.0-pydantic1-noasyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `75.56% <76.47%> (-0.02%)` | :arrow_down: | | [python_version3.12-sqlalchemy2.0-pydantic1-noasyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `74.53% <76.47%> (+0.01%)` | :arrow_up: | | [python_version3.12-sqlalchemy2.0-pydantic2-asyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `97.33% <100.00%> (+0.09%)` | :arrow_up: | | [python_version3.12-sqlalchemy2.0-pydantic2-asyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `96.30% <100.00%> (+0.12%)` | :arrow_up: | | [python_version3.12-sqlalchemy2.0-pydantic2-noasyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `75.56% <76.47%> (-0.02%)` | :arrow_down: | | [python_version3.12-sqlalchemy2.0-pydantic2-noasyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `74.53% <76.47%> (+0.01%)` | :arrow_up: | | [python_version3.12-sqlalchemy2.0-sqlmodel-pydantic1-asyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `96.91% <100.00%> (+0.10%)` | :arrow_up: | | [python_version3.12-sqlalchemy2.0-sqlmodel-pydantic1-asyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `95.89% <100.00%> (+0.13%)` | :arrow_up: | | [python_version3.12-sqlalchemy2.0-sqlmodel-pydantic1-noasyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `75.15% <76.47%> (-0.01%)` | :arrow_down: | | [python_version3.12-sqlalchemy2.0-sqlmodel-pydantic1-noasyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `74.12% <76.47%> (+0.02%)` | :arrow_up: | | [python_version3.12-sqlalchemy2.0-sqlmodel-pydantic2-asyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `96.91% <100.00%> (+0.10%)` | :arrow_up: | | [python_version3.12-sqlalchemy2.0-sqlmodel-pydantic2-asyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `95.89% <100.00%> (+0.13%)` | :arrow_up: | | [python_version3.12-sqlalchemy2.0-sqlmodel-pydantic2-noasyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `75.15% <76.47%> (-0.01%)` | :arrow_down: | | [python_version3.12-sqlalchemy2.0-sqlmodel-pydantic2-noasyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `74.12% <76.47%> (+0.02%)` | :arrow_up: | | [python_version3.9-sqlalchemy1.4-pydantic1-asyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `97.94% <100.00%> (+0.06%)` | :arrow_up: | | [python_version3.9-sqlalchemy1.4-pydantic1-asyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `96.91% <100.00%> (+0.10%)` | :arrow_up: | | [python_version3.9-sqlalchemy1.4-pydantic1-noasyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `76.18% <76.47%> (-0.05%)` | :arrow_down: | | [python_version3.9-sqlalchemy1.4-pydantic1-noasyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `75.15% <76.47%> (-0.01%)` | :arrow_down: | | [python_version3.9-sqlalchemy1.4-pydantic2-asyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `97.94% <100.00%> (+0.06%)` | :arrow_up: | | [python_version3.9-sqlalchemy1.4-pydantic2-asyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `96.91% <100.00%> (+0.10%)` | :arrow_up: | | [python_version3.9-sqlalchemy1.4-pydantic2-noasyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `76.18% <76.47%> (-0.05%)` | :arrow_down: | | [python_version3.9-sqlalchemy1.4-pydantic2-noasyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `75.15% <76.47%> (-0.01%)` | :arrow_down: | | [python_version3.9-sqlalchemy2.0-pydantic1-asyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `97.33% <100.00%> (+0.09%)` | :arrow_up: | | [python_version3.9-sqlalchemy2.0-pydantic1-asyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `96.30% <100.00%> (+0.12%)` | :arrow_up: | | [python_version3.9-sqlalchemy2.0-pydantic1-noasyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `75.56% <76.47%> (-0.02%)` | :arrow_down: | | [python_version3.9-sqlalchemy2.0-pydantic1-noasyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `74.53% <76.47%> (+0.01%)` | :arrow_up: | | [python_version3.9-sqlalchemy2.0-pydantic2-asyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `97.33% <100.00%> (+0.09%)` | :arrow_up: | | [python_version3.9-sqlalchemy2.0-pydantic2-asyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `96.30% <100.00%> (+0.12%)` | :arrow_up: | | [python_version3.9-sqlalchemy2.0-pydantic2-noasyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `75.56% <76.47%> (-0.02%)` | :arrow_down: | | [python_version3.9-sqlalchemy2.0-pydantic2-noasyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `74.53% <76.47%> (+0.01%)` | :arrow_up: | | [python_version3.9-sqlalchemy2.0-sqlmodel-pydantic1-asyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `96.91% <100.00%> (+0.10%)` | :arrow_up: | | [python_version3.9-sqlalchemy2.0-sqlmodel-pydantic1-asyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `95.89% <100.00%> (+0.13%)` | :arrow_up: | | [python_version3.9-sqlalchemy2.0-sqlmodel-pydantic1-noasyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `75.15% <76.47%> (-0.01%)` | :arrow_down: | | [python_version3.9-sqlalchemy2.0-sqlmodel-pydantic1-noasyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `74.12% <76.47%> (+0.02%)` | :arrow_up: | | [python_version3.9-sqlalchemy2.0-sqlmodel-pydantic2-asyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `96.91% <100.00%> (+0.10%)` | :arrow_up: | | [python_version3.9-sqlalchemy2.0-sqlmodel-pydantic2-asyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `95.89% <100.00%> (+0.13%)` | :arrow_up: | | [python_version3.9-sqlalchemy2.0-sqlmodel-pydantic2-noasyncpg-aws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `75.15% <76.47%> (-0.01%)` | :arrow_down: | | [python_version3.9-sqlalchemy2.0-sqlmodel-pydantic2-noasyncpg-noaws_rds_iam](https://app.codecov.io/gh/dialoguemd/fastapi-sqla/pull/132/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd) | `74.12% <76.47%> (+0.02%)` | :arrow_up: | Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dialoguemd#carryforward-flags-in-the-pull-request-comment) to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

hadrien commented 3 months ago

Why not change setup to use lifespan rather than having library users to do so?

hadrien commented 3 months ago

Also, why changing setup to setup_middlewares? is that necessary? Whenever we'll want to setup something_else, will we add a setup_something_else Can't we just keep setup?

hadrien commented 3 months ago

-> #142