FastAPIプロジェクトの依存関係の変換

FastAPIアプリケーションのrequirements.txtをpyproject.tomlに変換。非同期依存関係、Pydantic v2、データベースドライバー、バックグラウンドタスクワーカーを含みます。

Real-World Projects

詳細な説明

FastAPIプロジェクトは通常、非同期Pythonを広範に活用します。依存関係リストにはASGIサーバー、非同期データベースドライバー、データバリデーション用のPydanticが含まれます。

FastAPI requirements.txt:

fastapi>=0.104
uvicorn[standard]>=0.24
pydantic>=2.5
sqlalchemy[asyncio]>=2.0
asyncpg>=0.29
python-jose[cryptography]>=3.3
celery[redis]>=5.3

pyproject.tomlに変換:

[project]
name = "my-fastapi-app"
version = "0.1.0"
requires-python = ">=3.11"

dependencies = [
    "fastapi>=0.104",
    "uvicorn[standard]>=0.24",
    "pydantic>=2.5",
    "sqlalchemy[asyncio]>=2.0",
    "asyncpg>=0.29",
    "python-jose[cryptography]>=3.3",
    "celery[redis]>=5.3",
]

FastAPI固有のパターン:

  • **uvicorn[standard]**は本番に不可欠 -- httptoolsuvloopwebsocketsを追加
  • Pydantic v2は設定管理に別パッケージpydantic-settingsを使用
  • **asyncpg**は推奨される非同期PostgreSQLドライバー
  • **python-jose[cryptography]**はJWT処理にcryptographyバックエンドを使用

FastAPIのエコシステムは非同期ファーストなので、requires-pythonは通常>=3.11以上に設定してタスクグループなどの最新非同期機能を活用すべきです。

ユースケース

非同期データベースアクセス、JWT認証、Celeryワーカーを持つ本番FastAPIマイクロサービスをrequirements.txtからpyproject.tomlに変換する。

試してみる — Requirements ↔ Pyproject

フルツールを開く