<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def copy(self, new_name=None):
 """ Returns a deep copy of the system Parameters new_name: str, optional Set a new meta name parameter. Default: <old_name>_copy """

        _tmp = copy.deepcopy(self)
        if not new_name:
            new_name = self.name + '_copy'
        if str(type(self)) == "<class 'pymrio.core.mriosystem.IOSystem'>":
            _tmp.meta.note('IOSystem copy {new} based on {old}'.format(
                new=new_name, old=self.meta.name))
            _tmp.meta.change_meta('name', new_name, log=False)
        else:
            _tmp.name = new_name
        return _tmp