v4.0.0 #1666
Harmon758
announced in
Announcements
v4.0.0
#1666
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Tweepy Version 4.0.0
Major New Features / Improvements
Support Twitter API v2 (#1472, #1535)
Rework media uploading (#640, #1486, #1501)
Support asynchronous streaming (#732, #1491)
Rework
APIbind_apiandAPIMethodwithAPI.requestAPImethodspaginationdecoratorrequests.Sessioninstance asAPI.sessionattribute (2f28757)requests.Sessioninstance perAPIinstance, rather than for each requestallowed_param) to endpoint parameters (endpoint_parameters) (b4fc6a0)API.requestand otherAPImethodsRework streaming
StreamListenerhas been merged intoStream(see Breaking Changes section)Streamdata/event handling methods (i.e. those starting withon_) now log by default and disregard return valuesStreamRework documentation
Stream(18a6059)APIdocumentation (6db8e4c)Rework exceptions
TweepErrorwithTweepyException(5c39cd1) andHTTPException(#599)RateLimitErrorwithTooManyRequests(cd5f696)Parser.parse_error(cd5f696)NotFound(2d84b27)Unauthorized(3ffec76)Forbidden(4a9bc58)BadRequest(3da5ede)TwitterServerError(b443557)Breaking Changes
APIAPIandmodelsmethodsAPI.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)APImethod parametersAPI.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)APImethod parametersAPI.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)APImethods (change to be keyword-only arguments):API.add_list_member(ae18ee5)API.add_list_members(8eb900f)API.available_trends(7a74863)API.closest_trends, besideslatandlong(7946490)API.create_block(caa34c6)API.create_favorite, besidesid(0b83984)API.create_friendship(82cd798)API.create_list, besidesname(25cb01e)API.create_mute(4aae710)API.create_saved_search, besidesquery(76be2d9)API.delete_direct_message, besidesid(53ca00f)API.destroy_block(c49cfb2)API.destroy_favorite, besidesid(8afee87)API.destroy_friendship(b2d44fe)API.destroy_list(4b2cfc4)API.destroy_mute(009b54e)API.destroy_saved_search, besidesid(b7afca2)API.destroy_status, besidesid(876c8ca)API.geo_id, besidesplace_id(a0cff22)API.get_blocked_ids(ff38b70)API.get_blocks(dc81854)API.get_direct_message, besidesid(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, besidesurl(d13d853)API.get_place_trends, besidesid(548810c)API.get_retweeter_ids, besidesid(9907c25)API.get_retweets, besidesid(0bd0292)API.get_retweets_of_me(2b2ed0a)API.get_saved_search, besidesid(1d3d3ae)API.get_saved_searches(c5f5b4b)API.get_settings(2c2f0ec)API.get_status, besidesid(30af3ac)API.get_user(6b761ce)API.home_timeline(b91be22)API.incoming_friendships(6d3b7f2)API.list_timeline(e3ec5c1)API.lookup_friendships(0eff951)API.lookup_statuses, besidesid(cf9845d)API.lookup_users(7317109)API.media_upload, besidesfilename(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, besidesid(4f7be88)API.reverse_geocode: besideslatandlong(b209c48)API.search_30_day, besideslabelandquery(434fd35)API.search_full_archive, besideslabelandquery(44391bc)API.search_geo(0a6bec9)API.search_tweets, besidesq(445da4e)API.search_users, besidesq(76ca416)API.send_direct_message, besidesrecipient_idandtext(7d1a549)API.set_settings(bf1d928)API.supported_languages(2034efc)API.subscribe_list(ee3b718)API.unretweet, besidesid(4626c42)API.unsubscribe_list(2df2311)API.update_list(8b3b4fb)API.update_profile(99cd815)API.update_profile_banner, besidesfilename(1ca22be)API.update_profile_image, besidesfilename(3539fa2)API.update_status, besidesstatus(761cbfe)API.update_status_with_media, besidesfilenameandstatus(0ac4e83)API.user_timeline(0ef964f)API.update_status_with_mediaparameters (87abdcd)APIinitialization parameter:auth_handler->auth(ee313bd)authforAPIinitialization (da2f276)API.api_rootandAPI.upload_root(e757919)API.compression(4590c7a)API.me,AuthHandler.get_username, andOAuthHandler.get_username(807f937)API.search_hostandAPI.search_root(92db0cf)API.wait_on_rate_limit_notify(f325738)map_keyword argument aliasing forAPI.lookup_statuses(0a404c3)StreamStreamListenerby merging it intoStream(39abff4)StreamListener.keep_alive->Stream.on_keep_alive(abf4d5d)StreamListener.on_connect->Stream.on_connectStreamListener.on_data->Stream.on_dataStreamListener.on_delete->Stream.on_deleteStreamListener.on_disconnect->Stream.on_disconnect_message(6c3b997)StreamListener.on_error->Stream.on_request_error(fe3bb8b)StreamListener.on_exception->Stream.on_exceptionStreamListener.on_limit->Stream.on_limitStreamListener.on_scrub_geo->Stream.on_scrub_geoStreamListener.on_status->Stream.on_statusStreamListener.on_status_withheld->Stream.on_status_withheldStreamListener.on_timeout->Stream.on_connection_error(8f62297)StreamListener.on_user_withheld->Stream.on_user_withheldStreamListener.on_warning->Stream.on_warningStream.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, andStream.snooze_timeStream.retry_counttoStream.max_retries(3585f13)Stream.authwith parameters and attributes for each credential (c9f59e6)Stream.authwithStream.consumer_key,Stream.consumer_secret,Stream.access_token, andStream.access_token_secretStreamparameter,proxies, withproxy(#1272)Stream.filterparameter:encoding(b3f2db2)Stream.filterandStream.sampleparameters:is_async->threaded(6c96c15)Stream.filter(0629d5f)Stream.sample(b170720)Twitter API Breaking Changes
API.configuration(#1614)API.geo_similar_places(c6cfd97)API.related_results(068273b)Relationmodel (cc4479a)idendpoint parameter forAPI.create_block(e4eaa4b)idendpoint parameter forAPI.create_friendship(6a3c1ab)idendpoint parameter forAPI.create_mute(bb25d69)idendpoint parameter forAPI.destroy_block(1a9b52d)idendpoint parameter forAPI.destroy_friendship(66f1612)idendpoint parameter forAPI.destroy_mute(8c444c5)idendpoint parameter forAPI.get_follower_ids(5cddd12)idendpoint parameter forAPI.get_followers(a3fb959)idendpoint parameter forAPI.get_friend_ids(7cbf818)idendpoint parameter forAPI.get_friends(6875e15)idendpoint parameter forAPI.get_user(a2681ed)accuracyandcontained_withinendpoint parameters forAPI.search_geo(d37a409)allow_contributor_requestendpoint parameter forAPI.set_settings(1cc33b2)API.update_profile_bannerendpoint parameters:offset_right->offset_top(83f9b79)enable_dmcommandsandfail_dmcommandsparameters forAPI.update_status(fe5b3ef)in_reply_to_status_id_strandauto_populate_reply_metadataendpoint parameters forAPI.update_status_with_media(c3c9d29)idendpoint parameter forAPI.user_timeline(#1484)Stream.firehose(ad50cdc)Stream.retweet(6b1944b)Stream.sitestreamandStream.userstream(96f7e63)StreamListener.on_direct_messageandStreamListener.on_friends(ab2479b)StreamListener.on_event(20b5afb)Other
models.List.created_at,models.SavedSearch.created_at,models.Status.created_at, andmodels.User.created_atare now aware (59d4d92)return_cursorsparameter forJSONParser.parseandModelParser.parseto be keyword-only argument (56b8e31)methodparameter fromparsemethod forParserand its subclasses (dda2ec6)API.verify_credentials(7e4d2a4)models.List.is_memberandmodels.List.is_subscribed(b765aee)New Features / Improvements
New Methods And Parameters / Attributes
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)APImethods: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_disconnectmethod (#277)Stream.thread(9c2419d)New Functionality
API.send_direct_messageparameter,quick_reply_type, withquick_reply_optionsAPI.send_direct_message(#1311)Documentation For Existing Methods
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)Dependencies
install_requires(38b6de6)Other
OAuthHandler(#1489)models.Userhashable (#1306)API(#1049)API.update_profile_image(ab96f2f)API.update_profile_banner(88c3fa1)Stream.filterandStream.sample(2e957b6)Stream(5994c4b)Misc
Bug Fixes
Stream(#892)Stream._connect(#1072)Stream.samplemethod to use GET HTTP method (1b0e869)models.Usermodel inmodels.Status.parsemore broadly foruserattribute to handle parsers withoutmodel_factoryattribute or model factories withoutuserattribute (41e7afa)models.Statusmodel inmodels.SearchResults.parsemore broadly for results to handle parsers withoutmodel_factoryattribute or model factories withoutstatusattribute (71c031b)PageIterator(#958)API.search_users(#958, #1465)Stream.filter(#829, #830)ChunkedEncodingErrorduring streaming (e8fcc4d)Cursoriterators (c1457b7)Postscript
I didn't have permission to start a new discussion in the Announcements category at the time of release; it errored and didn't create one with "Create a discussion for this release" selected, so this discussion was created after the fact. There also doesn't seem to be a way to directly create a discussion for the release or link a discussion to it afterwards yet (community/community#3922), so this is just a normal announcement discussion.
All reactions