1Metadata-Version: 1.2 2Name: python-twitter 3Version: 3.4.2 4Summary: A Python wrapper around the Twitter API 5Home-page: https://github.com/bear/python-twitter 6Author: The Python-Twitter Developers 7Author-email: python-twitter@googlegroups.com 8Maintainer: The Python-Twitter Developers 9Maintainer-email: python-twitter@googlegroups.com 10License: Apache License 2.0 11Download-URL: https://pypi.python.org/pypi/python-twitter 12Description: Python Twitter 13 14 A Python wrapper around the Twitter API. 15 16 By the `Python-Twitter Developers <python-twitter@googlegroups.com>`_ 17 18 .. image:: https://img.shields.io/pypi/v/python-twitter.svg 19 :target: https://pypi.python.org/pypi/python-twitter/ 20 :alt: Downloads 21 22 .. image:: https://readthedocs.org/projects/python-twitter/badge/?version=latest 23 :target: http://python-twitter.readthedocs.org/en/latest/?badge=latest 24 :alt: Documentation Status 25 26 .. image:: https://circleci.com/gh/bear/python-twitter.svg?style=svg 27 :target: https://circleci.com/gh/bear/python-twitter 28 :alt: Circle CI 29 30 .. image:: http://codecov.io/github/bear/python-twitter/coverage.svg?branch=master 31 :target: http://codecov.io/github/bear/python-twitter 32 :alt: Codecov 33 34 .. image:: https://requires.io/github/bear/python-twitter/requirements.svg?branch=master 35 :target: https://requires.io/github/bear/python-twitter/requirements/?branch=master 36 :alt: Requirements Status 37 38 .. image:: https://dependencyci.com/github/bear/python-twitter/badge 39 :target: https://dependencyci.com/github/bear/python-twitter 40 :alt: Dependency Status 41 42 ============ 43 Introduction 44 ============ 45 46 This library provides a pure Python interface for the `Twitter API <https://dev.twitter.com/>`_. It works with Python versions from 2.7+ and Python 3. 47 48 `Twitter <http://twitter.com>`_ provides a service that allows people to connect via the web, IM, and SMS. Twitter exposes a `web services API <https://dev.twitter.com/overview/documentation>`_ and this library is intended to make it even easier for Python programmers to use. 49 50 ========== 51 Installing 52 ========== 53 54 You can install python-twitter using:: 55 56 $ pip install python-twitter 57 58 59 If you are using python-twitter on Google App Engine, see `more information <GAE.rst>`_ about including 3rd party vendor library dependencies in your App Engine project. 60 61 62 ================ 63 Getting the code 64 ================ 65 66 The code is hosted at https://github.com/bear/python-twitter 67 68 Check out the latest development version anonymously with:: 69 70 $ git clone git://github.com/bear/python-twitter.git 71 $ cd python-twitter 72 73 To install dependencies, run either:: 74 75 $ make dev 76 77 or:: 78 79 $ pip install -Ur requirements.testing.txt 80 $ pip install -Ur requirements.txt 81 82 Note that ```make dev``` will install into your local ```pyenv``` all of the versions needed for test runs using ```tox```. 83 84 To install the minimal dependencies for production use (i.e., what is installed 85 with ``pip install python-twitter``) run:: 86 87 $ make env 88 89 or:: 90 91 $ pip install -Ur requirements.txt 92 93 ============= 94 Running Tests 95 ============= 96 The test suite can be run against a single Python version or against a range of them depending on which Makefile target you select. 97 98 Note that tests require ```pip install pytest``` and optionally ```pip install pytest-cov``` (these are included if you have installed dependencies from ```requirements.testing.txt```) 99 100 To run the unit tests with a single Python version:: 101 102 $ make test 103 104 to also run code coverage:: 105 106 $ make coverage 107 108 To run the unit tests against a set of Python versions:: 109 110 $ make tox 111 112 ============= 113 Documentation 114 ============= 115 116 View the latest python-twitter documentation at 117 https://python-twitter.readthedocs.io. You can view Twitter's API documentation at: https://dev.twitter.com/overview/documentation 118 119 ===== 120 Using 121 ===== 122 123 The library provides a Python wrapper around the Twitter API and the Twitter data model. To get started, check out the examples in the examples/ folder or read the documentation at https://python-twitter.readthedocs.io which contains information about getting your authentication keys from Twitter and using the library. 124 125 ---- 126 Using with Django 127 ---- 128 129 Additional template tags that expand tweet urls and urlize tweet text. See the django template tags available for use with python-twitter: https://github.com/radzhome/python-twitter-django-tags 130 131 ------ 132 Models 133 ------ 134 135 The library utilizes models to represent various data structures returned by Twitter. Those models are: 136 * twitter.Category 137 * twitter.DirectMessage 138 * twitter.Hashtag 139 * twitter.List 140 * twitter.Media 141 * twitter.Status 142 * twitter.Trend 143 * twitter.Url 144 * twitter.User 145 * twitter.UserStatus 146 147 To read the documentation for any of these models, run:: 148 149 $ pydoc twitter.[model] 150 151 --- 152 API 153 --- 154 155 The API is exposed via the ``twitter.Api`` class. 156 157 The python-twitter requires the use of OAuth keys for nearly all operations. As of Twitter's API v1.1, authentication is required for most, if not all, endpoints. Therefore, you will need to register an app with Twitter in order to use this library. Please see the "Getting Started" guide on https://python-twitter.readthedocs.io for a more information. 158 159 To generate an Access Token you have to pick what type of access your application requires and then do one of the following: 160 161 - `Generate a token to access your own account <https://dev.twitter.com/oauth/overview/application-owner-access-tokens>`_ 162 - `Generate a pin-based token <https://dev.twitter.com/oauth/pin-based>`_ 163 - use the helper script `get_access_token.py <https://github.com/bear/python-twitter/blob/master/get_access_token.py>`_ 164 165 For full details see the `Twitter OAuth Overview <https://dev.twitter.com/oauth/overview>`_ 166 167 To create an instance of the ``twitter.Api`` with login credentials (Twitter now requires an OAuth Access Token for all API calls):: 168 169 >>> import twitter 170 >>> api = twitter.Api(consumer_key='consumer_key', 171 consumer_secret='consumer_secret', 172 access_token_key='access_token', 173 access_token_secret='access_token_secret') 174 175 To see if your credentials are successful:: 176 177 >>> print(api.VerifyCredentials()) 178 {"id": 16133, "location": "Philadelphia", "name": "bear"} 179 180 **NOTE**: much more than the small sample given here will print 181 182 To fetch a single user's public status messages, where ``user`` is a Twitter user's screen name:: 183 184 >>> statuses = api.GetUserTimeline(screen_name=user) 185 >>> print([s.text for s in statuses]) 186 187 To fetch a list a user's friends:: 188 189 >>> users = api.GetFriends() 190 >>> print([u.name for u in users]) 191 192 To post a Twitter status message:: 193 194 >>> status = api.PostUpdate('I love python-twitter!') 195 >>> print(status.text) 196 I love python-twitter! 197 198 There are many more API methods, to read the full API documentation either 199 check out the documentation on `readthedocs 200 <https://python-twitter.readthedocs.io>`_, build the documentation locally 201 with:: 202 203 $ make docs 204 205 or check out the inline documentation with:: 206 207 $ pydoc twitter.Api 208 209 ---- 210 Todo 211 ---- 212 213 Patches, pull requests, and bug reports are `welcome <https://github.com/bear/python-twitter/issues/new>`_, just please keep the style consistent with the original source. 214 215 In particular, having more example scripts would be a huge help. If you have 216 a program that uses python-twitter and would like a link in the documentation, 217 submit a pull request against ``twitter/doc/getting_started.rst`` and add your 218 program at the bottom. 219 220 The twitter.Status and ``twitter.User`` classes are going to be hard to keep in sync with the API if the API changes. More of the code could probably be written with introspection. 221 222 The ``twitter.Status`` and ``twitter.User`` classes could perform more validation on the property setters. 223 224 ---------------- 225 More Information 226 ---------------- 227 228 Please visit `the google group <http://groups.google.com/group/python-twitter>`_ for more discussion. 229 230 ------------ 231 Contributors 232 ------------ 233 234 Originally two libraries by DeWitt Clinton and Mike Taylor which was then merged into python-twitter. 235 236 Now it's a full-on open source project with many contributors over time. See AUTHORS.rst for the complete list. 237 238 ------- 239 License 240 ------- 241 242 | Copyright 2007-2016 The Python-Twitter Developers 243 | 244 | Licensed under the Apache License, Version 2.0 (the 'License'); 245 | you may not use this file except in compliance with the License. 246 | You may obtain a copy of the License at 247 | 248 | http://www.apache.org/licenses/LICENSE-2.0 249 | 250 | Unless required by applicable law or agreed to in writing, software 251 | distributed under the License is distributed on an 'AS IS' BASIS, 252 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 253 | See the License for the specific language governing permissions and 254 | limitations under the License. 255 256 257 Originally two libraries by DeWitt Clinton and Mike Taylor which was then merged into python-twitter. 258 259 Now it's a full-on open source project with many contributors over time: 260 261 * Jodok Batlogg, 262 * Kyle Bock, 263 * Brad Choate, 264 * Robert Clarke, 265 * Jim Cortez, 266 * Pierre-Jean Coudert, 267 * Aish Raj Dahal, 268 * Thomas Dyson, 269 * Jim Easterbrook 270 * Yoshinori Fukushima, 271 * Hameedullah Khan, 272 * Osama Khalid, 273 * Omar Kilani, 274 * Domen Kožar, 275 * Robert Laquey, 276 * Jason Lemoine, 277 * Pradeep Nayak, 278 * Ian Ozsvald, 279 * Nicolas Perriault, 280 * Trevor Prater, 281 * Glen Tregoning, 282 * Lars Weiler, 283 * Sebastian Wiesinger, 284 * Jake Robinson, 285 * Muthu Annamalai, 286 * abloch, 287 * cahlan, 288 * dpslwk, 289 * edleaf, 290 * ecesena, 291 * git-matrix, 292 * sbywater, 293 * thefinn93, 294 * themylogin, 295 296 297 2016-05-25 298 Going forward all changes will be tracked in docs/changelog.rst 299 300 2015-12-28 301 Large number of changes related to making the code Python v3 compatible. 302 See the messy details at https://github.com/bear/python-twitter/pull/251 303 304 Pull Requests 305 #525 Adds support for 280 character limit for tweets by trevorprater 306 #267 initialize Api.__auth fixes #119 by rbpasker 307 #266 Add full_text and page options in GetDirectMessages function by mistersalmon 308 #264 Updates Media object with new methods, adds id param, adds tests by jeremylow 309 #262 Update get_access_token.py by lababidi 310 #261 Adding Collections by ryankicks 311 #260 Added UpdateBackgroundImage method and added profile_link_color argument to UpdateProfile by BrandonBielicki 312 #259 Added GetFriendIDsPaged by RockHoward 313 #254 Adding api methods for suggestions and suggestions/:slug by trentstollery 314 #253 Added who parameter to api.GetSearch by wilsonand1 315 #250 adds UpdateFriendship (shared Add/Edit friendship) by jheld 316 #249 Fixed Non-ASCII printable representation in Trend by der-Daniel 317 #246 Add __repr__ for status by era 318 #245 Python-3 Fix: decode bytestreams for json load by ligthyear 319 #243 Remove references to outdated API functionality: GetUserByEmail by Vector919 320 #239 Correct GetListsList docstring by tedmiston 321 322 Probably a whole lot that I missed - ugh! 323 324 2017-11-11 325 Added support for 280 character limit 326 327 2015-10-05 328 Added who to api.GetSearch 329 330 2014-12-29 331 removed reference to simplejson 332 333 2014-12-24 334 bump version to v2.3 335 bump version to v2.2 336 PEP8 standardization 337 338 2014-07-10 339 bump version to v2.1 340 341 2014-07-10 342 update copyright years 343 change setup.py to allow installing via wheel 344 renamed README.md to README.rst 345 added AUTHORS.rst 346 347 2014-02-17 348 changed version to 1.3 and then to 1.3.1 because I forgot to include CHANGES 349 fix Issue 143 - GetStatusOembed() url parameter was being stomped on 350 fix debugHTTP in a brute force way but it works again 351 Add id_str to Status class 352 Added LookupFriendship() method for checking follow status 353 pull request from lucas 354 Fix bug of GetListMembers when specifying `owner_screen_name` 355 pull request from shichao-an 356 357 2014-01-18 358 backfilling varioius lists endpoints 359 added a basic user stream call 360 361 2014-01-17 362 changed to version 1.2 363 fixed python 3 issue in setup.py (print statements) 364 fixed error in CreateList(), changed count default for GetFollowers to 200 and added a GetFollowersPaged() method 365 366 need to backfill commit log entries! 367 368 2013-10-06 369 changed version to 1.1 370 The following changes have been made since the 1.0.1 release 371 372 Remove from ParseTweet the Python 2.7 only dict comprehension item 373 Fix GetListTimeline condition to enable owner_screen_name based fetching 374 Many fixes for readability and PEP8 375 Cleaning up some of the package importing. Only importing the functions that are needed 376 Also added first build of the sphinx documentation. Copied some info from the readme to the index page 377 Added lines to setup.py to help the user troubleshoot install problems. #109 378 Removed the OAuth2 lines from the readme 379 Removed OAuth2 library requirements 380 Added GetListMembers() 381 382 383 2013-06-07 384 changed version to 1.0.1 385 added README bit about Python version requirement 386 387 2013-06-04 388 changed version to 1.0 389 removed doc directory until we can update docs for v1.1 API 390 added to package MANIFEST.in the testdata directory 391 392 2013-05-28 393 bumped version to 1.0rc1 394 merged in api_v1.1 branch 395 396 The library is now only for Twitter API v1.1 397 398 2013-03-03 399 bumped version to 0.8.7 400 401 removed GetPublicTimeline from the docs so as to stop confusing 402 new folks since it was the first example given ... d'oh! 403 404 2013-02-10 405 bumped version to 0.8.6 406 407 update requirements.txt to remove distribute reference 408 github commit 3b9214a879e5fbd03036a7d4ae86babc03784846 409 410 Merge pull request #33 from iElectric/profile_image_url_https 411 github commit 67cbb8390701c945a48094795474ca485f092049 412 patch by iElectric on github 413 414 Change User.NewFromJsonDict so that it will pull from either 415 profile_image_url_https or profile_image_url to keep older code 416 working properly if they have stored older json data 417 418 2013-02-07 419 bumped version to 0.8.5 420 lots of changes have been happening on Github and i've been 421 very remiss in documenting them here in the Changes file :( 422 423 this version is the last v1.0 API release and it's being made 424 to push to PyPI and other places 425 426 all work now will be on getting the v1.1 API supported 427 428 2012-11-04 429 https://github.com/bear/python-twitter/issues/4 430 Api.UserLookUp() throws attribute error when corresponding screen_name is not found 431 432 https://github.com/bear/python-twitter/pull/5 433 Merge pull request #5 from thefinn93/master 434 Setup.py crashes because the README file is now named README.md 435 436 Update .gitignore to add the PyCharm data directory 437 438 2012-10-16 439 http://code.google.com/p/python-twitter/issues/detail?id=233 440 Patch by dan@dans.im 441 Add exclude_replies parameter to GetUserTimeline 442 443 https://github.com/bear/python-twitter/issues/1 444 Bug reported by michaelmior on github 445 get_access_token.py attempts Web auth 446 447 2011-12-03 448 https://code.google.com/p/python-twitter/source/detail?r=263fe2a0db8be23347e92b81d6ab3c33b4ef292f 449 Comment by qfuxiang to the above changeset 450 The base url was wrong for the Followers API calls 451 452 https://code.google.com/p/python-twitter/issues/detail?id=213 453 Add include_entities parameter to GetStatus() 454 Patch by gaelenh 455 456 https://code.google.com/p/python-twitter/issues/detail?id=214 457 Change PostUpdate() so that it takes the shortened link into 458 account. Small tweak to the patch provided to make the 459 shortened-link length set by a API value instead of a constant. 460 Patch by ceesjan.ytec 461 462 https://code.google.com/p/python-twitter/issues/detail?id=216 463 AttributeError handles the fact that win* doesn't implement 464 os.getlogin() 465 Patch by yaleman 466 467 https://code.google.com/p/python-twitter/issues/detail?id=217 468 As described at https://dev.twitter.com/docs/api/1/get/trends, 469 GET trends (corresponding to Api.GetTrendsCurrent) is now 470 deprecated in favor of GET trends/:woeid. GET trends also now 471 requires authentication, while trends/:woeid doesn't. 472 Patch and excellent description by jessica.mckellar 473 474 https://code.google.com/p/python-twitter/issues/detail?id=218 475 Currently, two Trends containing the same information 476 (name, query, and timestamp) aren't considered equal because 477 __eq__ isn't overridden, like it is for Status, User, and the 478 other Twitter objects. 479 Patch and excellent description by jessica.mckellar 480 481 https://code.google.com/p/python-twitter/issues/detail?id=220 482 https://code.google.com/p/python-twitter/issues/detail?id=211 483 https://code.google.com/p/python-twitter/issues/detail?id=206 484 All variations on a theme - basically Twitter is returning 485 something different for an error payload. Changed code to 486 check for both 'error' and 'errors'. 487 488 2011-05-08 489 490 https://code.google.com/p/python-twitter/issues/detail?id=184 491 A comment in this issue made me realize that the parameter sanity 492 check for max_id was missing in GetMentions() - added 493 494 First pass at working in some of the cursor support that has been 495 in the Twitter API but we haven't made full use of - still working 496 out the small issues. 497 498 2011-04-16 499 500 bumped version to 0.8.3 501 released 0.8.2 to PyPI 502 bumped version to 0.8.2 503 504 Issue 193 505 http://code.google.com/p/python-twitter/issues/detail?id=193 506 Missing retweet_count field on Status object 507 Patch (with minor tweaks) by from alissonp 508 509 Issue 181 510 http://code.google.com/p/python-twitter/issues/detail?id=181 511 Add oauth2 to install_requires parameter list and also updated 512 README to note that the oauth2 lib can be found in two locations 513 514 Issue 182, Issue 137, Issue 93, Issue 190 515 language value missing from User object 516 Added 'lang' item and also some others that were needed: 517 verified, notifications, contributors_enabled and listed_count 518 patches by wreinerat, apetresc, jpwigan and ghills 519 520 2011-02-26 521 522 Issue 166 523 http://code.google.com/p/python-twitter/issues/detail?id=166 524 Added a basic, but sadly needed, check when parsing the json 525 returned by Twitter as Twitter has a habit of returning the 526 failwhale HTML page for a json api call :( 527 Patch (with minor tweaks) by adam.aviv 528 529 Issue 187 530 http://code.google.com/p/python-twitter/issues/detail?id=187 531 Applied patch by edward.hades to fix issue where MaximumHitFrequency 532 returns 0 when requests are maxed out 533 534 Issue 184 535 http://code.google.com/p/python-twitter/issues/detail?id=184 536 Applied patch by jmstaley to put into the GetUserTimeline API 537 parameter list the max_id value (it was being completely ignored) 538 539 2011-02-20 540 541 Added retweeted to Status class 542 Fixed Status class to return Hashtags list in AsDict() call 543 544 Issue 185 545 http://code.google.com/p/python-twitter/issues/detail?id=185 546 Added retweeted_status to Status class - patch by edward.hades 547 548 Issue 183 549 http://code.google.com/p/python-twitter/issues/detail?id=183 550 Removed errant print statement - reported by ProgVal 551 552 2010-12-21 553 554 Setting version to 0.8.1 555 556 Issue 179 557 http://code.google.com/p/python-twitter/issues/detail?id=179 558 Added MANIFEST.in to give setup.py sdist some clues as to what 559 files to include in the tarball 560 561 2010-11-14 562 563 Setting version to 0.8 for a bit as having a branch for this is 564 really overkill, i'll just take DeWitt advice and tag it when 565 the release is out the door 566 567 Issue 175 568 http://code.google.com/p/python-twitter/issues/detail?id=175 569 Added geo_enabled to User class - basic parts of patch provided 570 by adam.aviv with other bits added by me to allow it to pass tests 571 572 Issue 174 573 http://code.google.com/p/python-twitter/issues/detail?id=174 574 Added parts of adam.aviv's patch - the bits that add new field items 575 to the Status class. 576 577 Issue 159 578 http://code.google.com/p/python-twitter/issues/detail?id=159 579 Added patch form adam.aviv to make the term parameter for GetSearch() 580 optional if geocode parameter is supplied 581 582 2010-11-03 583 584 Ran pydoc to generate docs 585 586 2010-10-16 587 588 Fixed bad date in previous CHANGES entry 589 590 Fixed source of the python-oauth2 library we use: from brosner 591 to simplegeo 592 593 I made a pass thru the docstrings and updated many to be the 594 text from the current Twitter API docs. Also fixed numerous 595 whitespace issues and did a s/[optional]/[Optional]/ change. 596 597 Imported work by Colin Howe that he did to get the tests working. 598 http://code.google.com/r/colinthehowe-python-twitter-tests/source/detail?r=6cff589aca9c955df8354fe4d8e302ec4a2eb31c 599 http://code.google.com/r/colinthehowe-python-twitter-tests/source/detail?r=cab8e32d7a9c34c66d2e75eebc7a1ba6e1eac8ce 600 http://code.google.com/r/colinthehowe-python-twitter-tests/source/detail?r=b434d9e5dd7b989ae24483477e3f00b1ad362cc5 601 602 Issue 169 603 http://code.google.com/p/python-twitter/issues/detail?id=169 604 Patch by yaemog which adds missing Trends support. 605 606 Issue 168 607 http://code.google.com/p/python-twitter/issues/detail?id=168 608 Only cache successful results as suggested by yaemog. 609 610 Issue 111 611 http://code.google.com/p/python-twitter/issues/detail?id=111 612 Added a new GetUserRetweets() call as suggested by yash888 613 Patch given was adjusted to reflect the current code requirements. 614 615 Issue 110 616 Added a VerifyCredentials() sample call to the README example 617 618 Issue 105 619 Added support for the page parameter to GetFriendsTimeline() 620 as requested by jauderho. 621 I also updated GetFriendsTimeline() to follow the current 622 Twitter API documentation 623 624 Somewhere in the patch frenzy of today an extra GetStatus() 625 def was introduced!?! Luckily it was caught by the tests. 626 wooo tests! \m/ 627 628 Setting version to 0.8 629 630 r0.8 branch created and trunk set to version 0.9-devel 631 632 2010-09-26 633 634 Issue 150 635 http://code.google.com/p/python-twitter/issues/detail?id=150 636 Patch by blhobbes which removes a double quoting issue that 637 was happening for GetSearch() 638 Reported by huubhuubbarbatruuk 639 640 Issue 160 641 http://code.google.com/p/python-twitter/issues/detail?id=160 642 Patch by yaemog which adds support for include_rts and 643 include_entities support to GetUserTimeline and GetPublicTimeline 644 Small tweaks post-patch 645 646 Applied docstring tweak suggested by dclinton in revision comment 647 http://code.google.com/p/python-twitter/source/detail?r=a858412e38f7e3856fef924291ef039284d3a6e1 648 Thanks for the catch! 649 650 Issue 164 651 http://code.google.com/p/python-twitter/issues/detail?id=164 652 Patch by yaemog which adds GetRetweets support. 653 Small tweaks and two typo fixes post-patch. 654 655 Issue 165 656 http://code.google.com/p/python-twitter/issues/detail?id=165 657 Patch by yaemog which adds GetStatus support. 658 Small tweaks post-patch 659 660 Issue 163 661 http://code.google.com/p/python-twitter/issues/detail?id=163 662 Patch by yaemog which adds users/lookup support. 663 Small tweaks to docstring only post-patch. 664 665 Changed username/password parameter to Api class to be 666 consumer_key/consumer_secret to better match the new 667 oAuth only world that Twitter has demanded. 668 669 Added debugHTTP to the parameter list to Api class to 670 control if/when the urllib debug output is displayed. 671 672 2010-08-25 673 674 First pass at adding list support. 675 Added a new List class and also added to the Api class 676 new methods for working with lists: 677 678 CreateList(self, user, name, mode=None, description=None) 679 DestroyList(self, user, id) 680 CreateSubscription(self, owner, list) 681 DestroySubscription(self, owner, list) 682 GetSubscriptions(self, user, cursor=-1) 683 GetLists(self, user, cursor=-1) 684 685 2010-08-24 686 687 Fixed introduced bug in the Destroy* and Create* API calls 688 where any of the routines were passing in an empty dict for 689 POST data. Before the oAuth change that was enough to tell 690 _FetchUrl() to use POST instead of GET but now a non-empty 691 dict is required. 692 693 Issue 144 694 http://code.google.com/p/python-twitter/issues/detail?id=144 695 GetFriends() where it was failing with a 'unicode object has 696 no attribute get'. This was caused when Twitter changed how 697 they return the JSON data. It used to be a straight list but 698 now there are some elements *and* then the list. 699 700 2010-08-18 701 702 Applied the json/simplejson part of the patch found 703 in Issue 64 (http://code.google.com/p/python-twitter/issues/detail?id=64) 704 Patch provided by Thomas Bohmbach 705 706 Applied patch provided by liris.pp in Issue 147 707 http://code.google.com/p/python-twitter/issues/detail?id=147 708 Ensures that during a PostStatus we count the length using a unicode aware 709 len() routine. Tweaked patch slightly to take into account that the 710 twitter.Api() instance may have been setup with None for input_encoding. 711 712 2010-08-17 713 714 Fixed error in the POST path for _FetchUrl() where by 715 I show to the world that yes, I do make last minute 716 changes and completely forget to test them :( 717 Thanks to Peter Sanchez for finding and pointing to 718 working code that showed the fix 719 720 2010-08-15 721 722 Added more help text (I hope it helps) to the README 723 and also to get_access_token.py. 724 725 Added doctext notes to twitter.Api() parameter list 726 to explain more about oAuth. 727 728 Added import exception handling for parse_qs() and 729 parse_qsl() as it seems those funcitons moved between 730 2.5 and 2.6 so the oAuth update broke the lib under 731 python2.5. Thanks to Rich for the bug find (sorry 732 it had to be found the hard way!) 733 734 from changeset 184:60315000989c by DeWitt 735 Update the generated twitter.py docs to match the trunk 736 737 2010-08-14 738 739 Fixed silly typo in _FetchUrl() when doing a POST 740 Thanks to Peter Sanchez for the find and fix! 741 742 Added some really basic text to the get_access_token.py 743 startup output that explains why, for now, you need to 744 visit Twitter and get an Application key/secret to use 745 this library 746 747 2010-08-12 748 749 Updated code to use python-oauth2 library for authentication. 750 Twitter has set a deadline, 2010-08-16 as of this change, for 751 the switch from Basic to oAuth. 752 753 The oAuth integration was inspired by the work done by 754 Hameedullah Khan and others. 755 756 The change to using python-oauth2 library was done purely to 757 align python-twitter with an oauth library that was maintained 758 and had tests to try and minimize grief moving forward. 759 760 Slipped into GetFriendsTimeline() a new parameter, retweets, to 761 allow the call to pull from the "friends_timeline" or the 762 "home_timeline". 763 764 Fixed some typos and white-space issues and also updated the 765 README to point to the new Twitter Dev site. 766 767 2010-08-02 768 769 Updated copyright information. 770 771 2010-06-13 772 773 Applied changeset from nicdumz repo nicdumz-cleaner-python-twitter 774 r=07df3feee06c8d0f9961596e5fceae9e74493d25 775 datetime is required for MaximumHitFrequency 776 777 Applied changeset from nicdumz repo nicdumz-cleaner-python-twitter 778 r=dd669dff32d101856ed6e50fe8bd938640b04d77 779 update source URLs in README 780 781 Applied changeset from nicdumz repo nicdumz-cleaner-python-twitter 782 r=8f0796d7fdcea17f4162aeb22d3c36cb603088c7 783 adjust tests to reflect http://twitter.com -> https://twitter.com change 784 785 Applied changeset from nicdumz repo nicdumz-cleaner-python-twitter 786 r=3c05b8ebe59eca226d9eaef2760cecca9d50944a 787 tests: add .info() method to objects returned by our Mockup handler 788 This is required to completely mimick urllib, and have successful 789 response.headers attribute accesses. 790 791 Applied partial patch for Issue 113 792 http://code.google.com/p/python-twitter/issues/detail?id=113 793 794 The partial bit means we changed the parameter from "page" to "cursor" 795 so the call would work. What was left out was a more direct way 796 to return the cursor value *after* the call and also in the patch 797 they also changed the method to return an iterator. 798 799 2010-05-17 800 801 Issue 50 http://code.google.com/p/python-twitter/issues/detail?id=50 802 Applied patch by wheaties.box that implements a new method to return 803 the Rate Limit Status and also adds the new method MaximumHitFrequency 804 805 Multiple typo, indent and whitespace tweaks 806 807 Issue 60 http://code.google.com/p/python-twitter/issues/detail?id=60 808 Pulled out new GetFavorites and GetMentions methods from the patch 809 submitted by joegermuska 810 811 Issue 62 http://code.google.com/p/python-twitter/issues/detail?id=62 812 Applied patch from lukev123 that adds gzip compression to the GET 813 requests sent to Twitter. The patch was modified to default gzip to 814 False and to allow the twitter.API class instantiation to set the 815 value to True. This was done to not change current default 816 behaviour radically. 817 818 Issue 80 http://code.google.com/p/python-twitter/issues/detail?id=80 819 Fixed PostUpdate() call example in the README 820 821 2010-05-16 822 823 Issue 19 http://code.google.com/p/python-twitter/issues/detail?id=19 824 TinyURL example and the idea for this comes from a bug filed by 825 acolorado with patch provided by ghills. 826 827 Issue 37 http://code.google.com/p/python-twitter/issues/detail?id=37 828 Added base_url to the twitter.API class init call to allow the user 829 to override the default https://twitter.com base. Since Twitter now 830 supports https for all calls I (bear) changed the patch to default to 831 https instead of http. 832 Original issue by kotecha.ravi, patch by wiennat and with implementation 833 tweaks by bear. 834 835 Issue 45 http://code.google.com/p/python-twitter/issues/detail?id=45 836 Two grammar fixes for relative_created_at property 837 Patches by thomasdyson and chris.boardman07 838 839 2010-01-24 840 841 Applying patch submitted to fix Issue 70 842 http://code.google.com/p/python-twitter/issues/detail?id=70 843 844 The patch was originally submitted by user ghills, adapted by livibetter and 845 adapted even further by JimMoefoe (read the comments for the full details :) ) 846 847 Applying patch submitted by markus.magnuson to add new method GetFriendIDs 848 Issue 94 http://code.google.com/p/python-twitter/issues/detail?id=94 849 850 2009-06-13 851 852 Releasing 0.6 to help people avoid the Twitpocalypse. 853 854 2009-05-03 855 856 Support hashlib in addition to the older md5 library. 857 858 2009-03-11 859 860 Added page parameter to GetReplies, GetFriends, GetFollowers, and GetDirectMessages 861 862 2009-03-03 863 864 Added count parameter to GetFriendsTimeline 865 866 2009-03-01 867 Add PostUpdates, which automatically splits long text into multiple updates. 868 869 2009-02-25 870 871 Add in_reply_to_status_id to api.PostUpdate 872 873 2009-02-21 874 875 Wrap any error responses in a TwitterError 876 Add since_id to GetFriendsTimeline and GetUserTimeline 877 878 2009-02-20 879 880 Added since and since_id to Api.GetReplies 881 882 2008-07-10 883 884 Added new properties to User and Status classes. 885 Removed spurious self-import of the twitter module 886 Added a NOTICE file 887 Require simplejson 2.x or later 888 Added get/create/destroy favorite flags for status messages. 889 Bug fix for non-tty devices. 890 891 2007-09-13 892 893 Unset the executable bit on README. 894 895 2007-09-13 896 897 Released version 0.5. 898 Added back support for setuptools (conditionally) 899 Added support for X-Twitter-* HTTP headers 900 Fixed the tests to work across all timezones 901 Removed the 140 character limit from PostUpdate 902 Added support for per-user tmp cache directories 903 904 2007-06-13 905 906 Released 0.4. 907 Fixed a unicode error that prevented tweet.py from working. 908 Added DestroyStatus 909 Added DestroyDirectMessage 910 Added CreateFriendship 911 Added DestoryFriendship 912 913 2007-06-03 914 915 Fixed the bug that prevented unicode strings being posted 916 Username and password now set on twitter.Api, not individual method calls 917 Added SetCredentials and ClearCredentials 918 Added GetUser ("users/show" in the twitter web api) 919 Added GetFeatured 920 Added GetDirectMessages 921 Added GetStatus ("statuses/show" in the twitter web api) 922 Added GetReplies 923 Added optional since_id parameter on GetPublicTimeline 924 Added optional since parameter on GetUserTimeline 925 Added optional since and user parameters on GetFriendsTimeline 926 Added optional user parameter on GetFriends 927 928 2007-04-27 929 930 Modified examples/twitter-to-xhtml.py to handle unicode 931 Dropped dependency on setuptools (too complicated/buggy) 932 Added unicode test cases 933 Fixed issue 2 "Rename needs an unlink in front" 934 935 2007-04-02 936 937 Released 0.3. 938 Use gmtime not localtime to calculate relative_created_at. 939 940 2007-03-26 941 942 Released 0.2 943 GetUserTimeline can accept userid or username. 944 945 2007-03-21 946 947 Calculate relative_created_at on the fly 948 949 2007-01-28 950 951 Released 0.1 952 Initial checkin of python-twitter 953 954 955Keywords: twitter api 956Platform: Any 957Classifier: Development Status :: 5 - Production/Stable 958Classifier: Intended Audience :: Developers 959Classifier: License :: OSI Approved :: Apache Software License 960Classifier: Operating System :: OS Independent 961Classifier: Topic :: Software Development :: Libraries :: Python Modules 962Classifier: Topic :: Communications :: Chat 963Classifier: Topic :: Internet 964Classifier: Programming Language :: Python 965Classifier: Programming Language :: Python :: 2 966Classifier: Programming Language :: Python :: 2.7 967Classifier: Programming Language :: Python :: 3 968Classifier: Programming Language :: Python :: 3.6 969