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]**は本番に不可欠 --httptools、uvloop、websocketsを追加 - Pydantic v2は設定管理に別パッケージ
pydantic-settingsを使用 - **
asyncpg**は推奨される非同期PostgreSQLドライバー - **
python-jose[cryptography]**はJWT処理にcryptographyバックエンドを使用
FastAPIのエコシステムは非同期ファーストなので、requires-pythonは通常>=3.11以上に設定してタスクグループなどの最新非同期機能を活用すべきです。
ユースケース
非同期データベースアクセス、JWT認証、Celeryワーカーを持つ本番FastAPIマイクロサービスをrequirements.txtからpyproject.tomlに変換する。