bcrypt==4.2.1 coloredlogs==15.0.1 └── humanfriendly [required: >=9.1, installed: 10.0] cryptography==44.0.0 └── cffi [required: >=1.12, installed: 1.17.1] └── pycparser [required: Any, installed: 2.22] email_validator==2.2.0 ├── dnspython [required: >=2.0.0, installed: 2.7.0] └── idna [required: >=2.0.0, installed: 3.10] fastapi==0.115.6 ├── pydantic [required: >=1.7.4,<3.0.0,!=2.1.0,!=2.0.1,!=2.0.0,!=1.8.1,!=1.8, installed: 2.10.4] │ ├── annotated-types [required: >=0.6.0, installed: 0.7.0] │ ├── pydantic_core [required: ==2.27.2, installed: 2.27.2] │ │ └── typing_extensions [required: >=4.6.0,!=4.7.0, installed: 4.12.2] │ └── typing_extensions [required: >=4.12.2, installed: 4.12.2] ├── starlette [required: >=0.40.0,<0.42.0, installed: 0.41.3] │ └── anyio [required: >=3.4.0,<5, installed: 4.7.0] │ ├── idna [required: >=2.8, installed: 3.10] │ └── sniffio [required: >=1.1, installed: 1.3.1] └── typing_extensions [required: >=4.8.0, installed: 4.12.2] fastapi-cli==0.0.7 ├── rich-toolkit [required: >=0.11.1, installed: 0.12.0] │ ├── click [required: >=8.1.7, installed: 8.1.8] │ ├── rich [required: >=13.7.1, installed: 13.9.4] │ │ ├── markdown-it-py [required: >=2.2.0, installed: 3.0.0] │ │ │ └── mdurl [required: ~=0.1, installed: 0.1.2] │ │ └── Pygments [required: >=2.13.0,<3.0.0, installed: 2.18.0] │ └── typing_extensions [required: >=4.12.2, installed: 4.12.2] ├── typer [required: >=0.12.3, installed: 0.15.1] │ ├── click [required: >=8.0.0, installed: 8.1.8] │ ├── rich [required: >=10.11.0, installed: 13.9.4] │ │ ├── markdown-it-py [required: >=2.2.0, installed: 3.0.0] │ │ │ └── mdurl [required: ~=0.1, installed: 0.1.2] │ │ └── Pygments [required: >=2.13.0,<3.0.0, installed: 2.18.0] │ ├── shellingham [required: >=1.3.0, installed: 1.5.4] │ └── typing_extensions [required: >=3.7.4.3, installed: 4.12.2] └── uvicorn [required: >=0.15.0, installed: 0.32.1] ├── click [required: >=7.0, installed: 8.1.8] └── h11 [required: >=0.8, installed: 0.14.0] filetype==1.2.0 httptools==0.6.4 httpx==0.28.1 ├── anyio [required: Any, installed: 4.7.0] │ ├── idna [required: >=2.8, installed: 3.10] │ └── sniffio [required: >=1.1, installed: 1.3.1] ├── certifi [required: Any, installed: 2024.12.14] ├── httpcore [required: ==1.*, installed: 1.0.7] │ ├── certifi [required: Any, installed: 2024.12.14] │ └── h11 [required: >=0.13,<0.15, installed: 0.14.0] └── idna [required: Any, installed: 3.10] itsdangerous==2.2.0 Jinja2==3.1.5 └── MarkupSafe [required: >=2.0, installed: 3.0.2] mypy==1.14.1 ├── mypy-extensions [required: >=1.0.0, installed: 1.0.0] └── typing_extensions [required: >=4.6.0, installed: 4.12.2] orjson==3.10.13 pg8000==1.31.2 ├── python-dateutil [required: >=2.8.2, installed: 2.9.0.post0] │ └── six [required: >=1.5, installed: 1.17.0] └── scramp [required: >=1.4.5, installed: 1.4.5] └── asn1crypto [required: >=1.5.1, installed: 1.5.1] pip-licenses==5.0.0 ├── prettytable [required: >=2.3.0, installed: 3.12.0] │ └── wcwidth [required: Any, installed: 0.2.13] └── tomli [required: >=2, installed: 2.2.1] pipdeptree==2.24.0 ├── packaging [required: >=24.1, installed: 24.2] └── pip [required: >=24.2, installed: 24.3.1] pydantic-extra-types==2.10.1 ├── pydantic [required: >=2.5.2, installed: 2.10.4] │ ├── annotated-types [required: >=0.6.0, installed: 0.7.0] │ ├── pydantic_core [required: ==2.27.2, installed: 2.27.2] │ │ └── typing_extensions [required: >=4.6.0,!=4.7.0, installed: 4.12.2] │ └── typing_extensions [required: >=4.12.2, installed: 4.12.2] └── typing_extensions [required: Any, installed: 4.12.2] pydantic-settings==2.7.1 ├── pydantic [required: >=2.7.0, installed: 2.10.4] │ ├── annotated-types [required: >=0.6.0, installed: 0.7.0] │ ├── pydantic_core [required: ==2.27.2, installed: 2.27.2] │ │ └── typing_extensions [required: >=4.6.0,!=4.7.0, installed: 4.12.2] │ └── typing_extensions [required: >=4.12.2, installed: 4.12.2] └── python-dotenv [required: >=0.21.0, installed: 1.0.1] PyJWT==2.10.1 pytest-cov==6.0.0 ├── coverage [required: >=7.5, installed: 7.6.10] └── pytest [required: >=4.6, installed: 8.3.4] ├── iniconfig [required: Any, installed: 2.0.0] ├── packaging [required: Any, installed: 24.2] └── pluggy [required: >=1.5,<2, installed: 1.5.0] python-jose==3.3.0 ├── ecdsa [required: !=0.15, installed: 0.19.0] │ └── six [required: >=1.9.0, installed: 1.17.0] ├── pyasn1 [required: Any, installed: 0.6.1] └── rsa [required: Any, installed: 4.9] └── pyasn1 [required: >=0.1.3, installed: 0.6.1] python-multipart==0.0.20 PyYAML==6.0.2 ruff==0.8.5 sqlmodel==0.0.22 ├── pydantic [required: >=1.10.13,<3.0.0, installed: 2.10.4] │ ├── annotated-types [required: >=0.6.0, installed: 0.7.0] │ ├── pydantic_core [required: ==2.27.2, installed: 2.27.2] │ │ └── typing_extensions [required: >=4.6.0,!=4.7.0, installed: 4.12.2] │ └── typing_extensions [required: >=4.12.2, installed: 4.12.2] └── SQLAlchemy [required: >=2.0.14,<2.1.0, installed: 2.0.36] └── typing_extensions [required: >=4.6.0, installed: 4.12.2] ujson==5.10.0 uvloop==0.21.0 watchfiles==1.0.3 └── anyio [required: >=3.0.0, installed: 4.7.0] ├── idna [required: >=2.8, installed: 3.10] └── sniffio [required: >=1.1, installed: 1.3.1] websockets==14.1