Bug
default_factory gets run twice before any object instantiation. This is obvious for callables with side-effects:
>>> from pydantic import BaseModel, Field
>>> class Seq():
... def __init__(self):
... self.v = 0
... def __call__(self):
... self.v += 1
... return self.v
...
>>> class MyModel(BaseModel):
... id: int = Field(default_factory=Seq())
...
>>> MyModel()
MyModel(id=3)
Bug
default_factorygets run twice before any object instantiation. This is obvious for callables with side-effects: