py-automapper icon indicating copy to clipboard operation
py-automapper copied to clipboard

BaseModel.__init__() takes 1 positional argument but 2 were given

Open changuncle opened this issue 7 months ago • 0 comments

class Address(BaseModel): street: Optional[str] number: Optional[int] zip_code: Optional[int] city: Optional[str]

class PersonInfo(BaseModel): name: Optional[str] = None age: Optional[int] = None address: Optional[Address] = None

class PublicPersonInfo(BaseModel): name: Optional[str] = None address: Optional[Address] = None

if name == 'main': address = Address(street="Main Street",number=1,zip_code=100001,city='Test City')

info = PersonInfo(name='John Doe', age=35, address=address)

# default deepcopy behavior
public_info = mapper.to(PublicPersonInfo).map(info)
print("Target public_info.address is same as source address: ", address is public_info.address)
# Target public_info.address is same as source address: False

# disable deepcopy
public_info = mapper.to(PublicPersonInfo).map(info, use_deepcopy=False)
print("Target public_info.address is same as source address: ", address is public_info.address)
# Target public_info.address is same as source address: True

When run these code an exception was throwed, please help me to figure out an solution, thanks

changuncle avatar Jul 14 '24 17:07 changuncle