def get_program(self, n, timeout=<NUM_LIT>, max_retries=<NUM_LIT:2>):
<EOL>response = self.driver.send_command('<STR_LIT>' + str(int(n)), timeout=timeout,immediate=True, max_retries=max_retries)<EOL>if self.driver.command_error(response)or len(response[<NUM_LIT:4>]) == <NUM_LIT:0>:<EOL><INDENT>return []<EOL><DEDENT>else:<EOL><INDENT>if '<STR_LIT>' in response[<NUM_LIT:4>]:<EOL><INDENT>response[<NUM_LIT:4>].remove('<STR_LIT>')<EOL><DEDENT>return [line[<NUM_LIT:1>:] for line in response[<NUM_LIT:4>]]<EOL><DEDENT>
Get a program from the drive.

        Gets program 'n' from the drive and returns its commands.

        Parameters
        ----------
        n : int
            Which program to get.
        timeout : number, optional
            Optional timeout in seconds to use when reading the
            response. A negative value or ``None`` indicates that the
            an infinite timeout should be used.
        max_retries : int, optional
            Maximum number of retries to do per command in the case of
            errors.

        Returns
        -------
        commands : list of str
            ``list`` of ``str`` commands making up the program. The
            trailing 'END' is removed. Empty if there was an error.

        Notes
        -----
        The command sent to the drive is '!TPROG PROGn'.

        See Also
        --------
        set_program_profile : Sets a program or profile.
        run_program_profile : Runs a program or profile.