'transfer a file from local to remote'

def put_file(self, in_path, out_path):

    super(Connection, self).put_file(in_path, out_path)
    display.vvv(('PUT    %s    TO    %s' % (in_path, out_path)), host=self._play_context.remote_addr)
    if (not os.path.exists(to_bytes(in_path, errors='surrogate_or_strict'))):
        raise AnsibleFileNotFound(('file    or    module    does    not    exist:    %s' % in_path))
    try:
        self.sftp = self.ssh.open_sftp()
    except Exception as e:
        raise AnsibleError(('failed    to    open    a    SFTP    connection    (%s)' % e))
    try:
        self.sftp.put(to_bytes(in_path, errors='surrogate_or_strict'), to_bytes(out_path, errors='surrogate_or_strict'))
    except IOError:
        raise AnsibleError(('failed    to    transfer    file    to    %s' % out_path))
