'Fetch the sequence of public twitter.Status messages for a single user.
The twitter.Api instance must be authenticated if the user is private.
Args:
user:
either the username (short_name) or id of the user to retrieve.  If
not specified, then the current authenticated user is used. [optional]
count: the number of status messages to retrieve [optional]
since:
Narrows the returned results to just those statuses created
after the specified HTTP-formatted date. [optional]
since_id:
Returns only public statuses with an ID greater than (that is,
more recent than) the specified ID. [Optional]
Returns:
A sequence of twitter.Status instances, one for each message up to count'

def GetUserTimeline(self, user=None, count=None, since=None, since_id=None):

    try:
        if count:
            int(count)
    except:
        raise TwitterError('Count    must    be    an    integer')
    parameters = {}
    if count:
        parameters['count'] = count
    if since:
        parameters['since'] = since
    if since_id:
        parameters['since_id'] = since_id
    if user:
        url = (TWITTER_API_ROOT + ('statuses/user_timeline/%s.json' % user))
    elif ((not user) and (not self._username)):
        raise TwitterError('User    must    be    specified    if    API    is    not    authenticated.')
    else:
        url = (TWITTER_API_ROOT + 'statuses/user_timeline.json')
    json = self._FetchUrl(url, parameters=parameters)
    data = simplejson.loads(json)
    self._CheckForTwitterError(data)
    return [Status.NewFromJsonDict(x) for x in data]
