Twitter for Python!
This will be the last minor version to support Python 3.6 (#1788).
Client
and Stream
to inherit from new BaseClient
and BaseStream
classes and add StreamingClient
, StreamResponse
, and StreamRule
max_results
and pagination_token
parameters for Client.get_liking_users
(bdd6b55)max_results
and pagination_token
parameters for Client.get_retweeters
(3479e56)sort_order
parameter for Client.search_all_tweets
(bd202e5)sort_order
parameter for Client.search_recent_tweets
(8b47170)Client.get_space_tweets
(c8d5d9a)Space.subscriber_count
(1ffc8cd)repr
of text in Tweet.__repr__
(4e2997e)
Mapping.__contains__
in DataMapping
(9f10a58)
Stream.session
within Stream.__init__
(80adf5b)
Stream.user_agent
even if Stream.session
is already initializedClient._make_request
(#1793)OAuthHandler
to OAuth1UserHandler
(fb6eb7d)
OAuthHandler
is kept as a deprecated alias (cba7317)AppAuthHandler
to Oauth2AppHandler
(529d793)
AppAuthHandler
is kept as a deprecated alias (d4ceb1a)OAuth2Bearer
to OAuth2BearerHandler
(0781fde)OAuth1UserHandler.__init__
(99f3583)
callback
parameter to be the fifth argument, positionallyOAuth2BearerHandler
to be used as auth
parameter for API
(5a2a3fc)AuthHandler
(d600c4c)OAuth1UserHandler.get_xauth_access_token
(8e2de9f)Client.get_me
(c49cbdf, 62b5b58, f6895d3, bb87b26)Media.url
(#1722)JSONDecodeError
(b492b0a)
Response.includes["polls"]
not being Poll
objects (#1733)Paginator
handling of Client.get_all_tweets_count
(#1761)Client.follow
and Client.unfollow
to Client.follow_user
and Client.unfollow_user
, respectively (8f8de15)
Client.follow
and Client.unfollow
are kept as deprecated aliasesstate
to optional parameter for Client.search_spaces
(e61d5d6)Space
modelClient.search_spaces
, Client.get_spaces
, and Client.get_space
Client.get_compliance_jobs
, Client.get_compliance_job
, and Client.create_compliance_job
Client.get_muted
(00cdab8)Client
methods (d61a5d9)Client
methods in Twitter API request (618d1c2)
Client
methods from datetimes to strings (1320a37)
start_time
and end_time
that accept datetimesJSONDecodeError
in HTTPException
(586c162)Support Twitter API v2 (#1472, #1535)
Rework API
bind_api
and APIMethod
with API.request
API
methodspagination
decoratorrequests.Session
instance as API.session
attribute (2f28757)
requests.Session
instance per API
instance, rather than for each requestallowed_param
) to endpoint parameters (endpoint_parameters
) (b4fc6a0)API.request
and other API
methodsRework streaming
StreamListener
has been merged into Stream
(see Backwards-Incompatible Changes section)Stream
data/event handling methods (i.e. those starting with on_
) now log by default and disregard return valuesStream
Rework documentation
Stream
(18a6059)API
documentation (6db8e4c)Rework exceptions
API
API
and models
methods
API.blocks
-> API.get_blocks
(9541794)API.blocks_ids
-> API.get_blocked_ids
(e241ca4)API.destroy_direct_message
-> API.delete_direct_message
(2731fc9)
DirectMessage.destroy
-> DirectMessage.delete
(2731fc9)API.favorites
-> API.get_favorites
(3c467da)API.followers
-> API.get_followers
(ce768d9)API.followers_ids
-> API.get_follower_ids
(fa5e7c4)
models.User.followers_ids
-> models.User.follower_ids
(fa5e7c4)API.friends
-> API.get_friends
(6f3fccb)API.friends_ids
-> API.get_friend_ids
(bab3e5e)API.friendships_incoming
-> API.incoming_friendships
(007bd07)API.friendships_outgoing
-> API.outgoing_friendships
(1400065)API.geo_search
-> API.search_geo
(6f4fb39)API.list_direct_messages
-> API.get_direct_messages
(ff1186f)API.list_members
-> API.get_list_members
(5845f02)API.list_subscribers
-> API.get_list_subscribers
(a05b630)API.lists_all
-> API.get_lists
(458e0e8)API.lists_memberships
-> API.get_list_memberships
(9dddc12)
models.User.lists_memberships
-> models.User.list_memberships
(9dddc12)API.lists_subscriptions
-> API.get_list_subscriptions
(51945a7)
models.User.lists_subscriptions
-> models.User.list_subscriptions
(51945a7)API.mutes
-> API.get_mutes
(744edc2)API.mutes_ids
-> API.get_muted_ids
(ea26a29)API.retweeters
-> API.get_retweeter_ids
(588c342)API.retweets
-> API.get_retweets
(3b3ba24)API.retweets_of_me
-> API.get_retweets_of_me
(737bd0b)API.saved_searches
-> API.get_saved_searches
(8b39f74)API.search
-> API.search_tweets
(7fac253)API.show_friendship
-> API.get_friendship
(ee9ea2e)API.show_list_member
-> API.get_list_member
(431ab15)API.show_list_subscriber
-> API.get_list_subscriber
(bf26301)API.statuses_lookup
-> API.lookup_statuses
(#477)API.trends_available
-> API.available_trends
(68b33d7)API.trends_closest
-> API.closest_trends
(2e18162)API.trends_place
-> API.get_place_trends
(4912a7c)API.update_with_media
-> API.update_status_with_media
(0a5e533)API
method parameters
API.geo_id
: id
-> place_id
(78051e8)API.lookup_friendships
: screen_names
-> screen_name
(4573b35), user_ids
-> user_id
(3bcccf8)API.lookup_statuses
: id_
-> id
(f13a34b)API.lookup_users
: screen_names
-> screen_name
(17a2e7c), user_ids
-> user_id
(e7d9e55)API.search_30_day
: environment_name
-> label
(6c66c60)API.search_full_archive
: environment_name
-> label
(295bfe4)API.update_profile_image
: file_
-> file
(69f6c1d)API
method parameters
API.closest_trends
: lat
, long
(75b9616)API.create_favorite
: id
(d3d2abe)API.create_list
: name
(5e7385a)API.create_saved_search
: query
(c57a4be)API.delete_direct_message
: id
(bcb56ab)API.destroy_favorite
: id
(a9d41b6)API.get_direct_message
: id
(f5775ee)API.get_oembed
: url
(af0cc51)API.get_place_trends
: id
(c50f540)API.get_retweeter_ids
: id
(66f6704)API.get_status
: id
(bac73c3)API.reverse_geocode
: lat
, long
(87d8646)API.search_30_day
: query
(52874b7)API.search_full_archive
: query
(801f15d)API.search_tweets
: q
(9377e7e)API.search_users
: q
(21802f9)API.update_status
: status
(f64c076)API.update_status_with_media
: status
(0726263)API
methods (change to be keyword-only arguments):
API.add_list_member
(ae18ee5)API.add_list_members
(8eb900f)API.available_trends
(7a74863)API.closest_trends
, besides lat
and long
(7946490)API.create_block
(caa34c6)API.create_favorite
, besides id
(0b83984)API.create_friendship
(82cd798)API.create_list
, besides name
(25cb01e)API.create_mute
(4aae710)API.create_saved_search
, besides query
(76be2d9)API.delete_direct_message
, besides id
(53ca00f)API.destroy_block
(c49cfb2)API.destroy_favorite
, besides id
(8afee87)API.destroy_friendship
(b2d44fe)API.destroy_list
(4b2cfc4)API.destroy_mute
(009b54e)API.destroy_saved_search
, besides id
(b7afca2)API.destroy_status
, besides id
(876c8ca)API.geo_id
, besides place_id
(a0cff22)API.get_blocked_ids
(ff38b70)API.get_blocks
(dc81854)API.get_direct_message
, besides id
(4ae0ec8)API.get_direct_messages
(8e0507d)API.get_favorites
(e80b49a)API.get_follower_ids
(7d42597)API.get_followers
(c6ab5a0)API.get_friend_ids
(c65641b)API.get_friends
(e6965fa)API.get_friendship
(6dea7de)API.get_list
(92dc37f)API.get_list_member
(0af06db)API.get_list_members
(7c8be8d)API.get_list_memberships
(ec7601f)API.get_list_subscriber
(a175cdd)API.get_list_subscribers
(3ee84ef)API.get_list_subscriptions
(178d719)API.get_lists
(3cd0058)API.get_muted_ids
(2967104)API.get_mutes
(9e9d370)API.get_oembed
, besides url
(d13d853)API.get_place_trends
, besides id
(548810c)API.get_retweeter_ids
, besides id
(9907c25)API.get_retweets
, besides id
(0bd0292)API.get_retweets_of_me
(2b2ed0a)API.get_saved_search
, besides id
(1d3d3ae)API.get_saved_searches
(c5f5b4b)API.get_settings
(2c2f0ec)API.get_status
, besides id
(30af3ac)API.get_user
(6b761ce)API.home_timeline
(b91be22)API.incoming_friendships
(6d3b7f2)API.list_timeline
(e3ec5c1)API.lookup_friendships
(0eff951)API.lookup_statuses
, besides id
(cf9845d)API.lookup_users
(7317109)API.media_upload
, besides filename
(ec2498f)API.mentions_timeline
(3614ce4)API.outgoing_friendships
(09f8504)API.rate_limit_status
(b4b91c1)API.remove_list_member
(e7fa800)API.remove_list_members
(593ef1c)API.report_spam
(f55efcf)API.retweet
, besides id
(4f7be88)API.reverse_geocode
: besides lat
and long
(b209c48)API.search_30_day
, besides label
and query
(434fd35)API.search_full_archive
, besides label
and query
(44391bc)API.search_geo
(0a6bec9)API.search_tweets
, besides q
(445da4e)API.search_users
, besides q
(76ca416)API.send_direct_message
, besides recipient_id
and text
(7d1a549)API.set_settings
(bf1d928)API.supported_languages
(2034efc)API.subscribe_list
(ee3b718)API.unretweet
, besides id
(4626c42)API.unsubscribe_list
(2df2311)API.update_list
(8b3b4fb)API.update_profile
(99cd815)API.update_profile_banner
, besides filename
(1ca22be)API.update_profile_image
, besides filename
(3539fa2)API.update_status
, besides status
(761cbfe)API.update_status_with_media
, besides filename
and status
(0ac4e83)API.user_timeline
(0ef964f)API.update_status_with_media
parameters (87abdcd)API
initialization parameter: auth_handler
-> auth
(ee313bd)auth
for API
initialization (da2f276)API.api_root
and API.upload_root
(e757919)API.compression
(4590c7a)API.me
, AuthHandler.get_username
, and OAuthHandler.get_username
(807f937)API.search_host
and API.search_root
(92db0cf)API.wait_on_rate_limit_notify
(f325738)
map_
keyword argument aliasing for API.lookup_statuses
(0a404c3)Stream
StreamListener
by merging it into Stream
(39abff4)
StreamListener.keep_alive
-> Stream.on_keep_alive
(abf4d5d)StreamListener.on_connect
-> Stream.on_connect
StreamListener.on_data
-> Stream.on_data
StreamListener.on_delete
-> Stream.on_delete
StreamListener.on_disconnect
-> Stream.on_disconnect_message
(6c3b997)StreamListener.on_error
-> Stream.on_request_error
(fe3bb8b)StreamListener.on_exception
-> Stream.on_exception
StreamListener.on_limit
-> Stream.on_limit
StreamListener.on_scrub_geo
-> Stream.on_scrub_geo
StreamListener.on_status
-> Stream.on_status
StreamListener.on_status_withheld
-> Stream.on_status_withheld
StreamListener.on_timeout
-> Stream.on_connection_error
(8f62297)StreamListener.on_user_withheld
-> Stream.on_user_withheld
StreamListener.on_warning
-> Stream.on_warning
Stream.api
(21a9db2)Stream.body
(3e40193)Stream.headers
(d07af4e)Stream.host
(9cf8518)Stream.new_session
(26518ab)Stream.timeout
(a2f79f1)Stream.url
(48cbf97)Stream.retry_time_start
, Stream.retry_420_start
, Stream.retry_time_cap
, Stream.snooze_time_step
, Stream.snooze_time_cap
, Stream.retry_time
, and Stream.snooze_time
Stream.retry_count
to Stream.max_retries
(3585f13)Stream.auth
with parameters and attributes for each credential (c9f59e6)
Stream.auth
with Stream.consumer_key
, Stream.consumer_secret
, Stream.access_token
, and Stream.access_token_secret
Stream
parameter, proxies
, with proxy
(#1272)Stream.filter
parameter: encoding
(b3f2db2)Stream.filter
and Stream.sample
parameters: is_async
-> threaded
(6c96c15)Stream.filter
(0629d5f)Stream.sample
(b170720)API.configuration
(#1614)API.geo_similar_places
(c6cfd97)API.related_results
(068273b)
Relation
model (cc4479a)id
endpoint parameter for API.create_block
(e4eaa4b)id
endpoint parameter for API.create_friendship
(6a3c1ab)id
endpoint parameter for API.create_mute
(bb25d69)id
endpoint parameter for API.destroy_block
(1a9b52d)id
endpoint parameter for API.destroy_friendship
(66f1612)id
endpoint parameter for API.destroy_mute
(8c444c5)id
endpoint parameter for API.get_follower_ids
(5cddd12)id
endpoint parameter for API.get_followers
(a3fb959)id
endpoint parameter for API.get_friend_ids
(7cbf818)id
endpoint parameter for API.get_friends
(6875e15)id
endpoint parameter for API.get_user
(a2681ed)accuracy
and contained_within
endpoint parameters for API.search_geo
(d37a409)allow_contributor_request
endpoint parameter for API.set_settings
(1cc33b2)API.update_profile_banner
endpoint parameters: offset_right
-> offset_top
(83f9b79)enable_dmcommands
and fail_dmcommands
parameters for API.update_status
(fe5b3ef)in_reply_to_status_id_str
and auto_populate_reply_metadata
endpoint parameters for API.update_status_with_media
(c3c9d29)id
endpoint parameter for API.user_timeline
(#1484)Stream.firehose
(ad50cdc)Stream.retweet
(6b1944b)Stream.sitestream
and Stream.userstream
(96f7e63)
models.List.created_at
, models.SavedSearch.created_at
, models.Status.created_at
, and models.User.created_at
are now aware (59d4d92)return_cursors
parameter for JSONParser.parse
and ModelParser.parse
to be keyword-only argument (56b8e31)method
parameter from parse
method for Parser
and its subclasses (dda2ec6)API.verify_credentials
(7e4d2a4)models.List.is_member
and models.List.is_subscribed
(b765aee)API.get_list_ownerships
(#1282, #1498)
models.User.list_ownerships
(#1282)API.get_profile_banner
(58ac8bb)API.no_retweets_friendships
(496a399)API.remove_profile_banner
(f0e53c6)API.update_friendship
(ddd24a4)API.user_agent
(bbec64b)API
methods:
API.create_block
: include_entities
, skip_status
(5e694b2)API.create_favorite
: include_entities
(65c7ce7)API.destroy_block
: include_entities
, skip_status
(7299362)API.destroy_favorite
: include_entities
(ecd19f0)API.destroy_status
: trim_user
(ed363e6)API.get_blocked_ids
: stringify_ids
(316b4cc)API.get_blocks
: include_entities
, skip_status
(7ef1e85)API.get_favorites
: include_entities
(2b91edc)API.get_follower_ids
: stringify_ids
(c490027)API.get_friend_ids
: stringify_ids
, count
(aba327e)API.get_list_member
: include_entities
, skip_status
(e959787)API.get_list_members
: count
, include_entities
, skip_status
(232fa29)API.get_list_subscriber
: include_entities
, skip_status
(783941a)API.get_muted_ids
: stringify_ids
(8b04108)API.get_retweeter_ids
: count
(71ca488)API.get_retweets
: trim_user
(e377188)API.get_retweets_of_me
: trim_user
, include_entities
, include_user_entities
(589d97d)API.get_user
: include_entities
(485691d)API.incoming_friendships
: stringify_ids
(ffb7c0e)API.media_upload
: media_category
, additional_owners
(#1486)API.mentions_timeline
: trim_user
, include_entities
(eb7c8f6)API.outgoing_friendships
: stringify_ids
(7ed0762)API.retweet
: trim_user
(70d9665)API.search_users
: include_entities
(8d64b61)API.unretweet
: trim_user
(6d93f3b)API.update_profile
: include_entities
, skip_status
(9715c4a)Stream.on_disconnect
method (#277)Stream.thread
(9c2419d)API.send_direct_message
parameter, quick_reply_type
, with quick_reply_options
API.send_direct_message
(#1311)API.get_settings
(cbac800)API.incoming_friendships
(09dbe0e)API.outgoing_friendships
(8ff5f22)API.search_geo
(a51a097)API.set_settings
(4703da3)API.supported_languages
(9bb8446)API.update_profile_banner
(a5df615)install_requires
(38b6de6)
OAuthHandler
(#1489)models.User
hashable (#1306)API
(#1049)API.update_profile_image
(ab96f2f)API.update_profile_banner
(88c3fa1)Stream.filter
and Stream.sample
(2e957b6)Stream
(5994c4b)Stream
(#892)Stream._connect
(#1072)Stream.sample
method to use GET HTTP method (1b0e869)models.User
model in models.Status.parse
more broadly for user
attribute to handle parsers without model_factory
attribute or model factories without user
attribute (#538)models.Status
model in models.SearchResults.parse
more broadly for results to handle parsers without model_factory
attribute or model factories without status
attribute (71c031b)PageIterator
(#958)API.search_users
(#958, #1465)Stream.filter
(#829, #830)ChunkedEncodingError
during streaming (e8fcc4d)Cursor
iterators (c1457b7)This will be the last major and minor version to support Python 2.7 (#1253) and Python 3.5.
The next non-patch release should be version 4.0.0.
API.search_30_day
and API.search_full_archive
(#1175, #1294)API.home_timeline
(#1410, #1458)
trim_user
, exclude_replies
, include_entities
page
as erroneously documented parametercount
to be the first parameterAPI.get_oembed
hide_thread
, theme
, link_color
, widget_type
, dnt
id
API.update_profile_background_image
(#1466)mimetypes.guess_type
as fallback for determining image file type (#1411)file
parameter to be used again for API.media_upload
(#1412, #1413)file
parameter to be used again for API.update_profile_banner
, API.update_profile_image
, and API.update_with_media
(#1475)User.lists
, User.lists_memberships
, and User.lists_subscriptions
to retrieve information about the user in question rather than the authenticating user (#1443, #1444)API.create_media_metadata
(#716)API.update_status
(#1101)
exclude_reply_user_ids
, attachment_url
, possibly_sensitive
, trim_user
, enable_dmcommands
, fail_dmcommands
, card_uri
in_reply_to_status_id_str
, source
API.get_status
trim_user
, include_my_retweet
, include_entities
, include_ext_alt_text
, include_card_uri
API.statuses_lookup
include_ext_alt_text
, include_card_uri
API.lookup_users
(#706)API.statuses_lookup
, API.create_media_metadata
, API.update_status
reverse
as allowed parameter for API.lists_all
count
as allowed parameter for API.lists_memberships
count
as allowed parameter for API.lists_subscriptions
include_entities
as allowed parameter for API.list_timeline
API.list_subscribers
count
, include_entities
, skip_status
Relationship
model (#1375)_json
attribute to DirectMessage
model (#1342)API.lookup_users
(#539)API.lookup_friendships
(#1375)