|
|
@ -262,26 +262,29 @@ class Command(_BaseCommand): |
|
|
|
""" |
|
|
|
self.__init__(self.callback, **dict(self.__original_kwargs__, **kwargs)) |
|
|
|
|
|
|
|
def copy(self): |
|
|
|
"""Creates a copy of this :class:`Command`.""" |
|
|
|
ret = self.__class__(self.callback, **self.__original_kwargs__) |
|
|
|
ret._before_invoke = self._before_invoke |
|
|
|
ret._after_invoke = self._after_invoke |
|
|
|
if self.checks != ret.checks: |
|
|
|
ret.checks = self.checks.copy() |
|
|
|
if self._buckets != ret._buckets: |
|
|
|
ret._buckets = self._buckets.copy() |
|
|
|
def _ensure_assignment_on_copy(self, other): |
|
|
|
other._before_invoke = self._before_invoke |
|
|
|
other._after_invoke = self._after_invoke |
|
|
|
if self.checks != other.checks: |
|
|
|
other.checks = self.checks.copy() |
|
|
|
if self._buckets != other._buckets: |
|
|
|
other._buckets = self._buckets.copy() |
|
|
|
try: |
|
|
|
ret.on_error = self.on_error |
|
|
|
other.on_error = self.on_error |
|
|
|
except AttributeError: |
|
|
|
pass |
|
|
|
return ret |
|
|
|
return other |
|
|
|
|
|
|
|
def copy(self): |
|
|
|
"""Creates a copy of this :class:`Command`.""" |
|
|
|
ret = self.__class__(self.callback, **self.__original_kwargs__) |
|
|
|
return self._ensure_assignment_on_copy(ret) |
|
|
|
|
|
|
|
def _update_copy(self, kwargs): |
|
|
|
if kwargs: |
|
|
|
copy = self.__class__(self.callback, **kwargs) |
|
|
|
copy.update(**self.__original_kwargs__) |
|
|
|
return copy |
|
|
|
return self._ensure_assignment_on_copy(copy) |
|
|
|
else: |
|
|
|
return self.copy() |
|
|
|
|
|
|
|