I am trying to generate a list of classes but an error is thrown:
pydantic_core._pydantic_core.ValidationError: 1 validation error for Status
cardstatus.0
Input should be a valid dictionary or instance of CardStatus [type=model_type, input_value=[CardStatus(link_id=5265,...ture=-12651701372362.7)], input_type=list]
For further information visit https://errors.pydantic.dev/2.5/v/model_type
This error only occurs when I define a field alias. Without a field alias it works.
URL to code causing the issue
No response
MCVE
from typing import Optional, Union
from polyfactory import Use
from polyfactory.factories.pydantic_factory import ModelFactory
from pydantic import BaseModel, Field, conlist, StrictInt, StrictFloat
class CardStatus(BaseModel):
link_id: Optional[StrictInt] = Field(None, alias="linkId")
temperature: Optional[Union[StrictFloat, StrictInt]] = None
__properties = ["linkId", "temperature"]
class CardsFactory(ModelFactory):
__model__ = CardStatus
__allow_none_optionals__ = False
class Status(BaseModel):
# cellular_cards: Optional[conlist(CardStatus)] = Field(None) # working
card_status: Optional[conlist(CardStatus)] = Field(None, alias="cardstatus") # not working
class StatusFactory(ModelFactory):
__model__ = Status
__randomize_collection_length__ = True
__min_collection_length__ = 2
__max_collection_length__ = 5
__allow_none_optionals__ = False
cellular_cards = Use(CardsFactory.batch, size=3)
if __name__ == '__main__':
gen = StatusFactory()
e: Status = gen.build()
print(e.model_dump())
Description
I am trying to generate a list of classes but an error is thrown:
This error only occurs when I define a field alias. Without a field alias it works.
URL to code causing the issue
No response
MCVE
Steps to reproduce
Screenshots
No response
Logs
No response
Release Version
Python 3.11 pydantic==2.5.3 pydantic-settings==2.1.0 polyfactory==2.14.1
Platform