'Makes an identical copy of this object, identical except for a
new dbref in the database. If you want to customize the copy
by changing some settings, use ObjectDB.object.copy_object()
directly.
Args:
new_key (string): New key/name of copied object. If new_key is not
specified, the copy will be named <old_key>_copy by default.
Returns:
copy (Object): A copy of this object.'

def copy(self, new_key=None):

    def find_clone_key():
        '\n                                                Append    01,    02    etc    to    obj.key.    Checks    next    higher    number    in    the\n                                                same    location,    then    adds    the    next    number    available\n\n                                                returns    the    new    clone    name    on    the    form    keyXX\n                                                '
        key = self.key
        num = 1
        for _ in (obj for obj in self.location.contents if (obj.key.startswith(key) and obj.key.lstrip(key).isdigit())):
            num += 1
        return ('%s%03i' % (key, num))
    new_key = (new_key or find_clone_key())
    return ObjectDB.objects.copy_object(self, new_key=new_key)
