# Web
quart>=0.20,<0.21
hypercorn>=0.18,<0.19

# DB
sqlalchemy[asyncio]>=2.0,<2.1
asyncpg>=0.31,<0.32
psycopg[binary]>=3.3,<3.4
alembic>=1.18,<1.19
pgvector>=0.4,<0.5

# Task queue
celery>=5.6,<5.7
redis>=7.4,<8.0

# Crypto for credential storage (lands in FC-3, but pinned now for stability)
cryptography>=48,<49

# Image handling (lands in FC-2)
pillow>=12,<13
imagehash>=4.3,<4.4

# Gallery-dl wrapper (lands in FC-3)
gallery-dl>=1.32,<1.33
# Video extractor backend for gallery-dl. Without it, every video post
# attachment fails with `[downloader.ytdl][error] Cannot import yt-dlp`
# → `[download][error] Failed to download NN_video.mp4`. Operator-flagged
# 2026-05-31 after Patreon video posts produced empty downloads.
yt-dlp>=2025.1

# Utilities
python-dotenv>=1.2,<2.0
structlog>=25.5,<26.0

# HTML sanitization for scraped post descriptions (FC-2d provenance)
nh3>=0.2,<0.3

# Archive extraction (FC-2d-iii filesystem-import aid)
rarfile>=4.2,<5
py7zr>=1,<2

# Google Drive fetcher for off-platform file-host links (external downloads,
# #830). Handles Drive's confirm-token + virus-scan interstitial. mega.nz uses
# the `megatools` binary instead (Debian apt pkg in the runtime image, not pip).
gdown>=5,<6
