diff --git a/pykat/components.py b/pykat/components.py index 8cd8c8142189c9a9abb9cfd99814e2d11f475527..f21bb74135a79552a5af42d92bf3990479ab6907 100644 --- a/pykat/components.py +++ b/pykat/components.py @@ -209,6 +209,19 @@ class Component(object): del self._params[:] self.__removed = True + + def __deepcopy__(self, memo): + cls = self.__class__ + result = cls.__new__(cls) + memo[id(self)] = result + + for k, v in self.__dict__.items(): + setattr(result, k, deepcopy(v, memo)) + + for p in result._params: + p._updateOwner(result) + + return result class AbstractMirrorComponent(Component): __metaclass__ = abc.ABCMeta