Files
kennethreitz 08247c2b1d Drop DbRetryMiddleware, make logger async, bump django-bolt
Wedges resumed despite the April 16 DB-timeout fix, and this time with
zero ESTABLISHED connections to Postgres — so not a DB deadlock. Most
suspicious piece is DbRetryMiddleware itself: its async path awaits
sync_to_async(...) inside an exception handler, a known-tricky pattern
on the asgiref thread pool. Django already handles stale-connection
recovery via conn_health_checks=True plus the psycopg connect_timeout/
statement_timeout added earlier, so the retry layer isn't load-bearing.

Also:
- RequestLoggingMiddleware is now async-capable, so the full chain
  stays async for async views instead of hopping through the thread
  pool on every request.
- Bump django-bolt 0.7.4 → 0.7.5 for any upstream fixes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-19 23:12:03 -04:00

25 lines
580 B
TOML

[project]
name = "exiftree"
version = "0.1.0"
description = "Browse photography through the gear that made it."
requires-python = ">=3.12"
dependencies = [
"boto3>=1.42.85",
"celery>=5.6.3",
"dj-database-url>=3.1.2",
"django>=6.0.4",
"django-bolt>=0.7.5",
"django-storages>=1.14.6",
"exifread>=3.5.1",
"httpx>=0.28.1",
"imagehash>=4.3.2",
"openai>=2.30.0",
"pillow>=12.2.0",
"psycopg[binary]>=3.3.3",
"python-dotenv>=1.2.2",
"redis>=7.4.0",
"requests>=2.33.1",
"reverse-geocoder>=1.5.1",
"sqlalchemy>=2.0.49",
]