shared-mutable-pydantic-factory
Pydantic default factories should not return a captured mutable singleton.
Why
A default factory returning an existing mutable object gives different models the same state. Mutating one model can therefore silently change another model.
Fix
Construct a fresh value in the factory, or deliberately copy the required initial state.
Examples
from pydantic import BaseModel, Field
SHARED = []
class Model(BaseModel): values: list[int] = Field(default_factory=lambda: SHARED)from pydantic import BaseModel, Field
class Model(BaseModel): values: list[int] = Field(default_factory=list)