Avoid calling new.unlock() in __deepcopy__()

since the new object's properties aren't necessarily deepcopied yet...
This commit is contained in:
Jan Petykiewicz 2022-06-08 20:58:04 -07:00
parent 48b28351ed
commit eb9682b1b8
3 changed files with 6 additions and 3 deletions

View File

@ -71,7 +71,8 @@ class Label(PositionableImpl, LayerableImpl, LockableImpl, RepeatableImpl, Annot
def __deepcopy__(self: L, memo: Dict = None) -> L:
memo = {} if memo is None else memo
new = copy.copy(self).unlock()
new = copy.copy(self)
LockableImpl.unlock(new)
new._offset = self._offset.copy()
new.set_locked(self.locked)
return new

View File

@ -116,7 +116,8 @@ class Grid(LockableImpl, Repetition, metaclass=AutoSlots):
def __deepcopy__(self, memo: Dict = None) -> 'Grid':
memo = {} if memo is None else memo
new = copy.copy(self).unlock()
new = copy.copy(self)
LocakbleImpl.unlock(new)
new.locked = self.locked
return new

View File

@ -101,7 +101,8 @@ class SubPattern(PositionableImpl, DoseableImpl, RotatableImpl, ScalableImpl, Mi
def __deepcopy__(self, memo: Dict = None) -> 'SubPattern':
memo = {} if memo is None else memo
new = copy.copy(self).unlock()
new = copy.copy(self)
LockableImpl.unlock(new)
new.pattern = copy.deepcopy(self.pattern, memo)
new.repetition = copy.deepcopy(self.repetition, memo)
new.annotations = copy.deepcopy(self.annotations, memo)