anikolaienko / py-automapper

Python object auto mapper
https://anikolaienko.github.io/py-automapper/
MIT License
56 stars 10 forks source link

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

Open changuncle opened 3 months ago

changuncle commented 3 months ago

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