체인지로그

이 체인지로그는 https://github.com/tweepy/tweepy/releases 에서 release note로도 확인이 가능합니다.

Version 4.6.0

This will be the last minor version to support Python 3.6 (#1788).

새 기능 / 개선

  • Add support for streaming with Twitter API v2 (86244c1)

    • Refactor Client and Stream to inherit from new BaseClient and BaseStream classes and add StreamingClient, StreamResponse, and StreamRule

  • Add support for new max_results and pagination_token parameters for Client.get_liking_users (bdd6b55)

  • Add support for new max_results and pagination_token parameters for Client.get_retweeters (3479e56)

  • Add support for new sort_order parameter for Client.search_all_tweets (bd202e5)

  • Add support for new sort_order parameter for Client.search_recent_tweets (8b47170)

  • Add Client.get_space_tweets (c8d5d9a)

  • Add Space.subscriber_count (1ffc8cd)

  • Use repr of text in Tweet.__repr__ (4e2997e)

    • This avoids including inconstant newlines, rather than escaped newlines, in the string representation of the Tweet object, making it more consistent

  • Override Mapping.__contains__ in DataMapping (9f10a58)

    • This allows membership tests to check for existence within data in Twitter API v2 models, rather than existence of the attribute at all

  • Initialize Stream.session within Stream.__init__ (80adf5b)

    • Update the user agent based on Stream.user_agent even if Stream.session is already initialized

  • Use oauthlib to create code challenge and verifier for PKCE (eb22416)

    • Explicitly specify oauthlib dependency requirement as >= 3.2.0 (fc0d967)

      • Update requests_oauthlib dependency requirement to >= 1.2.0 (dd7e2c9)

버그 수정

  • Fix datetime endpoint parameter formatting in Client._make_request (#1793)

기타

  • Remove undocumented debug function (a702325)

  • Add logging documentation (7701506)

  • 문서를 갱신·개선함

Version 4.5.0

새 기능 / 개선

  • Revamp authentication interface

    • Add support for OAuth 2.0 Authorization Code Flow with PKCE

    • Rename OAuthHandler to OAuth1UserHandler (fb6eb7d)

      • OAuthHandler is kept as a deprecated alias (cba7317)

    • Rename AppAuthHandler to Oauth2AppHandler (529d793)

      • AppAuthHandler is kept as a deprecated alias (d4ceb1a)

    • Rename OAuth2Bearer to OAuth2BearerHandler (0781fde)

    • Allow passing access token and secret directly to OAuth1UserHandler.__init__ (99f3583)

      • Note, this changes the callback parameter to be the fifth argument, positionally

    • Allow OAuth2BearerHandler to be used as auth parameter for API (5a2a3fc)

    • Remove AuthHandler (d600c4c)

    • Remove OAuth1UserHandler.get_xauth_access_token (8e2de9f)

    • Update and improve authentication documentation (f9a722b)

    • Other improvements and optimizations

  • Add Client.get_me (c49cbdf, 62b5b58, f6895d3, bb87b26)

  • Add support for Media.url (#1722)

  • Use requests exception to handle JSONDecodeError (b492b0a)

    • Update requests dependency requirement to >= 2.27.0 (ed66e8e)

버그 수정

  • Fix Response.includes["polls"] not being Poll objects (#1733)

  • Fix Paginator handling of Client.get_all_tweets_count (#1761)

기타

  • Improve and optimize Model.__getstate__ (#1707)

  • Add API v2 examples to documentation (bbdbb7b)

  • 문서를 갱신·개선함

버전 4.4.0

새 기능 / 개선

  • 이제 트위터 API v2를 이용한 리스트 검색을 지원합니다.(0aa2366)

  • 다음을 추가함: Client.get_space_buyers (8bf58ca)

  • 다음을 추가함: Space.ended_at, Space.topic_ids (c89a233)

버그 수정

  • 잘못된 Space.__str__ 제거(ebb4bfd)

버전 4.3.0

새 기능 / 개선

  • 이제 트위터 API v2를 이용한 트윗 관리를 지원합니다.(7884e3a)

기타

  • 문서 HTTPException 특성(attributes)(c62c31a)

  • Add table to documentation mapping Client methods to Twitter API v2 endpoints (0572b03)

  • 예시의 추가·보충

  • 문서의 〈예시〉 페이지 수정

  • 다양한 문서 갱신(업데이트) 및 수정

버전 4.2.0

새 기능 / 개선

  • 이제 트위터 API v2를 이용한 리스트 관리를 지원함 (b1342bf)

  • Client.followClient.unfollow 를 각각 Client.follow_userClient.unfollow_user 로 바꿈 (8f8de15)

    • Client.followClient.unfollow 는 사용되지 않는 이름으로 남아있음

  • 문서에 FAQ 추가함

  • 다양한 문서 갱신(업데이트) 및 수정

트위터 API 변경사항

  • stateClient.search_spaces 의 선택적(Optional) 매개변수로 전환함 (e61d5d6)

버그 수정

  • 파이썬 3.6과 파이썬 API v2에서의 날짜/시간 파싱이 올바르게 되도록 수정 (5bf2446)

  • Cursor 와 ID값을 이용한 페이지화 작업 중 API 인스턴스가 누락되는 현상 수정 (451e921)

버전 4.1.0

새 기능 / 개선

  • 파이썬 3.10 지원 (229b738)

    • Tox 개발 최소 요구 버전을 3.14.0 으로 갱신함

  • 이제 스페이스(트위터 스페이스)를 지원함 (5c68892)

    • 추가함: Space 모델

    • 추가함: Client.search_spaces, Client.get_spaces, Client.get_space

  • 이제 〈표준 준수 하 일괄 처리〉(Batch compliance)를 지원함 (6ca75e1)

    • 추가함: Client.get_compliance_jobs, Client.get_compliance_job, Client.create_compliance_job

  • 추가함: Client.get_muted (00cdab8)

  • 자잘한 문서 수정

버전 4.0.1

버그 수정

  • Client 메서드에 필드값 형태로 문자열이 전달될 때 발생하던 문제를 수정함 (d61a5d9)

  • 이제 트위터 API 요청으로부터 Client 메서드에 예기치 않은 매개변수가 전달되는 경우도 고려함 (618d1c2)

    • 이는 새 엔드포인트 매개변수를 대비하는 미래 지향형 업데이트임

  • Client 메서드에 전달된 매개변수를 날짜/시간 형식에서 문자열로 변환할 때, 더 이상 매개변수 이름을 확인하지 않음 (1320a37)

    • 이는 날짜/시간 형식을 허용하는 새 엔드포인트 변수 지원에 대한 미래 지향형 업데이트임

  • simplejson 사용과 관련된, HTTPException 에서의 JSONDecodeError 문제를 수정함 (586c162)

기타

  • 문서 요구 사항 갱신 (3fa38b6, 388e2f6, 4315ab0)

  • 테스트에서 nose를 더 이상 사용하지 않음 (b4c06a4)

  • 더 이상 테스트시 mock와 nose를 요하지 않음 (0f071fd, b4c06a4)

  • 다양한 문서 갱신(업데이트) 및 수정

버전 4.0.0

새 주요 기능 / 개선

  • 이제 트위터 API v2 를 지원함(#1472, #1535)

    • 패키지 네임스페이스에서 API v1.1 모델을 대체함

  • 미디어 업로드 재작업 (#640, #1486, #1501)

  • 이제 비동기 스트리밍을 지원함 (#732, #1491)

  • API 재작업

    • bind_apiAPIMethodAPI.request 로 대체함

      • 더 이상 API 메서드에 데코레이터 속성(Decorator property)을 사용하지 않음

      • 이제 pagination 데코레이터를 사용함

    • 추가함: requests.Session (API.session 의 속성으로) (2f28757)

      • 이제 하나의 API 인스턴스에 하나의 requests.Session 인스턴스를 초기화(Initialize)하며, 매 요청마다 초기화하지 않아도 됨

    • 이제 API.request에 엔드포인트 매개변수가 아닌, 예기치 않은 키워드 인수가 전달되면 로그에 경고를 기록합니다. (c82d7ac)

    • 허용된 매개변수(allowed_param)를 엔드포인트 매개변수(endpoint_parameters)로 바꿈 (b4fc6a0)

    • 메서드명 및 메서드 매개변수명을 바꿈 (중요한 변경사항 문단 참조)

    • 메서드의 필수 매개변수 (중요한 변경사항 문단 참조)

    • 메서드에 더 이상 임의의 위치 인수(Positional argument)를 전달할 수 없음 (중요한 변경사항 문단 참조)

    • 제거함: 불필요한 속성 및 매개변수 (중요한 변경사항 문단 참조)

    • API.request와 다른 API 메서드를 개선·최적화·단순화함

  • 스트리밍 재작업

    • StreamListenerStream 에 합침(Merge) (중요한 변경사항 문단 참조)

    • Stream 의 데이터 및 이벤트 처리 메서드가 (예: on_ 으로 시작하는 것들) 이제 기본적으로 로그에 기록되며, 반환값은 무시함

    • kee-alive 신호를 포함한 모든 종류의 데이터를 수신했을 때, 스트림 연결을 종료할 수 있도록 허용함 (#773, #897)

    • 속성, 메서드, 매개변수들을 제거·이름 변경·다른 것으로 대체함 (중요한 변경사항 문단 참조)

    • Stream 을 개선·최적화·단순화함

  • 문서 재작업

    • 이제 문서에 자동으로 docstrings를 사용함

    • 이제 NumPy 스타일의 docstrings를 사용함

    • 이제 Intersphinx 링크를 사용함

    • sphinx-hoverxref를 이용해, 교차 참조가 가능하도록 툴팁을 추가함

    • Stream 문서(18a6059)

    • Models 문서(0724060, 78a0c22)

    • Document pagination (695d531, 652fece)

    • API 문서에 테이블을 추가함 (6db8e4c)

    • 예외와 관련된 문서를 따로 분리함 (8a831b1)

    • 체인지로그를 문서화함 (fc98629)

    • 문서를 갱신·개선·조직화함

  • 예외 재작업

    • TweepErrorTweepyException 과(5c39cd1) HTTPException 로 변경 및 세분화함 (#599)

    • RateLimitErrorTooManyRequests 로 변경함 (cd5f696)

    • 제거함: Parser.parse_error (cd5f696)

    • 추가함: NotFound (2d84b27)

    • 추가함: Unauthorized (3ffec76)

    • 추가함: Forbidden (4a9bc58)

    • 추가함: BadRequest (3da5ede)

    • 추가함: TwitterServerError (b443557)

중요한 변경사항

  • 더 이상 Python 2를 지원하지 않음 (#1253, #1482)

  • 더 이상 Python 3.5를 지원하지 않음(#1487)

API

  • API 메서드와 models 메서드의 이름을 변경함

    • 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 메서드 매개변수명을 변경함

    • 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 메서드의 필수 매개변수

    • 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 메서드가 더 이상 위치 인수(Positional argument)를 받지 않음 (키워드 인수 형식으로 전달해야 함)

  • API.update_status_with_media 매개변수 재정렬 (87abdcd)

  • 다음 API 초기화 파라미터 이름 변경: auth_handler -> auth (ee313bd)

  • API 초기화에서의 auth 에서 위치 인수(Positional argument)를 더 이상 허용하지 않음(da2f276)

  • 제거함: API.api_root, API.upload_root (e757919)

  • 제거함: API.compression (4590c7a)

  • 제거함: API.me, AuthHandler.get_username, OAuthHandler.get_username (807f937)

  • 제거함: API.search_host, API.search_root (92db0cf)

  • 제거함: API.wait_on_rate_limit_notify (f325738)

    • 이제 트위터 API 호출에 도달할 때 경고를 로그에 항상 기록함

  • 제거함: API.lookup_statuses 키워드 인수(0a404c3)

Stream

  • StreamListener 를 제거하고, Stream 에 해당 기능들을 병합(Merge)함 (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)

  • 제거함: 재연결 관련 스트림 매개변수 및 속성값 (24059d4)

    • 제거함: Stream.retry_time_start, Stream.retry_420_start, Stream.retry_time_cap, Stream.snooze_time_step, Stream.snooze_time_cap, Stream.retry_time, Stream.snooze_time

  • Stream.retry_countStream.max_retries 으로 이름 변경함 (3585f13)

  • Stream.auth 를 자격증명 관련 매개변수 및 속성으로 대체함 (c9f59e6)

    • Stream.authStream.consumer_key, Stream.consumer_secret, Stream.access_token, Stream.access_token_secret 로 대체하였음

  • Stream 의 매개변수인 proxiesproxy 로 대체함 (#1272)

  • 제거함: Stream.filter의 매개변수인 encoding (b3f2db2)

  • Stream.filterStream.sample 의 매개변수인 is_asyncthreaded 로 이름 변경함 (6c96c15)

  • 더 이상 Stream.filter 가 위치 인수(Positional argument)를 허용하지 않음 (0629d5f)

  • 더 이상 Stream.sample 이 위치 인수(Positional argument)를 허용하지 않음 (b170720)

트위터 API 중요 변경사항

  • 제거함: API.configuration (#1614)

  • 제거함: API.geo_similar_places (c6cfd97)

  • 제거함: API.related_results (068273b)

    • 제거함: Relation model (cc4479a)

  • 제거함: API.create_block 의 엔드포인트 매개변수인 id (e4eaa4b)

  • 제거함: API.create_friendship 의 엔드포인트 매개변수인 id (6a3c1ab)

  • 제거함: API.create_mute 의 엔드포인트 매개변수인 id (bb25d69)

  • 제거함: API.destroy_block 의 엔드포인트 매개변수인 id (1a9b52d)

  • 제거함: API.destroy_friendship 의 엔드포인트 매개변수인 id (66f1612)

  • 제거함: API.destroy_mute 의 엔드포인트 매개변수인 id (8c444c5)

  • 제거함: API.get_follower_ids 의 엔드포인트 매개변수인 id (5cddd12)

  • 제거함: API.get_followers 의 엔드포인트 매개변수인 id (a3fb959)

  • 제거함: API.get_friend_ids 의 엔드포인트 매개변수인 id (7cbf818)

  • 제거함: API.get_friends 의 엔드포인트 매개변수인 id (6875e15)

  • 제거함: API.get_user 의 엔드포인트 매개변수인 id (a2681ed)

  • 제거함: API.search_geo 의 엔드포인트 매개변수인 accuracy, contained_within (d37a409)

  • 제거함: API.set_settings 의 엔드포인트 매개변수인 allow_contributor_request (1cc33b2)

  • API.update_profile_banner 의 다음 엔드포인트 매개변수를 갱신함: offset_right -> offset_top (83f9b79)

  • 제거함: API.update_status 의 매개변수인 enable_dmcommands, `fail_dmcommands(fe5b3ef)

  • 제거함: API.update_status_with_media 의 엔드포인트 매개변수인 in_reply_to_status_id_str, auto_populate_reply_metadata (c3c9d29)

  • 제거함:API.user_timeline 의 엔드포인트 매개변수인 id (#1484)

  • 제거함: Stream.firehose (ad50cdc)

  • 제거함: Stream.retweet (6b1944b)

  • 제거함: Stream.sitestream, Stream.userstream (96f7e63)

    • 제거함: StreamListener.on_direct_message, StreamListener.on_friends (ab2479b)

    • 제거함: StreamListener.on_event (20b5afb)

기타

  • 이제 models.List.created_at, models.SavedSearch.created_at, models.Status.created_at, models.User.created_at 가 Datetime 객체를 인식함(59d4d92)

  • JSONParser.parseModelParser.parse 의 매개변수인 return_cursors 를 키워드 인자로만 전달할 수 있도록 변경함 (56b8e31)

  • 제거함: parse 메서드에서, Parser 의 매개변수인 method 및 서브클래스(dda2ec6)

  • 더 이상 API.verify_credentials 가 HTTP 401 코드를 처리하지 못함 (7e4d2a4)

  • 제거함: models.List.is_member, models.List.is_subscribed (b765aee)

새 기능 / 개선

새 메서드 및 매개변수 / 속성(Attribute)

  • 추가함: 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 메서드에 다음 엔드포인트 매개변수를 추가함

    • 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 메서드 (#277)

  • Stream.thread 를 드러냄(Expose)(9c2419d)

새 기능

  • 이제 쪽지에 빠른 답장 옵션을 포함해 보내는 것이 허용됨 (#1280)

    • API.send_direct_message 의 매개변수인 quick_reply_typequick_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)

종속성(Dependencies) 관련

  • requests_oauthlib 종속성 요구사항을 1.0.0 이상으로 조정함 (bf629e5)

  • 제거함: setup.py - install_requires 로부터의 여분 요청 socks(38b6de6)

    • 추가함: socks extra 요청

기타

  • 이제 OAuthHandler 초기화 시 Consumer Key값과 Secret 값의 자료형을 확인함 (#1489)

  • models.User 를 해시화할 수 있게(Hashable) 함 (#1306)

  • API 요청 제한을 처리하기 위해 두었던 약간의 대기 시간을 줄임 (#1049)

  • 이제 API.update_profile_image 가 키워드 인자도 정상적으로 받을 수 있음 (ab96f2f)

  • 이제 API.update_profile_banner 가 키워드 인자도 정상적으로 받을 수 있음 (88c3fa1)

  • 이제 모든 200번대 HTTP 상태 코드를 성공적 응답으로 취급함 (a0f6984)

  • 이제 스트리밍이 gevent를 지원함 (#651)

  • 스레드화된(Threaded) Stream.filterStream.sample 이 이제 스레드를 반환함 (2e957b6)

  • 이제 Stream 이 특정 유저 에이전트를 사용함 (5994c4b)

기타

  • 다양한 문서 갱신(업데이트) 및 수정

  • 기타 다양한 최적화 및 개선

버그 수정

  • 스트리밍 관련 연결 에러 처리 (#237, #448, #750, #1024, #1113, #1416)

  • 제거함: Stream 에서의 문자열 길이 한계에 대한 종속성 (#892)

  • 이제 Stream._connect 에서 예외를 또 발생시키지 않음 (#1072)

  • Stream.sample 메서드가 GET HTTP 메서드를 이용하도록 변경함 (1b0e869)

  • models.Status.parsemodels.User 모델이 model_factory 없이 user 로, 또는 user 없이 Model factory들을 이용해 파서(Parser)를 더 광범위하게(more broadly) 처리할 수 있도록 바뀌었음 (#538)

  • models.SearchResults.parsemodels.Status 모델이model_factory 없이, 또는 status 없이 Model factory들을 이용해 파서(Parser)의 결과를 더 광범위하게(more broadly) 받을 수 있도록 바뀌었음 (71c031b)

  • 이제 PageIterator 가 1페이지부터 시작함(기존 0페이지에서 변경됨). (#958)

  • API.search_users 에서 페이지가 복사되던 트위터 API 관련 문제를 해결함 (#958, #1465)

  • 이제 Stream.filter 가 정수형 ID를 허용함(#829, #830)

  • 이제 스트리밍에서 ChunkedEncodingError 를 처리할 수 있음 (e8fcc4d)

  • 이제 HTTP 성공 상태 코드에서 발생하던 트위터 API 에러를 처리할 수 있음 (#1427)

  • 이제 Cursor 반복자가 음수나 0이 되던 문제를 처리할 수 있음 (c1457b7)

버전 3.10.0

이 버전이 Python 2.7과 Python 3.5를 마지막으로 지원하는 버전임 (#1253) tweepy의 다음 버전은 4.0.0이 됨

새 기능 / 개선

  • 추가함: API.search_30_day, API.search_full_archive (#1175, #1294)

  • API.home_timeline 에 허용되는 매개변수를 갱신함(#1410, #1458)

    • 추가함: trim_user, exclude_replies, include_entities

    • 제거함: page (잘못 문서화된 매개변수)

    • count 가 첫 매개변수가 되도록 순서를 바꿈

  • API.get_oembed 에 허용되는 매개변수를 갱신함

    • 추가함: hide_thread, theme, link_color, widget_type, dnt

    • 제거함: id

  • 제거함: API.update_profile_background_image (#1466)

  • 이제 Python 3.9를 지원함

  • 코드 테스트 및 릴리즈에 쓰이던 것을 Travis CI에서, GitHub Actions로 변경함 (#1402)

  • 문서를 갱신·개선함

버그 수정

  • 이제 mimetypes.guess_type 를 폴백 함수로서 이미지 파일 형식을 찾아내는데 사용함 (#1411)

  • 이제 업로드된 이미지에, 컨텐츠 종류에 적절한 적절한 MIME 타입을 사용함

  • API.media_uploadfile 매개변수를 재사용하도록 허용함 (#1412, #1413)

  • API.update_profile_banner, API.update_profile_image, API.update_with_mediafile 매개변수를 재사용하도록 허용함 (#1475)

  • 이제 User.lists, User.lists_memberships, User.lists_subscriptions 가 현재 인증된 사용자 대신 지정한 사용자에 대한 정보를 가져옴 (#1443, #1444)

버전 3.9.0

새 기능 / 개선

  • 추가함: 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 를 개선 및 최적화함

  • API.lists_all 에 다음 매개변수를 추가함: reverse

  • API.lists_memberships 에 다음 매개변수를 추가함: count

  • API.lists_subscriptions 에 다음 매개변수를 추가함: count

  • API.list_timeline 에 다음 매개변수를 추가함: include_entities

  • API.list_subscribers 에 다음 매개변수를 추가함

    • count, include_entities, skip_status

  • 이제 Python 3.8을 지원함

  • setup.py를 갱신·개선함

  • 이제 PySocks을 직접 사용하는 대신, Request socks extra를 대신 사용함

  • 이제 확장자 없이 파일명만 이용해 이미지를 업로드하는 것을 허용함 (#1060, #1086)

  • 이제 WebP 이미지 업로드를 지원함 (#1298)

  • Relationship 모델에 누락됐던 속성들을 추가함 (#1375)

  • GIF 파일 업로드 최대 제한 용량을 갱신함 (#1336, #1338)

  • DirectMessage 모델에 _json 속성을 추가함 (#1342)

  • 테스트(tests) 갱신·개선 (#1217)

  • 확장 트윗(Extended Tweets)에 대한 문서를 추가함

  • API.lookup_users 문서 (#539)

  • 추가함: Running Tests 문서 (#681)

  • 추가함: 문서의 한국어 번역본 (#1296)

  • 추가함: 문서의 폴란드어 번역본 (#1316)

  • API.lookup_friendships 문서 (#1375)

  • 문서를 갱신·개선함

버그 수정

  • API.verify_credentials 에서의 올바르지 못한 자격증명 처리 관련 문제 수정

  • API.verify_credentials 의 include_email 매개변수 관련 Boolean값 처리 관련 문제 수정 (#890)

  • 이제 DMCursorIterator를 추가함으로써, API.list_direct_messagesCursor 를 사용할 수 있음 (#1261, #1262)

버전 3.8.0

새 기능 / 개선

  • 이제 스트림이 데몬 스레드를 사용할 수 있음 (#1126)

  • 제거함: API.set_delivery_device (#1203)

  • 이제 simplejson을 더 이상 사용하지 않음 (import도 제거됨) (#832)

  • 이제 API.blocks_idsAPI.mutes_ids 가 다음 매개변수를 허용함: cursor (#1208)

  • 이제 더 이상 Python 3.4를 지원하지 않음

  • 이제 API.report_spam 이 다음 매개변수를 허용함: perform_block (#1090)

  • 추가함: API.mutes (#1197, #1215)

  • 이제 API.friends 가 다음 매개변수를 허용함: count(#577)

  • API.search 허용 매개변수 목록에서 다음을 제거함: since, from, to, source

  • 이제 스트림이 위치 삭제 및 보류된 컨텐츠 통지와 관련한 처리가 가능함 (#886)

  • 이제 User 객체에 〈같음〉 과 〈같지 않음〉 비교 연산자를 사용할 수 있음 (#939)

  • Category, Friendship, List 모델에 다음 속성을 추가함: _json (#590, #1169)

  • 제거함: API.suggested_categories, API.suggested_users, API.suggested_users_tweets

  • 테스트(Tests) 및 카세트(Cassettes)를 갱신·개선함 (#1242)

  • DirectMessage 모델을 갱신함 (#1081, #1228)

  • API.direct_messagesAPI.sent_direct_messagesAPI.list_direct_messages 로 대체함 (#1081, #1228)

  • 갱신함: API.get_direct_message, API.send_direct_message, API.destroy_direct_message (#1081, #1228)

  • 문서를 갱신·개선함

버그 수정

  • 더 이상 예시 파일을 설치하지 않음 (#1141, #1164)

  • 이제 OAuthHandler.request_token 가 적절하게 초기화됨 (#1149)

  • 이제 API.statuses_lookupmap_ 매개변수를 적절히 처리함 (#598)

  • 이제 API.blocks_idsAPI.mutes_ids 커서 페이지화(Pagination)를 지원함 (#930, #931)

  • API.update_profile_background_imageAPI.update_profile_banner 에 대한 반환값 (#904)

  • 루트 로거(Root logger) 교체 사용

  • 요청 세션 닫음 (#810, #1093, #1237)

버전 3.7.0

새 기능 / 개선

  • API.user_timelinetrim_userexclude_replies 를 매개변수로서 허용함 (#909)

  • API.statuses_lookuptweet_mode 매개변수를 허용함 (#840, #926)

  • Python 2.6 과 3.3에 대한 지원 중단

  • Discord Server

  • 이제 스트림이 프록시를 지원함 (#1033)

  • 추가함: API.create_mute, API.destroy_mute, API.mutes_ids (#1055)

  • API.lookup_userstweet_mode 매개변수를 허용함 (#1130)

버그 수정

  • 스트리밍에서 AttributeError 가 발생하던 문제 수정 (#1026, #1027)

  • 요구사항 관련 수정 (#1029, #1030)

  • Python 3.7과의 호환성 문제를 해결함 (#1017, #1042)

버전 3.6.0

새 기능 / 개선

  • Status.quoted_statusStatus 객체로 취급·파싱함 (#633)

  • in_reply_to_status_id_strAPI.update_statusAPI.update_with_media 의 매개변수로서 허용함 (#693)

  • Stream.sample 에 추가함: 매개변수 stall_warnings(#701)

  • 추가함: API.unretweet (#735, #736)

  • auto_populate_reply_metadataAPI.update_statusAPI.update_with_media 의 매개변수로서 허용함 (#761)

  • profile_link_colorAPI.update_profile 의 매개변수로서 허용함

  • 이제 Python 3.6을 지원함(#831, #884)

버그 수정

  • API.media_upload 의 파일 크기 제한을 수정함 (#717)

  • JSONParser.parse 가 특정 상황에서 None 을 반환하던 문제 수정 (#765, #766)

  • 캐시에 접근할 때 URL 매개변수가 포함 (#777)

  • 스트리밍에서 예외를 적절하게 재발생시킴

  • 스트리밍에서 AttributeErrorTypeError 가 발생하는 문제 수정 (#698)

  • Stream.filterfilter_level 를 올바르게 인코딩함 (#782)

버전 3.5.0

기능 / 개선

  • 쪽지를 받을 때 〈full_text〉 매개변수를 허용함 (#664)

  • 파싱 에러가 발생했을 경우 명시적

  • 더 이상 사용되지 않는 코드를 제거하고, 코드를 정리함 (#583)

버그 수정

  • update_status: 첫 위치 인수(Positional argument)는 반드시 트윗(Status)여야 함 (#578)

  • 다음 오류를 수정함: 《TypeError: Can’t convert 〈bytes〉 object to str implicitly》(#615, #658, #635)

  • auth.py 에서의 중복 선언(raise)를 수정함

버전 3.4.0

새 기능

  • 추가함: 계정 및 설정 관련 API (PR #596)

  • 트위터 API 요청 제한을 쉽게 처리할 수 있게끔 RateLimitError를 추가함 (문제 #600, PR #611)

  • verify_credentials API에 include_email 매개변수를 허용함 (PR #623)

  • 추가함: 스트리밍 API에서의 《filter_level》 매개변수 지원 (PR #619)

버그 수정

  • 스트리밍: 스트림 바이트를 json.decode 이전에 디코딩하려 시도하지 않음 (PR #606)

  • _add_list_members 와 _remove_list_members 속성에 있던 오타를 수정함 (PR #593)

  • 문제 #570 수정 - 예외 발생 시의 《exception》 추가함

  • streaming.py 에서의 예외 발생 관련 수정 (PR #621)

버전 3.3.0

  • Requests 요구사항을 완화함 (버전 2.4.3 이상)

  • Python 3에서 스트림이 프리징되던 문제 수정 (문제 #556)

  • StreamListener에 추가함: keep_alive 메세지가 도착할 때 호출되는 keep_alive() 콜백 함수

  • 재연결 시 스트림 세션 헤더가 사용되지 않던 문제 수정

  • 연결이 비정상적으로 종료된 경우 스트림이 무한루프에 빠지던 문제를 수정함 (PR #561)

버전 3.2.0

  • 제거함: 더 이상 사용되지 않는 트렌드 관련 메서드

  • tweepy.debug() 가 Python 3에서도 동작하도록 수정함

  • StreamListener 언어 필터가 작동을 중지하는 문제를 수정함 (Issue #529)

  • 추가함: 스트리밍 문서

  • 추가함: 미디어 업로드 엔드포인트

  • update_status() 에 추가함: media_ids 매개변수

버전 3.1.0

  • 이제 스트리밍 클라이언트에 대한 자체 SSL 인증서 지정을 허용함

  • 이제 Python Wheels를 이용해 배포함.

  • 특정 속성값을 기본 메서드(Underlying method)에 전달하는 것과 관련된 커서 호출 수정. (https://github.com/tweepy/tweepy/issues/515)

  • Request를 2.4.3으로 판올림함

버전 3.0

  • 추가함: 다수의 리스트 멤버 관련 API 메서드 (add_list_members, remove_list_members).

  • 추가함: sitestream 엔드포인트

  • httplib 대신 Requests를 이용하도록 변경함

  • 제거함: 보안 연결이 아닌 HTTP에 대한 모든 지원

  • 이제 프록시를 지원함

  • /statuses/lookup.json 에 추가함: API 메서드

  • followers_ids 에 추가함: 〈count〉 매개변수

  • update_profile_image 에 추가함: allowed_param

  • 트윗(Status) 간 비교

  • on_data 메서드에 경고 메세지 처리 조건을 포함·확장하였으며, 경고 메세지를 관리하는 메서드를 새로 정의함

  • 파이썬 3 지원 향상

버전 2.2

  • 추가함: update_profile_banner 엔드포인트

  • 200번대 HTTP 상태 코드를 더 이상 에러로 취급하지 않음

  • 더 이상 egg 릴리즈에 테스트가 패키징되지 않음

  • 테스트 안정성 향상, 풀 리퀘스트에서 CI 테스트가 가능하도록 함

  • 제거함: 기본 인증(Basic Auth)

  • 앱엔진(Appengine)을 수정하기 위해 httplib의 내장 타임아웃 기능 사용

  • 추가함: retweeters() 엔드포인트

  • 더 이상 사용되지 않는 retweeted_by 와 retweeted_by_ids 를 제거함

  • 날짜 및 시간 파싱 기능 향상. 스레드에서 기존보다 더 안정적임

  • 코드 커버리지 보고 활성화됨. Coveralls에 보고서를 업로드 해주세요.

    • https://coveralls.io/r/tweepy/tweepy

  • 더 이상 사용되지 않는 test() 엔드포인트가 제거함

  • on_disconnect() 에 새 스트림 리스너를 추가함. 연결 종료 전에 트위터에서 《disconnect》 메세지가 도착할 때마다 호출됨.

    • https://dev.twitter.com/docs/streaming-apis/messages#Disconnect_messages_disconnect

  • 비교 보기

  • HTTPS를 기본으로 사용하게 설정함

  • 커서 시작 위치 설정 지원 (예: Cursor(api.friends_ids, cursor=123456))

  • 캐시된 결과가 반환될 때, 《True》인 API.cached_result 인스턴스 플래그가 추가함

  • 새 스트리밍 클라이언트 콜백이 추가함

    • on_event(status): 새 이벤트가 발생하면 호출됨.

    • on_direct_message(status): 새 쪽지가 도착하면 호출됨.

  • 스트리밍 클리아언트 재연결 동작 및 구성의 개선 (https://github.com/tweepy/tweepy/commit/447f69cd3de67b0d241b9d4f669ecc9b9c0cdb54)

버전 2.1

  • 추가함: get_oembed()

  • friends() 와 followers() 가 다시 생겼으며, v1.1로 갱신됨

  • report_spam() 엔드포인트 수정

  • 스트리밍 filter() 메서드에 《languages》 매개변수 추가.

  • API에 《timeout》 지원 추가. 예: API(timeout=1000)

  • 파이썬 2.5 지원 중단

  • 압축 지원 추가. 예: API(compression=True)

  • StreamListener에 on_connect() 콜백 추가

  • API의 search() v1.1의 엔드포인트로 전환. 이 외에도 다른 변화가 있었음.

  • 《page》(페이지) 기반 커서를 《ID》 기반 커서로 대체함

  • 비교 보기

버전 2.0

에런 스워츠(Aaron Swartz)를 추모하며

  • 트위터 API 1.1 지원

  • 기본 인증방식(Basic Authentication)이 더 이상 사용되지 않음.

  • 제거함: friends_timeline()

  • mentions() 이 제거되고, mentions_timeline() 로 변경됨

  • 제거함: retweeted_by_user()

  • 제거함: retweeted_by_me()

  • 제거함: retweeted_to_me()

  • 제거함: retweeted_by_user()

  • 제거함: friends()

  • 제거함: followers()

  • 제거함: enable_notifications()

  • 제거함: disable_notifications()

  • 제거함: exists_block()

  • lists() 가 제거되고, lists_all() 로 변경됨

  • 제거함: is_list_member()

  • 추가함: show_list_member

  • 제거함: is_subscribed_list()

  • 추가함: show_list_subscriber()

  • 제거함: trends_location()

  • 제거함: nearby_places(