| 630 | return m |
| 631 | |
| 632 | def _copy_and_set_values(self: 'Model', values: 'DictStrAny', fields_set: 'SetStr', *, deep: bool) -> 'Model': |
| 633 | if deep: |
| 634 | # chances of having empty dict here are quite low for using smart_deepcopy |
| 635 | values = deepcopy(values) |
| 636 | |
| 637 | cls = self.__class__ |
| 638 | m = cls.__new__(cls) |
| 639 | object_setattr(m, '__dict__', values) |
| 640 | object_setattr(m, '__fields_set__', fields_set) |
| 641 | for name in self.__private_attributes__: |
| 642 | value = getattr(self, name, Undefined) |
| 643 | if value is not Undefined: |
| 644 | if deep: |
| 645 | value = deepcopy(value) |
| 646 | object_setattr(m, name, value) |
| 647 | |
| 648 | return m |
| 649 | |
| 650 | def copy( |
| 651 | self: 'Model', |