From a3edbb23484d10d1ac175f8802c541d660fcee9b Mon Sep 17 00:00:00 2001 From: Ryan McGrath Date: Thu, 17 Dec 2009 03:05:39 -0500 Subject: [PATCH] New package structure; twython is now separated out into core/oauth/streaming. To maintain compatibility with older Twython versions, simply import twython like: 'import twython.core as twython' - this will allow for easier oauth/streaming development, and should hopefully fix a lot of the installation issues people kept running into with easy_install --- .gitignore | 4 ++++ __init__.py | 1 - examples/current_trends.py | 2 +- examples/daily_trends.py | 2 +- examples/get_friends_timeline.py | 4 ++-- examples/get_user_mention.py | 4 ++-- examples/get_user_timeline.py | 2 +- examples/public_timeline.py | 2 +- examples/rate_limit.py | 4 ++-- examples/search_results.py | 2 +- examples/shorten_url.py | 2 +- examples/twython_setup.py | 14 +++++--------- examples/update_profile_image.py | 4 ++-- examples/update_status.py | 4 ++-- examples/weekly_trends.py | 2 +- setup.py | 4 +--- twython/__init__.py | 1 + core/twython.py => twython/core.py | 2 +- .../oauth/__init__.py | 6 +++--- twython/oauth/__init__.pyc | Bin 0 -> 4397 bytes {oauth => twython/oauth}/oauth.py | 0 twython/oauth/oauth.pyc | Bin 0 -> 18223 bytes .../streaming/__init__.py | 2 ++ twython/streaming/__init__.pyc | Bin 0 -> 2475 bytes twython3k/__init__.py | 1 + core/twython3k.py => twython3k/core.py | 0 26 files changed, 35 insertions(+), 34 deletions(-) create mode 100644 .gitignore delete mode 100644 __init__.py create mode 100644 twython/__init__.py rename core/twython.py => twython/core.py (99%) rename oauth/twython_oauth.py => twython/oauth/__init__.py (97%) create mode 100644 twython/oauth/__init__.pyc rename {oauth => twython/oauth}/oauth.py (100%) create mode 100644 twython/oauth/oauth.pyc rename streaming/twython_streaming.py => twython/streaming/__init__.py (96%) create mode 100644 twython/streaming/__init__.pyc create mode 100644 twython3k/__init__.py rename core/twython3k.py => twython3k/core.py (100%) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..996a1e1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*.pyc +build +dist +twython.egg-info diff --git a/__init__.py b/__init__.py deleted file mode 100644 index 73b19e2..0000000 --- a/__init__.py +++ /dev/null @@ -1 +0,0 @@ -import twython as twython diff --git a/examples/current_trends.py b/examples/current_trends.py index 425cdee..8ee4d74 100644 --- a/examples/current_trends.py +++ b/examples/current_trends.py @@ -1,4 +1,4 @@ -import twitter +import twython.core as twython """ Instantiate Twython with no Authentication """ twitter = twython.setup() diff --git a/examples/daily_trends.py b/examples/daily_trends.py index 987611e..38ca507 100644 --- a/examples/daily_trends.py +++ b/examples/daily_trends.py @@ -1,4 +1,4 @@ -import twitter +import twython.core as twython """ Instantiate Twython with no Authentication """ twitter = twython.setup() diff --git a/examples/get_friends_timeline.py b/examples/get_friends_timeline.py index 9f3fa06..9e67583 100644 --- a/examples/get_friends_timeline.py +++ b/examples/get_friends_timeline.py @@ -1,7 +1,7 @@ -import twython, pprint +import twython.core as twython, pprint # Authenticate using Basic (HTTP) Authentication -twitter = twython.setup(authtype="Basic", username="example", password="example") +twitter = twython.setup(username="example", password="example") friends_timeline = twitter.getFriendsTimeline(count="150", page="3") for tweet in friends_timeline: diff --git a/examples/get_user_mention.py b/examples/get_user_mention.py index 08b3dff..0db63a0 100644 --- a/examples/get_user_mention.py +++ b/examples/get_user_mention.py @@ -1,6 +1,6 @@ -import twitter +import twython.core as twython -twitter = twython.setup(authtype="Basic", username="example", password="example") +twitter = twython.setup(username="example", password="example") mentions = twitter.getUserMentions(count="150") print mentions diff --git a/examples/get_user_timeline.py b/examples/get_user_timeline.py index b4191b0..bdb9200 100644 --- a/examples/get_user_timeline.py +++ b/examples/get_user_timeline.py @@ -1,4 +1,4 @@ -import twython +import twython.core as twython # We won't authenticate for this, but sometimes it's necessary twitter = twython.setup() diff --git a/examples/public_timeline.py b/examples/public_timeline.py index b6be0f7..4670037 100644 --- a/examples/public_timeline.py +++ b/examples/public_timeline.py @@ -1,4 +1,4 @@ -import twython +import twython.core as twython # Getting the public timeline requires no authentication, huzzah twitter = twython.setup() diff --git a/examples/rate_limit.py b/examples/rate_limit.py index aca5095..4b632b0 100644 --- a/examples/rate_limit.py +++ b/examples/rate_limit.py @@ -1,7 +1,7 @@ -import twython +import twython.core as twython # Instantiate with Basic (HTTP) Authentication -twitter = twython.setup(authtype="Basic", username="example", password="example") +twitter = twython.setup(username="example", password="example") # This returns the rate limit for the requesting IP rateLimit = twitter.getRateLimitStatus() diff --git a/examples/search_results.py b/examples/search_results.py index b046b22..e0df48b 100644 --- a/examples/search_results.py +++ b/examples/search_results.py @@ -1,4 +1,4 @@ -import twython +import twython.core as twython """ Instantiate Tango with no Authentication """ twitter = twython.setup() diff --git a/examples/shorten_url.py b/examples/shorten_url.py index 2a744d6..f0824bf 100644 --- a/examples/shorten_url.py +++ b/examples/shorten_url.py @@ -1,4 +1,4 @@ -import twython +import twython as twython # Shortening URLs requires no authentication, huzzah twitter = twython.setup() diff --git a/examples/twython_setup.py b/examples/twython_setup.py index 362cb43..6eea228 100644 --- a/examples/twython_setup.py +++ b/examples/twython_setup.py @@ -1,11 +1,7 @@ -import twython +import twython.core as twython -# Using no authentication and specifying Debug -twitter = twython.setup(debug=True) +# Using no authentication +twitter = twython.setup() -# Using Basic Authentication -twitter = twython.setup(authtype="Basic", username="example", password="example") - -# Using OAuth Authentication (Note: OAuth is the default, specify Basic if needed) -auth_keys = {"consumer_key": "yourconsumerkey", "consumer_secret": "yourconsumersecret"} -twitter = twython.setup(username="example", password="example", oauth_keys=auth_keys) +# Using Basic Authentication (core is all about basic auth, look to twython.oauth in the future for oauth) +twitter = twython.setup(username="example", password="example") diff --git a/examples/update_profile_image.py b/examples/update_profile_image.py index ad6f9ad..37ee00e 100644 --- a/examples/update_profile_image.py +++ b/examples/update_profile_image.py @@ -1,5 +1,5 @@ -import twython +import twython.core as twython # Instantiate Twython with Basic (HTTP) Authentication -twitter = twython.setup(authtype="Basic", username="example", password="example") +twitter = twython.setup(username="example", password="example") twitter.updateProfileImage("myImage.png") diff --git a/examples/update_status.py b/examples/update_status.py index 52d2e87..0f7fe38 100644 --- a/examples/update_status.py +++ b/examples/update_status.py @@ -1,5 +1,5 @@ -import twython +import twython.core as twython # Create a Twython instance using Basic (HTTP) Authentication and update our Status -twitter = twython.setup(authtype="Basic", username="example", password="example") +twitter = twython.setup(username="example", password="example") twitter.updateStatus("See how easy this was?") diff --git a/examples/weekly_trends.py b/examples/weekly_trends.py index 5871fbd..e48fb95 100644 --- a/examples/weekly_trends.py +++ b/examples/weekly_trends.py @@ -1,4 +1,4 @@ -import twython +import twython.core as twython """ Instantiate Twython with no Authentication """ twitter = twython.setup() diff --git a/setup.py b/setup.py index f5c956f..1a52d20 100644 --- a/setup.py +++ b/setup.py @@ -3,9 +3,7 @@ import sys, os __author__ = 'Ryan McGrath ' -__version__ = '0.9' - -# For the love of god, use Pip to install this. +__version__ = '1.0' # Distutils version METADATA = dict( diff --git a/twython/__init__.py b/twython/__init__.py new file mode 100644 index 0000000..083a571 --- /dev/null +++ b/twython/__init__.py @@ -0,0 +1 @@ +import core, oauth, streaming diff --git a/core/twython.py b/twython/core.py similarity index 99% rename from core/twython.py rename to twython/core.py index f9e94bd..b88d637 100644 --- a/core/twython.py +++ b/twython/core.py @@ -16,7 +16,7 @@ from urlparse import urlparse from urllib2 import HTTPError __author__ = "Ryan McGrath " -__version__ = "0.9" +__version__ = "1.0" """Twython - Easy Twitter utilities in Python""" diff --git a/oauth/twython_oauth.py b/twython/oauth/__init__.py similarity index 97% rename from oauth/twython_oauth.py rename to twython/oauth/__init__.py index db9ed1d..4d88b1f 100644 --- a/oauth/twython_oauth.py +++ b/twython/oauth/__init__.py @@ -7,17 +7,17 @@ Questions, comments? ryan@venodesigns.net """ -import twython, httplib, urllib, urllib2, mimetypes, mimetools +import httplib, urllib, urllib2, mimetypes, mimetools from urlparse import urlparse from urllib2 import HTTPError try: - import oauth + import oauth as oauthlib except ImportError: pass -class twyauth: +class oauth: def __init__(self, username, consumer_key, consumer_secret, signature_method = None, headers = None, version = 1): """oauth(username = None, consumer_secret = None, consumer_key = None, headers = None) diff --git a/twython/oauth/__init__.pyc b/twython/oauth/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3b8a4983c01ca631e566d232f355fa9dba7be1b7 GIT binary patch literal 4397 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 Oqi!#XE{lFEwSNKCkwlpQ literal 0 HcmV?d00001 diff --git a/twython3k/__init__.py b/twython3k/__init__.py new file mode 100644 index 0000000..d93c168 --- /dev/null +++ b/twython3k/__init__.py @@ -0,0 +1 @@ +import core diff --git a/core/twython3k.py b/twython3k/core.py similarity index 100% rename from core/twython3k.py rename to twython3k/core.py