<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def requestPty(self, term=None, rows=0, cols=0, xpixel=0, ypixel=0, modes=''):
 """Request allocation of a pseudo-terminal for a channel @param term: TERM environment variable value (e.g., vt100) @param columns: terminal width, characters (e.g., 80) @param rows: terminal height, rows (e.g., 24) @param width: terminal width, pixels (e.g., 640) @param height: terminal height, pixels (e.g., 480) @param modes: encoded terminal modes The dimension parameters are only informational. Zero dimension parameters are ignored. The columns/rows dimensions override the pixel dimensions (when nonzero). Pixel dimensions refer to the drawable area of the window. """

        #TODO: Needs testing!
        term = term or os.environ.get('TERM', '')
        data = packRequest_pty_req(term, (rows, cols, xpixel, ypixel), modes)
        return self.sendRequest('pty-req', data)