Purpose: Makes an SCP push request for the specified file(s)/dir.

        @param src: string containing the source file or directory
        @type src: str
        @param dest: destination string of where to put the file(s)/dir
        @type dest: str
        @param progress: set to `True` to have the progress callback be
                       | printed as the operation is copying. Can also pass
                       | a function pointer to handoff the progress callback
                       | elsewhere.
        @type progress: bool or function pointer
        @param preserve_times: Set to false to have the times of the copied
                             | files set at the time of copy.
        @type preserve_times: bool

        @returns: `True` if the copy succeeds.
        @rtype: bool

def scp_push(self, src, dest, progress=False, preserve_times=True):
        """ Purpose: Makes an SCP push request for the specified file(s)/dir.

        @param src: string containing the source file or directory
        @type src: str
        @param dest: destination string of where to put the file(s)/dir
        @type dest: str
        @param progress: set to `True` to have the progress callback be
                       | printed as the operation is copying. Can also pass
                       | a function pointer to handoff the progress callback
                       | elsewhere.
        @type progress: bool or function pointer
        @param preserve_times: Set to false to have the times of the copied
                             | files set at the time of copy.
        @type preserve_times: bool

        @returns: `True` if the copy succeeds.
        @rtype: bool
        """
        # set up the progress callback if they want to see the process
        if progress is True:
            self._scp._progress = self._copy_status
        # redirect to another function
        elif hasattr(progress, '__call__'):
            self._scp._progress = progress
        else:  # no progress callback
            self._scp._progress = None
        # push the file(s)
        self._scp.put(src, dest, recursive=True, preserve_times=preserve_times)
        self._filename = None
        return False