'Fetch a collection of the most recent Tweets and retweets posted
by the authenticating user and the users they follow.
The home timeline is central to how most users interact with Twitter.
Args:
count:
Specifies the number of statuses to retrieve. May not be
greater than 200. Defaults to 20. [Optional]
since_id:
Returns results with an ID greater than (that is, more recent
than) the specified ID. There are limits to the number of
Tweets which can be accessed through the API. If the limit of
Tweets has occurred since the since_id, the since_id will be
forced to the oldest ID available. [Optional]
max_id:
Returns results with an ID less than (that is, older than) or
equal to the specified ID. [Optional]
trim_user:
When True, each tweet returned in a timeline will include a user
object including only the status authors numerical ID. Omit this
parameter to receive the complete user object. [Optional]
exclude_replies:
This parameter will prevent replies from appearing in the
returned timeline. Using exclude_replies with the count
parameter will mean you will receive up-to count tweets -
this is because the count parameter retrieves that many
tweets before filtering out retweets and replies. [Optional]
contributor_details:
This parameter enhances the contributors element of the
status response to include the screen_name of the contributor.
By default only the user_id of the contributor is included. [Optional]
include_entities:
The entities node will be disincluded when set to false.
This node offers a variety of metadata about the tweet in a
discreet structure, including: user_mentions, urls, and
hashtags. [Optional]
Returns:
A sequence of twitter.Status instances, one for each message'

def GetHomeTimeline(self, count=None, since_id=None, max_id=None, trim_user=False, exclude_replies=False, contributor_details=False, include_entities=True):

    url = ('%s/statuses/home_timeline.json' % self.base_url)
    parameters = {}
    if (count is not None):
        try:
            if (int(count) > 200):
                raise TwitterError({'message': "'count'    may    not    be    greater    than    200"})
        except ValueError:
            raise TwitterError({'message': "'count'    must    be    an    integer"})
        parameters['count'] = count
    if since_id:
        try:
            parameters['since_id'] = int(since_id)
        except ValueError:
            raise TwitterError({'message': "'since_id'    must    be    an    integer"})
    if max_id:
        try:
            parameters['max_id'] = int(max_id)
        except ValueError:
            raise TwitterError({'message': "'max_id'    must    be    an    integer"})
    if trim_user:
        parameters['trim_user'] = 1
    if exclude_replies:
        parameters['exclude_replies'] = 1
    if contributor_details:
        parameters['contributor_details'] = 1
    if (not include_entities):
        parameters['include_entities'] = 'false'
    resp = self._RequestUrl(url, 'GET', data=parameters)
    data = self._ParseAndCheckTwitter(resp.content.decode('utf-8'))
    return [Status.NewFromJsonDict(x) for x in data]
