fix: use lazy import for prisma in _is_deadlock_error

prisma is an optional dependency — a top-level import in _types.py
breaks non-proxy SDK users with ImportError.
This commit is contained in:
pnookala-godaddy 2026-03-30 09:35:44 -07:00
parent e30de5d7fd
commit 9bd1e2a708

View file

@ -4,7 +4,6 @@ from datetime import datetime
from typing import TYPE_CHECKING, Any, Callable, Dict, List, Literal, Optional, Union
import httpx
import prisma.errors
from pydantic import (
BaseModel,
ConfigDict,
@ -3579,6 +3578,10 @@ PRISMA_DEADLOCK_CODE = "P2034"
def _is_deadlock_error(e: Exception) -> bool:
"""Check if a Prisma error is a PostgreSQL deadlock / write conflict (P2034)."""
try:
import prisma.errors
except ImportError:
return False
return (
isinstance(e, prisma.errors.DataError)
and getattr(e, "code", None) == PRISMA_DEADLOCK_CODE